Fixes performance problems due to TaskScopes (#55721)
### What? see https://github.com/vercel/turbo/pull/5992 ### Turobopack changes * https://github.com/vercel/turbo/pull/6009 <!-- OJ Kwon - ci(workflow): update test filter --> * https://github.com/vercel/turbo/pull/6026 <!-- Will Binns-Smith - Remove next-dev references and benchmarks --> * https://github.com/vercel/turbo/pull/6038 <!-- Tim Neutkens - Remove test-prod action --> * https://github.com/vercel/turbo/pull/6039 <!-- Tim Neutkens - Fix action dependency --> * ~https://github.com/vercel/turbo/pull/6036~ <!-- Will Binns-Smith - Turbopack: add support for an asset prefix (and basePath in Next.js) --> * https://github.com/vercel/turbo/pull/5992 <!-- Tobias Koppers - refactor TaskScopes to use an aggregation tree --> Closes WEB-1622
This commit is contained in:
parent
b689f84600
commit
cd70065bad
15 changed files with 444 additions and 313 deletions
167
Cargo.lock
generated
167
Cargo.lock
generated
|
@ -321,7 +321,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "auto-hash-map"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230922.3#ad585d32fed92986a4458fd47db2f50f1a3cba75"
|
||||
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230928.3#60636fb4555f215abfbbfcb022f46f2907a7c979"
|
||||
dependencies = [
|
||||
"serde",
|
||||
]
|
||||
|
@ -886,16 +886,6 @@ version = "0.2.3"
|
|||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "67ba02a97a2bd10f4b59b25c7973101c79642302776489e030cd13cdab09ed15"
|
||||
|
||||
[[package]]
|
||||
name = "codespan-reporting"
|
||||
version = "0.11.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e"
|
||||
dependencies = [
|
||||
"termcolor",
|
||||
"unicode-width",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "color_quant"
|
||||
version = "1.1.0"
|
||||
|
@ -1004,9 +994,9 @@ checksum = "fbdcdcb6d86f71c5e97409ad45898af11cbc995b4ee8112d59095a28d376c935"
|
|||
|
||||
[[package]]
|
||||
name = "const_fn_assert"
|
||||
version = "0.1.3+deprecated"
|
||||
version = "0.1.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "7c773f3d54b8826857668aafa3bfe14bd179911a5b571b241e192cac1ec1c0b5"
|
||||
checksum = "27d614f23f34f7b5165a77dc1591f497e2518f9cec4b4f4b92bfc4dc6cf7a190"
|
||||
|
||||
[[package]]
|
||||
name = "const_format"
|
||||
|
@ -1345,50 +1335,6 @@ dependencies = [
|
|||
"syn 2.0.32",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "cxx"
|
||||
version = "1.0.94"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "f61f1b6389c3fe1c316bf8a4dccc90a38208354b330925bce1f74a6c4756eb93"
|
||||
dependencies = [
|
||||
"cc",
|
||||
"cxxbridge-flags",
|
||||
"cxxbridge-macro",
|
||||
"link-cplusplus",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "cxx-build"
|
||||
version = "1.0.94"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "12cee708e8962df2aeb38f594aae5d827c022b6460ac71a7a3e2c3c2aae5a07b"
|
||||
dependencies = [
|
||||
"cc",
|
||||
"codespan-reporting",
|
||||
"once_cell",
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"scratch",
|
||||
"syn 2.0.32",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "cxxbridge-flags"
|
||||
version = "1.0.94"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "7944172ae7e4068c533afbb984114a56c46e9ccddda550499caa222902c7f7bb"
|
||||
|
||||
[[package]]
|
||||
name = "cxxbridge-macro"
|
||||
version = "1.0.94"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "2345488264226bf682893e25de0769f3360aac9957980ec49361b083ddaa5bc5"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.32",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "darling"
|
||||
version = "0.14.4"
|
||||
|
@ -2425,12 +2371,11 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "iana-time-zone-haiku"
|
||||
version = "0.1.1"
|
||||
version = "0.1.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "0703ae284fc167426161c2e3f1da3ea71d94b21bedbcc9494e92b28e334e3dca"
|
||||
checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f"
|
||||
dependencies = [
|
||||
"cxx",
|
||||
"cxx-build",
|
||||
"cc",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -2934,15 +2879,6 @@ dependencies = [
|
|||
"syn 1.0.109",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "link-cplusplus"
|
||||
version = "1.0.8"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "ecd207c9c713c34f95a097a5b029ac2ce6010530c7b49d7fea24d977dede04f5"
|
||||
dependencies = [
|
||||
"cc",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "linked-hash-map"
|
||||
version = "0.5.6"
|
||||
|
@ -3574,7 +3510,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "node-file-trace"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230922.3#ad585d32fed92986a4458fd47db2f50f1a3cba75"
|
||||
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230928.3#60636fb4555f215abfbbfcb022f46f2907a7c979"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"serde",
|
||||
|
@ -4521,6 +4457,26 @@ dependencies = [
|
|||
"thiserror",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "ref-cast"
|
||||
version = "1.0.20"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "acde58d073e9c79da00f2b5b84eed919c8326832648a5b109b3fce1bb1175280"
|
||||
dependencies = [
|
||||
"ref-cast-impl",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "ref-cast-impl"
|
||||
version = "1.0.20"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "7f7473c2cfcf90008193dd0e3e16599455cb601a9fce322b5bb55de799664925"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.32",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "regalloc2"
|
||||
version = "0.5.1"
|
||||
|
@ -4859,12 +4815,6 @@ version = "1.2.0"
|
|||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
|
||||
|
||||
[[package]]
|
||||
name = "scratch"
|
||||
version = "1.0.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "1792db035ce95be60c3f8853017b3999209281c24e2ba5bc8e59bf97a0c590c1"
|
||||
|
||||
[[package]]
|
||||
name = "sct"
|
||||
version = "0.7.0"
|
||||
|
@ -7381,7 +7331,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "turbo-tasks"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230922.3#ad585d32fed92986a4458fd47db2f50f1a3cba75"
|
||||
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230928.3#60636fb4555f215abfbbfcb022f46f2907a7c979"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"async-trait",
|
||||
|
@ -7413,7 +7363,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "turbo-tasks-build"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230922.3#ad585d32fed92986a4458fd47db2f50f1a3cba75"
|
||||
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230928.3#60636fb4555f215abfbbfcb022f46f2907a7c979"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"cargo-lock",
|
||||
|
@ -7425,7 +7375,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "turbo-tasks-bytes"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230922.3#ad585d32fed92986a4458fd47db2f50f1a3cba75"
|
||||
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230928.3#60636fb4555f215abfbbfcb022f46f2907a7c979"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"bytes",
|
||||
|
@ -7440,7 +7390,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "turbo-tasks-env"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230922.3#ad585d32fed92986a4458fd47db2f50f1a3cba75"
|
||||
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230928.3#60636fb4555f215abfbbfcb022f46f2907a7c979"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"dotenvs",
|
||||
|
@ -7454,7 +7404,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "turbo-tasks-fetch"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230922.3#ad585d32fed92986a4458fd47db2f50f1a3cba75"
|
||||
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230928.3#60636fb4555f215abfbbfcb022f46f2907a7c979"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"indexmap 1.9.3",
|
||||
|
@ -7471,7 +7421,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "turbo-tasks-fs"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230922.3#ad585d32fed92986a4458fd47db2f50f1a3cba75"
|
||||
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230928.3#60636fb4555f215abfbbfcb022f46f2907a7c979"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"auto-hash-map",
|
||||
|
@ -7501,7 +7451,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "turbo-tasks-hash"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230922.3#ad585d32fed92986a4458fd47db2f50f1a3cba75"
|
||||
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230928.3#60636fb4555f215abfbbfcb022f46f2907a7c979"
|
||||
dependencies = [
|
||||
"base16",
|
||||
"hex",
|
||||
|
@ -7513,7 +7463,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "turbo-tasks-macros"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230922.3#ad585d32fed92986a4458fd47db2f50f1a3cba75"
|
||||
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230928.3#60636fb4555f215abfbbfcb022f46f2907a7c979"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"convert_case 0.6.0",
|
||||
|
@ -7527,7 +7477,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "turbo-tasks-macros-shared"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230922.3#ad585d32fed92986a4458fd47db2f50f1a3cba75"
|
||||
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230928.3#60636fb4555f215abfbbfcb022f46f2907a7c979"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
|
@ -7537,7 +7487,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "turbo-tasks-malloc"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230922.3#ad585d32fed92986a4458fd47db2f50f1a3cba75"
|
||||
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230928.3#60636fb4555f215abfbbfcb022f46f2907a7c979"
|
||||
dependencies = [
|
||||
"mimalloc",
|
||||
]
|
||||
|
@ -7545,7 +7495,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "turbo-tasks-memory"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230922.3#ad585d32fed92986a4458fd47db2f50f1a3cba75"
|
||||
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230928.3#60636fb4555f215abfbbfcb022f46f2907a7c979"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"auto-hash-map",
|
||||
|
@ -7556,6 +7506,7 @@ dependencies = [
|
|||
"once_cell",
|
||||
"parking_lot",
|
||||
"priority-queue",
|
||||
"ref-cast",
|
||||
"rustc-hash",
|
||||
"tokio",
|
||||
"tracing",
|
||||
|
@ -7568,7 +7519,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "turbopack"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230922.3#ad585d32fed92986a4458fd47db2f50f1a3cba75"
|
||||
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230928.3#60636fb4555f215abfbbfcb022f46f2907a7c979"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"async-recursion",
|
||||
|
@ -7599,7 +7550,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "turbopack-binding"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230922.3#ad585d32fed92986a4458fd47db2f50f1a3cba75"
|
||||
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230928.3#60636fb4555f215abfbbfcb022f46f2907a7c979"
|
||||
dependencies = [
|
||||
"auto-hash-map",
|
||||
"mdxjs",
|
||||
|
@ -7639,7 +7590,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "turbopack-build"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230922.3#ad585d32fed92986a4458fd47db2f50f1a3cba75"
|
||||
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230928.3#60636fb4555f215abfbbfcb022f46f2907a7c979"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"indexmap 1.9.3",
|
||||
|
@ -7661,7 +7612,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "turbopack-cli-utils"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230922.3#ad585d32fed92986a4458fd47db2f50f1a3cba75"
|
||||
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230928.3#60636fb4555f215abfbbfcb022f46f2907a7c979"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"clap 4.4.2",
|
||||
|
@ -7685,7 +7636,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "turbopack-core"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230922.3#ad585d32fed92986a4458fd47db2f50f1a3cba75"
|
||||
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230928.3#60636fb4555f215abfbbfcb022f46f2907a7c979"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"async-recursion",
|
||||
|
@ -7714,7 +7665,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "turbopack-css"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230922.3#ad585d32fed92986a4458fd47db2f50f1a3cba75"
|
||||
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230928.3#60636fb4555f215abfbbfcb022f46f2907a7c979"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"async-trait",
|
||||
|
@ -7736,7 +7687,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "turbopack-dev"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230922.3#ad585d32fed92986a4458fd47db2f50f1a3cba75"
|
||||
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230928.3#60636fb4555f215abfbbfcb022f46f2907a7c979"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"indexmap 1.9.3",
|
||||
|
@ -7760,7 +7711,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "turbopack-dev-server"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230922.3#ad585d32fed92986a4458fd47db2f50f1a3cba75"
|
||||
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230928.3#60636fb4555f215abfbbfcb022f46f2907a7c979"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"async-compression",
|
||||
|
@ -7797,7 +7748,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "turbopack-ecmascript"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230922.3#ad585d32fed92986a4458fd47db2f50f1a3cba75"
|
||||
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230928.3#60636fb4555f215abfbbfcb022f46f2907a7c979"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"async-trait",
|
||||
|
@ -7831,7 +7782,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "turbopack-ecmascript-hmr-protocol"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230922.3#ad585d32fed92986a4458fd47db2f50f1a3cba75"
|
||||
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230928.3#60636fb4555f215abfbbfcb022f46f2907a7c979"
|
||||
dependencies = [
|
||||
"serde",
|
||||
"serde_json",
|
||||
|
@ -7842,7 +7793,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "turbopack-ecmascript-plugins"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230922.3#ad585d32fed92986a4458fd47db2f50f1a3cba75"
|
||||
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230928.3#60636fb4555f215abfbbfcb022f46f2907a7c979"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"async-trait",
|
||||
|
@ -7865,7 +7816,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "turbopack-ecmascript-runtime"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230922.3#ad585d32fed92986a4458fd47db2f50f1a3cba75"
|
||||
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230928.3#60636fb4555f215abfbbfcb022f46f2907a7c979"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"indoc",
|
||||
|
@ -7882,7 +7833,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "turbopack-env"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230922.3#ad585d32fed92986a4458fd47db2f50f1a3cba75"
|
||||
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230928.3#60636fb4555f215abfbbfcb022f46f2907a7c979"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"indexmap 1.9.3",
|
||||
|
@ -7898,7 +7849,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "turbopack-image"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230922.3#ad585d32fed92986a4458fd47db2f50f1a3cba75"
|
||||
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230928.3#60636fb4555f215abfbbfcb022f46f2907a7c979"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"base64 0.21.4",
|
||||
|
@ -7918,7 +7869,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "turbopack-json"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230922.3#ad585d32fed92986a4458fd47db2f50f1a3cba75"
|
||||
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230928.3#60636fb4555f215abfbbfcb022f46f2907a7c979"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"serde",
|
||||
|
@ -7933,7 +7884,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "turbopack-mdx"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230922.3#ad585d32fed92986a4458fd47db2f50f1a3cba75"
|
||||
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230928.3#60636fb4555f215abfbbfcb022f46f2907a7c979"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"mdxjs",
|
||||
|
@ -7948,7 +7899,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "turbopack-node"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230922.3#ad585d32fed92986a4458fd47db2f50f1a3cba75"
|
||||
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230928.3#60636fb4555f215abfbbfcb022f46f2907a7c979"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"async-stream",
|
||||
|
@ -7983,7 +7934,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "turbopack-static"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230922.3#ad585d32fed92986a4458fd47db2f50f1a3cba75"
|
||||
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230928.3#60636fb4555f215abfbbfcb022f46f2907a7c979"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"serde",
|
||||
|
@ -7999,7 +7950,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "turbopack-swc-utils"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230922.3#ad585d32fed92986a4458fd47db2f50f1a3cba75"
|
||||
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230928.3#60636fb4555f215abfbbfcb022f46f2907a7c979"
|
||||
dependencies = [
|
||||
"swc_core",
|
||||
"turbo-tasks",
|
||||
|
@ -8010,7 +7961,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "turbopack-wasm"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230922.3#ad585d32fed92986a4458fd47db2f50f1a3cba75"
|
||||
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230928.3#60636fb4555f215abfbbfcb022f46f2907a7c979"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"indexmap 1.9.3",
|
||||
|
|
|
@ -39,11 +39,11 @@ swc_core = { version = "0.83.12", features = [
|
|||
testing = { version = "0.34.1" }
|
||||
|
||||
# Turbo crates
|
||||
turbopack-binding = { git = "https://github.com/vercel/turbo.git", tag = "turbopack-230922.3" }
|
||||
turbopack-binding = { git = "https://github.com/vercel/turbo.git", tag = "turbopack-230928.3" }
|
||||
# [TODO]: need to refactor embed_directory! macro usages, as well as resolving turbo_tasks::function, macros..
|
||||
turbo-tasks = { git = "https://github.com/vercel/turbo.git", tag = "turbopack-230922.3" }
|
||||
turbo-tasks = { git = "https://github.com/vercel/turbo.git", tag = "turbopack-230928.3" }
|
||||
# [TODO]: need to refactor embed_directory! macro usage in next-core
|
||||
turbo-tasks-fs = { git = "https://github.com/vercel/turbo.git", tag = "turbopack-230922.3" }
|
||||
turbo-tasks-fs = { git = "https://github.com/vercel/turbo.git", tag = "turbopack-230928.3" }
|
||||
|
||||
# General Deps
|
||||
|
||||
|
@ -121,7 +121,7 @@ shadow-rs = { version = "0.23.0", default-features = false, features = [
|
|||
] }
|
||||
syn = "1.0.107"
|
||||
tempfile = "3.3.0"
|
||||
thiserror = "1.0.38"
|
||||
thiserror = "1.0.48"
|
||||
tiny-gradient = "0.1.0"
|
||||
tokio = "1.25.0"
|
||||
tokio-util = { version = "0.7.7", features = ["io"] }
|
||||
|
|
|
@ -77,9 +77,9 @@ pub async fn endpoint_write_to_disk(
|
|||
let (written, issues, diags) = turbo_tasks
|
||||
.run_once(async move {
|
||||
let write_to_disk = endpoint.write_to_disk();
|
||||
let written = write_to_disk.strongly_consistent().await?;
|
||||
let issues = get_issues(write_to_disk).await?;
|
||||
let diags = get_diagnostics(write_to_disk).await?;
|
||||
let written = write_to_disk.strongly_consistent().await?;
|
||||
Ok((written, issues, diags))
|
||||
})
|
||||
.await
|
||||
|
@ -104,17 +104,16 @@ pub fn endpoint_server_changed_subscribe(
|
|||
func,
|
||||
move || async move {
|
||||
let changed = endpoint.server_changed();
|
||||
let issues = get_issues(changed).await?;
|
||||
let diags = get_diagnostics(changed).await?;
|
||||
// We don't capture issues and diagonistics here since we don't want to be
|
||||
// notified when they change
|
||||
changed.strongly_consistent().await?;
|
||||
Ok((issues, diags))
|
||||
Ok(())
|
||||
},
|
||||
|ctx| {
|
||||
let (issues, diags) = ctx.value;
|
||||
|_| {
|
||||
Ok(vec![TurbopackResult {
|
||||
result: (),
|
||||
issues: issues.iter().map(|i| NapiIssue::from(&**i)).collect(),
|
||||
diagnostics: diags.iter().map(|d| NapiDiagnostic::from(d)).collect(),
|
||||
issues: vec![],
|
||||
diagnostics: vec![],
|
||||
}])
|
||||
},
|
||||
)
|
||||
|
@ -132,17 +131,16 @@ pub fn endpoint_client_changed_subscribe(
|
|||
func,
|
||||
move || async move {
|
||||
let changed = endpoint.client_changed();
|
||||
let issues = get_issues(changed).await?;
|
||||
let diags = get_diagnostics(changed).await?;
|
||||
// We don't capture issues and diagonistics here since we don't want to be
|
||||
// notified when they change
|
||||
changed.strongly_consistent().await?;
|
||||
Ok((issues, diags))
|
||||
Ok(())
|
||||
},
|
||||
|ctx| {
|
||||
let (issues, diags) = ctx.value;
|
||||
|_| {
|
||||
Ok(vec![TurbopackResult {
|
||||
result: (),
|
||||
issues: issues.iter().map(|i| NapiIssue::from(&**i)).collect(),
|
||||
diagnostics: diags.iter().map(|d| NapiDiagnostic::from(d)).collect(),
|
||||
issues: vec![],
|
||||
diagnostics: vec![],
|
||||
}])
|
||||
},
|
||||
)
|
||||
|
|
|
@ -313,11 +313,11 @@ pub fn project_entrypoints_subscribe(
|
|||
turbo_tasks.clone(),
|
||||
func,
|
||||
move || async move {
|
||||
let entrypoints = container.entrypoints();
|
||||
let issues = get_issues(entrypoints).await?;
|
||||
let diags = get_diagnostics(entrypoints).await?;
|
||||
let entrypoints_operation = container.entrypoints();
|
||||
let entrypoints = entrypoints_operation.strongly_consistent().await?;
|
||||
|
||||
let entrypoints = entrypoints.strongly_consistent().await?;
|
||||
let issues = get_issues(entrypoints_operation).await?;
|
||||
let diags = get_diagnostics(entrypoints_operation).await?;
|
||||
|
||||
Ok((entrypoints, issues, diags))
|
||||
},
|
||||
|
@ -383,10 +383,10 @@ pub fn project_hmr_events(
|
|||
let state = project
|
||||
.project()
|
||||
.hmr_version_state(identifier.clone(), session);
|
||||
let update = project.project().hmr_update(identifier, state);
|
||||
let issues = get_issues(update).await?;
|
||||
let diags = get_diagnostics(update).await?;
|
||||
let update = update.strongly_consistent().await?;
|
||||
let update_operation = project.project().hmr_update(identifier, state);
|
||||
let update = update_operation.strongly_consistent().await?;
|
||||
let issues = get_issues(update_operation).await?;
|
||||
let diags = get_diagnostics(update_operation).await?;
|
||||
match &*update {
|
||||
Update::None => {}
|
||||
Update::Total(TotalUpdate { to }) => {
|
||||
|
@ -451,11 +451,11 @@ pub fn project_hmr_identifiers_subscribe(
|
|||
turbo_tasks.clone(),
|
||||
func,
|
||||
move || async move {
|
||||
let hmr_identifiers = container.hmr_identifiers();
|
||||
let issues = get_issues(hmr_identifiers).await?;
|
||||
let diags = get_diagnostics(hmr_identifiers).await?;
|
||||
let hmr_identifiers_operation = container.hmr_identifiers();
|
||||
let hmr_identifiers = hmr_identifiers_operation.strongly_consistent().await?;
|
||||
|
||||
let hmr_identifiers = hmr_identifiers.strongly_consistent().await?;
|
||||
let issues = get_issues(hmr_identifiers_operation).await?;
|
||||
let diags = get_diagnostics(hmr_identifiers_operation).await?;
|
||||
|
||||
Ok((hmr_identifiers, issues, diags))
|
||||
},
|
||||
|
|
|
@ -69,30 +69,23 @@ impl Drop for RootTask {
|
|||
|
||||
#[napi]
|
||||
pub fn root_task_dispose(
|
||||
#[napi(ts_arg_type = "{ __napiType: \"RootTask\" }")] _root_task: External<RootTask>,
|
||||
#[napi(ts_arg_type = "{ __napiType: \"RootTask\" }")] mut root_task: External<RootTask>,
|
||||
) -> napi::Result<()> {
|
||||
// TODO(alexkirsz) Implement. Not panicking here to avoid crashing the process
|
||||
// when testing.
|
||||
if let Some(task) = root_task.task_id.take() {
|
||||
root_task.turbo_tasks.dispose_root_task(task);
|
||||
}
|
||||
Ok(())
|
||||
}
|
||||
|
||||
pub async fn get_issues<T: Send>(source: Vc<T>) -> Result<Vec<ReadRef<PlainIssue>>> {
|
||||
let issues = source
|
||||
.peek_issues_with_path()
|
||||
.await?
|
||||
.strongly_consistent()
|
||||
.await?;
|
||||
let issues = source.peek_issues_with_path().await?;
|
||||
issues.get_plain_issues().await
|
||||
}
|
||||
|
||||
/// Collect [turbopack::core::diagnostics::Diagnostic] from given source,
|
||||
/// returns [turbopack::core::diagnostics::PlainDiagnostic]
|
||||
pub async fn get_diagnostics<T: Send>(source: Vc<T>) -> Result<Vec<ReadRef<PlainDiagnostic>>> {
|
||||
let captured_diags = source
|
||||
.peek_diagnostics()
|
||||
.await?
|
||||
.strongly_consistent()
|
||||
.await?;
|
||||
let captured_diags = source.peek_diagnostics().await?;
|
||||
|
||||
captured_diags
|
||||
.diagnostics
|
||||
|
|
|
@ -22,8 +22,8 @@ use turbo_tasks::{
|
|||
debug::ValueDebugFormat,
|
||||
graph::{AdjacencyMap, GraphTraversal},
|
||||
trace::TraceRawVcs,
|
||||
Completion, Completions, IntoTraitRef, State, TaskInput, TransientInstance, TryFlatJoinIterExt,
|
||||
Value, ValueToString, Vc,
|
||||
Completion, Completions, IntoTraitRef, State, TaskInput, TraitRef, TransientInstance,
|
||||
TryFlatJoinIterExt, Value, ValueToString, Vc,
|
||||
};
|
||||
use turbopack_binding::{
|
||||
turbo::{
|
||||
|
@ -562,6 +562,21 @@ impl Project {
|
|||
}
|
||||
}
|
||||
|
||||
let pages_document_endpoint = TraitRef::cell(
|
||||
self.pages_project()
|
||||
.document_endpoint()
|
||||
.into_trait_ref()
|
||||
.await?,
|
||||
);
|
||||
let pages_app_endpoint =
|
||||
TraitRef::cell(self.pages_project().app_endpoint().into_trait_ref().await?);
|
||||
let pages_error_endpoint = TraitRef::cell(
|
||||
self.pages_project()
|
||||
.error_endpoint()
|
||||
.into_trait_ref()
|
||||
.await?,
|
||||
);
|
||||
|
||||
let middleware = find_context_file(
|
||||
self.project_path(),
|
||||
middleware_files(self.next_config().page_extensions()),
|
||||
|
@ -569,7 +584,11 @@ impl Project {
|
|||
let middleware = if let FindContextFileResult::Found(fs_path, _) = *middleware.await? {
|
||||
let source = Vc::upcast(FileSource::new(fs_path));
|
||||
Some(Middleware {
|
||||
endpoint: Vc::upcast(self.middleware_endpoint(source)),
|
||||
endpoint: TraitRef::cell(
|
||||
Vc::upcast::<Box<dyn Endpoint>>(self.middleware_endpoint(source))
|
||||
.into_trait_ref()
|
||||
.await?,
|
||||
),
|
||||
})
|
||||
} else {
|
||||
None
|
||||
|
@ -578,9 +597,9 @@ impl Project {
|
|||
Ok(Entrypoints {
|
||||
routes,
|
||||
middleware,
|
||||
pages_document_endpoint: self.pages_project().document_endpoint(),
|
||||
pages_app_endpoint: self.pages_project().app_endpoint(),
|
||||
pages_error_endpoint: self.pages_project().error_endpoint(),
|
||||
pages_document_endpoint,
|
||||
pages_app_endpoint,
|
||||
pages_error_endpoint,
|
||||
}
|
||||
.cell())
|
||||
}
|
||||
|
|
|
@ -2,7 +2,11 @@ use std::collections::HashMap;
|
|||
|
||||
use anyhow::{bail, Result};
|
||||
use next_core::emit_client_assets;
|
||||
use turbo_tasks::{State, TryFlatJoinIterExt, TryJoinIterExt, ValueDefault, ValueToString, Vc};
|
||||
use serde::{Deserialize, Serialize};
|
||||
use turbo_tasks::{
|
||||
debug::ValueDebugFormat, trace::TraceRawVcs, State, TryFlatJoinIterExt, TryJoinIterExt,
|
||||
ValueDefault, ValueToString, Vc,
|
||||
};
|
||||
use turbopack_binding::{
|
||||
turbo::tasks_fs::FileSystemPath,
|
||||
turbopack::core::{
|
||||
|
@ -18,8 +22,17 @@ use turbopack_binding::{
|
|||
#[turbo_tasks::value(transparent)]
|
||||
pub struct OutputAssetsOperation(Vc<OutputAssets>);
|
||||
|
||||
type VersionedContentMapInner =
|
||||
HashMap<Vc<FileSystemPath>, (Vc<Box<dyn VersionedContent>>, Vc<OutputAssets>)>;
|
||||
#[derive(
|
||||
Clone, Copy, TraceRawVcs, PartialEq, Eq, ValueDebugFormat, Serialize, Deserialize, Debug,
|
||||
)]
|
||||
struct MapEntry {
|
||||
assets_operation: Vc<OutputAssets>,
|
||||
}
|
||||
|
||||
#[turbo_tasks::value(transparent)]
|
||||
struct OptionMapEntry(Option<MapEntry>);
|
||||
|
||||
type VersionedContentMapInner = HashMap<Vc<FileSystemPath>, MapEntry>;
|
||||
|
||||
#[turbo_tasks::value]
|
||||
pub struct VersionedContentMap {
|
||||
|
@ -55,12 +68,9 @@ impl VersionedContentMap {
|
|||
let entries: Vec<_> = assets
|
||||
.iter()
|
||||
.map(|&asset| async move {
|
||||
// NOTE(alexkirsz) `.versioned_content()` should not be resolved, to ensure that
|
||||
// it always points to the task that computes the versioned
|
||||
// content.
|
||||
Ok((
|
||||
asset.ident().path().resolve().await?,
|
||||
(asset.versioned_content(), assets_operation),
|
||||
MapEntry { assets_operation },
|
||||
))
|
||||
})
|
||||
.try_join()
|
||||
|
@ -73,14 +83,17 @@ impl VersionedContentMap {
|
|||
}
|
||||
|
||||
#[turbo_tasks::function]
|
||||
pub async fn get(&self, path: Vc<FileSystemPath>) -> Result<Vc<Box<dyn VersionedContent>>> {
|
||||
pub async fn get(
|
||||
self: Vc<Self>,
|
||||
path: Vc<FileSystemPath>,
|
||||
) -> Result<Vc<Box<dyn VersionedContent>>> {
|
||||
let (content, _) = self.get_internal(path).await?;
|
||||
Ok(content)
|
||||
}
|
||||
|
||||
#[turbo_tasks::function]
|
||||
pub async fn get_and_write(
|
||||
&self,
|
||||
self: Vc<Self>,
|
||||
path: Vc<FileSystemPath>,
|
||||
client_relative_path: Vc<FileSystemPath>,
|
||||
client_output_path: Vc<FileSystemPath>,
|
||||
|
@ -105,28 +118,34 @@ impl VersionedContentMap {
|
|||
.await?;
|
||||
Ok(Vc::cell(keys))
|
||||
}
|
||||
|
||||
#[turbo_tasks::function]
|
||||
async fn raw_get(&self, path: Vc<FileSystemPath>) -> Result<Vc<OptionMapEntry>> {
|
||||
let result = {
|
||||
let map = self.map.get();
|
||||
map.get(&path).copied()
|
||||
};
|
||||
Ok(Vc::cell(result))
|
||||
}
|
||||
}
|
||||
|
||||
impl VersionedContentMap {
|
||||
async fn get_internal(
|
||||
&self,
|
||||
self: Vc<Self>,
|
||||
path: Vc<FileSystemPath>,
|
||||
) -> Result<(Vc<Box<dyn VersionedContent>>, Vc<OutputAssets>)> {
|
||||
let result = {
|
||||
// NOTE(alexkirsz) This is to avoid Rust marking this method as !Send because a
|
||||
// StateRef to the map is captured across an await boundary below, even though
|
||||
// it does not look like it would.
|
||||
// I think this is a similar issue as https://fasterthanli.me/articles/a-rust-match-made-in-hell
|
||||
let map = self.map.get();
|
||||
map.get(&path).copied()
|
||||
};
|
||||
let Some((content, assets_operation)) = result else {
|
||||
let path = path.to_string().await?;
|
||||
bail!("could not find versioned content for path {}", path);
|
||||
};
|
||||
// NOTE(alexkirsz) This is necessary to mark the task as active again.
|
||||
Vc::connect(assets_operation);
|
||||
Vc::connect(content);
|
||||
Ok((content, assets_operation))
|
||||
let result = self.raw_get(path).await?;
|
||||
if let Some(MapEntry { assets_operation }) = *result {
|
||||
// NOTE(alexkirsz) This is necessary to mark the task as active again.
|
||||
Vc::connect(assets_operation);
|
||||
for asset in assets_operation.await?.iter() {
|
||||
if asset.ident().path().resolve().await? == path {
|
||||
let content = asset.versioned_content();
|
||||
return Ok((content, assets_operation));
|
||||
}
|
||||
}
|
||||
}
|
||||
let path = path.to_string().await?;
|
||||
bail!("could not find versioned content for path {}", path);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -193,7 +193,7 @@
|
|||
"@types/ws": "8.2.0",
|
||||
"@vercel/ncc": "0.34.0",
|
||||
"@vercel/nft": "0.22.6",
|
||||
"@vercel/turbopack-ecmascript-runtime": "https://gitpkg-fork.vercel.sh/vercel/turbo/crates/turbopack-ecmascript-runtime/js?turbopack-230922.2",
|
||||
"@vercel/turbopack-ecmascript-runtime": "https://gitpkg-fork.vercel.sh/vercel/turbo/crates/turbopack-ecmascript-runtime/js?turbopack-230928.3",
|
||||
"acorn": "8.5.0",
|
||||
"ajv": "8.11.0",
|
||||
"amphtml-validator": "1.0.35",
|
||||
|
|
|
@ -122,6 +122,8 @@ function handleSuccess() {
|
|||
if (isHotUpdate) {
|
||||
tryApplyUpdates(onBeforeFastRefresh, onFastRefresh)
|
||||
}
|
||||
} else {
|
||||
onBuildOk()
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,10 +1,13 @@
|
|||
import connect from './error-overlay/hot-dev-client'
|
||||
import { sendMessage } from './error-overlay/websocket'
|
||||
|
||||
let reloading = false
|
||||
|
||||
export default (mode: 'webpack' | 'turbopack') => {
|
||||
const devClient = connect(mode)
|
||||
|
||||
devClient.subscribeToHmrEvent((obj: any) => {
|
||||
if (reloading) return
|
||||
// if we're on an error/404 page, we can't reliably tell if the newly added/removed page
|
||||
// matches the current path. In that case, assume any added/removed entries should trigger a reload of the current page
|
||||
const isOnErrorPage =
|
||||
|
@ -19,6 +22,7 @@ export default (mode: 'webpack' | 'turbopack') => {
|
|||
clientId: window.__nextDevClientId,
|
||||
})
|
||||
)
|
||||
reloading = true
|
||||
return window.location.reload()
|
||||
}
|
||||
case 'removedPage': {
|
||||
|
|
|
@ -25,7 +25,10 @@ export function pageBootrap(assetPrefix: string) {
|
|||
}, process.env.__NEXT_BUILD_INDICATOR_POSITION)
|
||||
}
|
||||
|
||||
let reloading = false
|
||||
|
||||
addMessageListener((payload) => {
|
||||
if (reloading) return
|
||||
if ('action' in payload) {
|
||||
if (payload.action === HMR_ACTIONS_SENT_TO_BROWSER.SERVER_ERROR) {
|
||||
const { stack, message } = JSON.parse(payload.errorJSON)
|
||||
|
@ -33,6 +36,7 @@ export function pageBootrap(assetPrefix: string) {
|
|||
error.stack = stack
|
||||
throw error
|
||||
} else if (payload.action === HMR_ACTIONS_SENT_TO_BROWSER.RELOAD_PAGE) {
|
||||
reloading = true
|
||||
window.location.reload()
|
||||
} else if (
|
||||
payload.action ===
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -109,6 +109,7 @@ import {
|
|||
deleteCache,
|
||||
} from '../../../build/webpack/plugins/nextjs-require-cache-hot-reloader'
|
||||
import { normalizeMetadataRoute } from '../../../lib/metadata/get-metadata-route'
|
||||
import { clearModuleContext } from '../render-server'
|
||||
|
||||
const wsServer = new ws.Server({ noServer: true })
|
||||
|
||||
|
@ -339,6 +340,7 @@ async function startWatcher(opts: SetupOpts) {
|
|||
}
|
||||
|
||||
for (const file of result.serverPaths.map((p) => path.join(distDir, p))) {
|
||||
clearModuleContext(file)
|
||||
deleteCache(file)
|
||||
}
|
||||
|
||||
|
@ -507,7 +509,7 @@ async function startWatcher(opts: SetupOpts) {
|
|||
makePayload: (
|
||||
page: string,
|
||||
change: TurbopackResult<ServerClientChange>
|
||||
) => HMR_ACTION_TYPES | void
|
||||
) => Promise<HMR_ACTION_TYPES> | HMR_ACTION_TYPES | void
|
||||
) {
|
||||
if (!endpoint || changeSubscriptions.has(page)) return
|
||||
|
||||
|
@ -525,7 +527,7 @@ async function startWatcher(opts: SetupOpts) {
|
|||
)
|
||||
|
||||
processIssues(page, page, change)
|
||||
const payload = makePayload(page, change)
|
||||
const payload = await makePayload(page, change)
|
||||
if (payload) sendHmr('endpoint-change', page, payload)
|
||||
}
|
||||
}
|
||||
|
@ -539,108 +541,6 @@ async function startWatcher(opts: SetupOpts) {
|
|||
issues.delete(page)
|
||||
}
|
||||
|
||||
try {
|
||||
async function handleEntries() {
|
||||
for await (const entrypoints of iter) {
|
||||
if (!currentEntriesHandlingResolve) {
|
||||
currentEntriesHandling = new Promise(
|
||||
// eslint-disable-next-line no-loop-func
|
||||
(resolve) => (currentEntriesHandlingResolve = resolve)
|
||||
)
|
||||
}
|
||||
globalEntries.app = entrypoints.pagesAppEndpoint
|
||||
globalEntries.document = entrypoints.pagesDocumentEndpoint
|
||||
globalEntries.error = entrypoints.pagesErrorEndpoint
|
||||
|
||||
curEntries.clear()
|
||||
|
||||
for (const [pathname, route] of entrypoints.routes) {
|
||||
switch (route.type) {
|
||||
case 'page':
|
||||
case 'page-api':
|
||||
case 'app-page':
|
||||
case 'app-route': {
|
||||
curEntries.set(pathname, route)
|
||||
break
|
||||
}
|
||||
default:
|
||||
Log.info(`skipping ${pathname} (${route.type})`)
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
for (const [pathname, subscriptionPromise] of changeSubscriptions) {
|
||||
if (pathname === '') {
|
||||
// middleware is handled below
|
||||
continue
|
||||
}
|
||||
|
||||
if (!curEntries.has(pathname)) {
|
||||
const subscription = await subscriptionPromise
|
||||
subscription.return?.()
|
||||
changeSubscriptions.delete(pathname)
|
||||
}
|
||||
}
|
||||
|
||||
const { middleware } = entrypoints
|
||||
// We check for explicit true/false, since it's initialized to
|
||||
// undefined during the first loop (middlewareChanges event is
|
||||
// unnecessary during the first serve)
|
||||
if (prevMiddleware === true && !middleware) {
|
||||
// Went from middleware to no middleware
|
||||
await clearChangeSubscription('middleware')
|
||||
sendHmr('entrypoint-change', 'middleware', {
|
||||
event: HMR_ACTIONS_SENT_TO_BROWSER.MIDDLEWARE_CHANGES,
|
||||
})
|
||||
} else if (prevMiddleware === false && middleware) {
|
||||
// Went from no middleware to middleware
|
||||
sendHmr('endpoint-change', 'middleware', {
|
||||
event: HMR_ACTIONS_SENT_TO_BROWSER.MIDDLEWARE_CHANGES,
|
||||
})
|
||||
}
|
||||
if (middleware) {
|
||||
const writtenEndpoint = await processResult(
|
||||
await middleware.endpoint.writeToDisk()
|
||||
)
|
||||
processIssues('middleware', 'middleware', writtenEndpoint)
|
||||
await loadMiddlewareManifest('middleware', 'middleware')
|
||||
serverFields.actualMiddlewareFile = 'middleware'
|
||||
serverFields.middleware = {
|
||||
match: null as any,
|
||||
page: '/',
|
||||
matchers:
|
||||
middlewareManifests.get('middleware')?.middleware['/'].matchers,
|
||||
}
|
||||
|
||||
changeSubscription('middleware', middleware.endpoint, () => {
|
||||
return { event: HMR_ACTIONS_SENT_TO_BROWSER.MIDDLEWARE_CHANGES }
|
||||
})
|
||||
prevMiddleware = true
|
||||
} else {
|
||||
middlewareManifests.delete('middleware')
|
||||
serverFields.actualMiddlewareFile = undefined
|
||||
serverFields.middleware = undefined
|
||||
prevMiddleware = false
|
||||
}
|
||||
await propagateServerField(
|
||||
'actualMiddlewareFile',
|
||||
serverFields.actualMiddlewareFile
|
||||
)
|
||||
await propagateServerField('middleware', serverFields.middleware)
|
||||
|
||||
currentEntriesHandlingResolve!()
|
||||
currentEntriesHandlingResolve = undefined
|
||||
}
|
||||
}
|
||||
|
||||
handleEntries().catch((err) => {
|
||||
console.error(err)
|
||||
process.exit(1)
|
||||
})
|
||||
} catch (e) {
|
||||
console.error(e)
|
||||
}
|
||||
|
||||
function mergeBuildManifests(manifests: Iterable<BuildManifest>) {
|
||||
const manifest: Partial<BuildManifest> & Pick<BuildManifest, 'pages'> = {
|
||||
pages: {
|
||||
|
@ -877,8 +777,13 @@ async function startWatcher(opts: SetupOpts) {
|
|||
// computation. This is not a change, so swallow it.
|
||||
try {
|
||||
await subscription.next()
|
||||
|
||||
for await (const data of subscription) {
|
||||
processIssues('hmr', id, data)
|
||||
sendTurbopackMessage(data)
|
||||
}
|
||||
} catch (e) {
|
||||
// The client is using an HMR session from a previous server, tell them
|
||||
// The client might be using an HMR session from a previous server, tell them
|
||||
// to fully reload the page to resolve the issue. We can't use
|
||||
// `hotReloader.send` since that would force very connected client to
|
||||
// reload, only this client is out of date.
|
||||
|
@ -889,11 +794,6 @@ async function startWatcher(opts: SetupOpts) {
|
|||
client.close()
|
||||
return
|
||||
}
|
||||
|
||||
for await (const data of subscription) {
|
||||
processIssues('hmr', id, data)
|
||||
sendTurbopackMessage(data)
|
||||
}
|
||||
}
|
||||
|
||||
function unsubscribeToHmrEvents(id: string, client: ws) {
|
||||
|
@ -902,6 +802,121 @@ async function startWatcher(opts: SetupOpts) {
|
|||
subscription?.return!()
|
||||
}
|
||||
|
||||
try {
|
||||
async function handleEntries() {
|
||||
for await (const entrypoints of iter) {
|
||||
if (!currentEntriesHandlingResolve) {
|
||||
currentEntriesHandling = new Promise(
|
||||
// eslint-disable-next-line no-loop-func
|
||||
(resolve) => (currentEntriesHandlingResolve = resolve)
|
||||
)
|
||||
}
|
||||
globalEntries.app = entrypoints.pagesAppEndpoint
|
||||
globalEntries.document = entrypoints.pagesDocumentEndpoint
|
||||
globalEntries.error = entrypoints.pagesErrorEndpoint
|
||||
|
||||
curEntries.clear()
|
||||
|
||||
for (const [pathname, route] of entrypoints.routes) {
|
||||
switch (route.type) {
|
||||
case 'page':
|
||||
case 'page-api':
|
||||
case 'app-page':
|
||||
case 'app-route': {
|
||||
curEntries.set(pathname, route)
|
||||
break
|
||||
}
|
||||
default:
|
||||
Log.info(`skipping ${pathname} (${route.type})`)
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
for (const [pathname, subscriptionPromise] of changeSubscriptions) {
|
||||
if (pathname === '') {
|
||||
// middleware is handled below
|
||||
continue
|
||||
}
|
||||
|
||||
if (!curEntries.has(pathname)) {
|
||||
const subscription = await subscriptionPromise
|
||||
subscription.return?.()
|
||||
changeSubscriptions.delete(pathname)
|
||||
}
|
||||
}
|
||||
|
||||
const { middleware } = entrypoints
|
||||
// We check for explicit true/false, since it's initialized to
|
||||
// undefined during the first loop (middlewareChanges event is
|
||||
// unnecessary during the first serve)
|
||||
if (prevMiddleware === true && !middleware) {
|
||||
// Went from middleware to no middleware
|
||||
await clearChangeSubscription('middleware')
|
||||
sendHmr('entrypoint-change', 'middleware', {
|
||||
event: HMR_ACTIONS_SENT_TO_BROWSER.MIDDLEWARE_CHANGES,
|
||||
})
|
||||
} else if (prevMiddleware === false && middleware) {
|
||||
// Went from no middleware to middleware
|
||||
sendHmr('endpoint-change', 'middleware', {
|
||||
event: HMR_ACTIONS_SENT_TO_BROWSER.MIDDLEWARE_CHANGES,
|
||||
})
|
||||
}
|
||||
if (middleware) {
|
||||
const processMiddleware = async () => {
|
||||
const writtenEndpoint = await processResult(
|
||||
await middleware.endpoint.writeToDisk()
|
||||
)
|
||||
processIssues('middleware', 'middleware', writtenEndpoint)
|
||||
await loadMiddlewareManifest('middleware', 'middleware')
|
||||
serverFields.actualMiddlewareFile = 'middleware'
|
||||
serverFields.middleware = {
|
||||
match: null as any,
|
||||
page: '/',
|
||||
matchers:
|
||||
middlewareManifests.get('middleware')?.middleware['/']
|
||||
.matchers,
|
||||
}
|
||||
}
|
||||
await processMiddleware()
|
||||
|
||||
changeSubscription('middleware', middleware.endpoint, async () => {
|
||||
await processMiddleware()
|
||||
await propagateServerField(
|
||||
'actualMiddlewareFile',
|
||||
serverFields.actualMiddlewareFile
|
||||
)
|
||||
await propagateServerField('middleware', serverFields.middleware)
|
||||
await writeMiddlewareManifest()
|
||||
|
||||
console.log('middleware changes')
|
||||
return { event: HMR_ACTIONS_SENT_TO_BROWSER.MIDDLEWARE_CHANGES }
|
||||
})
|
||||
prevMiddleware = true
|
||||
} else {
|
||||
middlewareManifests.delete('middleware')
|
||||
serverFields.actualMiddlewareFile = undefined
|
||||
serverFields.middleware = undefined
|
||||
prevMiddleware = false
|
||||
}
|
||||
await propagateServerField(
|
||||
'actualMiddlewareFile',
|
||||
serverFields.actualMiddlewareFile
|
||||
)
|
||||
await propagateServerField('middleware', serverFields.middleware)
|
||||
|
||||
currentEntriesHandlingResolve!()
|
||||
currentEntriesHandlingResolve = undefined
|
||||
}
|
||||
}
|
||||
|
||||
handleEntries().catch((err) => {
|
||||
console.error(err)
|
||||
process.exit(1)
|
||||
})
|
||||
} catch (e) {
|
||||
console.error(e)
|
||||
}
|
||||
|
||||
// Write empty manifests
|
||||
await mkdir(path.join(distDir, 'server'), { recursive: true })
|
||||
await mkdir(path.join(distDir, 'static/development'), { recursive: true })
|
||||
|
|
158
pnpm-lock.yaml
158
pnpm-lock.yaml
|
@ -1058,8 +1058,8 @@ importers:
|
|||
specifier: 0.22.6
|
||||
version: 0.22.6
|
||||
'@vercel/turbopack-ecmascript-runtime':
|
||||
specifier: https://gitpkg-fork.vercel.sh/vercel/turbo/crates/turbopack-ecmascript-runtime/js?turbopack-230922.2
|
||||
version: '@gitpkg-fork.vercel.sh/vercel/turbo/crates/turbopack-ecmascript-runtime/js?turbopack-230922.2(react-refresh@0.12.0)(webpack@5.86.0)'
|
||||
specifier: https://gitpkg-fork.vercel.sh/vercel/turbo/crates/turbopack-ecmascript-runtime/js?turbopack-230928.3
|
||||
version: '@gitpkg-fork.vercel.sh/vercel/turbo/crates/turbopack-ecmascript-runtime/js?turbopack-230928.3(react-refresh@0.12.0)(webpack@5.86.0)'
|
||||
acorn:
|
||||
specifier: 8.5.0
|
||||
version: 8.5.0
|
||||
|
@ -1320,7 +1320,7 @@ importers:
|
|||
version: 0.13.4
|
||||
sass-loader:
|
||||
specifier: 12.4.0
|
||||
version: 12.4.0(sass@1.54.0)(webpack@5.86.0)
|
||||
version: 12.4.0(webpack@5.86.0)
|
||||
schema-utils2:
|
||||
specifier: npm:schema-utils@2.7.1
|
||||
version: /schema-utils@2.7.1
|
||||
|
@ -1486,7 +1486,7 @@ importers:
|
|||
dependencies:
|
||||
next:
|
||||
specifier: '*'
|
||||
version: link:../next
|
||||
version: 13.5.3(@babel/core@7.18.0)(@opentelemetry/api@1.4.1)(react-dom@18.2.0)(react@18.2.0)(sass@1.54.0)
|
||||
|
||||
packages/next-polyfill-module:
|
||||
devDependencies:
|
||||
|
@ -6714,6 +6714,10 @@ packages:
|
|||
resolution: {integrity: sha512-XQr74QaLeMiqhStEhLn1im9EOMnkypp7MZOwQhGzqp2Weu5eQJbpPxWxixxlYRKWPOmJjsk6qYfYH9kq43yc2w==}
|
||||
dev: true
|
||||
|
||||
/@next/env@13.5.3:
|
||||
resolution: {integrity: sha512-X4te86vsbjsB7iO4usY9jLPtZ827Mbx+WcwNBGUOIuswuTAKQtzsuoxc/6KLxCMvogKG795MhrR1LDhYgDvasg==}
|
||||
dev: false
|
||||
|
||||
/@next/react-refresh-utils@13.5.3(react-refresh@0.12.0)(webpack@5.86.0):
|
||||
resolution: {integrity: sha512-Y4wsqtdX+/QZ6W19N3y/YnuxAt/a79l/zYmRc2mwEplP0rIv6W3MBo3ePFUXOMVfmVesnOhfnZanaGiynZcFOg==}
|
||||
peerDependencies:
|
||||
|
@ -6727,6 +6731,87 @@ packages:
|
|||
webpack: 5.86.0(@swc/core@1.3.85)
|
||||
dev: true
|
||||
|
||||
/@next/swc-darwin-arm64@13.5.3:
|
||||
resolution: {integrity: sha512-6hiYNJxJmyYvvKGrVThzo4nTcqvqUTA/JvKim7Auaj33NexDqSNwN5YrrQu+QhZJCIpv2tULSHt+lf+rUflLSw==}
|
||||
engines: {node: '>= 10'}
|
||||
cpu: [arm64]
|
||||
os: [darwin]
|
||||
requiresBuild: true
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/@next/swc-darwin-x64@13.5.3:
|
||||
resolution: {integrity: sha512-UpBKxu2ob9scbpJyEq/xPgpdrgBgN3aLYlxyGqlYX5/KnwpJpFuIHU2lx8upQQ7L+MEmz+fA1XSgesoK92ppwQ==}
|
||||
engines: {node: '>= 10'}
|
||||
cpu: [x64]
|
||||
os: [darwin]
|
||||
requiresBuild: true
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/@next/swc-linux-arm64-gnu@13.5.3:
|
||||
resolution: {integrity: sha512-5AzM7Yx1Ky+oLY6pHs7tjONTF22JirDPd5Jw/3/NazJ73uGB05NqhGhB4SbeCchg7SlVYVBeRMrMSZwJwq/xoA==}
|
||||
engines: {node: '>= 10'}
|
||||
cpu: [arm64]
|
||||
os: [linux]
|
||||
requiresBuild: true
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/@next/swc-linux-arm64-musl@13.5.3:
|
||||
resolution: {integrity: sha512-A/C1shbyUhj7wRtokmn73eBksjTM7fFQoY2v/0rTM5wehpkjQRLOXI8WJsag2uLhnZ4ii5OzR1rFPwoD9cvOgA==}
|
||||
engines: {node: '>= 10'}
|
||||
cpu: [arm64]
|
||||
os: [linux]
|
||||
requiresBuild: true
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/@next/swc-linux-x64-gnu@13.5.3:
|
||||
resolution: {integrity: sha512-FubPuw/Boz8tKkk+5eOuDHOpk36F80rbgxlx4+xty/U71e3wZZxVYHfZXmf0IRToBn1Crb8WvLM9OYj/Ur815g==}
|
||||
engines: {node: '>= 10'}
|
||||
cpu: [x64]
|
||||
os: [linux]
|
||||
requiresBuild: true
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/@next/swc-linux-x64-musl@13.5.3:
|
||||
resolution: {integrity: sha512-DPw8nFuM1uEpbX47tM3wiXIR0Qa+atSzs9Q3peY1urkhofx44o7E1svnq+a5Q0r8lAcssLrwiM+OyJJgV/oj7g==}
|
||||
engines: {node: '>= 10'}
|
||||
cpu: [x64]
|
||||
os: [linux]
|
||||
requiresBuild: true
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/@next/swc-win32-arm64-msvc@13.5.3:
|
||||
resolution: {integrity: sha512-zBPSP8cHL51Gub/YV8UUePW7AVGukp2D8JU93IHbVDu2qmhFAn9LWXiOOLKplZQKxnIPUkJTQAJDCWBWU4UWUA==}
|
||||
engines: {node: '>= 10'}
|
||||
cpu: [arm64]
|
||||
os: [win32]
|
||||
requiresBuild: true
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/@next/swc-win32-ia32-msvc@13.5.3:
|
||||
resolution: {integrity: sha512-ONcL/lYyGUj4W37D4I2I450SZtSenmFAvapkJQNIJhrPMhzDU/AdfLkW98NvH1D2+7FXwe7yclf3+B7v28uzBQ==}
|
||||
engines: {node: '>= 10'}
|
||||
cpu: [ia32]
|
||||
os: [win32]
|
||||
requiresBuild: true
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/@next/swc-win32-x64-msvc@13.5.3:
|
||||
resolution: {integrity: sha512-2Vz2tYWaLqJvLcWbbTlJ5k9AN6JD7a5CN2pAeIzpbecK8ZF/yobA39cXtv6e+Z8c5UJuVOmaTldEAIxvsIux/Q==}
|
||||
engines: {node: '>= 10'}
|
||||
cpu: [x64]
|
||||
os: [win32]
|
||||
requiresBuild: true
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/@nicolo-ribaudo/chokidar-2@2.1.8-no-fsevents.3:
|
||||
resolution: {integrity: sha512-s88O1aVtXftvp5bCPB7WnmXc5IwOZZ7YPuwNPt+GtOOXpPvad1LfbmjYv+qII7zP6RU2QGnqve27dnLycEnyEQ==}
|
||||
requiresBuild: true
|
||||
|
@ -7206,7 +7291,6 @@ packages:
|
|||
/@opentelemetry/api@1.4.1:
|
||||
resolution: {integrity: sha512-O2yRJce1GOc6PAy3QxFM4NzFiWzvScDC1/5ihYBL6BUEVdq0XMWN01sppE+H6bBXbaFYipjwFLEWLg5PaSOThA==}
|
||||
engines: {node: '>=8.0.0'}
|
||||
dev: true
|
||||
|
||||
/@opentelemetry/core@1.15.2(@opentelemetry/api@1.4.1):
|
||||
resolution: {integrity: sha512-+gBv15ta96WqkHZaPpcDHiaz0utiiHZVfm2YOYSqFGrUaJpPkMoSuLBB58YFQGi6Rsb9EHos84X6X5+9JspmLw==}
|
||||
|
@ -7236,7 +7320,7 @@ packages:
|
|||
open: 8.4.0
|
||||
picocolors: 1.0.0
|
||||
tiny-glob: 0.2.9
|
||||
tslib: 2.5.3
|
||||
tslib: 2.6.2
|
||||
dev: false
|
||||
|
||||
/@playwright/test@1.35.1:
|
||||
|
@ -7721,7 +7805,7 @@ packages:
|
|||
/@swc/helpers@0.4.14:
|
||||
resolution: {integrity: sha512-4C7nX/dvpzB7za4Ql9K81xK3HPxCpHMgwTZVyf+9JQ6VUbn9jjZVN7/Nkdz/Ugzs2CSjqnL/UPXroiVBVHUWUw==}
|
||||
dependencies:
|
||||
tslib: 2.5.3
|
||||
tslib: 2.6.2
|
||||
dev: true
|
||||
|
||||
/@swc/helpers@0.5.2:
|
||||
|
@ -9517,7 +9601,7 @@ packages:
|
|||
resolution: {integrity: sha512-O0yuUDnZeQDL+ncNGlJ78BiO4jnYI3bvMsD5prT0/nsgijG/LpNBIr63gTjVTNsiGkgQhiyCShTgxt8oXOrklA==}
|
||||
engines: {node: '>=4'}
|
||||
dependencies:
|
||||
tslib: 2.5.3
|
||||
tslib: 2.6.2
|
||||
|
||||
/astral-regex@2.0.0:
|
||||
resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==}
|
||||
|
@ -19350,6 +19434,48 @@ packages:
|
|||
resolution: {integrity: sha1-yobR/ogoFpsBICCOPchCS524NCw=}
|
||||
dev: true
|
||||
|
||||
/next@13.5.3(@babel/core@7.18.0)(@opentelemetry/api@1.4.1)(react-dom@18.2.0)(react@18.2.0)(sass@1.54.0):
|
||||
resolution: {integrity: sha512-4Nt4HRLYDW/yRpJ/QR2t1v63UOMS55A38dnWv3UDOWGezuY0ZyFO1ABNbD7mulVzs9qVhgy2+ppjdsANpKP1mg==}
|
||||
engines: {node: '>=16.14.0'}
|
||||
hasBin: true
|
||||
peerDependencies:
|
||||
'@opentelemetry/api': ^1.1.0
|
||||
react: ^18.2.0
|
||||
react-dom: ^18.2.0
|
||||
sass: ^1.3.0
|
||||
peerDependenciesMeta:
|
||||
'@opentelemetry/api':
|
||||
optional: true
|
||||
sass:
|
||||
optional: true
|
||||
dependencies:
|
||||
'@next/env': 13.5.3
|
||||
'@opentelemetry/api': 1.4.1
|
||||
'@swc/helpers': 0.5.2
|
||||
busboy: 1.6.0
|
||||
caniuse-lite: 1.0.30001406
|
||||
postcss: 8.4.14
|
||||
react: 18.2.0
|
||||
react-dom: 18.2.0(react@18.2.0)
|
||||
sass: 1.54.0
|
||||
styled-jsx: 5.1.1(@babel/core@7.18.0)(react@18.2.0)
|
||||
watchpack: 2.4.0
|
||||
zod: 3.21.4
|
||||
optionalDependencies:
|
||||
'@next/swc-darwin-arm64': 13.5.3
|
||||
'@next/swc-darwin-x64': 13.5.3
|
||||
'@next/swc-linux-arm64-gnu': 13.5.3
|
||||
'@next/swc-linux-arm64-musl': 13.5.3
|
||||
'@next/swc-linux-x64-gnu': 13.5.3
|
||||
'@next/swc-linux-x64-musl': 13.5.3
|
||||
'@next/swc-win32-arm64-msvc': 13.5.3
|
||||
'@next/swc-win32-ia32-msvc': 13.5.3
|
||||
'@next/swc-win32-x64-msvc': 13.5.3
|
||||
transitivePeerDependencies:
|
||||
- '@babel/core'
|
||||
- babel-plugin-macros
|
||||
dev: false
|
||||
|
||||
/nice-try@1.0.5:
|
||||
resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==}
|
||||
dev: true
|
||||
|
@ -22765,7 +22891,7 @@ packages:
|
|||
ast-types: 0.14.2
|
||||
esprima: 4.0.1
|
||||
source-map: 0.6.1
|
||||
tslib: 2.5.3
|
||||
tslib: 2.6.2
|
||||
|
||||
/rechoir@0.6.2:
|
||||
resolution: {integrity: sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=}
|
||||
|
@ -23536,7 +23662,7 @@ packages:
|
|||
/rxjs@7.8.1:
|
||||
resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==}
|
||||
dependencies:
|
||||
tslib: 2.5.3
|
||||
tslib: 2.6.2
|
||||
dev: false
|
||||
|
||||
/sade@1.7.4:
|
||||
|
@ -23585,7 +23711,7 @@ packages:
|
|||
/safer-buffer@2.1.2:
|
||||
resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
|
||||
|
||||
/sass-loader@12.4.0(sass@1.54.0)(webpack@5.86.0):
|
||||
/sass-loader@12.4.0(webpack@5.86.0):
|
||||
resolution: {integrity: sha512-7xN+8khDIzym1oL9XyS6zP6Ges+Bo2B2xbPrjdMHEYyV3AQYhd/wXeru++3ODHF0zMjYmVadblSKrPrjEkL8mg==}
|
||||
engines: {node: '>= 12.13.0'}
|
||||
peerDependencies:
|
||||
|
@ -23603,7 +23729,6 @@ packages:
|
|||
dependencies:
|
||||
klona: 2.0.4
|
||||
neo-async: 2.6.2
|
||||
sass: 1.54.0
|
||||
webpack: 5.86.0(@swc/core@1.3.85)
|
||||
dev: true
|
||||
|
||||
|
@ -24852,7 +24977,7 @@ packages:
|
|||
engines: {node: ^14.18.0 || >=16.0.0}
|
||||
dependencies:
|
||||
'@pkgr/utils': 2.3.1
|
||||
tslib: 2.5.3
|
||||
tslib: 2.6.2
|
||||
dev: false
|
||||
|
||||
/table@6.8.0:
|
||||
|
@ -25399,6 +25524,7 @@ packages:
|
|||
|
||||
/tslib@2.5.3:
|
||||
resolution: {integrity: sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w==}
|
||||
dev: true
|
||||
|
||||
/tslib@2.6.2:
|
||||
resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==}
|
||||
|
@ -26859,9 +26985,9 @@ packages:
|
|||
/zwitch@2.0.4:
|
||||
resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==}
|
||||
|
||||
'@gitpkg-fork.vercel.sh/vercel/turbo/crates/turbopack-ecmascript-runtime/js?turbopack-230922.2(react-refresh@0.12.0)(webpack@5.86.0)':
|
||||
resolution: {tarball: https://gitpkg-fork.vercel.sh/vercel/turbo/crates/turbopack-ecmascript-runtime/js?turbopack-230922.2}
|
||||
id: '@gitpkg-fork.vercel.sh/vercel/turbo/crates/turbopack-ecmascript-runtime/js?turbopack-230922.2'
|
||||
'@gitpkg-fork.vercel.sh/vercel/turbo/crates/turbopack-ecmascript-runtime/js?turbopack-230928.3(react-refresh@0.12.0)(webpack@5.86.0)':
|
||||
resolution: {tarball: https://gitpkg-fork.vercel.sh/vercel/turbo/crates/turbopack-ecmascript-runtime/js?turbopack-230928.3}
|
||||
id: '@gitpkg-fork.vercel.sh/vercel/turbo/crates/turbopack-ecmascript-runtime/js?turbopack-230928.3'
|
||||
name: '@vercel/turbopack-ecmascript-runtime'
|
||||
version: 0.0.0
|
||||
dependencies:
|
||||
|
|
|
@ -115,7 +115,7 @@ describe('jsconfig-path-reloading', () => {
|
|||
await check(async () => {
|
||||
const html3 = await browser.eval('document.documentElement.innerHTML')
|
||||
return html3.includes('id="first-data"') &&
|
||||
!html3.includes('id="second-data"')
|
||||
!html3.includes('second-data')
|
||||
? 'success'
|
||||
: html3
|
||||
}, 'success')
|
||||
|
|
Loading…
Reference in a new issue