@wular/pnext 0.0.4 → 0.0.7

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.
Files changed (395) hide show
  1. package/README.md +22 -16
  2. package/bin/pnext +6 -1
  3. package/config/lint/base.js +7 -7
  4. package/config/ts/base.json +2 -4
  5. package/config/ts/react.json +2 -6
  6. package/package.json +23 -2
  7. package/reference/compat.md +87 -22
  8. package/reference/config.md +40 -93
  9. package/reference/css.md +42 -33
  10. package/reference/dev.md +26 -33
  11. package/reference/env.md +18 -20
  12. package/reference/getting-started.md +132 -0
  13. package/reference/metadata.md +31 -46
  14. package/reference/navigation.md +65 -105
  15. package/reference/performance.md +21 -142
  16. package/reference/rendering.md +78 -75
  17. package/reference/routing.md +97 -107
  18. package/reference/typegen.md +27 -29
  19. package/src/api/cache.ts +36 -37
  20. package/src/api/client-cache.ts +2 -2
  21. package/src/api/client-navigation.ts +121 -114
  22. package/src/api/dynamic.tsx +58 -55
  23. package/src/api/link.tsx +52 -53
  24. package/src/api/navigation.ts +59 -58
  25. package/src/api/server.ts +152 -144
  26. package/src/api/suspense.ts +4 -4
  27. package/src/cli/adapters/vercel-warm.ts +126 -121
  28. package/src/cli/adapters/vercel.ts +437 -443
  29. package/src/cli/analyze.ts +333 -144
  30. package/src/cli/{named-bin.ts → boot/named-bin.ts} +37 -37
  31. package/src/cli/{boot-trace.ts → boot/trace.ts} +10 -10
  32. package/src/cli/build.ts +976 -978
  33. package/src/cli/create.ts +72 -64
  34. package/src/cli/dev.ts +116 -116
  35. package/src/cli/index.ts +94 -85
  36. package/src/cli/migrate/package-json.ts +73 -71
  37. package/src/cli/migrate/report.ts +32 -33
  38. package/src/cli/migrate/{index.ts → run.ts} +48 -49
  39. package/src/cli/migrate/scan.ts +46 -46
  40. package/src/cli/migrate/spinner.ts +9 -9
  41. package/src/cli/migrate/tsconfig.ts +35 -35
  42. package/src/cli/{server-entry.ts → serve/entry.ts} +57 -57
  43. package/src/cli/{request-pipeline.ts → serve/pipeline.ts} +386 -394
  44. package/src/cli/{serve-ui.ts → serve/ui.ts} +47 -47
  45. package/src/cli/start.ts +65 -66
  46. package/src/{typegen.ts → cli/typegen.ts} +59 -59
  47. package/src/client/build.ts +802 -768
  48. package/src/client/chunk-fold.ts +245 -240
  49. package/src/client/{paths.ts → chunk-name.ts} +6 -6
  50. package/src/client/entry.ts +162 -147
  51. package/src/client/prebuilt.ts +231 -223
  52. package/src/client/profile.ts +29 -29
  53. package/src/client/react-compiler.ts +20 -15
  54. package/src/client/{compat-surface.ts → react-tier.ts} +64 -64
  55. package/src/client/reference-stub.ts +51 -51
  56. package/src/client/reference.ts +19 -19
  57. package/src/{api → client}/router/events.ts +32 -17
  58. package/src/{api → client}/router/history.ts +16 -16
  59. package/src/{api → client}/router/hub.ts +52 -53
  60. package/src/{api/router.ts → client/router/index.ts} +61 -60
  61. package/src/{api → client}/router/policies.ts +24 -24
  62. package/src/{api → client}/router/runtime.ts +2022 -1995
  63. package/src/{api → client}/router/types.ts +98 -98
  64. package/src/compat/actions/client-plugin.ts +42 -43
  65. package/src/compat/actions/client-stub.ts +14 -14
  66. package/src/compat/actions/{action-client.ts → client.ts} +194 -193
  67. package/src/compat/actions/config.ts +63 -64
  68. package/src/compat/actions/detect.ts +68 -68
  69. package/src/compat/actions/discovery.ts +105 -105
  70. package/src/compat/actions/{action-dispatch.ts → dispatch.ts} +277 -274
  71. package/src/compat/actions/early-submit.ts +1 -1
  72. package/src/compat/actions/endpoint.ts +198 -198
  73. package/src/compat/actions/extensions.ts +811 -0
  74. package/src/compat/actions/flight.ts +23 -23
  75. package/src/compat/actions/form-state.ts +34 -34
  76. package/src/compat/actions/hoist.ts +382 -236
  77. package/src/compat/actions/ids.ts +7 -12
  78. package/src/compat/actions/index.ts +8 -8
  79. package/src/compat/actions/instances.ts +46 -46
  80. package/src/compat/actions/origin.ts +47 -48
  81. package/src/compat/actions/protocol.ts +22 -22
  82. package/src/compat/actions/registry.ts +19 -19
  83. package/src/compat/{misc/action-return.ts → actions/return.ts} +60 -57
  84. package/src/compat/actions/rewrite.ts +125 -125
  85. package/src/compat/actions/{action-router.ts → router.ts} +10 -10
  86. package/src/compat/actions/serve.ts +132 -136
  87. package/src/compat/actions/server-tag.ts +4 -4
  88. package/src/compat/actions/{action-shared.ts → shared.ts} +34 -34
  89. package/src/compat/actions/unrecognized-error.ts +4 -4
  90. package/src/compat/{index.ts → aliases.ts} +112 -109
  91. package/src/compat/bundler/bun-externals.ts +18 -18
  92. package/src/compat/bundler/cjs-exports.ts +271 -223
  93. package/src/compat/bundler/config.ts +116 -111
  94. package/src/compat/bundler/externals.ts +12 -12
  95. package/src/compat/bundler/import-meta-url.ts +19 -19
  96. package/src/compat/bundler/modularize-imports.ts +36 -33
  97. package/src/compat/bundler/new-url-asset.ts +22 -24
  98. package/src/compat/bundler/optimize-package-imports.ts +111 -107
  99. package/src/compat/bundler/polyfill.ts +28 -28
  100. package/src/compat/bundler/react-compiler.ts +35 -29
  101. package/src/compat/bundler/react-profiler.tsx +11 -11
  102. package/src/compat/bundler/relay-transform.ts +48 -47
  103. package/src/compat/bundler/require-context.ts +119 -113
  104. package/src/compat/bundler/resolve-extensions.ts +19 -19
  105. package/src/compat/bundler/source-cache.ts +25 -25
  106. package/src/compat/bundler/static-imports.ts +7 -7
  107. package/src/compat/bundler/symlink-imports.ts +46 -46
  108. package/src/compat/bundler/tsconfig-paths.ts +13 -15
  109. package/src/compat/bundler/wasm.ts +58 -60
  110. package/src/compat/bundler/webpack-loaders.ts +254 -241
  111. package/src/compat/bundler/worker.ts +101 -104
  112. package/src/compat/cache/build-flags.ts +29 -29
  113. package/src/compat/cache/build-prerender-errors.ts +40 -44
  114. package/src/compat/cache/custom-handler.ts +60 -53
  115. package/src/compat/cache/fetch-patch.ts +240 -240
  116. package/src/compat/cache/handler.ts +27 -31
  117. package/src/compat/cache/modern-handler.ts +148 -126
  118. package/src/compat/cache/resume-data-cache.ts +47 -45
  119. package/src/compat/cache/revalidate.ts +233 -232
  120. package/src/compat/cache/runtime-error.ts +35 -35
  121. package/src/compat/cache/use-cache-transform.ts +442 -417
  122. package/src/compat/cache/use-cache.ts +650 -614
  123. package/src/compat/cache-control.ts +140 -142
  124. package/src/compat/client/base-path.ts +21 -20
  125. package/src/compat/client/css-order.ts +18 -18
  126. package/src/compat/client/errors/bare-boundary.ts +11 -11
  127. package/src/compat/client/errors/control-flow.ts +23 -23
  128. package/src/compat/client/errors/error-boundary.ts +61 -61
  129. package/src/compat/client/errors/global-error.ts +101 -91
  130. package/src/compat/client/errors/install.ts +71 -72
  131. package/src/compat/client/errors/lazy.ts +23 -23
  132. package/src/compat/client/errors/primitive-throw.ts +47 -45
  133. package/src/compat/client/errors/soft-refresh.ts +4 -4
  134. package/src/compat/client/link-status.ts +33 -33
  135. package/src/compat/client/{nav-compat-runtime.ts → nav-runtime.ts} +20 -20
  136. package/src/compat/client/{nav-compat.ts → nav.ts} +12 -13
  137. package/src/compat/client/navigation-scroll.ts +63 -63
  138. package/src/compat/client/optimistic-routing.ts +93 -88
  139. package/src/compat/client/prefetch-cache.ts +23 -24
  140. package/src/compat/client/route-announcer.ts +35 -35
  141. package/src/compat/client/segment-cache-policy.ts +20 -20
  142. package/src/compat/client/segment-cache.ts +309 -315
  143. package/src/compat/client/segment-prefetch.ts +127 -132
  144. package/src/compat/client/trailing-slash.ts +5 -4
  145. package/src/compat/css/chunking.ts +113 -116
  146. package/src/compat/css/inline-css.ts +21 -21
  147. package/src/compat/css/lightningcss.ts +37 -38
  148. package/src/compat/css/modules.ts +161 -175
  149. package/src/compat/css/nonce.ts +7 -7
  150. package/src/compat/css/sass-plugin.ts +18 -21
  151. package/src/compat/css/sass.ts +150 -152
  152. package/src/compat/css/styled-jsx-runtime.ts +27 -27
  153. package/src/compat/css/styled-jsx.ts +21 -21
  154. package/src/compat/edge-runtime.ts +27 -27
  155. package/src/compat/{adapter → export}/build-complete.ts +72 -75
  156. package/src/compat/export/client.ts +29 -31
  157. package/src/compat/export/{index.ts → emit.ts} +111 -110
  158. package/src/compat/export/standalone.ts +62 -54
  159. package/src/compat/image-optimizer/cache.ts +51 -49
  160. package/src/compat/image-optimizer/detect.ts +52 -52
  161. package/src/compat/image-optimizer/{index.ts → optimize.ts} +189 -194
  162. package/src/compat/image-optimizer/source.ts +77 -80
  163. package/src/compat/lifecycle/after-scope.ts +26 -26
  164. package/src/compat/lifecycle/after.ts +48 -45
  165. package/src/compat/lifecycle/error-funnel.ts +98 -102
  166. package/src/compat/lifecycle/error-serialize.ts +30 -26
  167. package/src/compat/lifecycle/error-ui.ts +67 -32
  168. package/src/compat/lifecycle/instrumentation-client.ts +36 -38
  169. package/src/compat/lifecycle/instrumentation.ts +85 -85
  170. package/src/compat/lifecycle/node-console.ts +11 -11
  171. package/src/compat/lifecycle/testmode.ts +160 -132
  172. package/src/compat/mdx/compile.ts +60 -57
  173. package/src/compat/mdx/plugin.ts +11 -11
  174. package/src/compat/mdx/{next-mdx-stub.ts → stub.ts} +5 -5
  175. package/src/compat/{metadata-route-artifacts.ts → metadata-artifacts.ts} +195 -191
  176. package/src/compat/metadata.ts +75 -81
  177. package/src/compat/next/cache.ts +68 -69
  178. package/src/compat/next/canonical-url.ts +9 -9
  179. package/src/compat/next/client-cache.ts +19 -19
  180. package/src/compat/next/client-navigation.ts +112 -116
  181. package/src/compat/next/client-only.ts +1 -1
  182. package/src/compat/next/client-script.tsx +99 -93
  183. package/src/compat/next/client-server.ts +10 -10
  184. package/src/compat/next/config-loader.ts +176 -173
  185. package/src/compat/next/config.ts +7 -7
  186. package/src/compat/next/constants.cjs +6 -6
  187. package/src/compat/next/constants.ts +6 -6
  188. package/src/compat/next/custom-server.ts +26 -24
  189. package/src/compat/next/dist/client/components/app-router-headers.ts +21 -21
  190. package/src/compat/next/dist/server/app-render/work-unit-async-storage.external.cjs +3 -4
  191. package/src/compat/next/dist/server/web/spec-extension/revalidate.ts +1 -1
  192. package/src/compat/next/dist/server/web/spec-extension/unstable-cache.ts +1 -1
  193. package/src/compat/next/dist/server/web/spec-extension/unstable-no-store.ts +1 -1
  194. package/src/compat/next/dynamic.tsx +21 -18
  195. package/src/compat/next/error.tsx +52 -52
  196. package/src/compat/next/font/cache.ts +74 -74
  197. package/src/compat/next/font/google.ts +2 -2
  198. package/src/compat/next/font/index.ts +1 -1
  199. package/src/compat/next/font/local.ts +3 -3
  200. package/src/compat/next/font/runtime-client.ts +17 -15
  201. package/src/compat/next/font/runtime.ts +443 -408
  202. package/src/compat/next/font/shared.ts +120 -108
  203. package/src/compat/next/form.tsx +63 -63
  204. package/src/compat/next/head.tsx +2 -2
  205. package/src/compat/next/headers.ts +103 -95
  206. package/src/compat/next/image/client.tsx +220 -0
  207. package/src/compat/next/image/config.ts +56 -58
  208. package/src/compat/next/image/optimizer.ts +40 -36
  209. package/src/compat/next/image/patterns.ts +37 -40
  210. package/src/compat/next/{image-props.ts → image/props.ts} +208 -202
  211. package/src/compat/next/image/shared.ts +65 -57
  212. package/src/compat/next/image/static-metadata.ts +98 -107
  213. package/src/compat/next/image/validate.ts +79 -88
  214. package/src/compat/next/image.tsx +19 -23
  215. package/src/compat/next/index.ts +1 -1
  216. package/src/compat/next/legacy-image.tsx +59 -60
  217. package/src/compat/next/{link-validation-transform.ts → link-transform.ts} +95 -96
  218. package/src/compat/next/link.tsx +158 -158
  219. package/src/compat/next/navigation.cjs +12 -3
  220. package/src/compat/next/navigation.ts +48 -50
  221. package/src/compat/next/offline.ts +27 -27
  222. package/src/compat/next/og.ts +121 -124
  223. package/src/compat/next/preferred-region.ts +13 -14
  224. package/src/compat/next/redirects.ts +58 -56
  225. package/src/compat/next/resource-hints.ts +73 -76
  226. package/src/compat/next/rewrites.ts +130 -133
  227. package/src/compat/next/root-params.ts +45 -45
  228. package/src/compat/next/{optimistic-route-state.ts → route-state.ts} +52 -52
  229. package/src/compat/next/router.cjs +4 -2
  230. package/src/compat/next/router.ts +58 -61
  231. package/src/compat/next/script.tsx +108 -108
  232. package/src/compat/next/server-only.ts +1 -1
  233. package/src/compat/next/server.ts +19 -19
  234. package/src/compat/next/svgr.ts +18 -17
  235. package/src/compat/next/telemetry.ts +24 -24
  236. package/src/compat/next/{image-usage.ts → usage.ts} +70 -39
  237. package/src/compat/next/user-agent.ts +53 -49
  238. package/src/compat/next/web-vitals.ts +22 -24
  239. package/src/compat/otel/api.ts +41 -41
  240. package/src/compat/otel/client-trace-metadata.ts +25 -27
  241. package/src/compat/otel/fetch-span.ts +29 -29
  242. package/src/compat/otel/tracer.ts +331 -331
  243. package/src/compat/pages/api.ts +456 -0
  244. package/src/compat/pages/client-plugin.ts +36 -36
  245. package/src/compat/pages/router-state.ts +34 -34
  246. package/src/compat/pages/{index.ts → router.ts} +130 -135
  247. package/src/compat/ppr/io.ts +12 -12
  248. package/src/compat/ppr/missing-root-params.ts +34 -38
  249. package/src/compat/ppr/root-params-scan.ts +66 -66
  250. package/src/compat/ppr/root-params-transform.ts +24 -26
  251. package/src/compat/ppr/root-params.ts +30 -30
  252. package/src/compat/ppr/segment-config-incompat.ts +6 -7
  253. package/src/compat/protocol.ts +71 -70
  254. package/src/compat/react/action-state.ts +47 -48
  255. package/src/compat/react/client-lite.ts +15 -15
  256. package/src/compat/react/client.ts +4 -4
  257. package/src/compat/react/compiler-runtime.ts +11 -11
  258. package/src/compat/react/dom-client.ts +44 -44
  259. package/src/compat/react/dom-react-server.ts +10 -16
  260. package/src/compat/react/dom-server.ts +10 -10
  261. package/src/compat/react/dom.ts +52 -52
  262. package/src/compat/react/hooks-extra.ts +34 -35
  263. package/src/compat/react/parity.ts +64 -61
  264. package/src/compat/react/preact.ts +81 -82
  265. package/src/compat/react/react-server.ts +28 -28
  266. package/src/compat/react/router-shim.ts +1 -1
  267. package/src/compat/react/server-component-use.ts +8 -8
  268. package/src/compat/react/server-inserted-html.ts +30 -31
  269. package/src/compat/react/server.ts +53 -55
  270. package/src/compat/react/use.ts +32 -32
  271. package/src/compat/react/view-transition.ts +20 -20
  272. package/src/compat/register/actions.ts +35 -824
  273. package/src/compat/register/boot.ts +41 -41
  274. package/src/compat/register/build-tier.ts +5 -5
  275. package/src/compat/register/build.ts +74 -70
  276. package/src/compat/register/bundler.ts +161 -156
  277. package/src/compat/register/cache.ts +20 -20
  278. package/src/compat/register/client-errors.ts +3 -3
  279. package/src/compat/register/config.ts +6 -6
  280. package/src/compat/register/css-extras.ts +30 -34
  281. package/src/compat/register/edge-runtime.ts +3 -3
  282. package/src/compat/register/errors.ts +10 -12
  283. package/src/compat/register/export.ts +16 -16
  284. package/src/compat/register/font.ts +11 -11
  285. package/src/compat/register/hooks.ts +2 -2
  286. package/src/compat/register/image.ts +40 -40
  287. package/src/compat/register/index.ts +59 -62
  288. package/src/compat/register/instrumentation-client.ts +10 -10
  289. package/src/compat/register/lifecycle.ts +25 -28
  290. package/src/compat/register/mdx.ts +10 -10
  291. package/src/compat/register/middleware.ts +226 -16
  292. package/src/compat/register/otel.ts +80 -88
  293. package/src/compat/register/pages-api.ts +10 -463
  294. package/src/compat/register/ppr.ts +16 -16
  295. package/src/compat/register/protocol.ts +17 -18
  296. package/src/compat/register/proxy.ts +49 -51
  297. package/src/compat/register/render.ts +79 -76
  298. package/src/compat/register/routing.ts +162 -159
  299. package/src/compat/register/segment.ts +24 -1897
  300. package/src/compat/register/static-image.ts +3 -3
  301. package/src/compat/register/{misc.ts → taint.ts} +9 -9
  302. package/src/compat/register/typed-routes.ts +14 -14
  303. package/src/compat/register/{usecache.ts → use-cache.ts} +39 -39
  304. package/src/compat/register/validation.ts +18 -18
  305. package/src/compat/segment/loading-boundary.ts +43 -45
  306. package/src/compat/segment/page-slot.ts +69 -69
  307. package/src/compat/segment/serve.ts +1884 -0
  308. package/src/compat/segment/tree.ts +113 -112
  309. package/src/compat/segment/vary-key.ts +38 -38
  310. package/src/compat/segment/vary-params.ts +138 -142
  311. package/src/compat/static-params.ts +14 -12
  312. package/src/compat/tsconfig-defaults.ts +87 -91
  313. package/src/compat/typecheck/{index.ts → check.ts} +234 -212
  314. package/src/compat/typecheck/worker.ts +15 -12
  315. package/src/compat/typed-routes/{index.ts → generate.ts} +36 -36
  316. package/src/compat/typed-routes/manifest.ts +174 -170
  317. package/src/compat/typed-routes/typegen.ts +127 -110
  318. package/src/compat/validation/errors.ts +16 -19
  319. package/src/compat/validation/prerender-diagnostics.ts +521 -504
  320. package/src/compat/validation/{index.ts → validate.ts} +647 -648
  321. package/src/compat-bootstrap.ts +16 -16
  322. package/src/config.ts +86 -69
  323. package/src/css/build.ts +230 -227
  324. package/src/css/postcss.ts +79 -80
  325. package/src/css/worker.ts +14 -15
  326. package/src/dev/client-actions.ts +10 -10
  327. package/src/dev/client-chunk-store.ts +27 -27
  328. package/src/dev/{client-key-cache.ts → restart/client-key.ts} +76 -76
  329. package/src/dev/{restart-cache.ts → restart/enabled.ts} +1 -1
  330. package/src/dev/{global-css-cache.ts → restart/global-css.ts} +91 -83
  331. package/src/dev/{node-module-bundle-cache.ts → restart/node-modules.ts} +24 -24
  332. package/src/dev/{route-bundle-key-cache.ts → restart/route-bundle-key.ts} +53 -53
  333. package/src/dev/{route-facts-cache.ts → restart/route-facts.ts} +82 -82
  334. package/src/dev/server.ts +804 -820
  335. package/src/env.ts +46 -43
  336. package/src/extensions.ts +491 -478
  337. package/src/index.ts +8 -8
  338. package/src/internal.ts +20 -23
  339. package/src/{islands → render}/boundary-error.ts +3 -3
  340. package/src/render/hooks.ts +71 -71
  341. package/src/render/island-context.ts +14 -14
  342. package/src/render/metadata.ts +310 -310
  343. package/src/{ppr-postpone.ts → render/postpone.ts} +5 -5
  344. package/src/{ppr.ts → render/ppr.ts} +244 -245
  345. package/src/render/renderer.ts +2087 -2082
  346. package/src/render/resource-hints.ts +16 -17
  347. package/src/render/slots.tsx +224 -235
  348. package/src/{islands → render}/static-children.ts +9 -12
  349. package/src/{islands → render}/static-slots.ts +37 -37
  350. package/src/{cache/context.ts → request/cache.ts} +20 -20
  351. package/src/request/context.ts +107 -107
  352. package/src/{dynamic/source.ts → resolve/dynamic.ts} +139 -139
  353. package/src/resolve/engine.ts +90 -77
  354. package/src/resolve/imports.ts +475 -463
  355. package/src/resolve/scan-facts.ts +318 -296
  356. package/src/resolve/source-text.ts +37 -37
  357. package/src/{dynamic → resolve}/tree-shake.ts +132 -128
  358. package/src/routing/forwarded.ts +19 -19
  359. package/src/routing/handler.ts +84 -91
  360. package/src/routing/href.ts +87 -70
  361. package/src/routing/{metadata.ts → metadata-files.ts} +403 -401
  362. package/src/{proxy.ts → routing/proxy.ts} +306 -312
  363. package/src/routing/{request-runtime.ts → request-environment.ts} +10 -10
  364. package/src/routing/routes.ts +827 -815
  365. package/src/routing/slots.ts +164 -160
  366. package/src/runtime/loader.ts +954 -0
  367. package/src/{dev → runtime}/module-cache.ts +309 -287
  368. package/src/{dev → runtime}/module-generations.ts +9 -9
  369. package/src/{dev → runtime}/module-transform.ts +81 -72
  370. package/src/{dev/imports.ts → runtime/modules.ts} +934 -847
  371. package/src/runtime/{server.ts → vendor-build.ts} +848 -1696
  372. package/src/runtime/vendor.ts +428 -406
  373. package/src/styles.d.ts +9 -0
  374. package/src/types.ts +324 -335
  375. package/src/utils/ansi.ts +5 -5
  376. package/src/utils/{source.ts → code.ts} +15 -12
  377. package/src/utils/content-type.ts +3 -3
  378. package/src/utils/decode.ts +2 -2
  379. package/src/utils/dev-profile.ts +13 -13
  380. package/src/utils/error-log.ts +6 -6
  381. package/src/utils/esbuild.ts +18 -18
  382. package/src/utils/fs-cache.ts +13 -13
  383. package/src/utils/fs.ts +57 -49
  384. package/src/utils/html.ts +20 -24
  385. package/src/utils/native-require.ts +8 -8
  386. package/src/utils/serialize.ts +139 -146
  387. package/src/utils/verbose.ts +18 -18
  388. package/reference/overview.md +0 -35
  389. package/src/cli/analyze-print.ts +0 -181
  390. package/src/compat/middleware/manifest.ts +0 -210
  391. package/src/compat/next/image-client.tsx +0 -215
  392. package/src/compat/next/link-usage.ts +0 -29
  393. package/src/css/index.ts +0 -2
  394. package/src/render/index.ts +0 -1
  395. package/src/style-modules.d.ts +0 -9
@@ -8,8 +8,8 @@
8
8
  // Safe in a pure-core app: the seam only overrides core's generic asset module for recognized image
9
9
  // extensions; everything else falls through.
10
10
 
11
- import { setAssetExtensions } from '../../extensions';
12
- import { staticImageModule } from '../next/image/static-metadata';
11
+ import { setAssetExtensions } from '../../extensions'
12
+ import { staticImageModule } from '../next/image/static-metadata'
13
13
 
14
14
  export function registerStaticImageExtensions(): void {
15
15
  setAssetExtensions({
@@ -17,5 +17,5 @@ export function registerStaticImageExtensions(): void {
17
17
  staticAssetRelativePath: ({ base, hash, ext }) =>
18
18
  ['_next', 'static', 'media', `${base}.${hash}${ext}`].join('/'),
19
19
  staticAssetModule: staticImageModule,
20
- });
20
+ })
21
21
  }
@@ -8,25 +8,25 @@
8
8
  // Kept as an explicit registrar rather than nothing, so future misc features that DO need a registry
9
9
  // have an owned place to register without touching another file.
10
10
 
11
- import type { ResolvedConfig } from '../../config';
12
- import { taintObjectReference } from '../../utils/serialize';
13
- import { getNextConfig } from '../next/config-loader';
11
+ import type { ResolvedConfig } from '../../config'
12
+ import { taintObjectReference } from '../../utils/serialize'
13
+ import { getNextConfig } from '../next/config-loader'
14
14
 
15
15
  // Next's `experimental.taint` message for a `process.env` reference reaching a
16
16
  // client component (asserted verbatim by test/e2e/app-dir/taint in dev; prod
17
17
  // sees the redacted React #441 text via the normal boundary error path).
18
18
  const PROCESS_ENV_TAINT_MESSAGE =
19
- 'Do not pass process.env to Client Components since it will leak sensitive data';
19
+ 'Do not pass process.env to Client Components since it will leak sensitive data'
20
20
 
21
21
  // Prod redacts every RSC serialization error to React's minified #441 text
22
22
  // (test/e2e/app-dir/taint asserts this verbatim for a production build).
23
23
  const REDACTED_RSC_ERROR_MESSAGE =
24
- 'Minified React error #441; visit https://react.dev/errors/441 for the full message or use the non-minified dev environment for full errors and additional helpful warnings.';
24
+ 'Minified React error #441; visit https://react.dev/errors/441 for the full message or use the non-minified dev environment for full errors and additional helpful warnings.'
25
25
 
26
26
  export function registerMiscExtensions(_config: ResolvedConfig): void {
27
27
  // No registry wiring required for the current misc cluster; behavior is
28
28
  // activated via direct imports in the action endpoint + client runtime.
29
- registerTaintedReferences();
29
+ registerTaintedReferences()
30
30
  }
31
31
 
32
32
  /**
@@ -35,10 +35,10 @@ export function registerMiscExtensions(_config: ResolvedConfig): void {
35
35
  * IS that object throw.
36
36
  */
37
37
  function registerTaintedReferences(): void {
38
- const experimental = getNextConfig().experimental as { taint?: unknown } | undefined;
39
- if (experimental?.taint !== true) return;
38
+ const experimental = getNextConfig().experimental as { taint?: unknown } | undefined
39
+ if (experimental?.taint !== true) return
40
40
  taintObjectReference(
41
41
  { dev: PROCESS_ENV_TAINT_MESSAGE, prod: REDACTED_RSC_ERROR_MESSAGE },
42
42
  process.env,
43
- );
43
+ )
44
44
  }
@@ -3,33 +3,33 @@
3
3
  // `<root>/.next/types/{routes.d.ts,link.d.ts,validator.ts}`. Runs during a build under compat.next;
4
4
  // pure-core apps register nothing.
5
5
 
6
- import type { ResolvedConfig } from '../../config';
6
+ import type { ResolvedConfig } from '../../config'
7
7
  import {
8
8
  registerBuildParallelPhases,
9
9
  registerBuildSteps,
10
10
  type BuildStepContext,
11
- } from '../../extensions';
12
- import type { RouteManifestEntry } from '../../types';
13
- import { nextCompatEnabled } from '../index';
14
- import { writeTsconfigDefaults } from '../tsconfig-defaults';
15
- import { typecheckDisabled, validateTypesOffThread } from '../typecheck';
16
- import { generateTypedRoutes } from '../typed-routes';
11
+ } from '../../extensions'
12
+ import type { RouteManifestEntry } from '../../types'
13
+ import { nextCompatEnabled } from '../aliases'
14
+ import { writeTsconfigDefaults } from '../tsconfig-defaults'
15
+ import { typecheckDisabled, validateTypesOffThread } from '../typecheck/check'
16
+ import { generateTypedRoutes } from '../typed-routes/generate'
17
17
 
18
18
  export function registerTypedRoutesExtensions(_config: ResolvedConfig): void {
19
- registerBuildSteps(runTypedRoutesBuildStep);
19
+ registerBuildSteps(runTypedRoutesBuildStep)
20
20
  }
21
21
 
22
22
  async function runTypedRoutesBuildStep(ctx: BuildStepContext): Promise<void> {
23
- if (!nextCompatEnabled(ctx.config)) return;
24
- await writeTsconfigDefaults(ctx.config);
25
- await generateTypedRoutes(ctx.config, ctx.routes as RouteManifestEntry[]);
23
+ if (!nextCompatEnabled(ctx.config)) return
24
+ await writeTsconfigDefaults(ctx.config)
25
+ await generateTypedRoutes(ctx.config, ctx.routes as RouteManifestEntry[])
26
26
  // The typecheck reads only files that already exist on disk, so it runs on a worker thread
27
27
  // alongside client bundling and prerendering rather than ahead of them; the CLI awaits it before
28
28
  // the summary. A build that disables it reports no line at all.
29
- if (typecheckDisabled()) return;
30
- const startedAt = performance.now();
29
+ if (typecheckDisabled()) return
30
+ const startedAt = performance.now()
31
31
  registerBuildParallelPhases({
32
32
  name: 'Typecheck',
33
33
  run: validateTypesOffThread(ctx.config).then(() => performance.now() - startedAt),
34
- });
34
+ })
35
35
  }
@@ -14,8 +14,8 @@
14
14
  // lazy-static MISS responses. Emitting it for pure static HITs needs the route's cacheLife persisted in
15
15
  // the build manifest and read by the static-serve path in src/cli/start.ts.
16
16
 
17
- import type { ResolvedConfig } from '../../config';
18
- import { nextCompatEnabled } from '../../compat';
17
+ import type { ResolvedConfig } from '../../config'
18
+ import { nextCompatEnabled } from '../../compat/aliases'
19
19
  import {
20
20
  onExtensionHostReset,
21
21
  registerBuildCompleteHooks,
@@ -23,32 +23,32 @@ import {
23
23
  registerResponseFinalizers,
24
24
  type ResponseFinalizer,
25
25
  type ResponseFinalizerContext,
26
- } from '../../extensions';
26
+ } from '../../extensions'
27
27
  import {
28
28
  setUseCacheFillTimeout,
29
29
  setUseCacheRootParamNames,
30
30
  takeCacheLifeStash,
31
- } from '../cache/use-cache';
32
- import { scanRootParams } from '../ppr/root-params-scan';
31
+ } from '../cache/use-cache'
32
+ import { scanRootParams } from '../ppr/root-params-scan'
33
33
  import {
34
34
  beginPrerenderErrorCollection,
35
35
  endPrerenderErrorCollection,
36
- } from '../cache/build-prerender-errors';
37
- import { getNextConfig } from '../next/config-loader';
36
+ } from '../cache/build-prerender-errors'
37
+ import { getNextConfig } from '../next/config-loader'
38
38
 
39
39
  // Route kinds a `use cache` page/handler can be served as.
40
40
  const CACHEABLE_ROUTE_KINDS = new Set<ResponseFinalizerContext['routeKind']>([
41
41
  'html',
42
42
  'data',
43
43
  'route-handler',
44
- ]);
44
+ ])
45
45
 
46
46
  const useCacheHeaderFinalizer: ResponseFinalizer = ctx => {
47
- const life = takeCacheLifeStash();
48
- if (!life) return;
49
- if (!CACHEABLE_ROUTE_KINDS.has(ctx.routeKind)) return;
47
+ const life = takeCacheLifeStash()
48
+ if (!life) return
49
+ if (!CACHEABLE_ROUTE_KINDS.has(ctx.routeKind)) return
50
50
 
51
- const { revalidateSeconds, expireSeconds, staleSeconds } = life;
51
+ const { revalidateSeconds, expireSeconds, staleSeconds } = life
52
52
 
53
53
  // SWR cache-control: s-maxage = revalidate, stale-while-revalidate =
54
54
  // expire − revalidate. Emitted only when a revalidate window is known and no
@@ -58,8 +58,8 @@ const useCacheHeaderFinalizer: ResponseFinalizer = ctx => {
58
58
  expireSeconds !== undefined &&
59
59
  !ctx.headers.has('cache-control')
60
60
  ) {
61
- const swr = Math.max(0, expireSeconds - revalidateSeconds);
62
- ctx.headers.set('cache-control', `s-maxage=${revalidateSeconds}, stale-while-revalidate=${swr}`);
61
+ const swr = Math.max(0, expireSeconds - revalidateSeconds)
62
+ ctx.headers.set('cache-control', `s-maxage=${revalidateSeconds}, stale-while-revalidate=${swr}`)
63
63
  }
64
64
 
65
65
  // x-nextjs-stale-time drives the client router's cache staleness window.
@@ -67,24 +67,24 @@ const useCacheHeaderFinalizer: ResponseFinalizer = ctx => {
67
67
  // mode-derived default, but the live render's own cacheLife is authoritative
68
68
  // (the header is internal — never user-supplied — so overwriting is safe).
69
69
  if (staleSeconds !== undefined) {
70
- ctx.headers.set('x-nextjs-stale-time', String(staleSeconds));
70
+ ctx.headers.set('x-nextjs-stale-time', String(staleSeconds))
71
71
  }
72
- };
72
+ }
73
73
 
74
- let registered = false;
74
+ let registered = false
75
75
  // Host-scoped guard: a fresh host must be registered into again.
76
- onExtensionHostReset(() => (registered = false));
76
+ onExtensionHostReset(() => (registered = false))
77
77
 
78
78
  export function registerUseCacheExtensions(config: ResolvedConfig): void {
79
- if (registered) return;
80
- if (!nextCompatEnabled(config)) return;
81
- registered = true;
82
- registerResponseFinalizers(useCacheHeaderFinalizer);
79
+ if (registered) return
80
+ if (!nextCompatEnabled(config)) return
81
+ registered = true
82
+ registerResponseFinalizers(useCacheHeaderFinalizer)
83
83
 
84
84
  // Seed the root-param NAME set for cache-key participation (Stage B-3): a
85
85
  // `use cache` entry's conservative first-call key may only discriminate by
86
86
  // root params, so the runtime needs the scanned names at build AND serve.
87
- setUseCacheRootParamNames(scanRootParams(config.appPath));
87
+ setUseCacheRootParamNames(scanRootParams(config.appPath))
88
88
 
89
89
  // Arm `use cache` build-time validation for this build's prerender pass.
90
90
  // Registered as a build STEP so it runs before any page is prerendered; the
@@ -93,32 +93,32 @@ export function registerUseCacheExtensions(config: ResolvedConfig): void {
93
93
  registerBuildSteps(ctx => {
94
94
  if (nextCompatEnabled(ctx.config)) {
95
95
  const config = getNextConfig() as {
96
- experimental?: { useCacheTimeout?: number };
97
- staticPageGenerationTimeout?: number;
98
- };
99
- const configured = config.experimental?.useCacheTimeout;
100
- const staticTimeout = config.staticPageGenerationTimeout;
96
+ experimental?: { useCacheTimeout?: number }
97
+ staticPageGenerationTimeout?: number
98
+ }
99
+ const configured = config.experimental?.useCacheTimeout
100
+ const staticTimeout = config.staticPageGenerationTimeout
101
101
  // Next clamps the build-time `use cache` fill timeout to just under the
102
102
  // page-generation timeout (1s buffer before the build worker kills the
103
103
  // page), so a slow fill fails via the clamp rather than the worker.
104
- const baseMs = typeof configured === 'number' ? configured * 1000 : 50_000;
104
+ const baseMs = typeof configured === 'number' ? configured * 1000 : 50_000
105
105
  const clampMs =
106
106
  typeof staticTimeout === 'number' && staticTimeout > 1
107
107
  ? (staticTimeout - 1) * 1000
108
- : undefined;
109
- const fillMs = clampMs !== undefined ? Math.min(baseMs, clampMs) : baseMs;
110
- setUseCacheFillTimeout(fillMs);
111
- beginPrerenderErrorCollection();
108
+ : undefined
109
+ const fillMs = clampMs !== undefined ? Math.min(baseMs, clampMs) : baseMs
110
+ setUseCacheFillTimeout(fillMs)
111
+ beginPrerenderErrorCollection()
112
112
  }
113
- return Promise.resolve();
114
- });
113
+ return Promise.resolve()
114
+ })
115
115
 
116
116
  // After prerendering, surface any recorded `use cache` violations. Each is
117
117
  // printed with Next's exact error text plus the "Error occurred prerendering
118
118
  // page" line the e2e suites grep for, then the build is aborted (exit 1).
119
119
  registerBuildCompleteHooks(ctx => {
120
- const errors = endPrerenderErrorCollection();
121
- if (!nextCompatEnabled(ctx.config) || errors.length === 0) return Promise.resolve();
120
+ const errors = endPrerenderErrorCollection()
121
+ if (!nextCompatEnabled(ctx.config) || errors.length === 0) return Promise.resolve()
122
122
  // Messages were already printed at detection time (see recordPrerenderError);
123
123
  // the hook only forces the non-zero exit for builds that otherwise completed
124
124
  // (a swallowed hanging timeout or a caught searchParams access).
@@ -126,6 +126,6 @@ export function registerUseCacheExtensions(config: ResolvedConfig): void {
126
126
  `pnext build: ${errors.length} "use cache" validation error${
127
127
  errors.length === 1 ? '' : 's'
128
128
  } (see above)`,
129
- );
130
- });
129
+ )
130
+ })
131
131
  }
@@ -7,50 +7,50 @@
7
7
  // The step is ordered FIRST among build steps (registered before action discovery) so validation fails
8
8
  // fast, before any bundling or prerender work. Registration is idempotent and no-op for pure-core apps.
9
9
 
10
- import type { ResolvedConfig } from '../../config';
11
- import { nextCompatEnabled } from '../../compat';
10
+ import type { ResolvedConfig } from '../../config'
11
+ import { nextCompatEnabled } from '../../compat/aliases'
12
12
  import {
13
13
  onExtensionHostReset,
14
14
  registerBuildSteps,
15
15
  setBuildCompatExtensions,
16
16
  type BuildStep,
17
- } from '../../extensions';
18
- import type { RouteManifestEntry } from '../../types';
19
- import { writeBuildFlags } from '../cache/build-flags';
20
- import { validateBuild } from '../validation';
17
+ } from '../../extensions'
18
+ import type { RouteManifestEntry } from '../../types'
19
+ import { writeBuildFlags } from '../cache/build-flags'
20
+ import { validateBuild } from '../validation/validate'
21
21
  import {
22
22
  diagnoseCacheComponentsPrerender,
23
23
  diagnosticLeadsWithErrorLine,
24
24
  prerenderFailureFooter,
25
- } from '../validation/prerender-diagnostics';
25
+ } from '../validation/prerender-diagnostics'
26
26
 
27
- let registered = false;
27
+ let registered = false
28
28
  // Host-scoped guard: a fresh host must be registered into again.
29
- onExtensionHostReset(() => (registered = false));
29
+ onExtensionHostReset(() => (registered = false))
30
30
 
31
31
  export function registerValidationExtensions(config: ResolvedConfig): void {
32
- if (registered) return;
33
- if (!nextCompatEnabled(config)) return;
34
- registered = true;
32
+ if (registered) return
33
+ if (!nextCompatEnabled(config)) return
34
+ registered = true
35
35
 
36
36
  const step: BuildStep = async ctx => {
37
37
  // Runtime compat gate: the extension registry is process-global, so once any compat.next build
38
38
  // registers this step it stays registered for every later buildProject() in the same process -
39
39
  // including pure-core fixtures that legitimately have no root layout. Re-check enablement per build so
40
40
  // validation only runs for the app that actually enabled compat.next.
41
- if (!nextCompatEnabled(ctx.config)) return;
41
+ if (!nextCompatEnabled(ctx.config)) return
42
42
  await ctx.log.step('validate build', () =>
43
43
  Promise.resolve(validateBuild(ctx.config, ctx.routes as RouteManifestEntry[])),
44
- );
45
- };
44
+ )
45
+ }
46
46
  // Gate step: validation diagnostics must beat any error the invalid app would
47
47
  // otherwise raise first from bundling or the not-found prerender.
48
- step.gate = true;
49
- registerBuildSteps(step);
48
+ step.gate = true
49
+ registerBuildSteps(step)
50
50
  setBuildCompatExtensions({
51
51
  diagnoseCacheComponentsPrerender,
52
52
  diagnosticLeadsWithErrorLine,
53
53
  prerenderFailureFooter,
54
54
  recordBuildFlags: writeBuildFlags,
55
- });
55
+ })
56
56
  }
@@ -9,8 +9,9 @@
9
9
  // must be imported from `react` AND used as JSX in the scanned source. Missing a boundary only leaves the
10
10
  // route on today's segment-miss path, so false negatives are the safe direction.
11
11
 
12
- import { existsSync, readFileSync, statSync } from 'node:fs';
13
- import path from 'node:path';
12
+ import { existsSync, readFileSync, statSync } from 'node:fs'
13
+ import path from 'node:path'
14
+ import { escapeRegex as escapeRegExp } from '../../utils/code'
14
15
 
15
16
  /**
16
17
  * True when the route's PAGE file wraps content in a React `<Suspense>`.
@@ -22,44 +23,45 @@ import path from 'node:path';
22
23
  * bound keeps a cyclic re-export from looping) before scanning.
23
24
  */
24
25
  export function pageHasInPageSuspense(file: string): boolean {
25
- return scanSourceOf(file, 2).some(sourceHasInPageSuspense);
26
+ return scanSourceOf(file, 2).some(sourceHasInPageSuspense)
26
27
  }
27
28
 
28
29
  /** `file`'s source plus the sources of its relative re-export targets. */
29
30
  function scanSourceOf(file: string, depth: number, seen = new Set<string>()): string[] {
30
- const resolved = resolveSourceFile(file);
31
- if (resolved === null || seen.has(resolved)) return [];
32
- seen.add(resolved);
33
- let source: string;
31
+ const resolved = resolveSourceFile(file)
32
+ if (resolved === null || seen.has(resolved)) return []
33
+ seen.add(resolved)
34
+ let source: string
34
35
  try {
35
- source = readFileSync(resolved, 'utf8');
36
+ source = readFileSync(resolved, 'utf8')
36
37
  } catch {
37
- return [];
38
+ return []
38
39
  }
39
- const sources = [source];
40
- if (depth <= 0) return sources;
41
- const pattern = /(?:export|import)\s+(?:\*(?:\s+as\s+[\w$]+)?|\{[^}]*\})\s+from\s*['"](\.[^'"]+)['"]/g;
42
- let match: RegExpExecArray | null;
40
+ const sources = [source]
41
+ if (depth <= 0) return sources
42
+ const pattern =
43
+ /(?:export|import)\s+(?:\*(?:\s+as\s+[\w$]+)?|\{[^}]*\})\s+from\s*['"](\.[^'"]+)['"]/g
44
+ let match: RegExpExecArray | null
43
45
  while ((match = pattern.exec(source)) !== null) {
44
- const specifier = match[1];
45
- if (!specifier) continue;
46
- sources.push(...scanSourceOf(path.resolve(path.dirname(resolved), specifier), depth - 1, seen));
46
+ const specifier = match[1]
47
+ if (!specifier) continue
48
+ sources.push(...scanSourceOf(path.resolve(path.dirname(resolved), specifier), depth - 1, seen))
47
49
  }
48
- return sources;
50
+ return sources
49
51
  }
50
52
 
51
53
  /** `file` itself, or the first existing extension/index candidate for it. */
52
54
  function resolveSourceFile(file: string): string | null {
53
- if (existsSync(file) && statSync(file).isFile()) return file;
55
+ if (existsSync(file) && statSync(file).isFile()) return file
54
56
  for (const extension of SOURCE_EXTENSIONS) {
55
57
  for (const candidate of [`${file}${extension}`, path.join(file, `index${extension}`)]) {
56
- if (existsSync(candidate)) return candidate;
58
+ if (existsSync(candidate)) return candidate
57
59
  }
58
60
  }
59
- return null;
61
+ return null
60
62
  }
61
63
 
62
- const SOURCE_EXTENSIONS = ['.tsx', '.ts', '.jsx', '.js', '.mjs', '.cjs'];
64
+ const SOURCE_EXTENSIONS = ['.tsx', '.ts', '.jsx', '.js', '.mjs', '.cjs']
63
65
 
64
66
  /**
65
67
  * True when `source` imports `Suspense` from React and uses it as a JSX element. Comments are stripped
@@ -67,47 +69,43 @@ const SOURCE_EXTENSIONS = ['.tsx', '.ts', '.jsx', '.js', '.mjs', '.cjs'];
67
69
  * named import and the namespace/default form are recognized.
68
70
  */
69
71
  export function sourceHasInPageSuspense(source: string): boolean {
70
- const stripped = stripComments(source);
71
- const clauses = reactImportClauses(stripped);
72
- if (clauses.length === 0) return false;
73
- const named = clauses.some(clause => /\bSuspense\b/.test(clause));
74
- if (named && /<\s*Suspense[\s/>]/.test(stripped)) return true;
72
+ const stripped = stripComments(source)
73
+ const clauses = reactImportClauses(stripped)
74
+ if (clauses.length === 0) return false
75
+ const named = clauses.some(clause => /\bSuspense\b/.test(clause))
76
+ if (named && /<\s*Suspense[\s/>]/.test(stripped)) return true
75
77
  // `<React.Suspense>` / `<Foo.Suspense>` needs a default or namespace binding
76
78
  // of the react module under that name.
77
79
  return namespaceBindings(clauses).some(name =>
78
80
  new RegExp(`<\\s*${escapeRegExp(name)}\\.Suspense[\\s/>]`).test(stripped),
79
- );
81
+ )
80
82
  }
81
83
 
82
84
  /** The import clauses of every `... from 'react'` statement in `source`. */
83
85
  function reactImportClauses(source: string): string[] {
84
- const clauses: string[] = [];
85
- const pattern = /import\s+([^'"]*?)\s+from\s*['"]react['"]/g;
86
- let match: RegExpExecArray | null;
87
- while ((match = pattern.exec(source)) !== null) clauses.push(match[1] ?? '');
86
+ const clauses: string[] = []
87
+ const pattern = /import\s+([^'"]*?)\s+from\s*['"]react['"]/g
88
+ let match: RegExpExecArray | null
89
+ while ((match = pattern.exec(source)) !== null) clauses.push(match[1] ?? '')
88
90
  // `const React = require('react')` — the CJS form app code still uses.
89
- const cjs = /(?:const|let|var)\s+([\w$]+)\s*=\s*require\(\s*['"]react['"]\s*\)/g;
90
- while ((match = cjs.exec(source)) !== null) clauses.push(`* as ${match[1] ?? ''}`);
91
- return clauses;
91
+ const cjs = /(?:const|let|var)\s+([\w$]+)\s*=\s*require\(\s*['"]react['"]\s*\)/g
92
+ while ((match = cjs.exec(source)) !== null) clauses.push(`* as ${match[1] ?? ''}`)
93
+ return clauses
92
94
  }
93
95
 
94
96
  /** Names bound to the whole react module by an import clause (default/namespace). */
95
97
  function namespaceBindings(clauses: readonly string[]): string[] {
96
- const names: string[] = [];
98
+ const names: string[] = []
97
99
  for (const clause of clauses) {
98
- const namespace = /\*\s+as\s+([\w$]+)/.exec(clause);
99
- if (namespace?.[1]) names.push(namespace[1]);
100
+ const namespace = /\*\s+as\s+([\w$]+)/.exec(clause)
101
+ if (namespace?.[1]) names.push(namespace[1])
100
102
  // A default binding precedes any `{ ... }` named list.
101
- const fallback = /^\s*([\w$]+)\s*(?:,|$)/.exec(clause.split('{')[0] ?? '');
102
- if (fallback?.[1] && fallback[1] !== '*') names.push(fallback[1]);
103
+ const fallback = /^\s*([\w$]+)\s*(?:,|$)/.exec(clause.split('{')[0] ?? '')
104
+ if (fallback?.[1] && fallback[1] !== '*') names.push(fallback[1])
103
105
  }
104
- return names;
106
+ return names
105
107
  }
106
108
 
107
109
  function stripComments(source: string): string {
108
- return source.replace(/\/\*[\s\S]*?\*\//g, '').replace(/(^|[^:])\/\/.*$/gm, '$1');
109
- }
110
-
111
- function escapeRegExp(value: string): string {
112
- return value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
110
+ return source.replace(/\/\*[\s\S]*?\*\//g, '').replace(/(^|[^:])\/\/.*$/gm, '$1')
113
111
  }