@wular/coder 0.4.3 → 0.4.5
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/dist/actions-CmfXOVXQ.js +20 -0
- package/dist/add-Bffwutko.js +1 -0
- package/dist/add-Bz8uaOcu.js +1 -0
- package/dist/add-DTwoL7vJ.js +1 -0
- package/dist/add-cdKdz3K0.js +6 -0
- package/dist/add-json-BIcbE3Nf.js +1 -0
- package/dist/agent-BcXXkOmD.js +3 -0
- package/dist/agent-DQK_S1PE.js +1 -0
- package/dist/alias-KQ85bphl.js +2 -0
- package/dist/app-DaccLHrx.js +1 -0
- package/dist/approvals-CZt_aPCy.js +2 -0
- package/dist/approve-DxjyXd66.js +2 -0
- package/dist/apps-eueTmHR5.js +1 -0
- package/dist/archive-C3JazQuo.js +3 -0
- package/dist/archive-C9yrU4Wg.js +4 -0
- package/dist/archive-sweep-CHbOP-p6.js +1 -0
- package/dist/args-DEMOfLz2.js +1 -0
- package/dist/ask-DdYrvsTk.js +4 -0
- package/dist/auth-FTKev9__.js +1 -0
- package/dist/auth-q8CROpG-.js +1 -0
- package/dist/chat-bridge-18koyS7c.js +2 -0
- package/dist/cli-msOzZFXW.js +9 -0
- package/dist/cli.js +1 -1
- package/dist/config-BllYHi8S.js +3 -0
- package/dist/create-BYki3g42.js +1 -0
- package/dist/credentials-DLMuf9OT.js +1 -0
- package/dist/dash/standalone/node_modules/@tanstack/virtual-core/dist/esm/index.js +1238 -0
- package/dist/dash/standalone/node_modules/@tanstack/virtual-core/dist/esm/lazy-measurements.js +34 -0
- package/dist/dash/standalone/node_modules/@tanstack/virtual-core/dist/esm/utils.js +74 -0
- package/dist/dash/standalone/node_modules/@tanstack/virtual-core/package.json +56 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/config/ts/react.json +10 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/boot-bhemypxz.js +38 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/build-tier-0a96kmx3.js +2456 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/config-0tvz03a6.js +24 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/generate-myw9hef7.js +22 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-0r5eqfc7.js +279 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-0yjv5v47.js +105 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-11xpbfej.js +17 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-141vcwk6.js +109 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-29pq0kax.js +590 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-2vz0wzdn.js +59 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-2wfv4kvx.js +182 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-3e075kny.js +128 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-3ycf5ckv.js +472 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-4399bvd2.js +18 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-4da76t62.js +297 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-4zzebszd.js +10 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-52k54ykj.js +95 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-5hr4062s.js +70 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-68m3mwbd.js +84 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-6b009mt0.js +56 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-6kp9r0d9.js +11 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-6q7zvrap.js +134 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-71885zaq.js +284 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-73z4esab.js +38 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-79ngvam8.js +60 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-7wc9n8be.js +25 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-8ct7rqy3.js +198 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-8kcxdfya.js +206 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-9f49w76j.js +213 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-9hz3s0m8.js +851 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-akkrvjn6.js +535 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-b6wtkdp4.js +24 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-b7j671dj.js +207 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-bcws5eh2.js +35 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-bzd2ef7t.js +10 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-cjgqs13g.js +65 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-ckkdpht5.js +41 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-cn86z041.js +296 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-cvr4z22m.js +92 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-d158y67j.js +152 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-d1jsmhhk.js +955 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-dgr390q7.js +9438 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-e3a6yx84.js +18 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-en7n9f7m.js +22 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-ezgj0tr1.js +88 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-fn1chkkd.js +214 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-fp8r0sqs.js +64 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-gcmj16xy.js +92 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-gkndxkxf.js +736 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-grta8ap3.js +238 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-h2a70tg4.js +7 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-h4xy648y.js +51 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-hdbwtdv2.js +352 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-he6n2bvp.js +1270 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-j0m1jxqa.js +1253 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-j2zrcp1k.js +66 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-j681c48a.js +2530 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-jbj7ehef.js +50 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-jcsjq3d1.js +20 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-jks0x0a1.js +14 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-jn9rbhrx.js +1599 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-jt8e1pje.js +12 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-kdhxpwyq.js +483 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-knp0s912.js +7 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-kresp2n8.js +445 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-m63czgq5.js +590 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-n4hxpng2.js +11 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-n629dy38.js +1071 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-nf3df4jy.js +266 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-nqh3xhdc.js +57 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-pym1cezq.js +39 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-q3r9z8mq.js +213 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-q738kkhj.js +100 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-qcrvt6er.js +112 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-qjj6gddn.js +54 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-qpwsgt3a.js +158 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-ras0sdab.js +26 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-rcs322t1.js +19 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-rgj5mx84.js +101 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-rt9qq1va.js +4 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-sq3kvz3g.js +200 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-stbk3jhn.js +31 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-tf4j19ge.js +130 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-tgcakdxc.js +125 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-tgsfjmep.js +74 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-tq3b39a5.js +107 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-typcbcsv.js +819 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-v1ags1na.js +132 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-vmr35jjw.js +170 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-vz0km5qk.js +33 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-w6h8m6vp.js +138 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-web361b8.js +138 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-wm36rj4v.js +311 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-x0y005nh.js +283 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-x2m17v9c.js +6166 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-x9c55pzy.js +871 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-xh1nbk46.js +1299 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-xvj80c3a.js +30 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-y4d02znn.js +66 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-y7mzvq2q.js +110 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-ye9hmsvf.js +47 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-yhxkxghe.js +56 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-yrjkqtfj.js +86 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-z88qv16t.js +11 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/index-zqpqyg8p.js +666 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/pipeline-4t9q43ht.js +836 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/proxy-config-60gprphe.js +23 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/proxy-gfhmktbk.js +35 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/router-xnrva921.js +501 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/routes-ht868pdc.js +66 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/_chunks/tsconfig-defaults-bcn34eqb.js +21 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/dist/server/cli/start.js +158 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/package.json +98 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/src/api/client-navigation.ts +337 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/src/api/dynamic.tsx +188 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/src/api/link.tsx +118 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/src/api/navigation.ts +199 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/src/api/server.ts +349 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/src/api/suspense.ts +16 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/src/client/router/events.ts +68 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/src/client/router/history.ts +70 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/src/client/router/hub.ts +201 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/src/client/router/index.ts +168 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/src/client/router/page-slot.ts +139 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/src/client/router/policies.ts +107 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/src/client/router/runtime.ts +6272 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/src/request/cache.ts +64 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/src/routing/href.ts +236 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/src/utils/decode.ts +7 -0
- package/dist/dash/standalone/node_modules/@wular/pnext/tsconfig.json +10 -0
- package/dist/dash/standalone/node_modules/dotenv/lib/main.js +386 -0
- package/dist/dash/standalone/node_modules/dotenv/package.json +62 -0
- package/dist/dash/standalone/node_modules/preact/compat/client.mjs +24 -0
- package/dist/dash/standalone/node_modules/preact/compat/dist/compat.mjs +2 -0
- package/dist/dash/standalone/node_modules/preact/compat/package.json +55 -0
- package/dist/dash/standalone/node_modules/preact/dist/preact.mjs +2 -0
- package/dist/dash/standalone/node_modules/preact/hooks/dist/hooks.mjs +2 -0
- package/dist/dash/standalone/node_modules/preact/hooks/package.json +35 -0
- package/dist/dash/standalone/node_modules/preact/jsx-runtime/dist/jsxRuntime.mjs +2 -0
- package/dist/dash/standalone/node_modules/preact/jsx-runtime/package.json +28 -0
- package/dist/dash/standalone/node_modules/preact/package.json +265 -0
- package/dist/dash/standalone/node_modules/preact-render-to-string/dist/index.mjs +2 -0
- package/dist/dash/standalone/node_modules/preact-render-to-string/dist/stream/index.mjs +2 -0
- package/dist/dash/standalone/node_modules/preact-render-to-string/package.json +147 -0
- package/dist/dash/standalone/node_modules/react/cjs/react.react-server.development.js +878 -0
- package/dist/dash/standalone/node_modules/react/cjs/react.react-server.production.js +436 -0
- package/dist/dash/standalone/node_modules/react/package.json +51 -0
- package/dist/dash/standalone/node_modules/react/react.react-server.js +7 -0
- package/dist/dash/standalone/node_modules/react-compiler-runtime/dist/index.js +385 -0
- package/dist/dash/standalone/node_modules/react-compiler-runtime/package.json +25 -0
- package/dist/dash/standalone/package.json +1 -0
- package/dist/dash/standalone/server/build-index.json +1 -0
- package/dist/dash/standalone/server/entry.js +1 -0
- package/dist/dash/standalone/server/manifest.json +3311 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/client/index.2feb1c162fab6033.js +336 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/core/defaults.f8b4eee28e030eda.js +27 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/core/errors.5e991e43e42bd943.js +21 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/core/task/log-view.d6aae19495a81adb.js +211 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/auth/sign-in.7ee1680af722840f.js +11 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/api/load.bdbf17006af803d1.js +45 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/api/types.0cf02e7714d7c1a2.js +5 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/connect/page.0a054a6c9dda53b3.js +23 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/account/loading.02d57ab48022f8d8.js +9 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/account/notify.b7451fdf9c3bb62a.js +34 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/account/page.f9ab6ed02876880e.js +113 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/account/sign-out.3368aed882d8f1ac.js +13 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/(list)/agent-menu.e4b6d486442476b5.js +12 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/(list)/agents-grid.0dbc57156286a18e.js +118 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/(list)/connect-apps.3a5673bcd9aa57d9.js +42 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/(list)/loading.8df9f4459410cfaa.js +18 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/(list)/page.8f85fbaff456c5fe.js +71 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/(list)/page.9ea9df9d5f80f310.css.pnext-asset.js +0 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/[slug]/(tabs)/layout.d3aec63db0f5230d.js +105 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/[slug]/(tabs)/loading.d53d174ffe56aab3.js +5 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/[slug]/(tabs)/page.3120ea9ec90cb9cc.css.pnext-asset.js +0 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/[slug]/(tabs)/page.7fd1bfcf08e25919.js +116 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/[slug]/(tabs)/platforms/loading.849dc6e6050a7e21.js +10 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/[slug]/(tabs)/platforms/page.143668a9c21806d6.css.pnext-asset.js +0 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/[slug]/(tabs)/platforms/page.31687af871d75d39.js +170 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/[slug]/(tabs)/platforms/platform-actions.754eff65aec1ab59.js +70 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/[slug]/(tabs)/settings/agent-settings-form.861ed9832cbe89c1.js +268 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/[slug]/(tabs)/settings/agent-settings-form.d6de90cb40c3bd46.css.pnext-asset.js +0 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/[slug]/(tabs)/settings/loading.2ec7a3b893925df0.js +8 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/[slug]/(tabs)/settings/page.1ed5379637860fab.js +35 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/[slug]/(tabs)/tasks/loading.20a52282c5806719.js +5 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/[slug]/(tabs)/tasks/page.4fd369ba79ed9943.js +11 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/[slug]/(tabs)/usage/@/app/dash/usage/range-bar.4408a4e0ee81b7b6.css.pnext-asset.js +0 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/[slug]/(tabs)/usage/@/comps/ui/segmented.ded4aa5c0cd2c608.css.pnext-asset.js +0 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/[slug]/(tabs)/usage/loading.43b58c5eef3d4253.js +48 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/[slug]/(tabs)/usage/page.78bf188a8077c64e.js +160 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/[slug]/(tabs)/usage/page.ae5cbdfc43af6658.css.pnext-asset.js +0 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/[slug]/(tabs)/versions-list.0c6811b66b2fcc49.js +41 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/[slug]/edit/loading.a18042397ffeaf55.js +29 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/[slug]/edit/page.1798dbd9cd334e8f.js +69 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/agent/agent-pills.c5710a4f634f9d6a.js +67 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/agent/agent-pills.dcf7e785044cc900.css.pnext-asset.js +0 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/agent/hero.a794a01218c5c9ce.css.pnext-asset.js +0 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/agent/hero.e5c5af2f9fab6a63.js +62 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/agent/instructions.2176859ec1028fc0.css.pnext-asset.js +0 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/agent/instructions.403838f7cb218391.js +74 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/editor/@/app/dash/agents/(list)/page.f2e88eb443d45a74.css.pnext-asset.js +0 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/editor/connect-repositories.6c7088fd2fcd54f4.js +11 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/editor/editor.4b164e6eb19daa2f.js +691 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/editor/editor.6b13621790a6d5d6.css.pnext-asset.js +0 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/editor/import-picker.4bff9b5642aeab17.js +214 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/editor/names.cf9e376a918a5341.js +30 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/new/loading.72e1b274c475e39a.js +28 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/new/page.44f60b1a32344f70.js +55 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/layout.946ec7c4ebb1d7c6.css.pnext-asset.js +0 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/layout.96376d18592adfa9.js +391 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/page.669f5926ae12d101.js +10 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/settings/[tab]/credentials-list.3bd27b14c0d60e48.css.pnext-asset.js +0 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/settings/[tab]/credentials-list.3fbc413d972a0447.js +538 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/settings/[tab]/credentials.6423846391b20446.js +34 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/settings/[tab]/engines-list.39cd71b7dc568516.css.pnext-asset.js +0 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/settings/[tab]/engines-list.5bad79f0d4e12e07.js +75 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/settings/[tab]/list.2a204889b73638d9.css.pnext-asset.js +0 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/settings/[tab]/list.2cafbe93b7b2dc0f.js +172 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/settings/[tab]/loading.1a810cc50ea61706.js +6 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/settings/[tab]/mcp-list.1fc0f6165dd85b8c.js +249 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/settings/[tab]/mcp-list.d743e37cd6dc85d8.css.pnext-asset.js +0 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/settings/[tab]/models-list.520cb30b291794c3.js +396 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/settings/[tab]/page.04b07f9c365be073.js +86 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/settings/[tab]/runners-list.3dac92fb9f64e2be.css.pnext-asset.js +0 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/settings/[tab]/runners-list.67786d7d51692d19.js +380 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/settings/layout.a619ac4fe999d1b5.js +39 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/settings/model-options.2ca6c87aedf3588c.js +87 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/settings/page.5edeae58f2154a50.js +6 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/settings/settings-head.d726e31e4dd04d60.js +32 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/settings/tunnel-guide.22448081e9e042d6.js +31 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/tasks/[id]/activity.b23683e6be363068.js +177 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/tasks/[id]/loading.a8f2aa099bd76606.js +37 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/tasks/[id]/page.d1ded90712ca586f.js +24 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/tasks/[id]/task-actions.f2be118dd5a02896.js +184 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/tasks/[id]/task-view.97433b52e6f7175c.js +593 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/tasks/[id]/task-view.c2288044c9032a89.css.pnext-asset.js +0 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/tasks/composer-data.e2d442d6ecbaa6d3.js +63 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/tasks/composer.41721fb98004e79e.css.pnext-asset.js +0 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/tasks/composer.78b7d3000d615c7c.js +730 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/tasks/list/status.9516cc22cbd5d84b.css.pnext-asset.js +0 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/tasks/list/status.d78e769ff1411932.js +16 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/tasks/list/task.674ebeabafa0a7e1.js +53 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/tasks/list/tasks-list.55fa11c945f9c6db.css.pnext-asset.js +0 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/tasks/list/tasks-list.9698bdff71c3b3c7.js +429 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/tasks/list/tasks-section.c77194f05c3f58fb.js +79 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/tasks/page.157ac3a0938206b0.js +16 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/usage/@/app/dash/usage/range-bar.72f0c7c440fb34af.css.pnext-asset.js +0 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/usage/@/comps/ui/segmented.81631cafb8e3b260.css.pnext-asset.js +0 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/usage/custom-range.9343f6115e244cb4.js +64 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/usage/day-chart.c7b7d04403f0fc79.css.pnext-asset.js +0 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/usage/day-chart.c7f6c8981a7acb15.js +70 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/usage/loading.1716941ff725f152.js +15 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/usage/metric.5481ab0e025e218e.js +10 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/usage/page.4159d729e8aa0439.js +132 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/usage/range-bar.671afdd0798f4de9.css.pnext-asset.js +0 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/usage/range-bar.8c9b18116c8eb5f0.js +60 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/usage/stats.3b02ee8317b9c4e3.css.pnext-asset.js +0 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/usage/stats.7b8db8c56920b311.js +12 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/usage/top-agents.441006da5b4eae17.css.pnext-asset.js +0 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/usage/top-agents.8af5d53eb64bae9c.js +89 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/usage/usage.d6df7cb6980171ce.css.pnext-asset.js +0 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/globals.89a59affc5df947b.css.pnext-asset.js +0 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/layout.77960a272f19bf24.js +41 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/login/page.33464bce52044759.js +50 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/login/page.f852a09edc8b6b44.css.pnext-asset.js +0 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/page.7e7f8611a9bb7b22.js +4 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/responsive.1fd73ea94977bfc0.css.pnext-asset.js +0 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/zone.66f36b17e74cf5f8.js +10 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/@/comps/ui/toast.8d599c6821860a1c.css.pnext-asset.js +0 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/auth-panel.3e020d19aa5ab464.js +48 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/auth-panel.e5af611567239b13.css.pnext-asset.js +0 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/drawer.9090aa789dffa730.css.pnext-asset.js +0 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/drawer.cf0eb4936a2c7222.js +30 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/heads.5407f7793f985b16.js +47 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/loading-card.9648c7782502babc.js +64 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/page-head.53db3a3d313c0473.css.pnext-asset.js +0 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/page-head.857951b5dc1ad827.js +65 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/stream.4c04416dab6ffc52.js +39 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/task-toasts.b14bb1f66ed75e75.js +324 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/theme-choices.60d3a5adbd49989f.js +49 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/nav/current-link.87758179b507850c.js +34 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/nav/side-toggle.581456c353d76d67.js +36 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/nav/to.248665fde7daaf07.js +11 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/badge.d21391f2f8573db8.css.pnext-asset.js +0 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/badge.e52db98d78836f9a.js +31 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/card.4f9265213510ffd3.css.pnext-asset.js +0 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/card.e6876039e375b849.js +40 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/collapse.60c9038c70fb9c46.css.pnext-asset.js +0 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/collapse.730d674a8f7eeeae.js +33 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/combo.d478120a76502dd1.js +115 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/confirm.cd23ea20bdf120d2.js +53 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/confirm.fc6d4da835b75a30.css.pnext-asset.js +0 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/field.37f93068217e1470.js +16 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/field.8db4420dfb447e42.css.pnext-asset.js +0 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/filter.3e8df59ca8abf397.js +252 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/filter.9311d535531caaf3.css.pnext-asset.js +0 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/icon.476b846e39908951.css.pnext-asset.js +0 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/icon.93605083edf7efe3.js +19 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/icons.e17bdd0b5504787f.js +36 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/menu.3b3026ecd4dc31f0.js +103 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/menu.d412af459c187b41.css.pnext-asset.js +0 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/segmented.171b067d7cb36977.css.pnext-asset.js +0 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/segmented.620f07f6b949d7f1.js +38 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/select.14e820c8a26ab8b5.js +218 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/select.5dbceaae2ba7ace4.css.pnext-asset.js +0 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/sentinel.332fb99b3a214f0e.css.pnext-asset.js +0 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/sentinel.50afec82b0fd53a1.js +59 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/tabs.051c87be5bbb7f2b.js +27 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/tabs.87bc5cdfc4d1b85e.css.pnext-asset.js +0 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/tail.25fd24d6cd0564b7.css.pnext-asset.js +0 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/tail.2d57d68076cef3e1.js +25 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/toolbar.32503820243ede06.js +80 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/toolbar.5e35e79f4d575452.css.pnext-asset.js +0 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/utils/client.f37a313f4811ddb8.js +26 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/utils/format.ba382c381ea40e77.js +75 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/utils/paged.64ead375df845ff2.js +152 -0
- package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/utils/range.f0a5ef1763ff3cb9.js +102 -0
- package/dist/dash/standalone/static/assets/chunks/agent-pills-0163fdf910179991.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/agent-settings-form-b1fcd9a5236b1fc7.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/agents-grid-1d8f0ec6cf8c797e.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/badge-9984d2fd0e7f995d.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/card-818c7a0d580e2e0d.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/combo-0d55fb62af761ac5.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/composer-44516934e5619d32.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/composer-8abfcac26339cc99.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/confirm-be929e2de15876a6.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/connect-apps-3e8b55a43315f58a.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/connect-repositories-8864a63f83ffd411.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/credentials-list-518af85578eacf6d.js +2 -0
- package/dist/dash/standalone/static/assets/chunks/custom-range-e8977f0d9699c1e6.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/editor-75d6d2d01f4fc35a.js +7 -0
- package/dist/dash/standalone/static/assets/chunks/engines-list-2f6b8b3f2e873e4d.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/field-43fea54c1c287e30.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/filter-55618648fc10c377.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/format-b19b8eec331414f4.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/heads-1326669bdce3da2f.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/instructions-0b968d5d0a58c716.js +2 -0
- package/dist/dash/standalone/static/assets/chunks/instructions-f3ecfb5c50f270c2.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/list-90a47c07c4dd932e.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/mcp-list-735e401c60ab51a3.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/models-list-999f54c76ca31379.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/platform-actions-4592c82f72b21b1a.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/runners-list-ab64a5fb01d5eef8.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/runtime-37175329f2865f15-1.js +2 -0
- package/dist/dash/standalone/static/assets/chunks/segmented-bf5a4c06605249e0.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/select-591ca78b6ae29bd8.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/sentinel-b4c91a38a5d79219.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/shared-init-17c1fd399ac53851.js +5 -0
- package/dist/dash/standalone/static/assets/chunks/shared-init-37175329f2865f15-2.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/shared-init-8a34c730aabe942d.js +2 -0
- package/dist/dash/standalone/static/assets/chunks/tail-74153aeac1f0baec.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/task-actions-26ad7f7c937f2589.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/task-view-0d085ce407e8511e.js +5 -0
- package/dist/dash/standalone/static/assets/chunks/tasks-list-e9e914cf5dd959e9.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/toolbar-a99d36b4b6f05bb1.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/versions-list-875a9a0ebb3f7d08.js +1 -0
- package/dist/dash/standalone/static/assets/chunks/wular-pnext-37175329f2865f15-0.js +1 -0
- package/dist/dash/standalone/static/assets/dash-tasks-param-id-24265771fd1e3f78.css +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-1473d0349f242421.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-195f74ae46e817da.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-2b5532ce488c9391.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-2d3ea662f22db27f.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-43c0166e51dce87f.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-4ed05f9a51f559a3.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-652affde71fecdf7.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-82beeebf704714a6.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-899f9625435988dd.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-ad1fab64ee1a5b30.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-b2dccebfff1465f5.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-c8a42c9bfeded4e4.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-d04d2ffbb491564c.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-d060565c4d80b60e.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-dce6e1b84ee02f09.js +1 -0
- package/dist/dash/standalone/static/assets/pnext-client-e753846e298d2403.js +1 -0
- package/dist/default-aLeIO8IR.js +1 -0
- package/dist/default-fMaQH1wm.js +1 -0
- package/dist/delete-Cj16PYaw.js +2 -0
- package/dist/delete-DNj3leWA.js +4 -0
- package/dist/disable-CQg5Vybq.js +1 -0
- package/dist/discover-CaAtyC0h.js +1 -0
- package/dist/discover-bVM8EJEz.js +3 -0
- package/dist/dispatch-YW1aqjEg.js +14 -0
- package/dist/docs-Byrpar10.js +2 -0
- package/dist/docs-CqeYenUp.js +2 -0
- package/dist/enable-8m3z7i3i.js +1 -0
- package/dist/env-LsVTi18f.js +1 -0
- package/dist/exec-DgI3boHa.js +11 -0
- package/dist/executor-HWnIIYUL.js +10 -0
- package/dist/flow/builtin/review.js +1 -1
- package/dist/flow/index.d.ts +2 -2
- package/dist/flow/index.js +1 -1
- package/dist/flow-DeCL3x2p.js +1 -0
- package/dist/github-actions-CvLya8ve.js +24 -0
- package/dist/http-DG54kyx4.js +1 -0
- package/dist/index-Xe8n_t2Z.d.ts +365 -0
- package/dist/init-BujliQ7q.js +1 -0
- package/dist/integrations-6kXL9hRo.js +1 -0
- package/dist/lib/broker.js +2 -2
- package/dist/list-BdiYneg5.js +1 -0
- package/dist/list-CXu4cr8D.js +4 -0
- package/dist/list-DGoVY-ao.js +1 -0
- package/dist/list-DbY1jyj3.js +2 -0
- package/dist/list-DhVfqr0A.js +1 -0
- package/dist/list-DyqtSWvn.js +1 -0
- package/dist/list-QLTjk5SN.js +3 -0
- package/dist/list-vKOTwd4G.js +4 -0
- package/dist/load-DDZfByUe.js +2 -0
- package/dist/local-B0GiaLV0.js +1 -0
- package/dist/login-BzdlmD_o.js +1 -0
- package/dist/login-otJB9SYu.js +1 -0
- package/dist/logout-DOrRoxDV.js +1 -0
- package/dist/maintenance-Bg_FzXSq.js +1 -0
- package/dist/match-DMI54zg4.js +1 -0
- package/dist/mcp-DgMoPoUo.js +1 -0
- package/dist/mcp-xSvAWiXX.js +1 -0
- package/dist/migrate-CN-fdMV9.js +2 -0
- package/dist/migrate-DAC6sFgg.js +1 -0
- package/dist/model-BJ-Sokha.js +1 -0
- package/dist/models-DGPrMV51.js +1 -0
- package/dist/prompt-K7-bKcTC.js +7 -0
- package/dist/push-Cg7-XT5h.js +1 -0
- package/dist/queue-yo-Z8TaE.js +117 -0
- package/dist/refresh-CmBQALAW.js +1 -0
- package/dist/remote-AcWWfKVS.js +1 -0
- package/dist/remove-BuaShRZ3.js +1 -0
- package/dist/remove-C8Rm8KP-.js +1 -0
- package/dist/remove-CcMma1x3.js +1 -0
- package/dist/remove-DgMg_OOu.js +1 -0
- package/dist/rename-C0vNcl8e.js +1 -0
- package/dist/result-C6ovl_Dn.js +5 -0
- package/dist/result-oQey_hdw.js +18 -0
- package/dist/resume-T_TXWfqE.js +3 -0
- package/dist/review-CCs6XUSO.js +7 -0
- package/dist/rotate-key-CYimsQR5.js +1 -0
- package/dist/run-BFYg-zZt.js +5 -0
- package/dist/run-D7F7JPV6.js +2 -0
- package/dist/run-hiPyO7js.js +2 -0
- package/dist/runner-D5jaEfhG.js +1 -0
- package/dist/runner-c-2w6Eoj.js +1 -0
- package/dist/sdk.d.ts +1 -2
- package/dist/sdk.js +1 -1
- package/dist/serve-BgGXjT_O.js +1 -0
- package/dist/serve-C-AD60Wa.js +12 -0
- package/dist/serve-GIK3fqKA.js +8 -0
- package/dist/serve-K3BVTcDI.js +2 -0
- package/dist/serve-xMihn4g-.js +1 -0
- package/dist/server-DQTGc55C.js +1 -0
- package/dist/setup-host-By8-gv_v.js +6 -0
- package/dist/shared-TznJgMFW.js +1 -0
- package/dist/show-C9ojrH5W.js +1 -0
- package/dist/show-o4yXzSWZ.js +1 -0
- package/dist/status-BBW7Qyde.js +1 -0
- package/dist/steer-D47cuggj.js +4 -0
- package/dist/stop-7brPdki9.js +1 -0
- package/dist/stop-CD2JW6dI.js +3 -0
- package/dist/store-BCBTo0rl.js +42 -0
- package/dist/store-qp7UE2ES.js +19 -0
- package/dist/task-CyrDqqf8.js +1 -0
- package/dist/task-DEp3GHwH.js +1 -0
- package/dist/task-DhZ5vhyY.js +5 -0
- package/dist/test-BcFQUHRo.js +1 -0
- package/dist/tools-D20XYPnO.js +1 -0
- package/dist/unalias-G3sM8fVw.js +1 -0
- package/dist/update-JvgB6Xws.js +2 -0
- package/dist/upgrade-DN3hXDdo.js +2 -0
- package/dist/usage-C1oN2W9c.js +1 -0
- package/dist/usage-DR3wWtYD.js +1 -0
- package/dist/watch-DDmHonTf.js +5 -0
- package/dist/watch-DYkC6Q2q.js +8 -0
- package/dist/wire-DxxfWapP.js +1 -0
- package/dist/worker-C4Lo6rLS.js +9 -0
- package/dist/worker-CaNTsqcD.js +1 -0
- package/dist/workflow-7rqzHHWZ.js +1 -0
- package/docs/cli.md +1 -2
- package/docs/config.md +1 -1
- package/docs/flows.md +12 -1
- package/docs/sdk.md +1 -1
- package/package.json +2 -10
- package/plugins/claude/.claude-plugin/plugin.json +1 -1
- package/plugins/cursor/.cursor-plugin/plugin.json +1 -1
- package/dist/actions-FzDNxMFf.js +0 -20
- package/dist/add-B50dIJGd.js +0 -1
- package/dist/add-D7X3gxap.js +0 -1
- package/dist/add-DOEUHIe7.js +0 -1
- package/dist/add-QExQhTzi.js +0 -6
- package/dist/add-json-Ck4KIZrT.js +0 -1
- package/dist/agent-BPtnEf1q.js +0 -1
- package/dist/agent-BlQ_dNNm.js +0 -3
- package/dist/alias-BwQBovke.js +0 -2
- package/dist/app-y6BYm2eH.js +0 -1
- package/dist/approvals-Cc9cq5T1.js +0 -2
- package/dist/approve-oO9k2fnK.js +0 -2
- package/dist/apps-CU2YalX8.js +0 -1
- package/dist/archive-C5c_HQS1.js +0 -3
- package/dist/archive-CemlWlVY.js +0 -4
- package/dist/archive-sweep-ehg-fWIt.js +0 -1
- package/dist/args-DcBCtXhz.js +0 -1
- package/dist/ask-Chu7Twu_.js +0 -4
- package/dist/auth-BOyXPOtu.js +0 -1
- package/dist/auth-XbqKSbcD.js +0 -1
- package/dist/chat-bridge-DXgZItGP.js +0 -2
- package/dist/cli-B1ObVrL4.js +0 -9
- package/dist/config-DAE_qHYA.js +0 -3
- package/dist/create-CM8B8JxD.js +0 -1
- package/dist/credentials-BXD4Qptk.js +0 -1
- package/dist/dash/manifest.json +0 -3347
- package/dist/dash/public/assets/chunks/agent-pills-b6a6da91c9559d9f.js +0 -1
- package/dist/dash/public/assets/chunks/agent-settings-form-b615c677046cd6f2.js +0 -1
- package/dist/dash/public/assets/chunks/agents-grid-f2e7b4ff9e11b6e3.js +0 -1
- package/dist/dash/public/assets/chunks/badge-215c7b2631dafc69.js +0 -1
- package/dist/dash/public/assets/chunks/card-e86dcc81326d2b14.js +0 -1
- package/dist/dash/public/assets/chunks/combo-09e246dc9a517fa8.js +0 -1
- package/dist/dash/public/assets/chunks/composer-417166b029f48c47.js +0 -1
- package/dist/dash/public/assets/chunks/composer-645ae8fa97a35280.js +0 -1
- package/dist/dash/public/assets/chunks/confirm-5ae484241ad888fd.js +0 -1
- package/dist/dash/public/assets/chunks/connect-apps-4147c45f45fde2b1.js +0 -1
- package/dist/dash/public/assets/chunks/connect-repositories-77591110836bdf03.js +0 -1
- package/dist/dash/public/assets/chunks/credentials-list-e005a0783ec93465.js +0 -2
- package/dist/dash/public/assets/chunks/custom-range-463e119af4681c61.js +0 -1
- package/dist/dash/public/assets/chunks/editor-804b84f4fe6539cd.js +0 -7
- package/dist/dash/public/assets/chunks/engines-list-ceab51f13c690e8c.js +0 -1
- package/dist/dash/public/assets/chunks/field-aa0a4b98a976781e.js +0 -1
- package/dist/dash/public/assets/chunks/filter-91144ac2eec6297f.js +0 -1
- package/dist/dash/public/assets/chunks/format-105c706345987fb2.js +0 -1
- package/dist/dash/public/assets/chunks/heads-a42817b32d2d7f08.js +0 -1
- package/dist/dash/public/assets/chunks/instructions-3a1dcaff2d868aa5.js +0 -2
- package/dist/dash/public/assets/chunks/instructions-6c6f981fffaa31e4.js +0 -1
- package/dist/dash/public/assets/chunks/list-7270361464fc3c04.js +0 -1
- package/dist/dash/public/assets/chunks/mcp-list-2e715d48666b54ad.js +0 -1
- package/dist/dash/public/assets/chunks/models-list-d3c40f94c761a6e5.js +0 -1
- package/dist/dash/public/assets/chunks/platform-actions-271ec3b99a64280b.js +0 -1
- package/dist/dash/public/assets/chunks/runners-list-767e49c7d0ec833a.js +0 -1
- package/dist/dash/public/assets/chunks/runtime-246221e985d863e5-1.js +0 -2
- package/dist/dash/public/assets/chunks/segmented-de4386ccaac7304d.js +0 -1
- package/dist/dash/public/assets/chunks/select-a90307706cffa6e0.js +0 -1
- package/dist/dash/public/assets/chunks/sentinel-b5e032b38604dfd3.js +0 -1
- package/dist/dash/public/assets/chunks/shared-init-246221e985d863e5-2.js +0 -1
- package/dist/dash/public/assets/chunks/shared-init-7f81ae7bc8c82438.js +0 -2
- package/dist/dash/public/assets/chunks/shared-init-933c7f9ee85be766.js +0 -5
- package/dist/dash/public/assets/chunks/tail-4891e727ee526792.js +0 -1
- package/dist/dash/public/assets/chunks/task-actions-ce854925a2dc78fd.js +0 -1
- package/dist/dash/public/assets/chunks/task-view-c37dcee08f21a279.js +0 -5
- package/dist/dash/public/assets/chunks/tasks-list-baef587999f322d8.js +0 -1
- package/dist/dash/public/assets/chunks/toolbar-8d98313606ad8a2d.js +0 -1
- package/dist/dash/public/assets/chunks/versions-list-532690efd9f1b0ea.js +0 -1
- package/dist/dash/public/assets/chunks/wular-pnext-246221e985d863e5-0.js +0 -1
- package/dist/dash/public/assets/dash-tasks-param-id-194a6ffc20e872f2.css +0 -1
- package/dist/dash/public/assets/pnext-client-13aee92bef5c9e3f.js +0 -1
- package/dist/dash/public/assets/pnext-client-1f2686b2044f0df6.js +0 -1
- package/dist/dash/public/assets/pnext-client-26130234ebad7067.js +0 -1
- package/dist/dash/public/assets/pnext-client-311e35b0076bf406.js +0 -1
- package/dist/dash/public/assets/pnext-client-4ade1bf75c9c3d87.js +0 -1
- package/dist/dash/public/assets/pnext-client-61cd31b687ede1da.js +0 -1
- package/dist/dash/public/assets/pnext-client-61db65dc4223217a.js +0 -1
- package/dist/dash/public/assets/pnext-client-6ea656e7705e3f2a.js +0 -1
- package/dist/dash/public/assets/pnext-client-7fd0f793f0322cb9.js +0 -1
- package/dist/dash/public/assets/pnext-client-88159c0840fcfa4a.js +0 -1
- package/dist/dash/public/assets/pnext-client-b03f0c47c066b4f3.js +0 -1
- package/dist/dash/public/assets/pnext-client-d6478835f543f901.js +0 -1
- package/dist/dash/public/assets/pnext-client-dadb8359021ed590.js +0 -1
- package/dist/dash/public/assets/pnext-client-de07532d6aaebf2c.js +0 -1
- package/dist/dash/public/assets/pnext-client-f87a31890c8ff224.js +0 -1
- package/dist/dash/public/assets/pnext-client-ffe1c123a8e2a350.js +0 -1
- package/dist/dash/server/bundle-0.1.6-b29ec45cb963d47f/entry.js +0 -2
- package/dist/default-BMvUMTFp.js +0 -1
- package/dist/default-B_nKaX0-.js +0 -1
- package/dist/delete-Bjteibld.js +0 -4
- package/dist/delete-riCIKZwj.js +0 -2
- package/dist/disable-DQC56YFy.js +0 -1
- package/dist/discover-Qanr5TEO.js +0 -1
- package/dist/discover-lgTYwoQp.js +0 -3
- package/dist/dispatch-BsW_1m7e.js +0 -14
- package/dist/docs-DFs7lOJp.js +0 -2
- package/dist/docs-DKROso-4.js +0 -2
- package/dist/enable-D2DqZvcU.js +0 -1
- package/dist/env-YRY3I60r.js +0 -1
- package/dist/exec-DuUkLMqg.js +0 -11
- package/dist/executor-vMppVLB6.js +0 -10
- package/dist/flow-DmERAnR8.js +0 -1
- package/dist/github-actions-C_NkHVJq.js +0 -24
- package/dist/http-D01Udu4u.js +0 -1
- package/dist/index-B1L4zXZH.d.ts +0 -358
- package/dist/init-Bd6JHzBc.js +0 -1
- package/dist/integrations-D1Dwy1kt.js +0 -1
- package/dist/list-4Uo-0v9s.js +0 -3
- package/dist/list-B0ujEZhd.js +0 -4
- package/dist/list-B5oa1Bhy.js +0 -2
- package/dist/list-BjE_l6la.js +0 -1
- package/dist/list-Ck9ibCs1.js +0 -1
- package/dist/list-DhgK4Zc4.js +0 -1
- package/dist/list-KvL7AUhD.js +0 -4
- package/dist/list-byYLBl1U.js +0 -1
- package/dist/load-SnZd7xG1.js +0 -2
- package/dist/local-BRy1EUq2.js +0 -1
- package/dist/login-C-ahtDKV.js +0 -1
- package/dist/login-zpwke8g1.js +0 -1
- package/dist/logout-CI6Kf-T6.js +0 -1
- package/dist/maintenance-BAzr9Jlr.js +0 -1
- package/dist/match-DxV1d49D.js +0 -1
- package/dist/mcp-CmcL1MCG.js +0 -1
- package/dist/mcp-mhXwtGQT.js +0 -1
- package/dist/migrate-Czh3TEK5.js +0 -1
- package/dist/migrate-w7KfzUAR.js +0 -2
- package/dist/model-JRoTH9QK.js +0 -1
- package/dist/models-C-S7HqSb.js +0 -1
- package/dist/prompt-CMXmt2l9.js +0 -7
- package/dist/push-B8BhTyZs.js +0 -1
- package/dist/queue-CirjEskI.js +0 -117
- package/dist/refresh-Bmy2r1Ee.js +0 -1
- package/dist/remote-CxFnEjZl.js +0 -1
- package/dist/remove-C15WLaXT.js +0 -1
- package/dist/remove-CTZYjjSr.js +0 -1
- package/dist/remove-CTl-H0f0.js +0 -1
- package/dist/remove-DX2FVo5b.js +0 -1
- package/dist/rename-D1g4TnHQ.js +0 -1
- package/dist/result-D49VN8PM.js +0 -5
- package/dist/result-DGWyUHYU.js +0 -18
- package/dist/resume-ywzc7z6A.js +0 -3
- package/dist/review-ZC0xG8XY.js +0 -7
- package/dist/rotate-key-Bf8_99ck.js +0 -1
- package/dist/run-D7SJ-ieT.js +0 -5
- package/dist/run-DoRQSC_K.js +0 -2
- package/dist/run-ukCf2Mdy.js +0 -2
- package/dist/runner-D-REfOUe.js +0 -1
- package/dist/runner-wDYhkVsM.js +0 -1
- package/dist/serve-BJ_Mbm2m.js +0 -8
- package/dist/serve-C1MMhM1F.js +0 -2
- package/dist/serve-DtrOHaoS.js +0 -12
- package/dist/serve-P9pFkEnE.js +0 -1
- package/dist/serve-yjSw0B1a.js +0 -1
- package/dist/server-DDWTnmbx.js +0 -1
- package/dist/setup-host-L6Rnn5Cz.js +0 -6
- package/dist/shared-XsUX_ZZb.js +0 -1
- package/dist/show-CU-jqJ90.js +0 -1
- package/dist/show-DVJmB2u-.js +0 -1
- package/dist/status-CBydR7LE.js +0 -1
- package/dist/steer-Cm_sHZqs.js +0 -4
- package/dist/stop-DJS7DAPJ.js +0 -1
- package/dist/stop-TrebIIuv.js +0 -3
- package/dist/store-BrNMqJgk.js +0 -42
- package/dist/store-j8icrG0v.js +0 -19
- package/dist/task-C8lmcNsf.js +0 -1
- package/dist/task-CpUI19o2.js +0 -5
- package/dist/task-CvSqiwxo.js +0 -1
- package/dist/test-CDKz4jY_.js +0 -1
- package/dist/tools-DBFeoosk.js +0 -1
- package/dist/unalias-BfQFBnuK.js +0 -1
- package/dist/update-C4FFOie8.js +0 -2
- package/dist/upgrade-DLJqMnUQ.js +0 -2
- package/dist/usage-CSh-xwQ2.js +0 -1
- package/dist/usage-D8mc4qXK.js +0 -1
- package/dist/watch-CQu-tJKZ.js +0 -8
- package/dist/watch-DmwaEvoi.js +0 -5
- package/dist/wire-DzGLZ3-O.js +0 -1
- package/dist/worker-BLKTMLqa.js +0 -1
- package/dist/worker-nHemduM_.js +0 -9
- package/dist/workflow-IrouAus_.js +0 -1
- package/src/client/index.ts +0 -581
- package/src/client/types.ts +0 -524
- package/src/core/defaults.ts +0 -36
- package/src/core/errors.ts +0 -72
- package/src/core/task/log-view.ts +0 -287
- package/src/server/auth/sign-in.ts +0 -14
- package/src/server/dash/api/load.ts +0 -62
- package/src/server/dash/api/types.ts +0 -11
- package/src/server/dash/app/connect/page.tsx +0 -42
- package/src/server/dash/app/dash/account/loading.tsx +0 -11
- package/src/server/dash/app/dash/account/notify.tsx +0 -42
- package/src/server/dash/app/dash/account/page.css +0 -81
- package/src/server/dash/app/dash/account/page.tsx +0 -126
- package/src/server/dash/app/dash/account/sign-out.tsx +0 -24
- package/src/server/dash/app/dash/agents/(list)/agent-menu.tsx +0 -14
- package/src/server/dash/app/dash/agents/(list)/agents-grid.tsx +0 -126
- package/src/server/dash/app/dash/agents/(list)/connect-apps.tsx +0 -46
- package/src/server/dash/app/dash/agents/(list)/loading.tsx +0 -20
- package/src/server/dash/app/dash/agents/(list)/page.css +0 -72
- package/src/server/dash/app/dash/agents/(list)/page.tsx +0 -89
- package/src/server/dash/app/dash/agents/[slug]/(tabs)/layout.tsx +0 -136
- package/src/server/dash/app/dash/agents/[slug]/(tabs)/loading.tsx +0 -5
- package/src/server/dash/app/dash/agents/[slug]/(tabs)/page.css +0 -21
- package/src/server/dash/app/dash/agents/[slug]/(tabs)/page.tsx +0 -173
- package/src/server/dash/app/dash/agents/[slug]/(tabs)/platforms/loading.tsx +0 -18
- package/src/server/dash/app/dash/agents/[slug]/(tabs)/platforms/page.css +0 -87
- package/src/server/dash/app/dash/agents/[slug]/(tabs)/platforms/page.tsx +0 -258
- package/src/server/dash/app/dash/agents/[slug]/(tabs)/platforms/platform-actions.tsx +0 -111
- package/src/server/dash/app/dash/agents/[slug]/(tabs)/settings/agent-settings-form.css +0 -114
- package/src/server/dash/app/dash/agents/[slug]/(tabs)/settings/agent-settings-form.tsx +0 -294
- package/src/server/dash/app/dash/agents/[slug]/(tabs)/settings/loading.tsx +0 -5
- package/src/server/dash/app/dash/agents/[slug]/(tabs)/settings/page.tsx +0 -54
- package/src/server/dash/app/dash/agents/[slug]/(tabs)/tasks/loading.tsx +0 -5
- package/src/server/dash/app/dash/agents/[slug]/(tabs)/tasks/page.tsx +0 -14
- package/src/server/dash/app/dash/agents/[slug]/(tabs)/usage/loading.tsx +0 -31
- package/src/server/dash/app/dash/agents/[slug]/(tabs)/usage/page.css +0 -12
- package/src/server/dash/app/dash/agents/[slug]/(tabs)/usage/page.tsx +0 -163
- package/src/server/dash/app/dash/agents/[slug]/(tabs)/versions-list.tsx +0 -53
- package/src/server/dash/app/dash/agents/[slug]/edit/loading.tsx +0 -31
- package/src/server/dash/app/dash/agents/[slug]/edit/page.tsx +0 -91
- package/src/server/dash/app/dash/agents/agent/agent-pills.css +0 -27
- package/src/server/dash/app/dash/agents/agent/agent-pills.tsx +0 -133
- package/src/server/dash/app/dash/agents/agent/hero.css +0 -40
- package/src/server/dash/app/dash/agents/agent/hero.tsx +0 -60
- package/src/server/dash/app/dash/agents/agent/instructions.css +0 -29
- package/src/server/dash/app/dash/agents/agent/instructions.tsx +0 -82
- package/src/server/dash/app/dash/agents/editor/connect-repositories.ts +0 -16
- package/src/server/dash/app/dash/agents/editor/editor.css +0 -263
- package/src/server/dash/app/dash/agents/editor/editor.tsx +0 -774
- package/src/server/dash/app/dash/agents/editor/import-picker.css +0 -48
- package/src/server/dash/app/dash/agents/editor/import-picker.tsx +0 -253
- package/src/server/dash/app/dash/agents/editor/names.ts +0 -35
- package/src/server/dash/app/dash/agents/new/loading.tsx +0 -25
- package/src/server/dash/app/dash/agents/new/page.tsx +0 -72
- package/src/server/dash/app/dash/layout.css +0 -322
- package/src/server/dash/app/dash/layout.tsx +0 -354
- package/src/server/dash/app/dash/page.tsx +0 -14
- package/src/server/dash/app/dash/settings/[tab]/credentials-list.css +0 -94
- package/src/server/dash/app/dash/settings/[tab]/credentials-list.tsx +0 -626
- package/src/server/dash/app/dash/settings/[tab]/credentials.tsx +0 -36
- package/src/server/dash/app/dash/settings/[tab]/engines-list.css +0 -16
- package/src/server/dash/app/dash/settings/[tab]/engines-list.tsx +0 -135
- package/src/server/dash/app/dash/settings/[tab]/list.css +0 -98
- package/src/server/dash/app/dash/settings/[tab]/list.tsx +0 -215
- package/src/server/dash/app/dash/settings/[tab]/loading.tsx +0 -6
- package/src/server/dash/app/dash/settings/[tab]/mcp-list.css +0 -43
- package/src/server/dash/app/dash/settings/[tab]/mcp-list.tsx +0 -290
- package/src/server/dash/app/dash/settings/[tab]/models-list.tsx +0 -513
- package/src/server/dash/app/dash/settings/[tab]/page.tsx +0 -89
- package/src/server/dash/app/dash/settings/[tab]/runners-list.css +0 -153
- package/src/server/dash/app/dash/settings/[tab]/runners-list.tsx +0 -458
- package/src/server/dash/app/dash/settings/layout.tsx +0 -50
- package/src/server/dash/app/dash/settings/model-options.ts +0 -117
- package/src/server/dash/app/dash/settings/page.tsx +0 -7
- package/src/server/dash/app/dash/settings/settings-head.tsx +0 -24
- package/src/server/dash/app/dash/settings/tunnel-guide.tsx +0 -28
- package/src/server/dash/app/dash/tasks/[id]/activity.tsx +0 -247
- package/src/server/dash/app/dash/tasks/[id]/loading.tsx +0 -31
- package/src/server/dash/app/dash/tasks/[id]/page.tsx +0 -30
- package/src/server/dash/app/dash/tasks/[id]/task-actions.tsx +0 -201
- package/src/server/dash/app/dash/tasks/[id]/task-view.css +0 -428
- package/src/server/dash/app/dash/tasks/[id]/task-view.tsx +0 -605
- package/src/server/dash/app/dash/tasks/composer-data.ts +0 -96
- package/src/server/dash/app/dash/tasks/composer.css +0 -320
- package/src/server/dash/app/dash/tasks/composer.tsx +0 -891
- package/src/server/dash/app/dash/tasks/list/status.css +0 -50
- package/src/server/dash/app/dash/tasks/list/status.tsx +0 -20
- package/src/server/dash/app/dash/tasks/list/task.ts +0 -73
- package/src/server/dash/app/dash/tasks/list/tasks-list.css +0 -98
- package/src/server/dash/app/dash/tasks/list/tasks-list.tsx +0 -549
- package/src/server/dash/app/dash/tasks/list/tasks-section.tsx +0 -92
- package/src/server/dash/app/dash/tasks/page.tsx +0 -21
- package/src/server/dash/app/dash/usage/custom-range.tsx +0 -63
- package/src/server/dash/app/dash/usage/day-chart.css +0 -109
- package/src/server/dash/app/dash/usage/day-chart.tsx +0 -110
- package/src/server/dash/app/dash/usage/loading.tsx +0 -17
- package/src/server/dash/app/dash/usage/metric.ts +0 -13
- package/src/server/dash/app/dash/usage/page.tsx +0 -117
- package/src/server/dash/app/dash/usage/range-bar.css +0 -13
- package/src/server/dash/app/dash/usage/range-bar.tsx +0 -69
- package/src/server/dash/app/dash/usage/stats.css +0 -52
- package/src/server/dash/app/dash/usage/stats.tsx +0 -19
- package/src/server/dash/app/dash/usage/top-agents.css +0 -40
- package/src/server/dash/app/dash/usage/top-agents.tsx +0 -138
- package/src/server/dash/app/globals.css +0 -692
- package/src/server/dash/app/layout.tsx +0 -52
- package/src/server/dash/app/login/page.css +0 -26
- package/src/server/dash/app/login/page.tsx +0 -57
- package/src/server/dash/app/page.tsx +0 -5
- package/src/server/dash/app/responsive.css +0 -49
- package/src/server/dash/app/zone.tsx +0 -13
- package/src/server/dash/comps/frame/auth-panel.css +0 -60
- package/src/server/dash/comps/frame/auth-panel.tsx +0 -44
- package/src/server/dash/comps/frame/drawer.css +0 -28
- package/src/server/dash/comps/frame/drawer.tsx +0 -39
- package/src/server/dash/comps/frame/heads.ts +0 -41
- package/src/server/dash/comps/frame/loading-card.tsx +0 -66
- package/src/server/dash/comps/frame/page-head.css +0 -93
- package/src/server/dash/comps/frame/page-head.tsx +0 -72
- package/src/server/dash/comps/frame/stream.tsx +0 -50
- package/src/server/dash/comps/frame/task-toasts.tsx +0 -360
- package/src/server/dash/comps/frame/theme-choices.tsx +0 -46
- package/src/server/dash/comps/nav/current-link.tsx +0 -53
- package/src/server/dash/comps/nav/side-toggle.tsx +0 -41
- package/src/server/dash/comps/nav/to.ts +0 -22
- package/src/server/dash/comps/ui/badge.css +0 -64
- package/src/server/dash/comps/ui/badge.tsx +0 -41
- package/src/server/dash/comps/ui/card.css +0 -94
- package/src/server/dash/comps/ui/card.tsx +0 -77
- package/src/server/dash/comps/ui/collapse.css +0 -32
- package/src/server/dash/comps/ui/collapse.tsx +0 -49
- package/src/server/dash/comps/ui/combo.tsx +0 -154
- package/src/server/dash/comps/ui/confirm.css +0 -36
- package/src/server/dash/comps/ui/confirm.tsx +0 -67
- package/src/server/dash/comps/ui/field.css +0 -25
- package/src/server/dash/comps/ui/field.tsx +0 -34
- package/src/server/dash/comps/ui/filter.css +0 -64
- package/src/server/dash/comps/ui/filter.tsx +0 -336
- package/src/server/dash/comps/ui/icon.css +0 -22
- package/src/server/dash/comps/ui/icon.tsx +0 -17
- package/src/server/dash/comps/ui/icons.ts +0 -46
- package/src/server/dash/comps/ui/menu.css +0 -178
- package/src/server/dash/comps/ui/menu.tsx +0 -160
- package/src/server/dash/comps/ui/segmented.css +0 -44
- package/src/server/dash/comps/ui/segmented.tsx +0 -58
- package/src/server/dash/comps/ui/select.css +0 -103
- package/src/server/dash/comps/ui/select.tsx +0 -250
- package/src/server/dash/comps/ui/sentinel.css +0 -58
- package/src/server/dash/comps/ui/sentinel.tsx +0 -67
- package/src/server/dash/comps/ui/tabs.css +0 -81
- package/src/server/dash/comps/ui/tabs.tsx +0 -32
- package/src/server/dash/comps/ui/tail.css +0 -12
- package/src/server/dash/comps/ui/tail.tsx +0 -37
- package/src/server/dash/comps/ui/toast.css +0 -73
- package/src/server/dash/comps/ui/toolbar.css +0 -157
- package/src/server/dash/comps/ui/toolbar.tsx +0 -93
- package/src/server/dash/package.json +0 -5
- package/src/server/dash/pnext-env.d.ts +0 -4
- package/src/server/dash/pnext.config.ts +0 -5
- package/src/server/dash/public/assets/apple-touch-icon.png +0 -0
- package/src/server/dash/public/assets/favicon.ico +0 -0
- package/src/server/dash/public/assets/favicon.svg +0 -1
- package/src/server/dash/public/assets/fonts/LICENSE-fira-code +0 -93
- package/src/server/dash/public/assets/fonts/fira-code-latin-400-normal-717ee080.woff2 +0 -0
- package/src/server/dash/public/assets/fonts/fira-code-latin-500-normal-530b6706.woff2 +0 -0
- package/src/server/dash/public/assets/fonts/fira-code-latin-700-normal-98730669.woff2 +0 -0
- package/src/server/dash/tsconfig.json +0 -10
- package/src/server/dash/utils/client.ts +0 -40
- package/src/server/dash/utils/format.ts +0 -83
- package/src/server/dash/utils/paged.ts +0 -192
- package/src/server/dash/utils/range.ts +0 -117
- /package/{src/server/dash/app/dash/usage/usage.css → dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/account/page.1df2bb5150dd9575.css.pnext-asset.js} +0 -0
- /package/dist/dash/{public → standalone/static}/assets/apple-touch-icon.png +0 -0
- /package/dist/dash/{public → standalone/static}/assets/chunks/composer-data-6f7608fed13f3dd7.js +0 -0
- /package/dist/dash/{public → standalone/static}/assets/chunks/model-options-15c53331a2f28a4f.js +0 -0
- /package/dist/dash/{public → standalone/static}/assets/chunks/paged-3ddb6077bef42752.js +0 -0
- /package/dist/dash/{public → standalone/static}/assets/chunks/shared-init-8f2ac936c95a7f7b.js +0 -0
- /package/dist/dash/{public → standalone/static}/assets/chunks/task-ddfddeaf07fb684c.js +0 -0
- /package/dist/dash/{public → standalone/static}/assets/connect-382b1729a7ae7808.css +0 -0
- /package/dist/dash/{public → standalone/static}/assets/dash-49ca85b59ac65c20.css +0 -0
- /package/dist/dash/{public → standalone/static}/assets/dash-account-edc56e85dbaaabe0.css +0 -0
- /package/dist/dash/{public → standalone/static}/assets/dash-agents-edba57b67e4005d0.css +0 -0
- /package/dist/dash/{public → standalone/static}/assets/dash-agents-new-fe22253fbada2fbf.css +0 -0
- /package/dist/dash/{public → standalone/static}/assets/dash-agents-param-slug-adf52e9dacb2d825.css +0 -0
- /package/dist/dash/{public → standalone/static}/assets/dash-agents-param-slug-edit-a2937a347689ef29.css +0 -0
- /package/dist/dash/{public → standalone/static}/assets/dash-agents-param-slug-platforms-265ba13db32a460d.css +0 -0
- /package/dist/dash/{public → standalone/static}/assets/dash-agents-param-slug-settings-8afc52eb0372bc4b.css +0 -0
- /package/dist/dash/{public → standalone/static}/assets/dash-agents-param-slug-tasks-6193e646be68dbd2.css +0 -0
- /package/dist/dash/{public → standalone/static}/assets/dash-agents-param-slug-usage-ceadb3a1c911c402.css +0 -0
- /package/dist/dash/{public → standalone/static}/assets/dash-settings-cf1997cd7f72e518.css +0 -0
- /package/dist/dash/{public → standalone/static}/assets/dash-settings-param-tab-b44dac8e79a560e6.css +0 -0
- /package/dist/dash/{public → standalone/static}/assets/dash-tasks-916c7100a8058aa3.css +0 -0
- /package/dist/dash/{public → standalone/static}/assets/dash-usage-40940b289f85e0b6.css +0 -0
- /package/dist/dash/{public → standalone/static}/assets/favicon.ico +0 -0
- /package/dist/dash/{public → standalone/static}/assets/favicon.svg +0 -0
- /package/dist/dash/{public → standalone/static}/assets/fonts/LICENSE-fira-code +0 -0
- /package/dist/dash/{public → standalone/static}/assets/fonts/fira-code-latin-400-normal-717ee080.woff2 +0 -0
- /package/dist/dash/{public → standalone/static}/assets/fonts/fira-code-latin-500-normal-530b6706.woff2 +0 -0
- /package/dist/dash/{public → standalone/static}/assets/fonts/fira-code-latin-700-normal-98730669.woff2 +0 -0
- /package/dist/dash/{public → standalone/static}/assets/global-d2adbf01910d9df5.css +0 -0
- /package/dist/dash/{public → standalone/static}/assets/login-c129b1ce237be260.css +0 -0
|
@@ -0,0 +1,1599 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import {
|
|
3
|
+
dynamicCallsFromSource,
|
|
4
|
+
pnextDynamicImportNames,
|
|
5
|
+
rewriteLiteralDynamicCalls
|
|
6
|
+
} from "./index-0r5eqfc7.js";
|
|
7
|
+
import {
|
|
8
|
+
conventionFileName,
|
|
9
|
+
findConventionFiles,
|
|
10
|
+
findLayouts,
|
|
11
|
+
pageExtensions,
|
|
12
|
+
serverActionsUnsupportedMessage
|
|
13
|
+
} from "./index-8ct7rqy3.js";
|
|
14
|
+
import {
|
|
15
|
+
globalCssSourcesForPaths
|
|
16
|
+
} from "./index-n629dy38.js";
|
|
17
|
+
import {
|
|
18
|
+
readSourceSync
|
|
19
|
+
} from "./index-fp8r0sqs.js";
|
|
20
|
+
import {
|
|
21
|
+
childrenDefaultFile,
|
|
22
|
+
interceptionMarkerLevels,
|
|
23
|
+
interceptionMarkerOf,
|
|
24
|
+
isGroupSegment,
|
|
25
|
+
isSlotSegment,
|
|
26
|
+
slotConventionFile,
|
|
27
|
+
slotDirectoriesIn
|
|
28
|
+
} from "./index-cn86z041.js";
|
|
29
|
+
import {
|
|
30
|
+
listFiles,
|
|
31
|
+
listFilesSync,
|
|
32
|
+
toPosixPath,
|
|
33
|
+
withDirCache
|
|
34
|
+
} from "./index-4da76t62.js";
|
|
35
|
+
import {
|
|
36
|
+
clientReferenceId,
|
|
37
|
+
ssrClientReference
|
|
38
|
+
} from "./index-ras0sdab.js";
|
|
39
|
+
import {
|
|
40
|
+
dynamicCallFacts,
|
|
41
|
+
scanFacts
|
|
42
|
+
} from "./index-x9c55pzy.js";
|
|
43
|
+
import {
|
|
44
|
+
resolveImport,
|
|
45
|
+
resolveModuleAlias,
|
|
46
|
+
resolvePackageSpecifier
|
|
47
|
+
} from "./index-d1jsmhhk.js";
|
|
48
|
+
import {
|
|
49
|
+
alwaysClientEntryReasons,
|
|
50
|
+
classifyRouteDependencies,
|
|
51
|
+
extraBoundaryConventionNames,
|
|
52
|
+
extraPageExtensions,
|
|
53
|
+
getBundlerExtensions,
|
|
54
|
+
getCssExtensions,
|
|
55
|
+
sourceClientEntryReasons,
|
|
56
|
+
sourceUsesRegisteredRequestApi
|
|
57
|
+
} from "./index-zqpqyg8p.js";
|
|
58
|
+
|
|
59
|
+
// src/routing/routes.ts
|
|
60
|
+
import path from "path";
|
|
61
|
+
import { existsSync } from "fs";
|
|
62
|
+
var BASE_ROUTE_HANDLER_EXTENSIONS = ["ts", "tsx", "js", "mjs"];
|
|
63
|
+
function routeHandlerExtensions() {
|
|
64
|
+
return BASE_ROUTE_HANDLER_EXTENSIONS;
|
|
65
|
+
}
|
|
66
|
+
function allFileExtensions() {
|
|
67
|
+
return [...new Set([...pageExtensions(), ...routeHandlerExtensions()])];
|
|
68
|
+
}
|
|
69
|
+
var componentConventions = ["loading", "error", "not-found"];
|
|
70
|
+
function boundaryConventions() {
|
|
71
|
+
return [...componentConventions, ...extraBoundaryConventionNames()];
|
|
72
|
+
}
|
|
73
|
+
var memoPageFile;
|
|
74
|
+
var memoRouteFilePattern;
|
|
75
|
+
var memoDefaultConventionPattern;
|
|
76
|
+
var memoMetadataCodeFilePattern;
|
|
77
|
+
var memoPageOrRouteTrailing;
|
|
78
|
+
var memoSlotConventionPattern;
|
|
79
|
+
var memoExtensionsKey;
|
|
80
|
+
function freshMemos() {
|
|
81
|
+
const key = extraPageExtensions().join(",");
|
|
82
|
+
if (key === memoExtensionsKey)
|
|
83
|
+
return;
|
|
84
|
+
memoExtensionsKey = key;
|
|
85
|
+
memoPageFile = undefined;
|
|
86
|
+
memoRouteFilePattern = undefined;
|
|
87
|
+
memoDefaultConventionPattern = undefined;
|
|
88
|
+
memoMetadataCodeFilePattern = undefined;
|
|
89
|
+
memoPageOrRouteTrailing = undefined;
|
|
90
|
+
memoSlotConventionPattern = undefined;
|
|
91
|
+
}
|
|
92
|
+
function pageFile() {
|
|
93
|
+
freshMemos();
|
|
94
|
+
return memoPageFile ??= extensionRegex("page", pageExtensions());
|
|
95
|
+
}
|
|
96
|
+
function routeFilePattern() {
|
|
97
|
+
freshMemos();
|
|
98
|
+
return memoRouteFilePattern ??= extensionRegex("route", routeHandlerExtensions());
|
|
99
|
+
}
|
|
100
|
+
function defaultConventionPattern() {
|
|
101
|
+
freshMemos();
|
|
102
|
+
return memoDefaultConventionPattern ??= extensionRegex("default", pageExtensions());
|
|
103
|
+
}
|
|
104
|
+
function metadataCodeFilePattern() {
|
|
105
|
+
freshMemos();
|
|
106
|
+
return memoMetadataCodeFilePattern ??= new RegExp(`(^|/)(robots|sitemap|manifest|icon\\d*|apple-icon\\d*|opengraph-image\\d*|twitter-image\\d*)\\.(${allFileExtensions().join("|")})$`);
|
|
107
|
+
}
|
|
108
|
+
function pageOrRouteTrailing() {
|
|
109
|
+
freshMemos();
|
|
110
|
+
return memoPageOrRouteTrailing ??= new RegExp(`/?(page|route|layout|template|loading|error|not-found|forbidden|unauthorized|default|global-error)\\.(${allFileExtensions().join("|")})$`);
|
|
111
|
+
}
|
|
112
|
+
function slotConventionPattern() {
|
|
113
|
+
freshMemos();
|
|
114
|
+
return memoSlotConventionPattern ??= new RegExp(`(^|/)(page|layout|template|loading|error|default|not-found)\\.(${pageExtensions().join("|")})$`);
|
|
115
|
+
}
|
|
116
|
+
function extensionRegex(base, extensions) {
|
|
117
|
+
return new RegExp(`(^|/)${escapeRegex(base)}\\.(${extensions.join("|")})$`);
|
|
118
|
+
}
|
|
119
|
+
function createScanContext(appPath, globalCss, workspaceRoot) {
|
|
120
|
+
const root = rootFromAppPath(appPath);
|
|
121
|
+
let memo;
|
|
122
|
+
return {
|
|
123
|
+
root,
|
|
124
|
+
workspaceRoot,
|
|
125
|
+
appPath,
|
|
126
|
+
sources: new Map,
|
|
127
|
+
edges: new Map,
|
|
128
|
+
requestImportUsage: new Map,
|
|
129
|
+
exists: new Map,
|
|
130
|
+
useClient: new Map,
|
|
131
|
+
usesLink: new Map,
|
|
132
|
+
usesNavigation: new Map,
|
|
133
|
+
entryReasons: new Map,
|
|
134
|
+
globalCssImports: globalCss ?? (() => memo ??= new Set(globalCssSourcesForPaths(root, appPath, workspaceRoot)))
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
function fileExists(context, file) {
|
|
138
|
+
let hit = context.exists.get(file);
|
|
139
|
+
if (hit === undefined) {
|
|
140
|
+
hit = existsSync(file);
|
|
141
|
+
context.exists.set(file, hit);
|
|
142
|
+
}
|
|
143
|
+
return hit;
|
|
144
|
+
}
|
|
145
|
+
var routeHandlerMethods = ["GET", "HEAD", "POST", "PUT", "PATCH", "DELETE", "OPTIONS"];
|
|
146
|
+
var deferredFields = [
|
|
147
|
+
"mode",
|
|
148
|
+
"hasStaticParams",
|
|
149
|
+
"usesRequest",
|
|
150
|
+
"handlerUsesRevalidationApi",
|
|
151
|
+
"dynamicErrorApi",
|
|
152
|
+
"client",
|
|
153
|
+
"clientReferences",
|
|
154
|
+
"cssImports",
|
|
155
|
+
"sourceFiles",
|
|
156
|
+
"serverActionFile",
|
|
157
|
+
"stream",
|
|
158
|
+
"maxDuration",
|
|
159
|
+
"ppr",
|
|
160
|
+
"segmentConfig",
|
|
161
|
+
"needsRouterEntry",
|
|
162
|
+
"clientEntryReasons"
|
|
163
|
+
];
|
|
164
|
+
var resolvedRoutes = new WeakSet;
|
|
165
|
+
var factsVersion = 0;
|
|
166
|
+
function routeFactsVersion() {
|
|
167
|
+
return factsVersion;
|
|
168
|
+
}
|
|
169
|
+
function routeFactsResolved(route) {
|
|
170
|
+
return resolvedRoutes.has(route);
|
|
171
|
+
}
|
|
172
|
+
function materializeRouteFacts(routes, onRoute) {
|
|
173
|
+
for (const route of routes) {
|
|
174
|
+
route.sourceFiles;
|
|
175
|
+
onRoute?.(route);
|
|
176
|
+
}
|
|
177
|
+
return routes;
|
|
178
|
+
}
|
|
179
|
+
async function materializeRouteFactsPaced(routes, pause) {
|
|
180
|
+
for (const route of routes) {
|
|
181
|
+
await pause();
|
|
182
|
+
route.sourceFiles;
|
|
183
|
+
}
|
|
184
|
+
return routes;
|
|
185
|
+
}
|
|
186
|
+
var factsStore;
|
|
187
|
+
function setRouteFactsStore(store) {
|
|
188
|
+
factsStore = store;
|
|
189
|
+
}
|
|
190
|
+
function withDeferredFacts(appPath, base, compute) {
|
|
191
|
+
const entry = base;
|
|
192
|
+
let facts;
|
|
193
|
+
const overrides = new Map;
|
|
194
|
+
for (const field of deferredFields) {
|
|
195
|
+
Object.defineProperty(entry, field, {
|
|
196
|
+
enumerable: true,
|
|
197
|
+
configurable: true,
|
|
198
|
+
get() {
|
|
199
|
+
if (overrides.has(field))
|
|
200
|
+
return overrides.get(field);
|
|
201
|
+
if (!facts) {
|
|
202
|
+
const key = `${appPath}\x00${base.kind}:${base.id}`;
|
|
203
|
+
const stored = factsStore?.load(key);
|
|
204
|
+
facts = stored ?? withDirCache(compute);
|
|
205
|
+
if (!stored)
|
|
206
|
+
factsStore?.save(key, facts);
|
|
207
|
+
resolvedRoutes.add(entry);
|
|
208
|
+
factsVersion += 1;
|
|
209
|
+
}
|
|
210
|
+
return facts[field];
|
|
211
|
+
},
|
|
212
|
+
set(value) {
|
|
213
|
+
overrides.set(field, value);
|
|
214
|
+
}
|
|
215
|
+
});
|
|
216
|
+
}
|
|
217
|
+
return entry;
|
|
218
|
+
}
|
|
219
|
+
async function scanRoutes(appPath, workspaceRoot) {
|
|
220
|
+
const files = await listFiles(appPath);
|
|
221
|
+
return withDirCache(() => buildRouteTable(appPath, files, workspaceRoot));
|
|
222
|
+
}
|
|
223
|
+
function buildRouteTable(appPath, files, workspaceRoot) {
|
|
224
|
+
const context = createScanContext(appPath, undefined, workspaceRoot);
|
|
225
|
+
const routes = [];
|
|
226
|
+
const slotPageFiles = [];
|
|
227
|
+
const defaultPageFiles = [];
|
|
228
|
+
const table = { parallelRoutes: false };
|
|
229
|
+
for (const file of files) {
|
|
230
|
+
const relative = toPosixPath(path.relative(appPath, file));
|
|
231
|
+
const routeFile = path.join(appPath, relative);
|
|
232
|
+
if (defaultConventionPattern().test(relative) && !relative.split("/").some((segment) => segment.startsWith("@"))) {
|
|
233
|
+
defaultPageFiles.push({ file, relative });
|
|
234
|
+
}
|
|
235
|
+
if (isPrivateAppPath(relative))
|
|
236
|
+
continue;
|
|
237
|
+
if (!pageFile().test(relative) && !routeFilePattern().test(relative)) {
|
|
238
|
+
if (!metadataCodeFilePattern().test(relative))
|
|
239
|
+
continue;
|
|
240
|
+
const source = readSource(context, file);
|
|
241
|
+
const metadataParts = dynamicMetadataRouteParts(relative, source);
|
|
242
|
+
if (!metadataParts)
|
|
243
|
+
continue;
|
|
244
|
+
routes.push(withDeferredFacts(appPath, {
|
|
245
|
+
id: `metadata-${routeId(metadataParts.route)}`,
|
|
246
|
+
kind: "handler",
|
|
247
|
+
route: metadataParts.route,
|
|
248
|
+
pattern: metadataParts.pattern,
|
|
249
|
+
file,
|
|
250
|
+
params: metadataParts.params,
|
|
251
|
+
catchAll: metadataParts.catchAll,
|
|
252
|
+
...metadataParts.catchAllOptional ? { catchAllOptional: true } : {},
|
|
253
|
+
metadataRoute: metadataParts.metadataRoute
|
|
254
|
+
}, () => metadataRouteFacts(context, routeFile, metadataParts)));
|
|
255
|
+
continue;
|
|
256
|
+
}
|
|
257
|
+
if (relative.split("/").some((segment) => segment.startsWith("@"))) {
|
|
258
|
+
if (pageFile().test(relative))
|
|
259
|
+
slotPageFiles.push({ file, relative });
|
|
260
|
+
continue;
|
|
261
|
+
}
|
|
262
|
+
const kind = pageFile().test(relative) ? "page" : "handler";
|
|
263
|
+
const routeDir = relative.replace(pageOrRouteTrailing(), "");
|
|
264
|
+
const parts = routeParts(routeDir);
|
|
265
|
+
const conventions = conventionPaths(appPath, routeFile, kind);
|
|
266
|
+
const templatePaths = conventions.templateFiles.filter((item) => existsSync(item));
|
|
267
|
+
const extraBoundaries = new Set(extraBoundaryConventionNames());
|
|
268
|
+
const forbiddenPaths = kind === "page" && extraBoundaries.has("forbidden") ? findConventionFiles(appPath, routeFile, "forbidden").filter((item) => existsSync(item)) : [];
|
|
269
|
+
const unauthorizedPaths = kind === "page" && extraBoundaries.has("unauthorized") ? findConventionFiles(appPath, routeFile, "unauthorized").filter((item) => existsSync(item)) : [];
|
|
270
|
+
const interception = parts.interception;
|
|
271
|
+
routes.push(withDeferredFacts(appPath, {
|
|
272
|
+
id: interception ? `intercept-${sanitizeIdPart(routeDir)}` : routeId(parts.route || "/"),
|
|
273
|
+
kind,
|
|
274
|
+
route: parts.route,
|
|
275
|
+
pattern: parts.pattern,
|
|
276
|
+
file,
|
|
277
|
+
params: parts.params,
|
|
278
|
+
catchAll: parts.catchAll,
|
|
279
|
+
...parts.catchAllOptional ? { catchAllOptional: true } : {},
|
|
280
|
+
...templatePaths.length > 0 ? { templateFiles: templatePaths } : {},
|
|
281
|
+
...forbiddenPaths.length > 0 ? { forbiddenFiles: forbiddenPaths } : {},
|
|
282
|
+
...unauthorizedPaths.length > 0 ? { unauthorizedFiles: unauthorizedPaths } : {},
|
|
283
|
+
...conventions.slotDirs.length > 0 ? { slotDirs: conventions.slotDirs } : {},
|
|
284
|
+
...interception ? { interception } : {}
|
|
285
|
+
}, () => pageOrHandlerFacts(context, { kind, routeFile, parts, conventions, table })));
|
|
286
|
+
}
|
|
287
|
+
appendSlotDerivedRoutes(context, routes, slotPageFiles, table);
|
|
288
|
+
appendDefaultDerivedRoutes(context, routes, defaultPageFiles, table);
|
|
289
|
+
table.parallelRoutes = routes.some((route) => route.slotDirs?.length || route.interception);
|
|
290
|
+
return routes.sort((a, b) => routeRank(a).localeCompare(routeRank(b)));
|
|
291
|
+
}
|
|
292
|
+
function conventionPaths(appPath, routeFile, kind) {
|
|
293
|
+
if (kind !== "page") {
|
|
294
|
+
return { layoutFiles: [], templateFiles: [], specialFiles: [], slotDirs: [], slotFiles: [] };
|
|
295
|
+
}
|
|
296
|
+
const slotDirs = chainSlotDirs(appPath, routeFile);
|
|
297
|
+
return {
|
|
298
|
+
layoutFiles: findLayouts(appPath, routeFile),
|
|
299
|
+
templateFiles: findConventionFiles(appPath, routeFile, "template"),
|
|
300
|
+
specialFiles: boundaryConventions().flatMap((name) => findConventionFiles(appPath, routeFile, name)),
|
|
301
|
+
slotDirs,
|
|
302
|
+
slotFiles: slotTreeFiles(slotDirs)
|
|
303
|
+
};
|
|
304
|
+
}
|
|
305
|
+
function metadataRouteFacts(context, routeFile, parts) {
|
|
306
|
+
const source = readSource(context, routeFile);
|
|
307
|
+
const sourceFiles = collectSourceFiles(context, [routeFile]);
|
|
308
|
+
const dependency = routeDependencyClassification(context, "handler", sourceFiles);
|
|
309
|
+
const usesRequest = metadataRouteUsesRequest(source) || usesRevalidationApis(source) || dependency.usesRequest === true || usesRequestImportDataForFiles(context, sourceFiles.filter((file) => !isAssetFile(file)));
|
|
310
|
+
const segmentConfig = segmentConfigFromEntries(context.appPath, [{ file: routeFile, source }], parts);
|
|
311
|
+
return {
|
|
312
|
+
mode: inferRouteMode(parts, usesRequest, segmentConfig),
|
|
313
|
+
hasStaticParams: Boolean(parts.metadataRoute.generatedParam),
|
|
314
|
+
usesRequest,
|
|
315
|
+
client: false,
|
|
316
|
+
clientReferences: [],
|
|
317
|
+
cssImports: [],
|
|
318
|
+
sourceFiles,
|
|
319
|
+
maxDuration: maxDurationFromSources([source]),
|
|
320
|
+
...segmentConfig ? { segmentConfig } : {}
|
|
321
|
+
};
|
|
322
|
+
}
|
|
323
|
+
function pageOrHandlerFacts(context, options) {
|
|
324
|
+
const { appPath } = context;
|
|
325
|
+
const { kind, routeFile, parts, conventions, table } = options;
|
|
326
|
+
const { layoutFiles, templateFiles, specialFiles, slotFiles } = conventions;
|
|
327
|
+
const source = readScanSource(context, routeFile);
|
|
328
|
+
const layoutSources = [...layoutFiles, ...templateFiles, ...specialFiles].filter((item) => existsSync(item)).map((item) => readScanSource(context, item));
|
|
329
|
+
const entryFiles = [routeFile, ...layoutFiles, ...templateFiles, ...specialFiles, ...slotFiles];
|
|
330
|
+
const sourceFiles = collectSourceFiles(context, entryFiles);
|
|
331
|
+
const dependency = routeDependencyClassification(context, kind, sourceFiles);
|
|
332
|
+
const handlerUsesRevalidationApi = kind === "handler" && usesRevalidationApis(source);
|
|
333
|
+
const usesRequest = kind === "handler" ? routeHandlerUsesRequest(source) || handlerUsesRevalidationApi || dependency.usesRequest === true : [source, ...layoutSources].some(usesRequestData) || dependency.usesRequest === true;
|
|
334
|
+
const existingLayoutFiles = layoutFiles.filter((item) => existsSync(item));
|
|
335
|
+
const configEntries = [
|
|
336
|
+
{ file: routeFile, source },
|
|
337
|
+
...[...existingLayoutFiles].reverse().map((item) => ({
|
|
338
|
+
file: item,
|
|
339
|
+
source: readScanSource(context, item)
|
|
340
|
+
}))
|
|
341
|
+
];
|
|
342
|
+
const segmentConfig = segmentConfigFromEntries(appPath, configEntries, parts);
|
|
343
|
+
if (segmentConfig?.dynamicParamsFalse?.length) {
|
|
344
|
+
const allDynamicParams = [...parts.params, ...parts.catchAll ? [parts.catchAll] : []];
|
|
345
|
+
const coveredParams = new Set;
|
|
346
|
+
for (const entry of configEntries) {
|
|
347
|
+
if (!hasStaticParamsExport(entry.source))
|
|
348
|
+
continue;
|
|
349
|
+
const covered = paramOfOwnSegment(appPath, entry.file, allDynamicParams);
|
|
350
|
+
if (covered)
|
|
351
|
+
coveredParams.add(covered);
|
|
352
|
+
}
|
|
353
|
+
if (allDynamicParams.some((param) => !coveredParams.has(param))) {
|
|
354
|
+
delete segmentConfig.dynamicParamsFalse;
|
|
355
|
+
} else if (hasStaticParamsExport(source)) {
|
|
356
|
+
segmentConfig.strictDynamicParams = true;
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
const hasStaticParams = hasStaticParamsExport(source) || kind === "page" && existingLayoutFiles.map((item) => readScanSource(context, item)).some(hasStaticParamsExport);
|
|
360
|
+
const dynamicErrorApi = segmentConfig?.dynamic === "error" && parts.params.length === 0 && !parts.catchAll && !hasStaticParams ? dynamicApiLabel(kind === "handler" ? [source] : [source, ...layoutSources], kind) : undefined;
|
|
361
|
+
const ppr = kind === "page" && usesRequest && parts.params.length === 0 && !parts.catchAll && exportsExperimentalPpr([source, ...layoutSources]);
|
|
362
|
+
const directClient = kind === "page" && hasUseClientDirective(routeFile, source);
|
|
363
|
+
const clientReferences = kind === "page" ? collectClientReferences(context, directClient ? [...layoutFiles, ...templateFiles, ...specialFiles, ...slotFiles] : entryFiles) : [];
|
|
364
|
+
const client = directClient || clientReferences.some((reference) => reference.file === routeFile && reference.exportName === "default");
|
|
365
|
+
const stream = kind === "page" ? routeStreamMetadata({ context, layoutFiles, templateFiles, specialFiles }) : undefined;
|
|
366
|
+
const cssImports = kind === "page" ? collectCssImports(context, cssEntryOrder({ routeFile, layoutFiles, templateFiles, specialFiles, slotFiles }), { route: true }) : [];
|
|
367
|
+
if (kind === "page")
|
|
368
|
+
attachLazyReferenceCss(context, clientReferences);
|
|
369
|
+
const interception = parts.interception;
|
|
370
|
+
return {
|
|
371
|
+
mode: interception ? "dynamic" : inferRouteMode(parts, usesRequest, segmentConfig),
|
|
372
|
+
hasStaticParams: interception ? false : hasStaticParams,
|
|
373
|
+
usesRequest,
|
|
374
|
+
...handlerUsesRevalidationApi ? { handlerUsesRevalidationApi: true } : {},
|
|
375
|
+
...dynamicErrorApi ? { dynamicErrorApi } : {},
|
|
376
|
+
client,
|
|
377
|
+
clientReferences,
|
|
378
|
+
cssImports,
|
|
379
|
+
sourceFiles,
|
|
380
|
+
...kind === "page" ? serverActionFileFact(context, sourceFiles) : {},
|
|
381
|
+
...stream ? { stream } : {},
|
|
382
|
+
maxDuration: maxDurationFromSources([source, ...layoutSources]),
|
|
383
|
+
ppr: interception ? false : ppr,
|
|
384
|
+
...segmentConfig ? { segmentConfig } : {},
|
|
385
|
+
...routerEntryFact(context, {
|
|
386
|
+
kind,
|
|
387
|
+
client,
|
|
388
|
+
clientReferences,
|
|
389
|
+
sourceFiles,
|
|
390
|
+
slotInterceptor: false,
|
|
391
|
+
table
|
|
392
|
+
})
|
|
393
|
+
};
|
|
394
|
+
}
|
|
395
|
+
function routerEntryFact(context, options) {
|
|
396
|
+
if (options.kind !== "page")
|
|
397
|
+
return {};
|
|
398
|
+
const reasons = [];
|
|
399
|
+
if (options.table.parallelRoutes && !options.slotInterceptor)
|
|
400
|
+
reasons.push("parallel-routes");
|
|
401
|
+
reasons.push(...alwaysClientEntryReasons());
|
|
402
|
+
if (!options.client && options.clientReferences.length === 0) {
|
|
403
|
+
if (routeUsesLinkComponent(context, options.sourceFiles))
|
|
404
|
+
reasons.push("link");
|
|
405
|
+
} else if (routeUsesNavigation(context, options.sourceFiles)) {
|
|
406
|
+
reasons.push("router-api");
|
|
407
|
+
}
|
|
408
|
+
reasons.push(...routeClientEntryReasons(context, options.sourceFiles));
|
|
409
|
+
if (reasons.length === 0)
|
|
410
|
+
return {};
|
|
411
|
+
return { needsRouterEntry: true, clientEntryReasons: [...new Set(reasons)] };
|
|
412
|
+
}
|
|
413
|
+
function addClientEntryReason(route, reason) {
|
|
414
|
+
const reasons = route.clientEntryReasons ?? [];
|
|
415
|
+
if (!reasons.includes(reason))
|
|
416
|
+
route.clientEntryReasons = [...reasons, reason];
|
|
417
|
+
route.needsRouterEntry = true;
|
|
418
|
+
}
|
|
419
|
+
function routeStreamMetadata(options) {
|
|
420
|
+
const existingSpecialFiles = options.specialFiles.filter((item) => existsSync(item));
|
|
421
|
+
const hasLoadingBoundary = existingSpecialFiles.some((file) => /(^|[/\\])loading\.[^.]+$/.test(file));
|
|
422
|
+
const ancestorClientReferences = collectClientReferences(options.context, [
|
|
423
|
+
...options.layoutFiles,
|
|
424
|
+
...options.templateFiles
|
|
425
|
+
]);
|
|
426
|
+
return {
|
|
427
|
+
...hasLoadingBoundary ? { hasLoadingBoundary } : {},
|
|
428
|
+
...ancestorClientReferences.length > 0 ? { ancestorClientReferences: ancestorClientReferences.map((reference) => reference.id) } : {}
|
|
429
|
+
};
|
|
430
|
+
}
|
|
431
|
+
function hasStaticParamsExport(source) {
|
|
432
|
+
const searchable = stripCommentsAndStrings(source);
|
|
433
|
+
return /\bexport\s+(?:async\s+)?function\s+(?:params|generateStaticParams)\b/.test(searchable) || /\bexport\s+const\s+(?:params|generateStaticParams)\b/.test(searchable);
|
|
434
|
+
}
|
|
435
|
+
function chainSlotDirs(appPath, routeFilePath) {
|
|
436
|
+
const dirs = [];
|
|
437
|
+
let dir = path.dirname(routeFilePath);
|
|
438
|
+
while (dir.startsWith(appPath)) {
|
|
439
|
+
dirs.push(...slotDirectoriesIn(dir));
|
|
440
|
+
if (dir === appPath)
|
|
441
|
+
break;
|
|
442
|
+
dir = path.dirname(dir);
|
|
443
|
+
}
|
|
444
|
+
return dirs.reverse();
|
|
445
|
+
}
|
|
446
|
+
function slotTreeFiles(slotDirs) {
|
|
447
|
+
const files = [];
|
|
448
|
+
const pattern = slotConventionPattern();
|
|
449
|
+
for (const dir of slotDirs) {
|
|
450
|
+
for (const file of listFilesSync(dir)) {
|
|
451
|
+
if (pattern.test(toPosixPath(file)))
|
|
452
|
+
files.push(file);
|
|
453
|
+
}
|
|
454
|
+
}
|
|
455
|
+
return files;
|
|
456
|
+
}
|
|
457
|
+
function appendSlotDerivedRoutes(context, routes, slotPages, table) {
|
|
458
|
+
const appPath = context.appPath;
|
|
459
|
+
const patterns = new Set(routes.filter((route) => !route.interception).map((route) => route.pattern));
|
|
460
|
+
const interceptionKeys = new Set(routes.filter((route) => route.interception).map((route) => `${route.pattern}#${route.interception.base}`));
|
|
461
|
+
const candidates = slotPages.map(({ file, relative }) => {
|
|
462
|
+
const segments = relative.split("/");
|
|
463
|
+
const slotIndex = segments.findIndex(isSlotSegment);
|
|
464
|
+
const slotDir = path.join(appPath, ...segments.slice(0, slotIndex + 1));
|
|
465
|
+
return {
|
|
466
|
+
file,
|
|
467
|
+
relative,
|
|
468
|
+
slotDir,
|
|
469
|
+
ownerDir: path.dirname(slotDir),
|
|
470
|
+
parts: routeParts(relative.replace(pageOrRouteTrailing(), "")),
|
|
471
|
+
innerNames: segments.slice(slotIndex + 1, -1).filter((name) => !isSlotSegment(name) && !isGroupSegment(name))
|
|
472
|
+
};
|
|
473
|
+
}).sort((a, b) => b.ownerDir.length - a.ownerDir.length);
|
|
474
|
+
for (const candidate of candidates) {
|
|
475
|
+
const { parts } = candidate;
|
|
476
|
+
if (parts.interception) {
|
|
477
|
+
const key = `${parts.pattern}#${parts.interception.base}`;
|
|
478
|
+
if (interceptionKeys.has(key))
|
|
479
|
+
continue;
|
|
480
|
+
interceptionKeys.add(key);
|
|
481
|
+
routes.push(withDeferredFacts(appPath, {
|
|
482
|
+
id: `intercept-${sanitizeIdPart(candidate.relative.replace(pageOrRouteTrailing(), ""))}`,
|
|
483
|
+
kind: "page",
|
|
484
|
+
route: parts.route,
|
|
485
|
+
pattern: parts.pattern,
|
|
486
|
+
file: candidate.file,
|
|
487
|
+
params: parts.params,
|
|
488
|
+
catchAll: parts.catchAll,
|
|
489
|
+
...parts.catchAllOptional ? { catchAllOptional: true } : {},
|
|
490
|
+
interception: { ...parts.interception, slotDir: candidate.slotDir }
|
|
491
|
+
}, () => ({
|
|
492
|
+
...emptyDerivedFacts,
|
|
493
|
+
...routerEntryFact(context, {
|
|
494
|
+
kind: "page",
|
|
495
|
+
client: false,
|
|
496
|
+
clientReferences: [],
|
|
497
|
+
sourceFiles: [],
|
|
498
|
+
slotInterceptor: true,
|
|
499
|
+
table
|
|
500
|
+
})
|
|
501
|
+
})));
|
|
502
|
+
continue;
|
|
503
|
+
}
|
|
504
|
+
if (patterns.has(parts.pattern))
|
|
505
|
+
continue;
|
|
506
|
+
patterns.add(parts.pattern);
|
|
507
|
+
const childrenDefault = childrenDefaultFile(candidate.ownerDir, candidate.innerNames);
|
|
508
|
+
const anchor = childrenDefault ?? slotConventionFile(path.join(candidate.ownerDir, "@children"), "page") ?? slotConventionFile(candidate.ownerDir, "page") ?? candidate.file;
|
|
509
|
+
const layoutFiles = findLayouts(appPath, anchor);
|
|
510
|
+
const templateFiles = findConventionFiles(appPath, anchor, "template");
|
|
511
|
+
const specialFiles = boundaryConventions().flatMap((name) => findConventionFiles(appPath, anchor, name));
|
|
512
|
+
const slotDirs = chainSlotDirs(appPath, anchor);
|
|
513
|
+
const slotFiles = slotTreeFiles(slotDirs);
|
|
514
|
+
const extraBoundaries = new Set(extraBoundaryConventionNames());
|
|
515
|
+
const forbiddenPaths = extraBoundaries.has("forbidden") ? findConventionFiles(appPath, anchor, "forbidden").filter((item) => existsSync(item)) : [];
|
|
516
|
+
const unauthorizedPaths = extraBoundaries.has("unauthorized") ? findConventionFiles(appPath, anchor, "unauthorized").filter((item) => existsSync(item)) : [];
|
|
517
|
+
const templatePaths = templateFiles.filter((item) => existsSync(item));
|
|
518
|
+
routes.push(withDeferredFacts(appPath, {
|
|
519
|
+
id: `slot-${routeId(parts.route || "/")}`,
|
|
520
|
+
kind: "page",
|
|
521
|
+
route: parts.route,
|
|
522
|
+
pattern: parts.pattern,
|
|
523
|
+
file: anchor,
|
|
524
|
+
params: parts.params,
|
|
525
|
+
catchAll: parts.catchAll,
|
|
526
|
+
...parts.catchAllOptional ? { catchAllOptional: true } : {},
|
|
527
|
+
...templatePaths.length > 0 ? { templateFiles: templatePaths } : {},
|
|
528
|
+
...slotDirs.length > 0 ? { slotDirs } : {},
|
|
529
|
+
synthetic: true,
|
|
530
|
+
syntheticSlotDir: candidate.slotDir,
|
|
531
|
+
...childrenDefault ? { childrenDefault } : {},
|
|
532
|
+
...forbiddenPaths.length > 0 ? { forbiddenFiles: forbiddenPaths } : {},
|
|
533
|
+
...unauthorizedPaths.length > 0 ? { unauthorizedFiles: unauthorizedPaths } : {}
|
|
534
|
+
}, () => derivedRouteFacts(context, {
|
|
535
|
+
leadFiles: childrenDefault ? [childrenDefault] : [],
|
|
536
|
+
layoutFiles,
|
|
537
|
+
templateFiles,
|
|
538
|
+
specialFiles,
|
|
539
|
+
slotFiles,
|
|
540
|
+
clientFile: childrenDefault,
|
|
541
|
+
table
|
|
542
|
+
})));
|
|
543
|
+
}
|
|
544
|
+
}
|
|
545
|
+
var emptyDerivedFacts = {
|
|
546
|
+
mode: "dynamic",
|
|
547
|
+
hasStaticParams: false,
|
|
548
|
+
usesRequest: true,
|
|
549
|
+
client: false,
|
|
550
|
+
clientReferences: [],
|
|
551
|
+
cssImports: [],
|
|
552
|
+
sourceFiles: []
|
|
553
|
+
};
|
|
554
|
+
function derivedRouteFacts(context, options) {
|
|
555
|
+
const { leadFiles, layoutFiles, templateFiles, specialFiles, slotFiles } = options;
|
|
556
|
+
const entryFiles = [...leadFiles, ...layoutFiles, ...templateFiles, ...specialFiles, ...slotFiles];
|
|
557
|
+
const sourceFiles = collectSourceFiles(context, entryFiles);
|
|
558
|
+
const clientReferences = collectClientReferences(context, entryFiles);
|
|
559
|
+
const cssImports = collectCssImports(context, cssEntryOrder({
|
|
560
|
+
...options.leadIsRouteFile ? { routeFile: leadFiles[0] } : { leadFiles },
|
|
561
|
+
layoutFiles,
|
|
562
|
+
templateFiles,
|
|
563
|
+
specialFiles,
|
|
564
|
+
slotFiles
|
|
565
|
+
}), { route: true });
|
|
566
|
+
attachLazyReferenceCss(context, clientReferences);
|
|
567
|
+
const client = options.clientFile ? isClientModule(context, options.clientFile) : false;
|
|
568
|
+
return {
|
|
569
|
+
...emptyDerivedFacts,
|
|
570
|
+
client,
|
|
571
|
+
clientReferences,
|
|
572
|
+
cssImports,
|
|
573
|
+
sourceFiles,
|
|
574
|
+
...routerEntryFact(context, {
|
|
575
|
+
kind: "page",
|
|
576
|
+
client,
|
|
577
|
+
clientReferences,
|
|
578
|
+
sourceFiles,
|
|
579
|
+
slotInterceptor: false,
|
|
580
|
+
table: options.table
|
|
581
|
+
})
|
|
582
|
+
};
|
|
583
|
+
}
|
|
584
|
+
function appendDefaultDerivedRoutes(context, routes, defaultPages, table) {
|
|
585
|
+
const appPath = context.appPath;
|
|
586
|
+
const patterns = new Set(routes.filter((route) => !route.interception).map((route) => route.pattern));
|
|
587
|
+
for (const { file, relative } of defaultPages) {
|
|
588
|
+
const dir = path.dirname(file);
|
|
589
|
+
if (conventionFileName(dir, "page"))
|
|
590
|
+
continue;
|
|
591
|
+
const parts = routeParts(relative.replace(pageOrRouteTrailing(), ""));
|
|
592
|
+
if (parts.interception)
|
|
593
|
+
continue;
|
|
594
|
+
if (patterns.has(parts.pattern))
|
|
595
|
+
continue;
|
|
596
|
+
patterns.add(parts.pattern);
|
|
597
|
+
const layoutFiles = findLayouts(appPath, file);
|
|
598
|
+
const templateFiles = findConventionFiles(appPath, file, "template");
|
|
599
|
+
const specialFiles = boundaryConventions().flatMap((name) => findConventionFiles(appPath, file, name));
|
|
600
|
+
const slotDirs = chainSlotDirs(appPath, file);
|
|
601
|
+
const slotFiles = slotTreeFiles(slotDirs);
|
|
602
|
+
const extraBoundaries = new Set(extraBoundaryConventionNames());
|
|
603
|
+
const forbiddenPaths = extraBoundaries.has("forbidden") ? findConventionFiles(appPath, file, "forbidden").filter((item) => existsSync(item)) : [];
|
|
604
|
+
const unauthorizedPaths = extraBoundaries.has("unauthorized") ? findConventionFiles(appPath, file, "unauthorized").filter((item) => existsSync(item)) : [];
|
|
605
|
+
const templatePaths = templateFiles.filter((item) => existsSync(item));
|
|
606
|
+
routes.push(withDeferredFacts(appPath, {
|
|
607
|
+
id: `default-${routeId(parts.route || "/")}`,
|
|
608
|
+
kind: "page",
|
|
609
|
+
route: parts.route,
|
|
610
|
+
pattern: parts.pattern,
|
|
611
|
+
file,
|
|
612
|
+
params: parts.params,
|
|
613
|
+
catchAll: parts.catchAll,
|
|
614
|
+
...parts.catchAllOptional ? { catchAllOptional: true } : {},
|
|
615
|
+
...templatePaths.length > 0 ? { templateFiles: templatePaths } : {},
|
|
616
|
+
...slotDirs.length > 0 ? { slotDirs } : {},
|
|
617
|
+
...forbiddenPaths.length > 0 ? { forbiddenFiles: forbiddenPaths } : {},
|
|
618
|
+
...unauthorizedPaths.length > 0 ? { unauthorizedFiles: unauthorizedPaths } : {}
|
|
619
|
+
}, () => derivedRouteFacts(context, {
|
|
620
|
+
leadFiles: [file],
|
|
621
|
+
leadIsRouteFile: true,
|
|
622
|
+
layoutFiles,
|
|
623
|
+
templateFiles,
|
|
624
|
+
specialFiles,
|
|
625
|
+
slotFiles,
|
|
626
|
+
clientFile: file,
|
|
627
|
+
table
|
|
628
|
+
})));
|
|
629
|
+
}
|
|
630
|
+
}
|
|
631
|
+
async function collectNotFoundCss(appPath) {
|
|
632
|
+
const notFoundFile = conventionFileName(appPath, "not-found");
|
|
633
|
+
if (!notFoundFile)
|
|
634
|
+
return [];
|
|
635
|
+
return collectFileCss(appPath, [notFoundFile]);
|
|
636
|
+
}
|
|
637
|
+
async function collectFileCss(appPath, files, options = {}) {
|
|
638
|
+
const existing = files.filter((file) => existsSync(file));
|
|
639
|
+
if (existing.length === 0)
|
|
640
|
+
return [];
|
|
641
|
+
const context = createScanContext(appPath, options.includeGlobalCss ? () => new Set : undefined);
|
|
642
|
+
return collectCssImports(context, existing);
|
|
643
|
+
}
|
|
644
|
+
function segmentTokenOf(bare) {
|
|
645
|
+
const optionalCatchAllMatch = /^\[\[\.\.\.([^\]]+)\]\]$/.exec(bare);
|
|
646
|
+
if (optionalCatchAllMatch?.[1]) {
|
|
647
|
+
const name = optionalCatchAllMatch[1];
|
|
648
|
+
return { route: `:${name}*`, catchAll: name, catchAllOptional: true };
|
|
649
|
+
}
|
|
650
|
+
const catchAllMatch = /^\[\.\.\.([^\]]+)\]$/.exec(bare);
|
|
651
|
+
if (catchAllMatch?.[1]) {
|
|
652
|
+
return { route: `:${catchAllMatch[1]}*`, pattern: "(.*)", catchAll: catchAllMatch[1] };
|
|
653
|
+
}
|
|
654
|
+
const paramMatch = /^\[([^\]]+)\]$/.exec(bare);
|
|
655
|
+
if (paramMatch?.[1]) {
|
|
656
|
+
return { route: `:${paramMatch[1]}`, pattern: "([^/]+)", param: paramMatch[1] };
|
|
657
|
+
}
|
|
658
|
+
const literal = decodeLiteralSegment(bare);
|
|
659
|
+
return { route: literal, pattern: escapeRegex(literal) };
|
|
660
|
+
}
|
|
661
|
+
function isPrivateAppPath(relative) {
|
|
662
|
+
const segments = relative.split("/");
|
|
663
|
+
return segments.slice(0, -1).some((segment) => segment.startsWith("_") && !isGroupSegment(segment) && !isSlotSegment(segment));
|
|
664
|
+
}
|
|
665
|
+
function decodeLiteralSegment(segment) {
|
|
666
|
+
return segment.replace(/%5[Ff]/g, "_");
|
|
667
|
+
}
|
|
668
|
+
function routeParts(routeDir) {
|
|
669
|
+
const segments = routeDir.split("/").filter(Boolean);
|
|
670
|
+
let tokens = [];
|
|
671
|
+
let interception;
|
|
672
|
+
for (const segment of segments) {
|
|
673
|
+
if (isGroupSegment(segment) || isSlotSegment(segment))
|
|
674
|
+
continue;
|
|
675
|
+
const marker = interceptionMarkerOf(segment);
|
|
676
|
+
let bare = segment;
|
|
677
|
+
if (marker) {
|
|
678
|
+
bare = segment.slice(marker.length);
|
|
679
|
+
const base = tokens.slice();
|
|
680
|
+
const levels = interceptionMarkerLevels(marker);
|
|
681
|
+
tokens = levels === Number.POSITIVE_INFINITY ? [] : tokens.slice(0, Math.max(0, tokens.length - levels));
|
|
682
|
+
interception = {
|
|
683
|
+
marker,
|
|
684
|
+
base: `/${base.map((token) => token.route).join("/")}`.replace(/\/$/, "") || "/",
|
|
685
|
+
basePattern: base.map((token) => token.pattern ?? "(.*)").join("/")
|
|
686
|
+
};
|
|
687
|
+
}
|
|
688
|
+
tokens.push(segmentTokenOf(bare));
|
|
689
|
+
}
|
|
690
|
+
const params = tokens.filter((token) => token.param).map((token) => token.param);
|
|
691
|
+
const catchAllToken = tokens.find((token) => token.catchAll);
|
|
692
|
+
const routeSegments = tokens.map((token) => token.route);
|
|
693
|
+
const patternSegments = tokens.filter((token) => !token.catchAllOptional).map((token) => token.pattern);
|
|
694
|
+
const route = `/${routeSegments.join("/")}`.replace(/\/$/, "") || "/";
|
|
695
|
+
let pattern;
|
|
696
|
+
if (catchAllToken?.catchAllOptional) {
|
|
697
|
+
const prefix = patternSegments.length > 0 ? `/${patternSegments.join("/")}` : "";
|
|
698
|
+
pattern = `${prefix}(?:/(.*))?`;
|
|
699
|
+
if (pattern === "(?:/(.*))?")
|
|
700
|
+
pattern = "/?(?:(.*))?";
|
|
701
|
+
} else {
|
|
702
|
+
pattern = route === "/" ? "/" : `/${patternSegments.join("/")}`;
|
|
703
|
+
}
|
|
704
|
+
return {
|
|
705
|
+
route,
|
|
706
|
+
pattern,
|
|
707
|
+
params,
|
|
708
|
+
catchAll: catchAllToken?.catchAll,
|
|
709
|
+
catchAllOptional: Boolean(catchAllToken?.catchAllOptional),
|
|
710
|
+
interception
|
|
711
|
+
};
|
|
712
|
+
}
|
|
713
|
+
function dynamicMetadataRouteParts(relative, source) {
|
|
714
|
+
const name = path.basename(relative);
|
|
715
|
+
const dir = path.dirname(relative) === "." ? "" : path.dirname(relative);
|
|
716
|
+
const root = dir === "";
|
|
717
|
+
const extension = path.extname(name);
|
|
718
|
+
const base = name.slice(0, -extension.length);
|
|
719
|
+
const kind = dynamicMetadataKind(base, root);
|
|
720
|
+
if (!kind)
|
|
721
|
+
return;
|
|
722
|
+
const prefix = routeParts(dir);
|
|
723
|
+
const generatedParam = metadataGeneratedParam(kind, source);
|
|
724
|
+
const final = dynamicMetadataFinalSegment(kind, base, dir, Boolean(generatedParam));
|
|
725
|
+
return {
|
|
726
|
+
...appendRouteParts(prefix, final.route, final.pattern, generatedParam ? [generatedParam] : []),
|
|
727
|
+
metadataRoute: {
|
|
728
|
+
kind,
|
|
729
|
+
...generatedParam ? { generatedParam } : {}
|
|
730
|
+
}
|
|
731
|
+
};
|
|
732
|
+
}
|
|
733
|
+
function dynamicMetadataKind(base, root) {
|
|
734
|
+
if (base === "robots")
|
|
735
|
+
return root ? "robots" : undefined;
|
|
736
|
+
if (base === "sitemap")
|
|
737
|
+
return "sitemap";
|
|
738
|
+
if (base === "manifest")
|
|
739
|
+
return root ? "manifest" : undefined;
|
|
740
|
+
if (/^icon\d*$/.test(base))
|
|
741
|
+
return "icon";
|
|
742
|
+
if (/^apple-icon\d*$/.test(base))
|
|
743
|
+
return "apple-icon";
|
|
744
|
+
if (/^opengraph-image\d*$/.test(base))
|
|
745
|
+
return "opengraph-image";
|
|
746
|
+
if (/^twitter-image\d*$/.test(base))
|
|
747
|
+
return "twitter-image";
|
|
748
|
+
return;
|
|
749
|
+
}
|
|
750
|
+
function metadataGeneratedParam(kind, source) {
|
|
751
|
+
if (kind === "sitemap" && /\bexport\s+(?:async\s+)?function\s+generateSitemaps\b/.test(source)) {
|
|
752
|
+
return "__metadata_id__";
|
|
753
|
+
}
|
|
754
|
+
if (metadataImageKind(kind) && /\bexport\s+(?:async\s+)?function\s+generateImageMetadata\b/.test(source)) {
|
|
755
|
+
return "__metadata_id__";
|
|
756
|
+
}
|
|
757
|
+
return;
|
|
758
|
+
}
|
|
759
|
+
function dynamicMetadataFinalSegment(kind, base, relativeDir, generated) {
|
|
760
|
+
if (kind === "robots")
|
|
761
|
+
return { route: "robots.txt", pattern: "robots\\.txt" };
|
|
762
|
+
if (kind === "manifest")
|
|
763
|
+
return { route: "manifest.webmanifest", pattern: "manifest\\.webmanifest" };
|
|
764
|
+
if (kind === "sitemap") {
|
|
765
|
+
return generated ? { route: "sitemap/:id.xml", pattern: "sitemap/([^/]+)\\.xml" } : { route: "sitemap.xml", pattern: "sitemap\\.xml" };
|
|
766
|
+
}
|
|
767
|
+
const suffix = metadataRouteSuffix(relativeDir);
|
|
768
|
+
const imageBase = suffix ? `${base}-${suffix}` : base;
|
|
769
|
+
return generated ? { route: `${imageBase}/:id`, pattern: `${escapeRegex(imageBase)}/([^/]+)` } : { route: imageBase, pattern: escapeRegex(imageBase) };
|
|
770
|
+
}
|
|
771
|
+
function appendRouteParts(parts, route, pattern, params) {
|
|
772
|
+
const prefixRoute = parts.route === "/" ? "" : parts.route;
|
|
773
|
+
const prefixPattern = parts.pattern === "/" ? "" : parts.pattern;
|
|
774
|
+
return {
|
|
775
|
+
...parts,
|
|
776
|
+
route: `${prefixRoute}/${route}`.replace(/\/$/, "") || "/",
|
|
777
|
+
pattern: `${prefixPattern}/${pattern}`,
|
|
778
|
+
params: [...parts.params, ...params]
|
|
779
|
+
};
|
|
780
|
+
}
|
|
781
|
+
function metadataImageKind(kind) {
|
|
782
|
+
return kind === "icon" || kind === "apple-icon" || kind === "opengraph-image" || kind === "twitter-image";
|
|
783
|
+
}
|
|
784
|
+
function metadataRouteUsesRequest(source) {
|
|
785
|
+
return routeHandlerUsesRequest(source);
|
|
786
|
+
}
|
|
787
|
+
function metadataRouteSuffix(relativeDir) {
|
|
788
|
+
if (!relativeDir)
|
|
789
|
+
return "";
|
|
790
|
+
const segments = relativeDir.split("/").filter(Boolean);
|
|
791
|
+
if (!segments.some((segment) => isGroupSegment(segment) || isSlotSegment(segment)))
|
|
792
|
+
return "";
|
|
793
|
+
return djb2Hash(`/${relativeDir}`).toString(36).slice(0, 6);
|
|
794
|
+
}
|
|
795
|
+
function djb2Hash(value) {
|
|
796
|
+
let hash = 5381;
|
|
797
|
+
for (let i = 0;i < value.length; i++) {
|
|
798
|
+
hash = (hash << 5) + hash + value.charCodeAt(i) & 4294967295;
|
|
799
|
+
}
|
|
800
|
+
return hash >>> 0;
|
|
801
|
+
}
|
|
802
|
+
function inferRouteMode(parts, usesRequest, config) {
|
|
803
|
+
if (config?.dynamic === "force-dynamic")
|
|
804
|
+
return "dynamic";
|
|
805
|
+
if (config?.revalidate === 0)
|
|
806
|
+
return "dynamic";
|
|
807
|
+
if (config?.fetchCache === "force-no-store")
|
|
808
|
+
return "dynamic";
|
|
809
|
+
if (config?.dynamic === "force-static")
|
|
810
|
+
return "static";
|
|
811
|
+
if (config?.dynamic === "error")
|
|
812
|
+
return "static";
|
|
813
|
+
if (usesRequest)
|
|
814
|
+
return "dynamic";
|
|
815
|
+
if (parts.params.length > 0 || parts.catchAll)
|
|
816
|
+
return "dynamic";
|
|
817
|
+
return "static";
|
|
818
|
+
}
|
|
819
|
+
function parseSegmentConfig(source) {
|
|
820
|
+
const searchable = stripComments(source);
|
|
821
|
+
const parsed = {};
|
|
822
|
+
const dynamicMatch = /^\s*export\s+const\s+dynamic\s*=\s*['"](auto|force-dynamic|error|force-static)['"]/m.exec(searchable);
|
|
823
|
+
if (dynamicMatch)
|
|
824
|
+
parsed.dynamic = dynamicMatch[1];
|
|
825
|
+
const revalidateMatch = /^\s*export\s+const\s+revalidate\s*=\s*(\d+|false)\s*;?\s*$/m.exec(searchable);
|
|
826
|
+
if (revalidateMatch) {
|
|
827
|
+
parsed.revalidate = revalidateMatch[1] === "false" ? false : Number(revalidateMatch[1]);
|
|
828
|
+
} else {
|
|
829
|
+
const invalid = /^\s*export\s+const\s+revalidate\s*=\s*(['"]([^'"]*)['"]|-\d+)/m.exec(searchable);
|
|
830
|
+
if (invalid)
|
|
831
|
+
parsed.invalidRevalidate = invalid[2] ?? invalid[1];
|
|
832
|
+
}
|
|
833
|
+
const fetchCacheMatch = /^\s*export\s+const\s+fetchCache\s*=\s*['"](auto|default-cache|only-cache|force-cache|force-no-store|default-no-store|only-no-store)['"]/m.exec(searchable);
|
|
834
|
+
if (fetchCacheMatch)
|
|
835
|
+
parsed.fetchCache = fetchCacheMatch[1];
|
|
836
|
+
const dynamicParamsMatch = /^\s*export\s+const\s+dynamicParams\s*=\s*(true|false)/m.exec(searchable);
|
|
837
|
+
if (dynamicParamsMatch)
|
|
838
|
+
parsed.dynamicParams = dynamicParamsMatch[1] === "true";
|
|
839
|
+
const runtimeMatch = /^\s*export\s+const\s+runtime\s*=\s*['"](edge|nodejs)['"]/m.exec(searchable);
|
|
840
|
+
if (runtimeMatch)
|
|
841
|
+
parsed.runtime = runtimeMatch[1];
|
|
842
|
+
const prefetchMatch = /^\s*export\s+const\s+prefetch\s*=\s*['"](allow-runtime|partial|unstable_eager)['"]/m.exec(searchable);
|
|
843
|
+
if (prefetchMatch)
|
|
844
|
+
parsed.prefetch = prefetchMatch[1];
|
|
845
|
+
const instantMatch = /^\s*export\s+const\s+unstable_instant\s*=\s*(true|false|\{)/m.exec(searchable);
|
|
846
|
+
if (instantMatch)
|
|
847
|
+
parsed.unstableInstant = instantMatch[1] !== "false";
|
|
848
|
+
return parsed;
|
|
849
|
+
}
|
|
850
|
+
function segmentConfigFromEntries(appPath, entries, parts) {
|
|
851
|
+
const config = {};
|
|
852
|
+
let lowestRevalidate;
|
|
853
|
+
let sawRevalidateFalse = false;
|
|
854
|
+
const dynamicParamsByName = new Map;
|
|
855
|
+
const allParams = [...parts.params, ...parts.catchAll ? [parts.catchAll] : []];
|
|
856
|
+
for (const entry of entries) {
|
|
857
|
+
const parsed = parseSegmentConfig(entry.source);
|
|
858
|
+
if (parsed.invalidRevalidate !== undefined) {
|
|
859
|
+
throw new Error(`Invalid revalidate value "${parsed.invalidRevalidate}" on "${parts.route || "/"}", must be a non-negative number or false`);
|
|
860
|
+
}
|
|
861
|
+
if (parsed.dynamic) {
|
|
862
|
+
if (parsed.dynamic === "force-dynamic")
|
|
863
|
+
config.dynamic = "force-dynamic";
|
|
864
|
+
else if (!config.dynamic)
|
|
865
|
+
config.dynamic = parsed.dynamic;
|
|
866
|
+
}
|
|
867
|
+
if (parsed.revalidate !== undefined) {
|
|
868
|
+
if (parsed.revalidate === false)
|
|
869
|
+
sawRevalidateFalse = true;
|
|
870
|
+
else {
|
|
871
|
+
lowestRevalidate = lowestRevalidate === undefined ? parsed.revalidate : Math.min(lowestRevalidate, parsed.revalidate);
|
|
872
|
+
}
|
|
873
|
+
}
|
|
874
|
+
if (parsed.fetchCache && !config.fetchCache)
|
|
875
|
+
config.fetchCache = parsed.fetchCache;
|
|
876
|
+
if (parsed.runtime && !config.runtime)
|
|
877
|
+
config.runtime = parsed.runtime;
|
|
878
|
+
if (parsed.prefetch && !config.prefetch)
|
|
879
|
+
config.prefetch = parsed.prefetch;
|
|
880
|
+
if (parsed.unstableInstant !== undefined && config.unstableInstant === undefined) {
|
|
881
|
+
config.unstableInstant = parsed.unstableInstant;
|
|
882
|
+
}
|
|
883
|
+
if (parsed.dynamicParams !== undefined) {
|
|
884
|
+
const param = paramOfOwnSegment(appPath, entry.file, allParams);
|
|
885
|
+
if (param !== undefined && !dynamicParamsByName.has(param)) {
|
|
886
|
+
dynamicParamsByName.set(param, parsed.dynamicParams);
|
|
887
|
+
}
|
|
888
|
+
}
|
|
889
|
+
}
|
|
890
|
+
if (lowestRevalidate !== undefined)
|
|
891
|
+
config.revalidate = lowestRevalidate;
|
|
892
|
+
else if (sawRevalidateFalse)
|
|
893
|
+
config.revalidate = false;
|
|
894
|
+
const governed = allParams.filter((param) => dynamicParamsByName.get(param) === false);
|
|
895
|
+
if (governed.length > 0)
|
|
896
|
+
config.dynamicParamsFalse = governed;
|
|
897
|
+
return Object.keys(config).length > 0 ? config : undefined;
|
|
898
|
+
}
|
|
899
|
+
function paramOfOwnSegment(appPath, file, params) {
|
|
900
|
+
const segments = toPosixPath(path.relative(appPath, path.dirname(file))).split("/");
|
|
901
|
+
const own = segments[segments.length - 1];
|
|
902
|
+
return params.find((param) => own === `[${param}]` || own === `[...${param}]` || own === `[[...${param}]]`);
|
|
903
|
+
}
|
|
904
|
+
function hasUseClientDirective(file, source) {
|
|
905
|
+
return scanFacts(file, source).useClient;
|
|
906
|
+
}
|
|
907
|
+
function serverActionFileFact(context, sourceFiles) {
|
|
908
|
+
for (const file of sourceFiles) {
|
|
909
|
+
if (!fileExists(context, file) || isAssetFile(file))
|
|
910
|
+
continue;
|
|
911
|
+
if (scanFacts(file, readSource(context, file)).useServer)
|
|
912
|
+
return { serverActionFile: file };
|
|
913
|
+
}
|
|
914
|
+
return {};
|
|
915
|
+
}
|
|
916
|
+
function assertNoServerActionsWithoutCompat(routes, compatEnabled, root) {
|
|
917
|
+
if (compatEnabled)
|
|
918
|
+
return;
|
|
919
|
+
const offender = routes.find((route) => route.serverActionFile);
|
|
920
|
+
if (!offender)
|
|
921
|
+
return;
|
|
922
|
+
throw new Error(serverActionsUnsupportedMessage({
|
|
923
|
+
file: offender.serverActionFile,
|
|
924
|
+
route: offender.route,
|
|
925
|
+
root
|
|
926
|
+
}));
|
|
927
|
+
}
|
|
928
|
+
function isClientModule(context, file) {
|
|
929
|
+
const key = path.resolve(file);
|
|
930
|
+
let client = context.useClient.get(key);
|
|
931
|
+
if (client === undefined) {
|
|
932
|
+
client = hasUseClientDirective(file, readSource(context, file));
|
|
933
|
+
context.useClient.set(key, client);
|
|
934
|
+
}
|
|
935
|
+
return client;
|
|
936
|
+
}
|
|
937
|
+
function collectClientReferences(context, entryFiles) {
|
|
938
|
+
const references = new Map;
|
|
939
|
+
const visited = new Set;
|
|
940
|
+
for (const file of entryFiles) {
|
|
941
|
+
if (fileExists(context, file)) {
|
|
942
|
+
if (!isClientModule(context, file) && defaultReexportsClientModule(context, file)) {
|
|
943
|
+
addClientReference(references, clientReference(file, "default"));
|
|
944
|
+
}
|
|
945
|
+
}
|
|
946
|
+
collectFromFile(context, file, references, visited);
|
|
947
|
+
}
|
|
948
|
+
const collected = [...references.values()];
|
|
949
|
+
const hasRenderedReference = collected.some((reference) => !reference.sideEffect);
|
|
950
|
+
const filtered = hasRenderedReference ? collected : collected.filter((reference) => !reference.sideEffect);
|
|
951
|
+
return filtered.sort((a, b) => a.id.localeCompare(b.id));
|
|
952
|
+
}
|
|
953
|
+
function defaultReexportsClientModule(context, file, visited = new Set) {
|
|
954
|
+
const key = path.resolve(file);
|
|
955
|
+
if (visited.has(key))
|
|
956
|
+
return false;
|
|
957
|
+
visited.add(key);
|
|
958
|
+
const source = readSource(context, file);
|
|
959
|
+
const specifiers = [];
|
|
960
|
+
for (const edge of scanFacts(file, source).imports) {
|
|
961
|
+
if (edge.reexport && edge.exports.includes("default"))
|
|
962
|
+
specifiers.push(edge.specifier);
|
|
963
|
+
}
|
|
964
|
+
const defaultExpr = /export\s+default\s+([A-Za-z_$][\w$]*)(\s*\.\s*default)?\s*;?/.exec(source);
|
|
965
|
+
if (defaultExpr) {
|
|
966
|
+
const binding = defaultExpr[1];
|
|
967
|
+
const namespaced = Boolean(defaultExpr[2]);
|
|
968
|
+
const importBinding = namespaced ? new RegExp(`import\\s*\\*\\s*as\\s+${binding}\\s+from\\s+['"]([^'"]+)['"]`).exec(source) : new RegExp(`import\\s+${binding}\\s+from\\s+['"]([^'"]+)['"]`).exec(source);
|
|
969
|
+
if (importBinding?.[1])
|
|
970
|
+
specifiers.push(importBinding[1]);
|
|
971
|
+
}
|
|
972
|
+
for (const specifier of specifiers) {
|
|
973
|
+
const resolved = resolveModuleEdge(context, file, specifier);
|
|
974
|
+
if (!resolved || !fileExists(context, resolved))
|
|
975
|
+
continue;
|
|
976
|
+
if (isClientModule(context, resolved))
|
|
977
|
+
return true;
|
|
978
|
+
if (defaultReexportsClientModule(context, resolved, visited))
|
|
979
|
+
return true;
|
|
980
|
+
}
|
|
981
|
+
return false;
|
|
982
|
+
}
|
|
983
|
+
function collectFromFile(context, file, references, visited, withinClientBoundary = false) {
|
|
984
|
+
const visitKey = `${file}\x00${withinClientBoundary ? "client" : "server"}`;
|
|
985
|
+
if (visited.has(visitKey) || !fileExists(context, file))
|
|
986
|
+
return;
|
|
987
|
+
visited.add(visitKey);
|
|
988
|
+
const clientFile = isClientModule(context, file);
|
|
989
|
+
if (clientFile) {
|
|
990
|
+
addClientReference(references, clientReference(file, "default"));
|
|
991
|
+
}
|
|
992
|
+
const nestedClientBoundary = withinClientBoundary || clientFile;
|
|
993
|
+
const imports = [...moduleEdges(context, file)];
|
|
994
|
+
if (!nestedClientBoundary)
|
|
995
|
+
imports.push(...publishedClientImports(context, file));
|
|
996
|
+
for (const imported of imports) {
|
|
997
|
+
if (isClientModule(context, imported.file)) {
|
|
998
|
+
if (imported.star) {
|
|
999
|
+
const importedSource = readSource(context, imported.file);
|
|
1000
|
+
for (const exportName of scanFacts(imported.file, importedSource).exportNames) {
|
|
1001
|
+
if (exportName !== "default") {
|
|
1002
|
+
addClientReference(references, clientReference(imported.file, exportName));
|
|
1003
|
+
}
|
|
1004
|
+
}
|
|
1005
|
+
continue;
|
|
1006
|
+
}
|
|
1007
|
+
if (imported.exports.includes("*")) {
|
|
1008
|
+
throw new Error(`${file} namespace-imports Client Component module ${imported.file}. Import the client component by default or named export instead.`);
|
|
1009
|
+
}
|
|
1010
|
+
if (imported.exports.length === 0) {
|
|
1011
|
+
addClientReference(references, {
|
|
1012
|
+
...clientReference(imported.file, "*side-effect*"),
|
|
1013
|
+
sideEffect: true
|
|
1014
|
+
});
|
|
1015
|
+
continue;
|
|
1016
|
+
}
|
|
1017
|
+
for (const exportName of imported.exports) {
|
|
1018
|
+
addClientReference(references, {
|
|
1019
|
+
...clientReference(imported.file, exportName),
|
|
1020
|
+
dynamic: imported.dynamic
|
|
1021
|
+
});
|
|
1022
|
+
}
|
|
1023
|
+
continue;
|
|
1024
|
+
}
|
|
1025
|
+
if (imported.dynamic?.load === "visible") {
|
|
1026
|
+
console.warn(`${file} uses dynamic({ load: 'visible' }) for ${imported.file}, but the target is a Server Component. It will render on the server instead of loading on visibility.`);
|
|
1027
|
+
}
|
|
1028
|
+
collectFromFile(context, imported.file, references, visited, nestedClientBoundary);
|
|
1029
|
+
}
|
|
1030
|
+
}
|
|
1031
|
+
function addClientReference(references, reference) {
|
|
1032
|
+
const existing = references.get(reference.id);
|
|
1033
|
+
if (!existing) {
|
|
1034
|
+
references.set(reference.id, reference);
|
|
1035
|
+
return;
|
|
1036
|
+
}
|
|
1037
|
+
if (!reference.dynamic)
|
|
1038
|
+
references.set(reference.id, reference);
|
|
1039
|
+
}
|
|
1040
|
+
function cssEntryOrder(options) {
|
|
1041
|
+
return [
|
|
1042
|
+
...options.leadFiles ?? [],
|
|
1043
|
+
...options.layoutFiles,
|
|
1044
|
+
...options.templateFiles,
|
|
1045
|
+
...options.routeFile ? [options.routeFile] : [],
|
|
1046
|
+
...options.specialFiles,
|
|
1047
|
+
...options.slotFiles
|
|
1048
|
+
];
|
|
1049
|
+
}
|
|
1050
|
+
function collectCssImports(context, entryFiles, options = {}) {
|
|
1051
|
+
const imports = new Set;
|
|
1052
|
+
const visited = new Set;
|
|
1053
|
+
for (const file of entryFiles) {
|
|
1054
|
+
collectCssFromFile(context, file, imports, visited);
|
|
1055
|
+
}
|
|
1056
|
+
if (!options.route || !getCssExtensions().deferRootNotFoundCss())
|
|
1057
|
+
return [...imports];
|
|
1058
|
+
const rootNotFound = entryFiles.find((file) => path.dirname(file) === context.appPath && /^not-found\.[^.]+$/.test(path.basename(file)));
|
|
1059
|
+
if (!rootNotFound)
|
|
1060
|
+
return [...imports];
|
|
1061
|
+
const rootNotFoundImports = new Set;
|
|
1062
|
+
collectCssFromFile(context, rootNotFound, rootNotFoundImports, new Set);
|
|
1063
|
+
if (rootNotFoundImports.size === 0)
|
|
1064
|
+
return [...imports];
|
|
1065
|
+
const matchedImports = new Set;
|
|
1066
|
+
for (const file of entryFiles) {
|
|
1067
|
+
if (file === rootNotFound)
|
|
1068
|
+
continue;
|
|
1069
|
+
collectCssFromFile(context, file, matchedImports, new Set);
|
|
1070
|
+
}
|
|
1071
|
+
return [...imports].filter((file) => !rootNotFoundImports.has(file) || matchedImports.has(file));
|
|
1072
|
+
}
|
|
1073
|
+
function collectSourceFiles(context, entryFiles) {
|
|
1074
|
+
const files = new Set;
|
|
1075
|
+
const visited = new Set;
|
|
1076
|
+
for (const file of entryFiles) {
|
|
1077
|
+
collectSourceFile(context, file, files, visited);
|
|
1078
|
+
}
|
|
1079
|
+
return [...files].sort();
|
|
1080
|
+
}
|
|
1081
|
+
function collectSourceFile(context, file, files, visited) {
|
|
1082
|
+
if (visited.has(file) || !fileExists(context, file))
|
|
1083
|
+
return;
|
|
1084
|
+
visited.add(file);
|
|
1085
|
+
files.add(file);
|
|
1086
|
+
if (isAssetFile(file))
|
|
1087
|
+
return;
|
|
1088
|
+
for (const imported of moduleEdges(context, file)) {
|
|
1089
|
+
collectSourceFile(context, imported.file, files, visited);
|
|
1090
|
+
}
|
|
1091
|
+
}
|
|
1092
|
+
function collectCssFromFile(context, file, imports, visited) {
|
|
1093
|
+
if (visited.has(file) || !fileExists(context, file))
|
|
1094
|
+
return;
|
|
1095
|
+
visited.add(file);
|
|
1096
|
+
if (isCssFile(file)) {
|
|
1097
|
+
if (!context.globalCssImports().has(path.resolve(file)))
|
|
1098
|
+
imports.add(file);
|
|
1099
|
+
return;
|
|
1100
|
+
}
|
|
1101
|
+
const clientFile = isClientModule(context, file);
|
|
1102
|
+
for (const imported of moduleEdges(context, file)) {
|
|
1103
|
+
if (isCssFile(imported.file)) {
|
|
1104
|
+
if (!context.globalCssImports().has(path.resolve(imported.file)))
|
|
1105
|
+
imports.add(imported.file);
|
|
1106
|
+
continue;
|
|
1107
|
+
}
|
|
1108
|
+
if (!clientFile && isLazyClientEdge(context, imported))
|
|
1109
|
+
continue;
|
|
1110
|
+
collectCssFromFile(context, imported.file, imports, visited);
|
|
1111
|
+
}
|
|
1112
|
+
}
|
|
1113
|
+
function isLazyClientEdge(context, edge) {
|
|
1114
|
+
if (!edge.dynamic || ssrClientReference({ dynamic: edge.dynamic }))
|
|
1115
|
+
return false;
|
|
1116
|
+
return isClientModule(context, edge.file);
|
|
1117
|
+
}
|
|
1118
|
+
function attachLazyReferenceCss(context, references) {
|
|
1119
|
+
for (const reference of references) {
|
|
1120
|
+
if (ssrClientReference(reference))
|
|
1121
|
+
continue;
|
|
1122
|
+
const css = collectCssImports(context, [reference.file]);
|
|
1123
|
+
if (css.length > 0)
|
|
1124
|
+
reference.cssImports = css;
|
|
1125
|
+
}
|
|
1126
|
+
}
|
|
1127
|
+
function readScanSource(context, file, visited = new Set) {
|
|
1128
|
+
const key = path.resolve(file);
|
|
1129
|
+
if (visited.has(key))
|
|
1130
|
+
return "";
|
|
1131
|
+
visited.add(key);
|
|
1132
|
+
const source = readSource(context, file);
|
|
1133
|
+
const parts = [source];
|
|
1134
|
+
for (const edge of scanFacts(file, source).imports) {
|
|
1135
|
+
if (!edge.reexport || !edge.specifier.startsWith("."))
|
|
1136
|
+
continue;
|
|
1137
|
+
const resolved = resolveModuleEdge(context, file, edge.specifier);
|
|
1138
|
+
if (!resolved || !existsSync(resolved))
|
|
1139
|
+
continue;
|
|
1140
|
+
parts.push(readScanSource(context, resolved, visited));
|
|
1141
|
+
}
|
|
1142
|
+
return parts.join(`
|
|
1143
|
+
`);
|
|
1144
|
+
}
|
|
1145
|
+
function readSource(context, file) {
|
|
1146
|
+
const key = path.resolve(file);
|
|
1147
|
+
let source = context.sources.get(key);
|
|
1148
|
+
if (source === undefined) {
|
|
1149
|
+
source = rewriteLiteralDynamicCalls(readSourceSync(key), file);
|
|
1150
|
+
context.sources.set(key, source);
|
|
1151
|
+
}
|
|
1152
|
+
return source;
|
|
1153
|
+
}
|
|
1154
|
+
var linkSpecifiers = new Set(["next/link", "@wular/pnext/link"]);
|
|
1155
|
+
var navigationSpecifiers = new Set([
|
|
1156
|
+
...linkSpecifiers,
|
|
1157
|
+
"next/form",
|
|
1158
|
+
"next/navigation",
|
|
1159
|
+
"next/router",
|
|
1160
|
+
"@wular/pnext/navigation",
|
|
1161
|
+
"@wular/pnext/navigation/client"
|
|
1162
|
+
]);
|
|
1163
|
+
var rootNavigationExports = new Set([
|
|
1164
|
+
"*",
|
|
1165
|
+
"default",
|
|
1166
|
+
"Link",
|
|
1167
|
+
"permanentRedirect",
|
|
1168
|
+
"redirect",
|
|
1169
|
+
"useLinkStatus",
|
|
1170
|
+
"useParams",
|
|
1171
|
+
"usePathname",
|
|
1172
|
+
"useRoute",
|
|
1173
|
+
"useRouter",
|
|
1174
|
+
"useSearchParams"
|
|
1175
|
+
]);
|
|
1176
|
+
function importReachesNavigation(edge) {
|
|
1177
|
+
if (navigationSpecifiers.has(edge.specifier))
|
|
1178
|
+
return true;
|
|
1179
|
+
if (edge.specifier !== "@wular/pnext")
|
|
1180
|
+
return false;
|
|
1181
|
+
return edge.exports.length === 0 || edge.exports.some((name) => rootNavigationExports.has(name));
|
|
1182
|
+
}
|
|
1183
|
+
function routeUsesLinkComponent(context, files) {
|
|
1184
|
+
for (const file of files) {
|
|
1185
|
+
if (!fileExists(context, file) || isAssetFile(file))
|
|
1186
|
+
continue;
|
|
1187
|
+
const key = path.resolve(file);
|
|
1188
|
+
let uses = context.usesLink.get(key);
|
|
1189
|
+
if (uses === undefined) {
|
|
1190
|
+
const facts = scanFacts(file, readSource(context, file));
|
|
1191
|
+
uses = facts.imports.some((edge) => linkSpecifiers.has(edge.specifier));
|
|
1192
|
+
context.usesLink.set(key, uses);
|
|
1193
|
+
}
|
|
1194
|
+
if (uses)
|
|
1195
|
+
return true;
|
|
1196
|
+
}
|
|
1197
|
+
return false;
|
|
1198
|
+
}
|
|
1199
|
+
function routeUsesNavigation(context, files) {
|
|
1200
|
+
for (const file of files) {
|
|
1201
|
+
if (!fileExists(context, file) || isAssetFile(file))
|
|
1202
|
+
continue;
|
|
1203
|
+
const key = path.resolve(file);
|
|
1204
|
+
let uses = context.usesNavigation.get(key);
|
|
1205
|
+
if (uses === undefined) {
|
|
1206
|
+
const facts = scanFacts(file, readSource(context, file));
|
|
1207
|
+
uses = facts.imports.some(importReachesNavigation);
|
|
1208
|
+
context.usesNavigation.set(key, uses);
|
|
1209
|
+
}
|
|
1210
|
+
if (uses)
|
|
1211
|
+
return true;
|
|
1212
|
+
}
|
|
1213
|
+
return false;
|
|
1214
|
+
}
|
|
1215
|
+
function routeClientEntryReasons(context, files) {
|
|
1216
|
+
const reasons = [];
|
|
1217
|
+
for (const file of files) {
|
|
1218
|
+
if (!fileExists(context, file) || isAssetFile(file))
|
|
1219
|
+
continue;
|
|
1220
|
+
const key = path.resolve(file);
|
|
1221
|
+
let fileReasons = context.entryReasons.get(key);
|
|
1222
|
+
if (fileReasons === undefined) {
|
|
1223
|
+
fileReasons = sourceClientEntryReasons(readSource(context, file));
|
|
1224
|
+
context.entryReasons.set(key, fileReasons);
|
|
1225
|
+
}
|
|
1226
|
+
reasons.push(...fileReasons);
|
|
1227
|
+
}
|
|
1228
|
+
return reasons;
|
|
1229
|
+
}
|
|
1230
|
+
function usesRequestImportDataForFiles(context, files) {
|
|
1231
|
+
for (const file of files) {
|
|
1232
|
+
const key = path.resolve(file);
|
|
1233
|
+
let usesRequestImport = context.requestImportUsage.get(key);
|
|
1234
|
+
if (usesRequestImport === undefined) {
|
|
1235
|
+
usesRequestImport = sourceUsesRegisteredRequestApi(readSource(context, file));
|
|
1236
|
+
context.requestImportUsage.set(key, usesRequestImport);
|
|
1237
|
+
}
|
|
1238
|
+
if (usesRequestImport)
|
|
1239
|
+
return true;
|
|
1240
|
+
}
|
|
1241
|
+
return false;
|
|
1242
|
+
}
|
|
1243
|
+
function routeDependencyClassification(context, kind, files) {
|
|
1244
|
+
const sources = files.filter((file) => !isAssetFile(file)).map((file) => ({ file, source: readSource(context, file) }));
|
|
1245
|
+
return classifyRouteDependencies({ kind, files: sources });
|
|
1246
|
+
}
|
|
1247
|
+
function moduleEdges(context, file) {
|
|
1248
|
+
const key = path.resolve(file);
|
|
1249
|
+
let edges = context.edges.get(key);
|
|
1250
|
+
if (!edges) {
|
|
1251
|
+
edges = moduleEdgesFromSource(context, file, readSource(context, file));
|
|
1252
|
+
context.edges.set(key, edges);
|
|
1253
|
+
}
|
|
1254
|
+
return edges;
|
|
1255
|
+
}
|
|
1256
|
+
function resolveModuleEdge(context, file, specifier) {
|
|
1257
|
+
return resolveModuleAlias(specifier) ?? resolveImport(context.root, file, specifier, context.workspaceRoot) ?? getBundlerExtensions().resolveRouteDependency(context.root, file, specifier) ?? getCssExtensions().resolveCssDependency(context.root, file, specifier);
|
|
1258
|
+
}
|
|
1259
|
+
function publishedClientImports(context, file) {
|
|
1260
|
+
const source = readSource(context, file);
|
|
1261
|
+
const found = [];
|
|
1262
|
+
for (const edge of scanFacts(file, source).imports) {
|
|
1263
|
+
if (resolveModuleEdge(context, file, edge.specifier))
|
|
1264
|
+
continue;
|
|
1265
|
+
found.push(...publishedClientEdges(context, file, edge.specifier, edge.exports));
|
|
1266
|
+
}
|
|
1267
|
+
return found;
|
|
1268
|
+
}
|
|
1269
|
+
function publishedClientEdges(context, file, specifier, requested) {
|
|
1270
|
+
const cacheKey = `${file}\x00${specifier}\x00${requested.join(",")}`;
|
|
1271
|
+
const cached = context.edges.get(cacheKey);
|
|
1272
|
+
if (cached)
|
|
1273
|
+
return cached;
|
|
1274
|
+
const entry = resolvePublishedEdge(context, file, specifier, "import");
|
|
1275
|
+
const edges = entry ? publishedClientExports(context, entry, requested, new Set) : [];
|
|
1276
|
+
context.edges.set(cacheKey, edges);
|
|
1277
|
+
return edges;
|
|
1278
|
+
}
|
|
1279
|
+
function resolvePublishedEdge(context, file, specifier, kind) {
|
|
1280
|
+
return resolveModuleEdge(context, file, specifier) ?? resolvePackageSpecifier(context.root, file, specifier, [kind, "default"]);
|
|
1281
|
+
}
|
|
1282
|
+
function publishedClientExports(context, file, requested, visiting) {
|
|
1283
|
+
const key = path.resolve(file);
|
|
1284
|
+
if (visiting.has(key) || !fileExists(context, key))
|
|
1285
|
+
return [];
|
|
1286
|
+
visiting.add(key);
|
|
1287
|
+
const source = readSource(context, key);
|
|
1288
|
+
if (hasUseClientDirective(key, source)) {
|
|
1289
|
+
visiting.delete(key);
|
|
1290
|
+
const names = [...scanFacts(key, source).exportNames, ...commonJsRouteExportNames(source)];
|
|
1291
|
+
const exports = requested.filter((name) => names.includes(name));
|
|
1292
|
+
return exports.length > 0 ? [{ file: key, exports }] : [];
|
|
1293
|
+
}
|
|
1294
|
+
const facts = scanFacts(key, source);
|
|
1295
|
+
const found = [];
|
|
1296
|
+
for (const edge of facts.imports) {
|
|
1297
|
+
if (!edge.reexport)
|
|
1298
|
+
continue;
|
|
1299
|
+
const map = { ...esmReexportMap(source, edge.specifier), ...edge.exportMap };
|
|
1300
|
+
const next = edge.star ? requested.filter((name) => name !== "default") : requested.map((name) => map[name]).filter((name) => Boolean(name));
|
|
1301
|
+
const target = resolvePublishedEdge(context, key, edge.specifier, "import");
|
|
1302
|
+
if (target && next.length > 0) {
|
|
1303
|
+
found.push(...publishedClientExports(context, target, next, visiting));
|
|
1304
|
+
}
|
|
1305
|
+
}
|
|
1306
|
+
for (const edge of facts.requires) {
|
|
1307
|
+
const map = commonJsRequireReexportMap(source, edge.specifier);
|
|
1308
|
+
const next = map.star ? requested : requested.map((name) => map.names[name]).filter((name) => Boolean(name));
|
|
1309
|
+
const target = resolvePublishedEdge(context, key, edge.specifier, "require");
|
|
1310
|
+
if (target && next.length > 0) {
|
|
1311
|
+
found.push(...publishedClientExports(context, target, next, visiting));
|
|
1312
|
+
}
|
|
1313
|
+
}
|
|
1314
|
+
visiting.delete(key);
|
|
1315
|
+
return found;
|
|
1316
|
+
}
|
|
1317
|
+
function moduleEdgesFromSource(context, file, source) {
|
|
1318
|
+
const dynamicNames = pnextDynamicImportNames(source, file);
|
|
1319
|
+
assertSupportedDynamicCalls(file, source, dynamicNames);
|
|
1320
|
+
const ordered = [];
|
|
1321
|
+
const facts = scanFacts(file, source);
|
|
1322
|
+
for (const edge of facts.imports) {
|
|
1323
|
+
const resolved = resolveModuleEdge(context, file, edge.specifier);
|
|
1324
|
+
if (!resolved)
|
|
1325
|
+
continue;
|
|
1326
|
+
ordered.push({
|
|
1327
|
+
file: resolved,
|
|
1328
|
+
exports: [...edge.exports],
|
|
1329
|
+
index: edge.index,
|
|
1330
|
+
...edge.star ? { star: true } : {}
|
|
1331
|
+
});
|
|
1332
|
+
}
|
|
1333
|
+
ordered.sort((a, b) => a.index - b.index);
|
|
1334
|
+
const imports = ordered.map(({ index: _index, ...edge }) => edge);
|
|
1335
|
+
for (const imported of dynamicImportEdgesFromSource(context, file, source, dynamicNames))
|
|
1336
|
+
imports.push(imported);
|
|
1337
|
+
return imports;
|
|
1338
|
+
}
|
|
1339
|
+
function esmReexportMap(source, specifier) {
|
|
1340
|
+
const escaped = escapeRegex(specifier);
|
|
1341
|
+
const names = {};
|
|
1342
|
+
const pattern = new RegExp(`\\bexport\\s*\\{([^}]*)\\}\\s*from\\s*["']${escaped}["']`, "g");
|
|
1343
|
+
for (const clause of source.matchAll(pattern)) {
|
|
1344
|
+
for (const item of (clause[1] ?? "").split(",")) {
|
|
1345
|
+
const parts = item.trim().split(/\s+as\s+/);
|
|
1346
|
+
const imported = parts[0]?.trim();
|
|
1347
|
+
const exported = (parts[1] ?? parts[0])?.trim();
|
|
1348
|
+
if (imported && exported && /^[$\w]+$/.test(imported) && /^[$\w]+$/.test(exported)) {
|
|
1349
|
+
names[exported] = imported;
|
|
1350
|
+
}
|
|
1351
|
+
}
|
|
1352
|
+
}
|
|
1353
|
+
return names;
|
|
1354
|
+
}
|
|
1355
|
+
function commonJsRequireReexportMap(source, specifier) {
|
|
1356
|
+
const escaped = escapeRegex(specifier);
|
|
1357
|
+
const names = {};
|
|
1358
|
+
const direct = new RegExp(`exports\\.([A-Za-z_$][\\w$]*)\\s*=\\s*require\\(\\s*["']${escaped}["']\\s*\\)\\.([A-Za-z_$][\\w$]*)`, "g");
|
|
1359
|
+
for (const match of source.matchAll(direct)) {
|
|
1360
|
+
names[match[1]] = match[2];
|
|
1361
|
+
}
|
|
1362
|
+
const binding = new RegExp(`(?:const|let|var)\\s+([A-Za-z_$][\\w$]*)\\s*=\\s*require\\(\\s*["']${escaped}["']\\s*\\)`).exec(source)?.[1];
|
|
1363
|
+
if (binding) {
|
|
1364
|
+
const local = escapeRegex(binding);
|
|
1365
|
+
const assignment = new RegExp(`exports\\.([A-Za-z_$][\\w$]*)\\s*=\\s*${local}\\.([A-Za-z_$][\\w$]*)`, "g");
|
|
1366
|
+
for (const match of source.matchAll(assignment)) {
|
|
1367
|
+
names[match[1]] = match[2];
|
|
1368
|
+
}
|
|
1369
|
+
const getter = new RegExp(`Object\\.defineProperty\\(\\s*exports\\s*,\\s*["']([A-Za-z_$][\\w$]*)["'](?:(?!Object\\.defineProperty)[\\s\\S]){0,300}?return\\s+${local}\\.([A-Za-z_$][\\w$]*)`, "g");
|
|
1370
|
+
for (const match of source.matchAll(getter)) {
|
|
1371
|
+
names[match[1]] = match[2];
|
|
1372
|
+
}
|
|
1373
|
+
const helper = new RegExp(`(?:^|[,\\{])\\s*([A-Za-z_$][\\w$]*)\\s*:\\s*\\(\\s*\\)\\s*=>\\s*${local}\\.([A-Za-z_$][\\w$]*)`, "g");
|
|
1374
|
+
for (const match of source.matchAll(helper)) {
|
|
1375
|
+
names[match[1]] = match[2];
|
|
1376
|
+
}
|
|
1377
|
+
}
|
|
1378
|
+
const star = new RegExp(`module\\.exports\\s*=\\s*(?:require\\(\\s*["']${escaped}["']\\s*\\)|${binding ?? "(?!)"})(?=\\s*(?:;|$))`, "m").test(source);
|
|
1379
|
+
return { names, star };
|
|
1380
|
+
}
|
|
1381
|
+
function commonJsRouteExportNames(source) {
|
|
1382
|
+
return [
|
|
1383
|
+
...new Set([
|
|
1384
|
+
...[...source.matchAll(/\bexports\.([A-Za-z_$][\w$]*)\s*=/g)].map((match) => match[1]),
|
|
1385
|
+
...[
|
|
1386
|
+
...source.matchAll(/\bObject\.defineProperty\(\s*exports\s*,\s*["']([A-Za-z_$][\w$]*)["']/g)
|
|
1387
|
+
].map((match) => match[1])
|
|
1388
|
+
])
|
|
1389
|
+
].filter((name) => name !== "__esModule");
|
|
1390
|
+
}
|
|
1391
|
+
function assertSupportedDynamicCalls(file, source, dynamicNames) {
|
|
1392
|
+
for (const call of dynamicCallsFromSource(source, dynamicNames)) {
|
|
1393
|
+
if (!/\bimport\s*\(/.test(call.source)) {
|
|
1394
|
+
throw new Error(`${file} uses dynamic() without a literal import. PNext supports dynamic('./module') or dynamic(() => import('./module')).`);
|
|
1395
|
+
}
|
|
1396
|
+
if (!/\bimport\s*\(\s*['"][^'"]+['"]\s*\)/.test(call.source)) {
|
|
1397
|
+
throw new Error(`${file} uses a non-literal dynamic import. PNext supports dynamic('./module') or dynamic(() => import('./module')).`);
|
|
1398
|
+
}
|
|
1399
|
+
}
|
|
1400
|
+
}
|
|
1401
|
+
function dynamicImportEdgesFromSource(context, file, source, dynamicNames) {
|
|
1402
|
+
const imports = [];
|
|
1403
|
+
if (dynamicNames.size === 0)
|
|
1404
|
+
return imports;
|
|
1405
|
+
const optionObjects = dynamicOptionObjects(source);
|
|
1406
|
+
for (const fact of dynamicCallFacts(source, file)) {
|
|
1407
|
+
if (!dynamicNames.has(fact.name))
|
|
1408
|
+
continue;
|
|
1409
|
+
const resolved = resolveModuleEdge(context, file, fact.specifier);
|
|
1410
|
+
if (!resolved)
|
|
1411
|
+
continue;
|
|
1412
|
+
imports.push({
|
|
1413
|
+
file: resolved,
|
|
1414
|
+
exports: [fact.exportName],
|
|
1415
|
+
dynamic: dynamicOptionsForFact(source, fact, optionObjects)
|
|
1416
|
+
});
|
|
1417
|
+
}
|
|
1418
|
+
return imports;
|
|
1419
|
+
}
|
|
1420
|
+
function dynamicOptionObjects(source) {
|
|
1421
|
+
const options = new Map;
|
|
1422
|
+
const pattern = /const\s+([A-Za-z_$][\w$]*)\s*=\s*({[\s\S]*?})\s*(?:as\s+const\s*)?;/g;
|
|
1423
|
+
let match;
|
|
1424
|
+
while (match = pattern.exec(source)) {
|
|
1425
|
+
const [, name, objectSource] = match;
|
|
1426
|
+
if (name && objectSource)
|
|
1427
|
+
options.set(name, dynamicOptionsFromSource(objectSource));
|
|
1428
|
+
}
|
|
1429
|
+
return options;
|
|
1430
|
+
}
|
|
1431
|
+
function dynamicOptionsForFact(source, fact, optionObjects) {
|
|
1432
|
+
if (fact.optionsStart === undefined || fact.optionsEnd === undefined)
|
|
1433
|
+
return {};
|
|
1434
|
+
const options = source.slice(fact.optionsStart, fact.optionsEnd);
|
|
1435
|
+
if (/^[A-Za-z_$][\w$]*$/.test(options))
|
|
1436
|
+
return optionObjects.get(options) ?? {};
|
|
1437
|
+
return dynamicOptionsFromSource(options);
|
|
1438
|
+
}
|
|
1439
|
+
function dynamicOptionsFromSource(source) {
|
|
1440
|
+
if (!source)
|
|
1441
|
+
return {};
|
|
1442
|
+
return {
|
|
1443
|
+
...dynamicLoadFromSource(source),
|
|
1444
|
+
...dynamicRootMarginFromSource(source),
|
|
1445
|
+
...dynamicSsrFromSource(source),
|
|
1446
|
+
...dynamicThresholdFromSource(source)
|
|
1447
|
+
};
|
|
1448
|
+
}
|
|
1449
|
+
function dynamicLoadFromSource(source) {
|
|
1450
|
+
const match = /\bload\s*:\s*['"](render|visible)['"]/.exec(source);
|
|
1451
|
+
return match?.[1] === "render" || match?.[1] === "visible" ? { load: match[1] } : {};
|
|
1452
|
+
}
|
|
1453
|
+
function dynamicRootMarginFromSource(source) {
|
|
1454
|
+
const match = /\brootMargin\s*:\s*['"]([^'"]+)['"]/.exec(source);
|
|
1455
|
+
return match?.[1] ? { rootMargin: match[1] } : {};
|
|
1456
|
+
}
|
|
1457
|
+
function dynamicSsrFromSource(source) {
|
|
1458
|
+
const match = /\bssr\s*:\s*(true|false)\b/.exec(source);
|
|
1459
|
+
return match?.[1] ? { ssr: match[1] === "true" } : {};
|
|
1460
|
+
}
|
|
1461
|
+
function dynamicThresholdFromSource(source) {
|
|
1462
|
+
const numberMatch = /\bthreshold\s*:\s*(-?\d+(?:\.\d+)?)/.exec(source);
|
|
1463
|
+
if (numberMatch?.[1])
|
|
1464
|
+
return { threshold: Number(numberMatch[1]) };
|
|
1465
|
+
const arrayMatch = /\bthreshold\s*:\s*\[([^\]]*)\]/.exec(source);
|
|
1466
|
+
if (!arrayMatch?.[1])
|
|
1467
|
+
return {};
|
|
1468
|
+
const threshold = arrayMatch[1].split(",").map((value) => Number(value.trim())).filter(Number.isFinite);
|
|
1469
|
+
return threshold.length > 0 ? { threshold } : {};
|
|
1470
|
+
}
|
|
1471
|
+
function isCssFile(file) {
|
|
1472
|
+
return file.endsWith(".css") || getCssExtensions().extraCssExtensions().some((ext) => file.endsWith(ext));
|
|
1473
|
+
}
|
|
1474
|
+
function isAssetFile(file) {
|
|
1475
|
+
return /\.(css|svg|png|jpe?g|gif|webp|ico|woff2?)$/.test(file) || getCssExtensions().extraCssExtensions().some((ext) => file.endsWith(ext));
|
|
1476
|
+
}
|
|
1477
|
+
function exportsExperimentalPpr(sources) {
|
|
1478
|
+
return sources.some((source) => /\bexport\s+const\s+experimental_ppr\s*=\s*true\b/.test(stripComments(source)));
|
|
1479
|
+
}
|
|
1480
|
+
function usesRequestData(source) {
|
|
1481
|
+
const searchable = stripJsxText(stripCommentsAndStrings(source));
|
|
1482
|
+
return /\b(?:request|searchParams)\b/.test(searchable) || sourceUsesRegisteredRequestApi(source);
|
|
1483
|
+
}
|
|
1484
|
+
function stripJsxText(source) {
|
|
1485
|
+
return source.replace(/>([^<>(){}=;\n]*)</g, (_match, text) => `>${" ".repeat(text.length)}<`);
|
|
1486
|
+
}
|
|
1487
|
+
function dynamicApiLabel(sources, kind) {
|
|
1488
|
+
const joined = sources.map(stripCommentsAndStrings).join(`
|
|
1489
|
+
`);
|
|
1490
|
+
if (/\bconnection\s*\(/.test(joined))
|
|
1491
|
+
return "`connection()`";
|
|
1492
|
+
if (/\bcookies\s*\(/.test(joined))
|
|
1493
|
+
return "`cookies()`";
|
|
1494
|
+
if (/\bheaders\s*\(/.test(joined))
|
|
1495
|
+
return "`headers()`";
|
|
1496
|
+
if (/\bdraftMode\s*\(/.test(joined))
|
|
1497
|
+
return "`draftMode()`";
|
|
1498
|
+
if (kind === "handler") {
|
|
1499
|
+
if (/\.formData\b/.test(joined))
|
|
1500
|
+
return "`request.formData`";
|
|
1501
|
+
if (/\bnextUrl\b/.test(joined))
|
|
1502
|
+
return "`nextUrl.toString`";
|
|
1503
|
+
if (/\brequest\.url\b|\breq\.url\b/.test(joined))
|
|
1504
|
+
return "`request.url`";
|
|
1505
|
+
} else if (/\bsearchParams\b/.test(joined)) {
|
|
1506
|
+
return "`await searchParams`, `searchParams.then`, or similar";
|
|
1507
|
+
}
|
|
1508
|
+
return;
|
|
1509
|
+
}
|
|
1510
|
+
function maxDurationFromSources(sources) {
|
|
1511
|
+
const durations = sources.map((source) => /\bexport\s+const\s+maxDuration\s*=\s*(\d+)\b/.exec(source)?.[1]).filter((value) => Boolean(value)).map((value) => Number(value));
|
|
1512
|
+
return durations.length > 0 ? Math.max(...durations) : undefined;
|
|
1513
|
+
}
|
|
1514
|
+
function usesRevalidationApis(source) {
|
|
1515
|
+
return /\b(?:revalidatePath|revalidateTag|updateTag|expirePath|expireTag|unstable_expirePath|unstable_expireTag)\s*\(/.test(stripCommentsAndStrings(source));
|
|
1516
|
+
}
|
|
1517
|
+
var DESTRUCTURED_PARAM = "<destructured>";
|
|
1518
|
+
function routeHandlerUsesRequest(source) {
|
|
1519
|
+
const withoutComments = stripComments(source);
|
|
1520
|
+
const searchable = stripCommentsAndStrings(source);
|
|
1521
|
+
if (sourceUsesRegisteredRequestApi(source))
|
|
1522
|
+
return true;
|
|
1523
|
+
for (const method of routeHandlerMethods) {
|
|
1524
|
+
for (const params of exportedFunctionParams(withoutComments, method)) {
|
|
1525
|
+
const name = firstParameterName(params);
|
|
1526
|
+
if (name === DESTRUCTURED_PARAM)
|
|
1527
|
+
return true;
|
|
1528
|
+
if (name && referencesName(searchable, name) > 1)
|
|
1529
|
+
return true;
|
|
1530
|
+
}
|
|
1531
|
+
}
|
|
1532
|
+
return false;
|
|
1533
|
+
}
|
|
1534
|
+
function exportedFunctionParams(source, method) {
|
|
1535
|
+
const params = [];
|
|
1536
|
+
const functionPattern = new RegExp(`\\bexport\\s+(?:async\\s+)?function\\s+${method}\\s*\\(([^)]*)\\)`, "g");
|
|
1537
|
+
let match;
|
|
1538
|
+
while (match = functionPattern.exec(source)) {
|
|
1539
|
+
params.push(match[1] ?? "");
|
|
1540
|
+
}
|
|
1541
|
+
const arrowPattern = new RegExp(`\\bexport\\s+const\\s+${method}\\s*(?::[^=]+)?=\\s*(?:async\\s*)?(?:\\(([^)]*)\\)|([A-Za-z_$][\\w$]*))\\s*=>`, "g");
|
|
1542
|
+
while (match = arrowPattern.exec(source)) {
|
|
1543
|
+
params.push(match[1] ?? match[2] ?? "");
|
|
1544
|
+
}
|
|
1545
|
+
return params;
|
|
1546
|
+
}
|
|
1547
|
+
function firstParameterName(params) {
|
|
1548
|
+
const first = params.split(",")[0]?.trim();
|
|
1549
|
+
if (!first)
|
|
1550
|
+
return;
|
|
1551
|
+
if (first.startsWith("{") || first.startsWith("["))
|
|
1552
|
+
return DESTRUCTURED_PARAM;
|
|
1553
|
+
const name = /^\.{3}\s*([A-Za-z_$][\w$]*)/.exec(first)?.[1] ?? /^([A-Za-z_$][\w$]*)/.exec(first)?.[1];
|
|
1554
|
+
return name;
|
|
1555
|
+
}
|
|
1556
|
+
function referencesName(source, name) {
|
|
1557
|
+
const pattern = new RegExp(`\\b${escapeRegex(name)}\\b`, "g");
|
|
1558
|
+
return [...source.matchAll(pattern)].length;
|
|
1559
|
+
}
|
|
1560
|
+
function stripCommentsAndStrings(source) {
|
|
1561
|
+
return stripComments(source).replace(/(['"`])(?:\\[\s\S]|(?!\1)[^\\])*\1/g, "");
|
|
1562
|
+
}
|
|
1563
|
+
function stripComments(source) {
|
|
1564
|
+
return source.replace(/\/\*[\s\S]*?\*\//g, "").replace(/(^|[^:])\/\/.*$/gm, "$1");
|
|
1565
|
+
}
|
|
1566
|
+
function rootFromAppPath(appPath) {
|
|
1567
|
+
const normalized = toPosixPath(appPath);
|
|
1568
|
+
return normalized.endsWith("/src/app") ? path.dirname(path.dirname(appPath)) : path.dirname(appPath);
|
|
1569
|
+
}
|
|
1570
|
+
function clientReference(file, exportName) {
|
|
1571
|
+
return {
|
|
1572
|
+
id: `c-${clientReferenceId(file, exportName)}`,
|
|
1573
|
+
file,
|
|
1574
|
+
exportName
|
|
1575
|
+
};
|
|
1576
|
+
}
|
|
1577
|
+
function routeId(route) {
|
|
1578
|
+
if (route === "/")
|
|
1579
|
+
return "index";
|
|
1580
|
+
return route.split("/").filter(Boolean).map((segment) => {
|
|
1581
|
+
if (segment.startsWith(":") && segment.endsWith("*"))
|
|
1582
|
+
return `catchall-${sanitizeIdPart(segment.slice(1, -1))}`;
|
|
1583
|
+
if (segment.startsWith(":"))
|
|
1584
|
+
return `param-${sanitizeIdPart(segment.slice(1))}`;
|
|
1585
|
+
return sanitizeIdPart(segment);
|
|
1586
|
+
}).join("-");
|
|
1587
|
+
}
|
|
1588
|
+
function sanitizeIdPart(value) {
|
|
1589
|
+
return value.replace(/[^a-zA-Z0-9_-]+/g, "-").replace(/^-+|-+$/g, "") || "route";
|
|
1590
|
+
}
|
|
1591
|
+
function routeRank(route) {
|
|
1592
|
+
const spec = route.route.split("/").filter(Boolean).map((segment) => segment.startsWith(":") ? segment.endsWith("*") ? "2" : "1" : "0").join("");
|
|
1593
|
+
return `${spec}:${route.synthetic ? 1 : 0}:${route.route}`;
|
|
1594
|
+
}
|
|
1595
|
+
function escapeRegex(value) {
|
|
1596
|
+
return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
1597
|
+
}
|
|
1598
|
+
|
|
1599
|
+
export { routeFactsVersion, routeFactsResolved, materializeRouteFacts, materializeRouteFactsPaced, setRouteFactsStore, scanRoutes, addClientEntryReason, collectNotFoundCss, collectFileCss, assertNoServerActionsWithoutCompat };
|