@docusaurus/plugin-client-redirects 2.0.0-beta.7fe2a9891 → 2.0.0-beta.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/.tsbuildinfo CHANGED
@@ -1 +1 @@
1
- {"program":{"fileNames":["../../../node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/typescript/lib/lib.es2021.d.ts","../../../node_modules/typescript/lib/lib.esnext.d.ts","../../../node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../node_modules/tslib/tslib.d.ts","../../../node_modules/@types/lodash/common/common.d.ts","../../../node_modules/@types/lodash/common/array.d.ts","../../../node_modules/@types/lodash/common/collection.d.ts","../../../node_modules/@types/lodash/common/date.d.ts","../../../node_modules/@types/lodash/common/function.d.ts","../../../node_modules/@types/lodash/common/lang.d.ts","../../../node_modules/@types/lodash/common/math.d.ts","../../../node_modules/@types/lodash/common/number.d.ts","../../../node_modules/@types/lodash/common/object.d.ts","../../../node_modules/@types/lodash/common/seq.d.ts","../../../node_modules/@types/lodash/common/string.d.ts","../../../node_modules/@types/lodash/common/util.d.ts","../../../node_modules/@types/lodash/index.d.ts","../../../node_modules/webpack/node_modules/@types/estree/index.d.ts","../../../node_modules/@types/json-schema/index.d.ts","../../../node_modules/ajv/lib/ajv.d.ts","../../../node_modules/schema-utils/declarations/ValidationError.d.ts","../../../node_modules/schema-utils/declarations/validate.d.ts","../../../node_modules/schema-utils/declarations/index.d.ts","../../../node_modules/tapable/tapable.d.ts","../../../node_modules/webpack/types.d.ts","../../docusaurus-types/node_modules/commander/typings/index.d.ts","../../../node_modules/joi/lib/index.d.ts","../../docusaurus-types/src/index.d.ts","../src/types.ts","../../docusaurus-utils/lib/posixPath.d.ts","../../docusaurus-utils/lib/getFilePathForRoutePath.d.ts","../../docusaurus-utils/lib/codeTranslationsUtils.d.ts","../../docusaurus-utils/lib/markdownParser.d.ts","../../docusaurus-utils/lib/markdownLinks.d.ts","../../docusaurus-utils/lib/escapePath.d.ts","../../docusaurus-utils/lib/hashUtils.d.ts","../../docusaurus-utils/lib/index.d.ts","../src/extensionRedirects.ts","../../docusaurus-utils-validation/lib/Joi.d.ts","../../docusaurus-utils-validation/lib/validationUtils.d.ts","../../docusaurus-utils-validation/lib/validationSchemas.d.ts","../../docusaurus-utils-validation/lib/index.d.ts","../src/redirectValidation.ts","../../docusaurus-utils-common/lib/applyTrailingSlash.d.ts","../../docusaurus-utils-common/lib/uniq.d.ts","../../docusaurus-utils-common/lib/index.d.ts","../../../node_modules/chalk/index.d.ts","../src/collectRedirects.ts","../../../node_modules/eta/dist/types/compile.d.ts","../../../node_modules/eta/dist/types/storage.d.ts","../../../node_modules/eta/dist/types/config.d.ts","../../../node_modules/eta/dist/types/file-handlers.d.ts","../../../node_modules/eta/dist/types/compile-string.d.ts","../../../node_modules/eta/dist/types/parse.d.ts","../../../node_modules/eta/dist/types/render.d.ts","../../../node_modules/eta/dist/types/containers.d.ts","../../../node_modules/eta/dist/types/index.d.ts","../src/templates/redirectPage.template.html.ts","../src/createRedirectPageContent.ts","../../docusaurus/lib/constants.d.ts","../src/normalizePluginOptions.ts","../../../node_modules/@types/fs-extra/node_modules/@types/node/assert/strict.d.ts","../../../node_modules/@types/fs-extra/node_modules/@types/node/globals.d.ts","../../../node_modules/@types/fs-extra/node_modules/@types/node/async_hooks.d.ts","../../../node_modules/@types/fs-extra/node_modules/@types/node/buffer.d.ts","../../../node_modules/@types/fs-extra/node_modules/@types/node/child_process.d.ts","../../../node_modules/@types/fs-extra/node_modules/@types/node/cluster.d.ts","../../../node_modules/@types/fs-extra/node_modules/@types/node/console.d.ts","../../../node_modules/@types/fs-extra/node_modules/@types/node/constants.d.ts","../../../node_modules/@types/fs-extra/node_modules/@types/node/crypto.d.ts","../../../node_modules/@types/fs-extra/node_modules/@types/node/dgram.d.ts","../../../node_modules/@types/fs-extra/node_modules/@types/node/diagnostic_channel.d.ts","../../../node_modules/@types/fs-extra/node_modules/@types/node/dns.d.ts","../../../node_modules/@types/fs-extra/node_modules/@types/node/dns/promises.d.ts","../../../node_modules/@types/fs-extra/node_modules/@types/node/domain.d.ts","../../../node_modules/@types/fs-extra/node_modules/@types/node/events.d.ts","../../../node_modules/@types/fs-extra/node_modules/@types/node/fs.d.ts","../../../node_modules/@types/fs-extra/node_modules/@types/node/fs/promises.d.ts","../../../node_modules/@types/fs-extra/node_modules/@types/node/http.d.ts","../../../node_modules/@types/fs-extra/node_modules/@types/node/http2.d.ts","../../../node_modules/@types/fs-extra/node_modules/@types/node/https.d.ts","../../../node_modules/@types/fs-extra/node_modules/@types/node/inspector.d.ts","../../../node_modules/@types/fs-extra/node_modules/@types/node/module.d.ts","../../../node_modules/@types/fs-extra/node_modules/@types/node/net.d.ts","../../../node_modules/@types/fs-extra/node_modules/@types/node/os.d.ts","../../../node_modules/@types/fs-extra/node_modules/@types/node/path.d.ts","../../../node_modules/@types/fs-extra/node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/@types/fs-extra/node_modules/@types/node/process.d.ts","../../../node_modules/@types/fs-extra/node_modules/@types/node/punycode.d.ts","../../../node_modules/@types/fs-extra/node_modules/@types/node/querystring.d.ts","../../../node_modules/@types/fs-extra/node_modules/@types/node/readline.d.ts","../../../node_modules/@types/fs-extra/node_modules/@types/node/repl.d.ts","../../../node_modules/@types/fs-extra/node_modules/@types/node/stream.d.ts","../../../node_modules/@types/fs-extra/node_modules/@types/node/stream/promises.d.ts","../../../node_modules/@types/fs-extra/node_modules/@types/node/string_decoder.d.ts","../../../node_modules/@types/fs-extra/node_modules/@types/node/timers.d.ts","../../../node_modules/@types/fs-extra/node_modules/@types/node/timers/promises.d.ts","../../../node_modules/@types/fs-extra/node_modules/@types/node/tls.d.ts","../../../node_modules/@types/fs-extra/node_modules/@types/node/trace_events.d.ts","../../../node_modules/@types/fs-extra/node_modules/@types/node/tty.d.ts","../../../node_modules/@types/fs-extra/node_modules/@types/node/url.d.ts","../../../node_modules/@types/fs-extra/node_modules/@types/node/util.d.ts","../../../node_modules/@types/fs-extra/node_modules/@types/node/util/types.d.ts","../../../node_modules/@types/fs-extra/node_modules/@types/node/v8.d.ts","../../../node_modules/@types/fs-extra/node_modules/@types/node/vm.d.ts","../../../node_modules/@types/fs-extra/node_modules/@types/node/worker_threads.d.ts","../../../node_modules/@types/fs-extra/node_modules/@types/node/zlib.d.ts","../../../node_modules/@types/fs-extra/node_modules/@types/node/globals.global.d.ts","../../../node_modules/@types/fs-extra/node_modules/@types/node/wasi.d.ts","../../../node_modules/@types/fs-extra/node_modules/@types/node/ts3.6/base.d.ts","../../../node_modules/@types/fs-extra/node_modules/@types/node/assert.d.ts","../../../node_modules/@types/fs-extra/node_modules/@types/node/base.d.ts","../../../node_modules/@types/fs-extra/node_modules/@types/node/index.d.ts","../../../node_modules/@types/fs-extra/index.d.ts","../src/writeRedirectFiles.ts","../src/index.ts"],"fileInfos":[{"version":"ac3a8c4040e183ce38da69d23b96939112457d1936198e6542672b7963cf0fce","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","e6b724280c694a9f588847f754198fb96c43d805f065c3a5b28bbc9594541c84","e21c071ca3e1b4a815d5f04a7475adcaeea5d64367e840dd0154096d705c3940","eb75e89d63b3b72dd9ca8b0cac801cecae5be352307c004adeaa60bc9d6df51f","2cc028cd0bdb35b1b5eb723d84666a255933fffbea607f72cbd0c7c7b4bee144",{"version":"1dad4fe1561d99dfd6709127608b99a76e5c2643626c800434f99c48038567ee","affectsGlobalScope":true},{"version":"cce43d02223f8049864f8568bed322c39424013275cd3bcc3f51492d8b546cb3","affectsGlobalScope":true},{"version":"43fb1d932e4966a39a41b464a12a81899d9ae5f2c829063f5571b6b87e6d2f9c","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"8dff1b4c2df638fcd976cbb0e636f23ab5968e836cd45084cc31d47d1ab19c49","affectsGlobalScope":true},{"version":"2bb4b3927299434052b37851a47bf5c39764f2ba88a888a107b32262e9292b7c","affectsGlobalScope":true},{"version":"810627a82ac06fb5166da5ada4159c4ec11978dfbb0805fe804c86406dab8357","affectsGlobalScope":true},{"version":"62d80405c46c3f4c527ee657ae9d43fda65a0bf582292429aea1e69144a522a6","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"8f4c9f651c8294a2eb1cbd12581fe25bfb901ab1d474bb93cd38c7e2f4be7a30","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"12a310447c5d23c7d0d5ca2af606e3bd08afda69100166730ab92c62999ebb9d","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"df9c8a72ca8b0ed62f5470b41208a0587f0f73f0a7db28e5a1272cf92537518e","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"93544ca2f26a48716c1b6c5091842cad63129daac422dfa4bc52460465f22bb1","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"60761e6ea886034af0f294f025a7199360ce4e2c8ba4ec6408bc049cf9b89799","affectsGlobalScope":true},{"version":"7435b75fdf3509622e79622dbe5091cf4b09688410ee2034e4fc17d0c99d0862","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"9f1817f7c3f02f6d56e0f403b927e90bb133f371dcebc36fa7d6d208ef6899da","affectsGlobalScope":true},{"version":"cd6efb9467a8b6338ece2e2855e37765700f2cd061ca54b01b33878cf5c7677e","affectsGlobalScope":true},{"version":"fb4416144c1bf0323ccbc9afb0ab289c07312214e8820ad17d709498c865a3fe","affectsGlobalScope":true},{"version":"5b0ca94ec819d68d33da516306c15297acec88efeb0ae9e2b39f71dbd9685ef7","affectsGlobalScope":true},{"version":"506b80b9951c9381dc5f11897b31fca5e2a65731d96ddefa19687fbc26b23c6e","affectsGlobalScope":true},"ea7abf23498b7c214c67fc14f22f41983fbb7bf7c4826c7fcdef542b2022545f","3594c022901a1c8993b0f78a3f534cfb81e7b619ed215348f7f6882f3db02abc","438284c7c455a29b9c0e2d1e72abc62ee93d9a163029ffe918a34c5db3b92da2","0c75b204aed9cf6ff1c7b4bed87a3ece0d9d6fc857a6350c0c95ed0c38c814e8","187119ff4f9553676a884e296089e131e8cc01691c546273b1d0089c3533ce42","782abf371043fc65a987f835a3acfd80602a30c3e2122f6d5756a86bf6913352","509235563ea2b939e1bbe92aae17e71e6a82ceab8f568b45fb4fce7d72523a32","9364c7566b0be2f7b70ff5285eb34686f83ccb01bda529b82d23b2a844653bfb","00baffbe8a2f2e4875367479489b5d43b5fc1429ecb4a4cc98cfc3009095f52a","82251920b05f30981c9a4109cb5f3169dce4b477effc845c6d781044a30e7672","3c92b6dfd43cc1c2485d9eba5ff0b74a19bb8725b692773ef1d66dac48cda4bd","4908e4c00832b26ce77a629de8501b0e23a903c094f9e79a7fec313a15da796a","2630a7cbb597e85d713b7ef47f2946d4280d3d4c02733282770741d40672b1a5",{"version":"0714e2046df66c0e93c3330d30dbc0565b3e8cd3ee302cf99e4ede6220e5fec8","affectsGlobalScope":true},"f1e8ecd1d960d12e57316fd2889b0a57635f38f8c4c976d8deafa29650bbf320","3a1e165b22a1cb8df82c44c9a09502fd2b33f160cd277de2cd3a055d8e5c6b27","67f129ed8b372622ff36b8b10e39d03e09e363a5ff7821105f92f085b8d1ccba","327f42ab31ff4539ba868d0374f8825af328b104b5f78d26b2e3ce9cc17b43a0","62a05210201c793349ec28254f06a01814c5b4f5591f6d1921941286db78ea2a","8f877178233f74095130e129ce86128a6a15afcfc6171d714e154863b6a65fe8","b395ec0779c66de885f97974534e95ee2c8bbf9acaf5857a6782ddc32972b6d8","572b4d4c4e2cd3026db925ca5cb721f5c3f4f52938da404de1148a126348f29b","c72b982add26c5ddf410899bcafe3f47253a5d274d4b93d2ef67850d4af4545b","332bc92a89da24ef3a645208f2b3159292460a52fbe63c40eef64c2a63bb1e40","aefb89303293b92387354bd8464557e02efa728bfd0d7f9316579092e9e47856","57dc389181eeb619a8b10299e3447cd6d9b216453af993abda5afedd6b39b455","0daf3165e72cc1ed5263a3374b98cb065f78922c76602477973ee0654b99df17","54908e77ad591652580ebdfcc70078a3ae69978e8393a0c95e9e4319fd7d591a","98249526332851a623664fd515a293f50d680d4a86d633585ecb9168e67cd872","3fedee34f24b13af4a97c4184a9e215a6f6b2dfb655dafc24970c76791b06c43","4fae0cbdbb492b0fc847ec76d0a4af44eb04028200cec088d97fca05438213f1","c7642b1c7345e546c81831fe5fa9233e15a12fa2743f6685b0d700af8292cdd0","857d6d4a53c4372a2799e733ab122d28f7b2b580fe58b80a5fe1321a733c20f7","507c590897f90453e6f2e8945a52153d14cc67241ad84d85704df2eb5960a87e","2785a6dc43904230555b9b7a93415322690664a2b62e2eb8539c8c756e2d0eba","889859c907d8388cfe92d4bdfe5b5ff0885a41e6e4568691230e21757f7673c9","d62aae9510ec58d3533a76b9915dae85dea65aa39c915613dc9f47918f596b1e","57e1940021e5e3ff12963f4218195c786a0d2a475a400fffb7cdd4352823854d","01c67feaa6d785a1f958c92f0e1eabdd69bd5e44cbd8a233b89a247ad9bb1dc3","700c2f83a83482242336bf0033edbd961105577f16b9cf549333159fc719add2","63c9b50b55f320e8da81290acd27de8e1dab92e13b3ec7f24b80fde9dd80b795","efc0cf69f54f6d4fbdcc205cc938f1f6f6f1d63fbcb7b3f912a4755805b05b31","20da58cecd1ad8c239745c7ebb8ae0729c182223650702ec816d3bdec566e3bb","0d14fa22c41fdc7277e6f71473b20ebc07f40f00e38875142335d5b63cdfc9d2","b12f0a6baceceb49f0f3db81a91b21ba490993ff6aff649cdb7393822cbcc301","a3cf09a8ce34726b0557b3e51135a6768b464e86b7190355e42f10ba368e9786","dcd04eabb6c23406dc589f688c7a83d25a8aa0c93ee34c0be1114113c32792d6","0a21f90e2ffaf26b305183fd2029a7dd512bb3189a9d6842ba764782e609429e","5560fae6a4c210279d4c913e62dfa82f6ebbc283800e430c4ec54e20216e4b2f","bd868c7a5868f2680d332b85283be6be45edb766a95c4b8034aff7c741ab1aad","5ec0c5db09dfb4f1cd140417dc86fed025bd757d63c11fe2c4148ec12fd20111","2737dcbf71e062619538a0d3075795be33900ccf377d5dae1e90197f95787566","2db6353e2fdcbd2842b5b0a36d11e11ffbff703552e19481a55a63155e14c6be","74175ef96c3d3cb5e7bcaf0387ca4cc3de9f1bf68b42a082d8be5e79178c2c7e","37723b12b6a526579c9a467ab70a9414fc30994e24bd4b9dae41148ed3e112a1","63a254a5a16ee3457a0dd00dedacc0d76cc7897b976ec64d59d149d43c4859b7","4977865ec3570795ce920e30b51b6c345ad782bd804202e80d95fc1a09299a7d","c8c407861245162fcf6c4a65125331964efa6f75972dd908ea0e2ba13ca77b33","c7bdc99177a2a94d25fb13722adaaf5b3291bf70b4d1b27584ba189dd3889ba3",{"version":"7c4064a324cd755a9b281d5795fc6ebd9dd713b1c356220185c61eb1b2d0f1af","affectsGlobalScope":true},"e23424b97418eca3226fd24de079f1203eb70360622e4e093af2aff14d4be6ec","ff16181fe134bb123283eb6777c624f6f3ee3f5c17d70b8447fa68af0935d312","54868134aa26f98b6fbc8d28040d8a0f5e64a1cb0dfac7f059b35cac99d626f2","04eaa93bd75f937f9184dcb95a7983800c5770cf8ddd8ac0f3734dc02f5b20ef",{"version":"7ddd5487c03df04c01a8618e06d875e167524902ed3dd9a2a9345a0ef5202d6f","affectsGlobalScope":true},"45ac321f2e15d268fd74a90ddaa6467dcaaff2c5b13f95b4b85831520fb7a491","dfc747ab8dd5f623055a4c26fd35e8cceca869fd3f1cf09701c941ca3679665a","c9f5f2920ff61d7158417b8440d5181ddc34a3dfef811a5677dd8a9fb91471e9","5cc0a492da3602510b8f5ed1852b1e0390002780d8758fbc8c0cd023ca7085f8","ec7dafafe751a5121f8f1c80201ebe7e7238c47e6329280a73c4d1ca4bb7fa28","64debeb10e4b7ae4ec9e89bfb4e04c6101ab98c3cc806d14e5488607cfec2753",{"version":"2866a528b2708aa272ec3eaafd3c980abb23aec1ef831cfc5eb2186b98c37ce5","affectsGlobalScope":true},{"version":"a5782d6cea81fe43d2db7ed41e789458c933ab3ab60602f7b5b14c4da3370496","affectsGlobalScope":true},"b86b7ff709a82ef3cba2184136c025989958bad483ffb13e4ca35d720245adf4","05b1c856de9c8f2c09c86a89455e25965342496ebe6d089760a9646c51295c76","c0d983dfc997b446ec8e456dea90e8c0c97ba896d55d7e34dfc351f32c405eb9","b447e123210c68f205f67b20c996c04a1eb64b0e591c5e06e164cd3d3a869b28","13257840c0850d4ebd7c2b17604a9e006f752de76c2400ebc752bc465c330452","42176966283d3835c34278b9b5c0f470d484c0c0c6a55c20a2c916a1ce69b6e8","0cff7901aedfe78e314f7d44088f07e2afa1b6e4f0473a4169b8456ca2fb245d","6ea59cf5479f3fad5db2caa4513d8d06d6cfee8d8df69e7a040c9b5b7f25f39c","e2236264a811ed1d09a2487a433e8f5216ae62378cf233954ae220cf886f6717","3ec1e108d587a5661ec790db607f482605ba9f3830e118ce578e3ffa3c42e22b","100b3bb9d39d2b1b5340f1bf45a52e94ef1692b45232b4ba00fac5c3cc56d331",{"version":"ec1a29ddaecb683aa360df0bd98ab5d4171d2d549554f7c5ab2a5c183a3dcb67","affectsGlobalScope":true},"7f77304372efe3c9967e5f9ea2061f1b4bf41dc3cda3c83cdd676f2e5af6b7e6","992c6f6be16c0a1d2eec13ece33adeea2c747ba27fcd078353a8f4bb5b4fea58","2597718d91e306949d89e285bf34c44192014ef541c3bd7cbb825c022749e974","a6b0abdb67d63ebe964ba5fee31bc3daf10c12eecd46b24d778426010c04c67e","ac4801ebc2355ba32329070123b1cd15891bf71b41dcaf9e75b4744832126a59","fd2298fba0640e7295e7bd545e2dfbfcccbb00c27019e501c87965a02bbdebf6","4fd3c4debadce3e9ab9dec3eb45f7f5e2e3d4ad65cf975a6d938d883cfb25a50","71ddd49185b68f27bfac127ef5d22cb2672c278e53e5370d9020ef50ca9c377d","b1ea7a6eaa7608e0e0529aebd323b526a79c6c05a4e519ae5c779675004dcdf1","9fcb033a6208485d8f3fadde31eb5cbcaf99149cff3e40c0dc53ebc6d0dff4e9","7df562288f949945cf69c21cd912100c2afedeeb7cdb219085f7f4b46cb7dde4","9d16690485ff1eb4f6fc57aebe237728fd8e03130c460919da3a35f4d9bd97f5","dcc6910d95a3625fd2b0487fda055988e46ab46c357a1b3618c27b4a8dd739c9","f4149f1aa299474c7040a35fe8f8ac2ad078cc1b190415adc1fff3ed52d490ea","3730099ed008776216268a97771de31753ef71e0a7d0ec650f588cba2a06ce44","8d649dbc429d7139a1d9a14ea2bf8af1dc089e0a879447539587463d4b6c248c","60c9e27816ec8ac8df7240598bb086e95b47edfb454c5cbf4003c812e0ed6e39","e361aecf17fc4034b4c122a1564471cdcd22ef3a51407803cb5a5fc020c04d02","4926467de88a92a4fc9971d8c6f21b91eca1c0e7fc2a46cc4638ab9440c73875",{"version":"2708349d5a11a5c2e5f3a0765259ebe7ee00cdcc8161cb9990cb4910328442a1","affectsGlobalScope":true},"fc0ae4a8ad3c762b96f9d2c3700cb879a373458cb0bf3175478e3b4f85f7ef2f","fabbec378e1ddd86fcf2662e716c2b8318acedb664ee3a4cba6f9e8ee8269cf1","b3593bd345ebea5e4d0a894c03251a3774b34df3d6db57075c18e089a599ba76","e61a21e9418f279bc480394a94d1581b2dee73747adcbdef999b6737e34d721b","13c7832f048b08604b7e88b69247aecf955bb7b27a0881c2f7f23bb645435479","8d01c38ccb9af3a4035a68818799e5ef32ccc8cf70bdb83e181e1921d7ad32f6","b9a4105d0aeff4b9d5b694be2efd09c95cfe1ee28784e3a95dfb658aabe539af","da4f3cdbfac5e573bc714b06f64c5346c33a69364981bf6437f058a0099656e0"],"options":{"allowSyntheticDefaultImports":true,"declaration":true,"declarationMap":false,"esModuleInterop":true,"importHelpers":true,"jsx":2,"module":1,"noEmitHelpers":true,"noFallthroughCasesInSwitch":true,"noImplicitReturns":true,"noImplicitThis":true,"noUnusedLocals":false,"noUnusedParameters":false,"outDir":"./","rootDir":"../src","skipLibCheck":true,"strictFunctionTypes":true,"strictNullChecks":true,"strictPropertyInitialization":true,"target":6,"tsBuildInfoFile":"./.tsbuildinfo"},"fileIdsList":[[118,154],[152],[151,152],[106,111],[117,118,125,134],[107,117,125],[143],[111,118,126],[134,139],[114,117,125],[115],[114],[117],[117,119,134,142],[117,118],[125,134,142],[117,118,120,125,134,139,142],[120,139,142],[153],[142],[114,117,134],[127],[105],[141],[132,143,146],[117,135],[134],[137],[111,125],[103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150],[125],[131],[144],[106,111,117,119,128,134,142,146],[46,48,49,50,51,52,53,54,55,56,57,58],[46,47,49,50,51,52,53,54,55,56,57,58],[47,48,49,50,51,52,53,54,55,56,57,58],[46,47,48,50,51,52,53,54,55,56,57,58],[46,47,48,49,51,52,53,54,55,56,57,58],[46,47,48,49,50,52,53,54,55,56,57,58],[46,47,48,49,50,51,53,54,55,56,57,58],[46,47,48,49,50,51,52,54,55,56,57,58],[46,47,48,49,50,51,52,53,55,56,57,58],[46,47,48,49,50,51,52,53,54,56,57,58],[46,47,48,49,50,51,52,53,54,55,57,58],[46,47,48,49,50,51,52,53,54,55,56,58],[46,47,48,49,50,51,52,53,54,55,56,57],[92],[92,93],[90,91],[90,92],[90,92,93,94,95,96,97],[90,92,93],[60,61,63],[62,63],[60,61,62],[59,63,64,65],[45,58,70,79,84,87,88],[45,58,98,99],[45,58,70,78],[45,69,70,78,88,89,102,156],[45,70,83,101],[45,70,83],[45],[45,69],[45,58,70,78,100,127,155],[66,67,68,131],[69],[85,86],[68],[80,81,82],[80],[69,71,72,73,74,75,76,77]],"referencedMap":[[155,1],[103,2],[153,3],[106,4],[107,5],[108,6],[109,7],[110,8],[111,9],[112,10],[114,11],[115,12],[116,13],[117,13],[118,14],[119,15],[120,16],[121,17],[122,18],[154,19],[123,13],[124,20],[125,21],[127,22],[128,23],[129,24],[132,13],[133,25],[134,26],[135,27],[137,13],[138,28],[139,29],[151,30],[141,31],[142,32],[143,33],[145,27],[147,34],[148,27],[47,35],[48,36],[46,37],[49,38],[50,39],[51,40],[52,41],[53,42],[54,43],[55,44],[56,45],[57,46],[58,47],[94,48],[90,49],[92,50],[97,50],[93,51],[98,52],[95,48],[96,53],[62,54],[64,55],[63,56],[66,57],[89,58],[100,59],[79,60],[157,61],[102,62],[84,63],[99,64],[70,65],[156,66],[69,67],[85,68],[87,69],[80,70],[83,71],[82,72],[81,72],[78,73]],"exportedModulesMap":[[155,1],[103,2],[153,3],[106,4],[107,5],[108,6],[109,7],[110,8],[111,9],[112,10],[114,11],[115,12],[116,13],[117,13],[118,14],[119,15],[120,16],[121,17],[122,18],[154,19],[123,13],[124,20],[125,21],[127,22],[128,23],[129,24],[132,13],[133,25],[134,26],[135,27],[137,13],[138,28],[139,29],[151,30],[141,31],[142,32],[143,33],[145,27],[147,34],[148,27],[47,35],[48,36],[46,37],[49,38],[50,39],[51,40],[52,41],[53,42],[54,43],[55,44],[56,45],[57,46],[58,47],[94,48],[90,49],[92,50],[97,50],[93,51],[98,52],[95,48],[96,53],[62,54],[64,55],[63,56],[66,57],[89,58],[100,59],[79,60],[157,61],[102,62],[84,63],[99,64],[70,65],[156,66],[69,67],[85,68],[87,69],[80,70],[83,71],[82,72],[81,72],[78,73]],"semanticDiagnosticsPerFile":[155,152,103,105,153,106,107,108,109,110,111,112,113,114,115,116,117,118,119,104,149,120,121,122,154,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,151,141,142,143,144,145,146,150,147,148,60,47,48,46,49,50,51,52,53,54,55,56,57,58,61,88,94,90,92,97,93,98,95,96,91,68,62,64,63,65,45,10,12,11,2,13,14,15,16,17,18,19,20,3,4,24,21,22,23,25,26,27,5,28,29,30,31,6,32,33,34,35,7,40,36,37,38,39,8,41,42,43,1,9,44,59,66,89,100,79,157,102,84,99,70,156,67,69,85,87,86,80,83,82,81,73,76,72,77,78,75,74,71,101]},"version":"4.3.2"}
1
+ {"program":{"fileNames":["../../../node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/typescript/lib/lib.es2021.d.ts","../../../node_modules/typescript/lib/lib.esnext.d.ts","../../../node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../node_modules/tslib/tslib.d.ts","../../../node_modules/@types/lodash/common/common.d.ts","../../../node_modules/@types/lodash/common/array.d.ts","../../../node_modules/@types/lodash/common/collection.d.ts","../../../node_modules/@types/lodash/common/date.d.ts","../../../node_modules/@types/lodash/common/function.d.ts","../../../node_modules/@types/lodash/common/lang.d.ts","../../../node_modules/@types/lodash/common/math.d.ts","../../../node_modules/@types/lodash/common/number.d.ts","../../../node_modules/@types/lodash/common/object.d.ts","../../../node_modules/@types/lodash/common/seq.d.ts","../../../node_modules/@types/lodash/common/string.d.ts","../../../node_modules/@types/lodash/common/util.d.ts","../../../node_modules/@types/lodash/index.d.ts","../../../node_modules/@types/estree/index.d.ts","../../../node_modules/@types/json-schema/index.d.ts","../../../node_modules/schema-utils/declarations/validationerror.d.ts","../../../node_modules/ajv/lib/ajv.d.ts","../../../node_modules/schema-utils/declarations/validate.d.ts","../../../node_modules/schema-utils/declarations/index.d.ts","../../../node_modules/tapable/tapable.d.ts","../../../node_modules/webpack/types.d.ts","../../docusaurus-types/node_modules/commander/typings/index.d.ts","../../../node_modules/joi/lib/index.d.ts","../../../node_modules/utility-types/dist/aliases-and-guards.d.ts","../../../node_modules/utility-types/dist/mapped-types.d.ts","../../../node_modules/utility-types/dist/utility-types.d.ts","../../../node_modules/utility-types/dist/functional-helpers.d.ts","../../../node_modules/utility-types/dist/index.d.ts","../../docusaurus-types/src/index.d.ts","../src/types.ts","../../docusaurus-utils/lib/posixpath.d.ts","../../docusaurus-utils/lib/mdxutils.d.ts","../../docusaurus-utils/lib/normalizeurl.d.ts","../../docusaurus-utils/lib/tags.d.ts","../../docusaurus-utils/lib/codetranslationsutils.d.ts","../../docusaurus-utils/lib/markdownparser.d.ts","../../docusaurus-utils/lib/markdownlinks.d.ts","../../docusaurus-utils/lib/escapepath.d.ts","../../docusaurus-utils/lib/hashutils.d.ts","../../../node_modules/@types/node/assert.d.ts","../../../node_modules/@types/node/globals.d.ts","../../../node_modules/@types/node/async_hooks.d.ts","../../../node_modules/@types/node/buffer.d.ts","../../../node_modules/@types/node/child_process.d.ts","../../../node_modules/@types/node/cluster.d.ts","../../../node_modules/@types/node/console.d.ts","../../../node_modules/@types/node/constants.d.ts","../../../node_modules/@types/node/crypto.d.ts","../../../node_modules/@types/node/dgram.d.ts","../../../node_modules/@types/node/dns.d.ts","../../../node_modules/@types/node/domain.d.ts","../../../node_modules/@types/node/events.d.ts","../../../node_modules/@types/node/fs.d.ts","../../../node_modules/@types/node/fs/promises.d.ts","../../../node_modules/@types/node/http.d.ts","../../../node_modules/@types/node/http2.d.ts","../../../node_modules/@types/node/https.d.ts","../../../node_modules/@types/node/inspector.d.ts","../../../node_modules/@types/node/module.d.ts","../../../node_modules/@types/node/net.d.ts","../../../node_modules/@types/node/os.d.ts","../../../node_modules/@types/node/path.d.ts","../../../node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/@types/node/process.d.ts","../../../node_modules/@types/node/punycode.d.ts","../../../node_modules/@types/node/querystring.d.ts","../../../node_modules/@types/node/readline.d.ts","../../../node_modules/@types/node/repl.d.ts","../../../node_modules/@types/node/stream.d.ts","../../../node_modules/@types/node/string_decoder.d.ts","../../../node_modules/@types/node/timers.d.ts","../../../node_modules/@types/node/tls.d.ts","../../../node_modules/@types/node/trace_events.d.ts","../../../node_modules/@types/node/tty.d.ts","../../../node_modules/@types/node/url.d.ts","../../../node_modules/@types/node/util.d.ts","../../../node_modules/@types/node/v8.d.ts","../../../node_modules/@types/node/vm.d.ts","../../../node_modules/@types/node/wasi.d.ts","../../../node_modules/@types/node/worker_threads.d.ts","../../../node_modules/@types/node/zlib.d.ts","../../../node_modules/@types/node/globals.global.d.ts","../../../node_modules/@types/node/index.d.ts","../../../node_modules/@nodelib/fs.stat/out/types/index.d.ts","../../../node_modules/@nodelib/fs.stat/out/adapters/fs.d.ts","../../../node_modules/@nodelib/fs.stat/out/settings.d.ts","../../../node_modules/@nodelib/fs.stat/out/providers/async.d.ts","../../../node_modules/@nodelib/fs.stat/out/index.d.ts","../../../node_modules/@nodelib/fs.scandir/out/types/index.d.ts","../../../node_modules/@nodelib/fs.scandir/out/adapters/fs.d.ts","../../../node_modules/@nodelib/fs.scandir/out/settings.d.ts","../../../node_modules/@nodelib/fs.scandir/out/providers/async.d.ts","../../../node_modules/@nodelib/fs.scandir/out/index.d.ts","../../../node_modules/@nodelib/fs.walk/out/types/index.d.ts","../../../node_modules/@nodelib/fs.walk/out/settings.d.ts","../../../node_modules/@nodelib/fs.walk/out/readers/reader.d.ts","../../../node_modules/@nodelib/fs.walk/out/readers/async.d.ts","../../../node_modules/@nodelib/fs.walk/out/providers/async.d.ts","../../../node_modules/@nodelib/fs.walk/out/index.d.ts","../../../node_modules/fast-glob/out/types/index.d.ts","../../../node_modules/fast-glob/out/settings.d.ts","../../../node_modules/fast-glob/out/managers/tasks.d.ts","../../../node_modules/fast-glob/out/index.d.ts","../../../node_modules/globby/index.d.ts","../../docusaurus-utils/lib/globutils.d.ts","../../docusaurus-utils/lib/index.d.ts","../src/extensionredirects.ts","../../docusaurus-utils-validation/lib/joi.d.ts","../../docusaurus-utils-validation/lib/joifrontmatter.d.ts","../../docusaurus-utils-validation/lib/validationutils.d.ts","../../docusaurus-utils-validation/lib/validationschemas.d.ts","../../docusaurus-utils-validation/lib/index.d.ts","../src/redirectvalidation.ts","../../docusaurus-utils-common/lib/applytrailingslash.d.ts","../../docusaurus-utils-common/lib/uniq.d.ts","../../docusaurus-utils-common/lib/index.d.ts","../../../node_modules/chalk/index.d.ts","../src/collectredirects.ts","../../../node_modules/eta/dist/types/compile.d.ts","../../../node_modules/eta/dist/types/storage.d.ts","../../../node_modules/eta/dist/types/config.d.ts","../../../node_modules/eta/dist/types/file-handlers.d.ts","../../../node_modules/eta/dist/types/compile-string.d.ts","../../../node_modules/eta/dist/types/parse.d.ts","../../../node_modules/eta/dist/types/render.d.ts","../../../node_modules/eta/dist/types/containers.d.ts","../../../node_modules/eta/dist/types/index.d.ts","../src/templates/redirectpage.template.html.ts","../src/createredirectpagecontent.ts","../../docusaurus/lib/constants.d.ts","../src/normalizepluginoptions.ts","../../../node_modules/@types/fs-extra/index.d.ts","../src/writeredirectfiles.ts","../src/index.ts","../src/plugin-client-redirects.d.ts","../../../node_modules/@types/fs-extra/node_modules/@types/node/index.d.ts"],"fileInfos":[{"version":"aa9fb4c70f369237c2f45f9d969c9a59e0eae9a192962eb48581fe864aa609db","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","e6b724280c694a9f588847f754198fb96c43d805f065c3a5b28bbc9594541c84","e21c071ca3e1b4a815d5f04a7475adcaeea5d64367e840dd0154096d705c3940","eb75e89d63b3b72dd9ca8b0cac801cecae5be352307c004adeaa60bc9d6df51f","2cc028cd0bdb35b1b5eb723d84666a255933fffbea607f72cbd0c7c7b4bee144",{"version":"e54c8715a4954cfdc66cd69489f2b725c09ebf37492dbd91cff0a1688b1159e8","affectsGlobalScope":true},{"version":"51b8b27c21c066bf877646e320bf6a722b80d1ade65e686923cd9d4494aef1ca","affectsGlobalScope":true},{"version":"43fb1d932e4966a39a41b464a12a81899d9ae5f2c829063f5571b6b87e6d2f9c","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"2c8c5ee58f30e7c944e04ab1fb5506fdbb4dd507c9efa6972cf4b91cec90c503","affectsGlobalScope":true},{"version":"2bb4b3927299434052b37851a47bf5c39764f2ba88a888a107b32262e9292b7c","affectsGlobalScope":true},{"version":"810627a82ac06fb5166da5ada4159c4ec11978dfbb0805fe804c86406dab8357","affectsGlobalScope":true},{"version":"62d80405c46c3f4c527ee657ae9d43fda65a0bf582292429aea1e69144a522a6","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"75ec0bdd727d887f1b79ed6619412ea72ba3c81d92d0787ccb64bab18d261f14","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"12a310447c5d23c7d0d5ca2af606e3bd08afda69100166730ab92c62999ebb9d","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"df9c8a72ca8b0ed62f5470b41208a0587f0f73f0a7db28e5a1272cf92537518e","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"93544ca2f26a48716c1b6c5091842cad63129daac422dfa4bc52460465f22bb1","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"1b3fe904465430e030c93239a348f05e1be80640d91f2f004c3512c2c2c89f34","affectsGlobalScope":true},{"version":"7435b75fdf3509622e79622dbe5091cf4b09688410ee2034e4fc17d0c99d0862","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"9f1817f7c3f02f6d56e0f403b927e90bb133f371dcebc36fa7d6d208ef6899da","affectsGlobalScope":true},{"version":"cd6efb9467a8b6338ece2e2855e37765700f2cd061ca54b01b33878cf5c7677e","affectsGlobalScope":true},{"version":"fb4416144c1bf0323ccbc9afb0ab289c07312214e8820ad17d709498c865a3fe","affectsGlobalScope":true},{"version":"5b0ca94ec819d68d33da516306c15297acec88efeb0ae9e2b39f71dbd9685ef7","affectsGlobalScope":true},{"version":"4632665b87204bb1caa8b44d165bce0c50dfab177df5b561b345a567cabacf9a","affectsGlobalScope":true},"12f4cfe2fe60b810c3174537bc2ddb20c1067b7768643d12cb1266fd183afb75","675e702f2032766a91eeadee64f51014c64688525da99dccd8178f0c599f13a8","378df8bbbb9e3f6fca05d58f644aab538e1062eab5e778fb0b83d41125df246d","d70c026dd2eeaa974f430ea229230a1897fdb897dc74659deebe2afd4feeb08f","187119ff4f9553676a884e296089e131e8cc01691c546273b1d0089c3533ce42","c24ad9be9adf28f0927e3d9d9e9cec1c677022356f241ccbbfb97bfe8fb3d1a1","0ec0998e2d085e8ea54266f547976ae152c9dd6cdb9ac4d8a520a230f5ebae84","9364c7566b0be2f7b70ff5285eb34686f83ccb01bda529b82d23b2a844653bfb","00baffbe8a2f2e4875367479489b5d43b5fc1429ecb4a4cc98cfc3009095f52a","82251920b05f30981c9a4109cb5f3169dce4b477effc845c6d781044a30e7672","3c92b6dfd43cc1c2485d9eba5ff0b74a19bb8725b692773ef1d66dac48cda4bd","3e59f00ab03c33717b3130066d4debb272da90eeded4935ff0604c2bc25a5cae","9fa6b83a35e897f340858995ca5d77e901d89fd18644cd4c9e8a4afe0b2e6363",{"version":"0714e2046df66c0e93c3330d30dbc0565b3e8cd3ee302cf99e4ede6220e5fec8","affectsGlobalScope":true},"7d7c8ef7d48a035142c07dae60545ecc0e4af4c337742760cb09726f2f8e31db","0359682c54e487c4cab2b53b2b4d35cc8dea4d9914bc6abcdb5701f8b8e745a4","dee5d387e2e6f3015cbf91fc0c13ed6f016f9c5c1f2ad9c62602f4fd398fa83a","67f129ed8b372622ff36b8b10e39d03e09e363a5ff7821105f92f085b8d1ccba","721124f5db1f4a42da2308dfa1414d2e99055d2dfc59de7bf2e0b6ac64356c0e","0d7569149194d622212c21d5d162b0715d5a6ca764cebae7145fdbaff1e07311","cd74c8275483d3fe0d07a9b4bba28845a8a611f0aa399e961dbd40e5d46dd9ad","b086770ba4845bca9abaa0cc7519fadfedc10e98301cd740b63c869f137040fa","c72b982add26c5ddf410899bcafe3f47253a5d274d4b93d2ef67850d4af4545b","79468f5936bec0f62d7866f43bdc90969d996f2919b0c09618fcf8779534dced","bd0d80db12ef1aceefc4f9d3eb88517b9634fa747ae8475981da8655292feab8","55e68fb1618e3f55f7866b8c8415152159309a14b716370081ab0b7af96d876e","bf0491af2455f92282b61807be2be6e7ad7d532e47fac7b698019d3617c28ff7","5d874fb879ab8601c02549817dceb2d0a30729cb7e161625dd6f819bbff1ec0b","ee551a880882770c4f56a0964a9767c9feafe497a5be52652527d098c88d85cb","3b5c30e5744d05df61a3b0139ecacec338e19dd11722de6b1ddedd4d8083a795","57dc389181eeb619a8b10299e3447cd6d9b216453af993abda5afedd6b39b455","0daf3165e72cc1ed5263a3374b98cb065f78922c76602477973ee0654b99df17","d63db4fd77b831eb1247f1f5db90fcbfa661499bb5facfbc86944a1db149d72c","aa7611487df30b0a4265c5d473b12fd472d7585253b94e811d07727e612f1cd5","eba3847a08cea18bd0b914fa1000f5bd6b412c6c19862e442051de8d969c202d","98249526332851a623664fd515a293f50d680d4a86d633585ecb9168e67cd872","3fedee34f24b13af4a97c4184a9e215a6f6b2dfb655dafc24970c76791b06c43","4fae0cbdbb492b0fc847ec76d0a4af44eb04028200cec088d97fca05438213f1","c7642b1c7345e546c81831fe5fa9233e15a12fa2743f6685b0d700af8292cdd0","857d6d4a53c4372a2799e733ab122d28f7b2b580fe58b80a5fe1321a733c20f7","d555cd63a3fc837840db192596273fdf52fb28092b0a33bec98e89a0334b3a4c",{"version":"f54d7a33bad768b50c8512d55f38499209d95038558fea231058465f680d1e1e","affectsGlobalScope":true},"85d545d430795d54a8b2896f67f9aeb7bf19fd74a1469ae0627311eb72f0dfa2","a473cf45c3d9809518f8af913312139d9f4db6887dc554e0d06d0f4e52722e6b","d5afcd002167b6b03d595fb8b9630a00456b6fb9d2c5e8b6aaa30cb31bc44e2b","3d68ecf05475492f041c88395372c3a01b30351619bebcd38287ab185be7f7e4",{"version":"36c956a3a6dc279f1e6b77aa4b97b7b229b7d828102573ef5002de456ff5e1d9","affectsGlobalScope":true},"45ac321f2e15d268fd74a90ddaa6467dcaaff2c5b13f95b4b85831520fb7a491","6e8b894365ab993dbb55c58542598d1548fdda072c974f98b89c218891e2ba09","ddd6169dff8e5263397a9399ba7ba92521d3959f8f9dcdc27f24403dc7b751ba","508e1e25ca40ea6cde332d3232c826fcd82f456f45ae535d817754684f048f9e",{"version":"2866a528b2708aa272ec3eaafd3c980abb23aec1ef831cfc5eb2186b98c37ce5","affectsGlobalScope":true},{"version":"8f8f6ee2a0c94077f79439f51640a625ac7e2f5dd6866bd3b5a41705c836adfc","affectsGlobalScope":true},"ee97aed5b4667a5c3003a1da4b108827fc64b888391417617d89b02ff134de9a","839421b494b57cd2bc0074e914130277051850eba6def6c25870056e6652640b","e18a4b529c9a05593e612130554d93a2b78b949cf1cf48c0b183071258f0e95a","88587b5c94b0c4f5d78026e4beeb93383b3933c860d9840b55d6bf47d7b632bb","a473ecd14d9bafbd6a33105524b033237bbf1d6ce2cd81eb71cc54bec2d83d55","9e8947666e44137405fd378f3a8a0515a492e967e552406c02b991c98c78fc61","0cff7901aedfe78e314f7d44088f07e2afa1b6e4f0473a4169b8456ca2fb245d","7a2a3ff87ffd4313a6a2f3b012e801dd249ee58152cedf90c8718dcd2c811fe3","69640cc2e76dad52daeb9914e6b70c5c9a5591a3a65190a2d3ea432cf0015e16","a39a4c527b7a2dc7a2661b711a534c10c76852c5ad6ae320767d3f7d2621b67d","1bb5c9857b2ee32c199dd85bc0f4c0299112485d6e5dc91428eabfdee0dbd68c",{"version":"5daba568741c8ed283d67bf370c626a91e09fdfbc6d4abe22a7f93e2cf5138b9","affectsGlobalScope":true},"7f77304372efe3c9967e5f9ea2061f1b4bf41dc3cda3c83cdd676f2e5af6b7e6","662661bbf9ccd869f3bca82d34234b2abdc95c657e2187c35352d42dddb24c2d","5caa645cc390a0a8d5a031072b6b4e49218c17017cd80a63bd2557b19be13c5f","4c4334eb5d8fae83416a361d787b55a5743916aed8af812a909898bc7333e709","6feb6f75a3e4e017f8e6e12740cf06f18eefcf829284fa310da6c7f4d44fb2eb","4fd3c4debadce3e9ab9dec3eb45f7f5e2e3d4ad65cf975a6d938d883cfb25a50","0953427f9c2498f71dd912fdd8a81b19cf6925de3e1ad67ab9a77b9a0f79bf0b","b709ff1f6d6235f5e9c8dcbce3e683ff24ec35046b232d5a281af083026018d1","7df562288f949945cf69c21cd912100c2afedeeb7cdb219085f7f4b46cb7dde4","9d16690485ff1eb4f6fc57aebe237728fd8e03130c460919da3a35f4d9bd97f5","ee6a154ecccde26b413e89c97a0b824f25b253c4c50a3c392bcb2b4c6ba9c314","71d6da3b0150ecdcd16c08b3b546fe4cc7f53df642eccfeb03c813ee788fae0c","a364b4a8a015ae377052fa4fac94204d79a69d879567f444c7ceff1b7a18482d","c5ec3b97d9db756c689cd11f4a11eaa9e6077b2768e3e9b54ff727a93c03a909","c14e9e86f18189c7d32b5dd03b4cf3f40bed68f0509dec06d75d41b82c065fe2","bdb07038733b2d74a75ba9c381dcb92774cd6f161ee125bfa921eae7d883ccc9","ad93e960a3a07dff7394bf0c8a558006a9ff2d0725ab28fc33dec227d4cb251e",{"version":"2708349d5a11a5c2e5f3a0765259ebe7ee00cdcc8161cb9990cb4910328442a1","affectsGlobalScope":true},"33f44d7dfe8ed95d42485149f97926d80d0f3a5d7ce7d6b5b21428a8286b51ea","46324183533e34fad2461b51174132e8e0e4b3ac1ceb5032e4952992739d1eab","d3fa0530dfb1df408f0abd76486de39def69ca47683d4a3529b2d22fce27c693","d9be977c415df16e4defe4995caeca96e637eeef9d216d0d90cdba6fc617e97e","98e0c2b48d855a844099123e8ec20fe383ecd1c5877f3895b048656befe268d0","ff53802a97b7d11ab3c4395aa052baa14cd12d2b1ed236b520a833fdd2a15003","fce9262f840a74118112caf685b725e1cc86cd2b0927311511113d90d87cc61e","d7a7cac49af2a3bfc208fe68831fbfa569864f74a7f31cc3a607f641e6c583fd","9a80e3322d08274f0e41b77923c91fe67b2c8a5134a5278c2cb60a330441554e","2460af41191009298d931c592fb6d4151beea320f1f25b73605e2211e53e4e88","2f87ea988d84d1c617afdeba9d151435473ab24cd5fc456510c8db26d8bd1581","b7336c1c536e3deaedbda956739c6250ac2d0dd171730c42cb57b10368f38a14","6fb67d664aaab2f1d1ad4613b58548aecb4b4703b9e4c5dba6b865b31bd14722","4414644199b1a047b4234965e07d189781a92b578707c79c3933918d67cd9d85","04a4b38c6a1682059eac00e7d0948d99c46642b57003d61d0fe9ccc9df442887","f12ea658b060da1752c65ae4f1e4c248587f6cd4cb4acabbf79a110b6b02ff75","011b2857871a878d5eae463bedc4b3dd14755dc3a67d5d10f8fbb7823d119294","e175549fe57dbff5cd68c1a5ccf33717584d7db9afb8ec216fd2c0daa3b06931","ea68c312e1eb9b48f7064a8dda348594769ba8f9c8596315827c559734a60205","6ddb5fb4476ca702ecff9e5ff0295cde6ce138d71f817da65e118a2a3c534106","6dfff2e65f10158f5a868e642a2e74d2d1bd76f15291552f389f2b8c829a9a86","41c78f187749098f9b8e8982839a010b6bf00dacc654d759b9c169127bcda034","4b72b4c3e5b21e06453e213fca18d0b2464199ccd5091da9eb2ba78fcdb91057","98f90151b9779cd26ba3c3aab7efc8c660b26e3200708890f5268ef991a9bbcd","f69977513b0d68b014b1a9f0442d5a426981da391870d15626b595206be9ae62","889859c907d8388cfe92d4bdfe5b5ff0885a41e6e4568691230e21757f7673c9","df8e0b622962e734e62c8e98423622900d62abd0a9fadc9a9c2bd095bf34952a","587d29bdf3f945aef9e94f92cdb8fa90b0ecbce7e6dc76411875ed5b436cd1be","faf6642e20b9b95375af851dee261aa115bc1204a41dcca7740cbdde4b9af52e","8387c74026355f5df1eec752beaf0f88c87a3a23f8945e3728984a08fa40d106","700c2f83a83482242336bf0033edbd961105577f16b9cf549333159fc719add2","63c9b50b55f320e8da81290acd27de8e1dab92e13b3ec7f24b80fde9dd80b795","efc0cf69f54f6d4fbdcc205cc938f1f6f6f1d63fbcb7b3f912a4755805b05b31","20da58cecd1ad8c239745c7ebb8ae0729c182223650702ec816d3bdec566e3bb","0d14fa22c41fdc7277e6f71473b20ebc07f40f00e38875142335d5b63cdfc9d2","84b522db8169c96f132cb1a03830721fd152f447201d167f3a834e91e4c991a7","a3cf09a8ce34726b0557b3e51135a6768b464e86b7190355e42f10ba368e9786","dcd04eabb6c23406dc589f688c7a83d25a8aa0c93ee34c0be1114113c32792d6","0a21f90e2ffaf26b305183fd2029a7dd512bb3189a9d6842ba764782e609429e","7738be042bbc5acbe24a3d06b11c0e7656b43e5185c3af58690419946c6248d7","bd868c7a5868f2680d332b85283be6be45edb766a95c4b8034aff7c741ab1aad","5ec0c5db09dfb4f1cd140417dc86fed025bd757d63c11fe2c4148ec12fd20111","810c09c0ee1daf5a4472e28419ccb3f3f1c837c2b8c663b488c8c56a2af40c39","2db6353e2fdcbd2842b5b0a36d11e11ffbff703552e19481a55a63155e14c6be","74175ef96c3d3cb5e7bcaf0387ca4cc3de9f1bf68b42a082d8be5e79178c2c7e","37723b12b6a526579c9a467ab70a9414fc30994e24bd4b9dae41148ed3e112a1","63a254a5a16ee3457a0dd00dedacc0d76cc7897b976ec64d59d149d43c4859b7","25dbbc5588c7f9a9ef359adf2ae275deef8250d919ec93db1a3a2f2e2c7ab4dd","c8c407861245162fcf6c4a65125331964efa6f75972dd908ea0e2ba13ca77b33","ed19da84b7dbf00952ad0b98ce5c194f1903bcf7c94d8103e8e0d63b271543ae","e416db84fd295bcdc144cdbbac861045b0d08608bdb5eaa8ac326864d87114af","c16e15a7bbbb323cdf9df7a6b05a96b474831768886e0c85f5e0df3275249923","09ed869dd64962b7b5e4dc8dee93f14a92868fddcde0bba29ab2c021e9cce227"],"options":{"allowSyntheticDefaultImports":true,"declaration":true,"declarationMap":false,"esModuleInterop":true,"importHelpers":true,"jsx":2,"module":1,"noEmitHelpers":true,"noFallthroughCasesInSwitch":true,"noImplicitReturns":true,"noImplicitThis":true,"noUnusedLocals":false,"noUnusedParameters":false,"outDir":"./","rootDir":"../src","skipLibCheck":true,"strict":true,"strictNullChecks":true,"strictPropertyInitialization":true,"target":6,"tsBuildInfoFile":"./.tsbuildinfo"},"fileIdsList":[[133,134],[134,135,136,137],[128,134,136],[133,135],[98,128],[98,128,129],[129,130,131,132],[129,131],[130],[114,128,138,139,140,143],[139,140,142],[97,128,138,139,140,141],[140],[138,139],[128,138],[98,181],[46,48,49,50,51,52,53,54,55,56,57,58],[46,47,49,50,51,52,53,54,55,56,57,58],[47,48,49,50,51,52,53,54,55,56,57,58],[46,47,48,50,51,52,53,54,55,56,57,58],[46,47,48,49,51,52,53,54,55,56,57,58],[46,47,48,49,50,52,53,54,55,56,57,58],[46,47,48,49,50,51,53,54,55,56,57,58],[46,47,48,49,50,51,52,54,55,56,57,58],[46,47,48,49,50,51,52,53,55,56,57,58],[46,47,48,49,50,51,52,53,54,56,57,58],[46,47,48,49,50,51,52,53,54,55,57,58],[46,47,48,49,50,51,52,53,54,55,56,58],[46,47,48,49,50,51,52,53,54,55,56,57],[97,98,105,114],[89,97,105],[121],[93,98,106],[114],[95,97,105],[97],[97,99,114,120],[98],[105,114,120],[97,98,100,105,114,117,120],[100,114,117,120],[85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127],[120],[95,97,114],[87],[119],[112,121,123],[105],[111],[97,99,114,120,123],[166],[166,167],[164,165],[164,166],[164,166,167,168,169,170,171],[164,166,167],[128,145,146,147],[145,146],[145],[128,144],[148],[63],[60,61,62],[60,63],[69,70,71,72],[69],[70],[59,61,63,64,65],[45,58,75,152,158,161,162],[45,58,172,173],[45,58,75,151],[45,74,75,151,163,176,178],[45,75,157,175],[75],[45,75,157],[45],[45,74],[45,58,75,107,151,174,177],[66,67,68,73,111],[74],[159,160],[153,154,155,156],[68],[153],[149],[74,76,77,78,79,80,81,82,83,84,150]],"referencedMap":[[135,1],[138,2],[137,3],[136,4],[134,5],[130,6],[133,7],[132,8],[131,9],[129,5],[144,10],[143,11],[142,12],[141,13],[140,14],[139,15],[177,16],[47,17],[48,18],[46,19],[49,20],[50,21],[51,22],[52,23],[53,24],[54,25],[55,26],[56,27],[57,28],[58,29],[89,30],[90,31],[91,32],[92,33],[93,34],[94,35],[96,36],[97,36],[98,37],[99,38],[100,39],[101,40],[102,41],[128,42],[103,36],[104,43],[105,44],[108,45],[109,46],[112,36],[113,47],[114,36],[117,48],[119,48],[120,49],[122,34],[125,50],[126,34],[168,51],[164,52],[166,53],[171,53],[167,54],[172,55],[169,51],[170,56],[148,57],[147,58],[146,59],[145,60],[149,61],[64,62],[63,63],[61,64],[73,65],[70,66],[71,67],[66,68],[163,69],[174,70],[152,71],[179,72],[176,73],[180,74],[158,75],[173,76],[75,77],[178,78],[74,79],[159,80],[161,81],[157,82],[153,83],[154,84],[156,84],[155,84],[150,85],[151,86]],"exportedModulesMap":[[135,1],[138,2],[137,3],[136,4],[134,5],[130,6],[133,7],[132,8],[131,9],[129,5],[144,10],[143,11],[142,12],[141,13],[140,14],[139,15],[177,16],[47,17],[48,18],[46,19],[49,20],[50,21],[51,22],[52,23],[53,24],[54,25],[55,26],[56,27],[57,28],[58,29],[89,30],[90,31],[91,32],[92,33],[93,34],[94,35],[96,36],[97,36],[98,37],[99,38],[100,39],[101,40],[102,41],[128,42],[103,36],[104,43],[105,44],[108,45],[109,46],[112,36],[113,47],[114,36],[117,48],[119,48],[120,49],[122,34],[125,50],[126,34],[168,51],[164,52],[166,53],[171,53],[167,54],[172,55],[169,51],[170,56],[148,57],[147,58],[146,59],[145,60],[149,61],[64,62],[63,63],[61,64],[73,65],[70,66],[71,67],[66,68],[163,69],[174,70],[152,71],[179,72],[176,73],[180,74],[158,75],[173,76],[75,77],[178,78],[74,79],[159,80],[161,81],[157,82],[153,83],[154,84],[156,84],[155,84],[150,85],[151,86]],"semanticDiagnosticsPerFile":[135,138,137,136,134,130,133,132,131,129,144,143,142,141,140,139,59,177,60,47,48,46,49,50,51,52,53,54,55,56,57,58,85,87,88,89,90,91,92,93,94,95,96,97,98,99,86,127,100,101,102,128,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,62,162,168,164,166,171,167,172,169,170,165,148,147,146,145,149,68,64,63,61,65,45,10,12,11,2,13,14,15,16,17,18,19,20,3,4,24,21,22,23,25,26,27,5,28,29,30,31,6,32,33,34,35,7,40,36,37,38,39,8,41,42,43,1,9,44,69,72,73,70,71,66,163,174,152,179,176,180,158,173,75,178,67,74,159,161,160,157,153,154,156,155,80,83,150,84,151,82,81,77,78,76,79,175]},"version":"4.4.3"}
@@ -11,7 +11,7 @@ const lodash_1 = require("lodash");
11
11
  const extensionRedirects_1 = require("./extensionRedirects");
12
12
  const redirectValidation_1 = require("./redirectValidation");
13
13
  const utils_common_1 = require("@docusaurus/utils-common");
14
- const chalk_1 = tslib_1.__importDefault(require("chalk"));
14
+ const chalk_1 = (0, tslib_1.__importDefault)(require("chalk"));
15
15
  function collectRedirects(pluginContext, trailingSlash) {
16
16
  let redirects = doCollectRedirects(pluginContext);
17
17
  redirects = applyRedirectsTrailingSlash(redirects, {
@@ -30,7 +30,7 @@ function applyRedirectsTrailingSlash(redirects, params) {
30
30
  return redirects.map((redirect) => {
31
31
  return {
32
32
  ...redirect,
33
- to: utils_common_1.applyTrailingSlash(redirect.to, params),
33
+ to: (0, utils_common_1.applyTrailingSlash)(redirect.to, params),
34
34
  };
35
35
  });
36
36
  }
@@ -38,7 +38,7 @@ function validateCollectedRedirects(redirects, pluginContext) {
38
38
  const redirectValidationErrors = redirects
39
39
  .map((redirect) => {
40
40
  try {
41
- redirectValidation_1.validateRedirect(redirect);
41
+ (0, redirectValidation_1.validateRedirect)(redirect);
42
42
  return undefined;
43
43
  }
44
44
  catch (e) {
@@ -53,7 +53,7 @@ function validateCollectedRedirects(redirects, pluginContext) {
53
53
  }
54
54
  const allowedToPaths = pluginContext.relativeRoutesPaths;
55
55
  const toPaths = redirects.map((redirect) => redirect.to);
56
- const illegalToPaths = lodash_1.difference(toPaths, allowedToPaths);
56
+ const illegalToPaths = (0, lodash_1.difference)(toPaths, allowedToPaths);
57
57
  if (illegalToPaths.length > 0) {
58
58
  throw new Error(`You are trying to create client-side redirections to paths that do not exist:
59
59
  - ${illegalToPaths.join('\n- ')}
@@ -66,7 +66,7 @@ Valid paths you can redirect to:
66
66
  function filterUnwantedRedirects(redirects, pluginContext) {
67
67
  // we don't want to create twice the same redirect
68
68
  // that would lead to writing twice the same html redirection file
69
- Object.entries(lodash_1.groupBy(redirects, (redirect) => redirect.from)).forEach(([from, groupedFromRedirects]) => {
69
+ Object.entries((0, lodash_1.groupBy)(redirects, (redirect) => redirect.from)).forEach(([from, groupedFromRedirects]) => {
70
70
  if (groupedFromRedirects.length > 1) {
71
71
  console.error(chalk_1.default.red(`@docusaurus/plugin-client-redirects: multiple redirects are created with the same "from" pathname=${from}
72
72
  It is not possible to redirect the same pathname to multiple destinations:
@@ -74,7 +74,7 @@ It is not possible to redirect the same pathname to multiple destinations:
74
74
  `));
75
75
  }
76
76
  });
77
- const collectedRedirects = lodash_1.uniqBy(redirects, (redirect) => redirect.from);
77
+ const collectedRedirects = (0, lodash_1.uniqBy)(redirects, (redirect) => redirect.from);
78
78
  // We don't want to override an already existing route with a redirect file!
79
79
  const redirectsOverridingExistingPath = collectedRedirects.filter((redirect) => pluginContext.relativeRoutesPaths.includes(redirect.from));
80
80
  if (redirectsOverridingExistingPath.length > 0) {
@@ -87,8 +87,8 @@ It is not possible to redirect the same pathname to multiple destinations:
87
87
  // For each plugin config option, create the appropriate redirects
88
88
  function doCollectRedirects(pluginContext) {
89
89
  return [
90
- ...extensionRedirects_1.createFromExtensionsRedirects(pluginContext.relativeRoutesPaths, pluginContext.options.fromExtensions),
91
- ...extensionRedirects_1.createToExtensionsRedirects(pluginContext.relativeRoutesPaths, pluginContext.options.toExtensions),
90
+ ...(0, extensionRedirects_1.createFromExtensionsRedirects)(pluginContext.relativeRoutesPaths, pluginContext.options.fromExtensions),
91
+ ...(0, extensionRedirects_1.createToExtensionsRedirects)(pluginContext.relativeRoutesPaths, pluginContext.options.toExtensions),
92
92
  ...createRedirectsOptionRedirects(pluginContext.options.redirects),
93
93
  ...createCreateRedirectsOptionRedirects(pluginContext.relativeRoutesPaths, pluginContext.options.createRedirects),
94
94
  ];
@@ -104,7 +104,7 @@ function createRedirectsOptionRedirects(redirectsOption) {
104
104
  to: option.to,
105
105
  }));
106
106
  }
107
- return lodash_1.flatten(redirectsOption.map(optionToRedirects));
107
+ return (0, lodash_1.flatten)(redirectsOption.map(optionToRedirects));
108
108
  }
109
109
  // Create redirects from the "createRedirects" fn provided by the user
110
110
  function createCreateRedirectsOptionRedirects(paths, createRedirects) {
@@ -120,5 +120,5 @@ function createCreateRedirectsOptionRedirects(paths, createRedirects) {
120
120
  };
121
121
  });
122
122
  }
123
- return lodash_1.flatten(paths.map(createPathRedirects));
123
+ return (0, lodash_1.flatten)(paths.map(createPathRedirects));
124
124
  }
@@ -7,10 +7,10 @@
7
7
  */
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
9
  const tslib_1 = require("tslib");
10
- const eta = tslib_1.__importStar(require("eta"));
11
- const redirectPage_template_html_1 = tslib_1.__importDefault(require("./templates/redirectPage.template.html"));
10
+ const eta = (0, tslib_1.__importStar)(require("eta"));
11
+ const redirectPage_template_html_1 = (0, tslib_1.__importDefault)(require("./templates/redirectPage.template.html"));
12
12
  const lodash_1 = require("lodash");
13
- const getCompiledRedirectPageTemplate = lodash_1.memoize(() => {
13
+ const getCompiledRedirectPageTemplate = (0, lodash_1.memoize)(() => {
14
14
  return eta.compile(redirectPage_template_html_1.default.trim());
15
15
  });
16
16
  function renderRedirectPageTemplate(data) {
@@ -32,7 +32,7 @@ function createToExtensionsRedirects(paths, extensions) {
32
32
  const createPathRedirects = (path) => {
33
33
  const extensionFound = dottedExtensions.find((ext) => path.endsWith(ext));
34
34
  if (extensionFound) {
35
- const routePathWithoutExtension = utils_1.removeSuffix(path, extensionFound);
35
+ const routePathWithoutExtension = (0, utils_1.removeSuffix)(path, extensionFound);
36
36
  return [routePathWithoutExtension].map((from) => ({
37
37
  from,
38
38
  to: path,
@@ -40,23 +40,34 @@ function createToExtensionsRedirects(paths, extensions) {
40
40
  }
41
41
  return [];
42
42
  };
43
- return lodash_1.flatten(paths.map(createPathRedirects));
43
+ return (0, lodash_1.flatten)(paths.map(createPathRedirects));
44
44
  }
45
45
  exports.createToExtensionsRedirects = createToExtensionsRedirects;
46
- // Create new /path.html that redirects to existing an /path
46
+ // Create new /path.html/index.html that redirects to existing an /path
47
+ // The filename pattern might look weird but it's on purpose (see https://github.com/facebook/docusaurus/issues/5055)
47
48
  function createFromExtensionsRedirects(paths, extensions) {
48
49
  extensions.forEach(validateExtension);
49
50
  const dottedExtensions = extensions.map(addLeadingDot);
50
51
  const alreadyEndsWithAnExtension = (str) => dottedExtensions.some((ext) => str.endsWith(ext));
51
52
  const createPathRedirects = (path) => {
52
- if (path === '' || path.endsWith('/') || alreadyEndsWithAnExtension(path)) {
53
+ if (path === '' || path === '/' || alreadyEndsWithAnExtension(path)) {
53
54
  return [];
54
55
  }
56
+ // /path => /path.html
57
+ // /path/ => /path.html/
58
+ function getFrom(ext) {
59
+ if (path.endsWith('/')) {
60
+ return (0, utils_1.addTrailingSlash)(`${(0, utils_1.removeTrailingSlash)(path)}.${ext}`);
61
+ }
62
+ else {
63
+ return `${path}.${ext}`;
64
+ }
65
+ }
55
66
  return extensions.map((ext) => ({
56
- from: `${path}.${ext}`,
67
+ from: getFrom(ext),
57
68
  to: path,
58
69
  }));
59
70
  };
60
- return lodash_1.flatten(paths.map(createPathRedirects));
71
+ return (0, lodash_1.flatten)(paths.map(createPathRedirects));
61
72
  }
62
73
  exports.createFromExtensionsRedirects = createFromExtensionsRedirects;
package/lib/index.js CHANGED
@@ -7,34 +7,26 @@
7
7
  */
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
9
  const tslib_1 = require("tslib");
10
- const normalizePluginOptions_1 = tslib_1.__importDefault(require("./normalizePluginOptions"));
11
- const collectRedirects_1 = tslib_1.__importDefault(require("./collectRedirects"));
12
- const writeRedirectFiles_1 = tslib_1.__importStar(require("./writeRedirectFiles"));
10
+ const normalizePluginOptions_1 = (0, tslib_1.__importDefault)(require("./normalizePluginOptions"));
11
+ const collectRedirects_1 = (0, tslib_1.__importDefault)(require("./collectRedirects"));
12
+ const writeRedirectFiles_1 = (0, tslib_1.__importStar)(require("./writeRedirectFiles"));
13
13
  const utils_1 = require("@docusaurus/utils");
14
- const chalk_1 = tslib_1.__importDefault(require("chalk"));
15
14
  function pluginClientRedirectsPages(context, opts) {
16
15
  const { trailingSlash } = context.siteConfig;
17
- const options = normalizePluginOptions_1.default(opts);
18
- // Special case, when using trailingSlash=false we output /xyz.html files instead of /xyz/index.html
19
- // It makes no sense to use option fromExtensions=["html"]: the redirect files would be the same as the original files
20
- if (options.fromExtensions.includes('html') && trailingSlash === false) {
21
- console.warn(chalk_1.default.yellow(`Using the Docusaurus redirect plugin with fromExtensions=['html'] and siteConfig.trailingSlash=false is prevented.
22
- It would lead the redirect plugin to override all the page.html files created by Docusaurus.`));
23
- options.fromExtensions = options.fromExtensions.filter((ext) => ext !== 'html');
24
- }
16
+ const options = (0, normalizePluginOptions_1.default)(opts);
25
17
  return {
26
18
  name: 'docusaurus-plugin-client-redirects',
27
19
  async postBuild(props) {
28
20
  const pluginContext = {
29
- relativeRoutesPaths: props.routesPaths.map((path) => `${utils_1.addLeadingSlash(utils_1.removePrefix(path, props.baseUrl))}`),
21
+ relativeRoutesPaths: props.routesPaths.map((path) => `${(0, utils_1.addLeadingSlash)((0, utils_1.removePrefix)(path, props.baseUrl))}`),
30
22
  baseUrl: props.baseUrl,
31
23
  outDir: props.outDir,
32
24
  options,
33
25
  };
34
- const redirects = collectRedirects_1.default(pluginContext, trailingSlash);
35
- const redirectFiles = writeRedirectFiles_1.toRedirectFilesMetadata(redirects, pluginContext, trailingSlash);
26
+ const redirects = (0, collectRedirects_1.default)(pluginContext, trailingSlash);
27
+ const redirectFiles = (0, writeRedirectFiles_1.toRedirectFilesMetadata)(redirects, pluginContext, trailingSlash);
36
28
  // Write files only at the end: make code more easy to test without IO
37
- await writeRedirectFiles_1.default(redirectFiles);
29
+ await (0, writeRedirectFiles_1.default)(redirectFiles);
38
30
  },
39
31
  };
40
32
  }
@@ -8,25 +8,49 @@
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
9
  exports.writeRedirectFile = exports.toRedirectFilesMetadata = exports.createToUrl = void 0;
10
10
  const tslib_1 = require("tslib");
11
- const fs_extra_1 = tslib_1.__importDefault(require("fs-extra"));
12
- const path_1 = tslib_1.__importDefault(require("path"));
11
+ const fs_extra_1 = (0, tslib_1.__importDefault)(require("fs-extra"));
12
+ const path_1 = (0, tslib_1.__importDefault)(require("path"));
13
13
  const lodash_1 = require("lodash");
14
- const createRedirectPageContent_1 = tslib_1.__importDefault(require("./createRedirectPageContent"));
14
+ const createRedirectPageContent_1 = (0, tslib_1.__importDefault)(require("./createRedirectPageContent"));
15
15
  const utils_1 = require("@docusaurus/utils");
16
16
  function createToUrl(baseUrl, to) {
17
- return utils_1.normalizeUrl([baseUrl, to]);
17
+ return (0, utils_1.normalizeUrl)([baseUrl, to]);
18
18
  }
19
19
  exports.createToUrl = createToUrl;
20
+ // Create redirect file path
21
+ // Make sure this path has lower precedence over the original file path when served by host providers!
22
+ // Otherwise it can produce infinite redirect loops!
23
+ //
24
+ // See https://github.com/facebook/docusaurus/issues/5055
25
+ // See https://github.com/facebook/docusaurus/pull/5085
26
+ // See https://github.com/facebook/docusaurus/pull/5102
27
+ function getRedirectFilePath(fromPath, trailingSlash) {
28
+ const fileName = path_1.default.basename(fromPath);
29
+ const filePath = path_1.default.dirname(fromPath);
30
+ // Edge case for https://github.com/facebook/docusaurus/pull/5102
31
+ // If the redirect source path is /xyz, with file /xyz.html
32
+ // We can't write the redirect file at /xyz.html/index.html because for Unix FS, a file/folder can't have the same name "xyz.html"
33
+ // The only possible solution for a redirect file is thus /xyz.html.html (I know, looks suspicious)
34
+ if (trailingSlash === false && fileName.endsWith('.html')) {
35
+ return path_1.default.join(filePath, `${fileName}.html`);
36
+ }
37
+ // If the target path is /xyz, with file /xyz/index.html, we don't want the redirect file to be /xyz.html
38
+ // otherwise it would be picked in priority and the redirect file would redirect to itself
39
+ // We prefer the redirect file to be /xyz.html/index.html, served with lower priority for most static hosting tools
40
+ else {
41
+ return path_1.default.join(filePath, `${fileName}/index.html`);
42
+ }
43
+ }
20
44
  function toRedirectFilesMetadata(redirects, pluginContext, trailingSlash) {
21
45
  // Perf: avoid rendering the template twice with the exact same "props"
22
46
  // We might create multiple redirect pages for the same destination url
23
47
  // note: the first fn arg is the cache key!
24
- const createPageContentMemoized = lodash_1.memoize((toUrl) => {
25
- return createRedirectPageContent_1.default({ toUrl });
48
+ const createPageContentMemoized = (0, lodash_1.memoize)((toUrl) => {
49
+ return (0, createRedirectPageContent_1.default)({ toUrl });
26
50
  });
27
51
  const createFileMetadata = (redirect) => {
28
- const filePath = utils_1.getFilePathForRoutePath(redirect.from, trailingSlash);
29
- const fileAbsolutePath = path_1.default.join(pluginContext.outDir, filePath);
52
+ const fileRelativePath = getRedirectFilePath(redirect.from, trailingSlash);
53
+ const fileAbsolutePath = path_1.default.join(pluginContext.outDir, fileRelativePath);
30
54
  const toUrl = createToUrl(pluginContext.baseUrl, redirect.to);
31
55
  const fileContent = createPageContentMemoized(toUrl);
32
56
  return {
package/package.json CHANGED
@@ -1,8 +1,9 @@
1
1
  {
2
2
  "name": "@docusaurus/plugin-client-redirects",
3
- "version": "2.0.0-beta.7fe2a9891",
3
+ "version": "2.0.0-beta.8",
4
4
  "description": "Client redirects plugin for Docusaurus.",
5
5
  "main": "lib/index.js",
6
+ "types": "src/plugin-client-redirects.d.ts",
6
7
  "scripts": {
7
8
  "build": "tsc",
8
9
  "watch": "tsc --watch"
@@ -17,17 +18,17 @@
17
18
  },
18
19
  "license": "MIT",
19
20
  "dependencies": {
20
- "@docusaurus/core": "2.0.0-beta.7fe2a9891",
21
- "@docusaurus/types": "2.0.0-beta.7fe2a9891",
22
- "@docusaurus/utils": "2.0.0-beta.7fe2a9891",
23
- "@docusaurus/utils-common": "2.0.0-beta.7fe2a9891",
24
- "@docusaurus/utils-validation": "2.0.0-beta.7fe2a9891",
25
- "chalk": "^4.1.1",
26
- "eta": "^1.11.0",
21
+ "@docusaurus/core": "2.0.0-beta.8",
22
+ "@docusaurus/types": "2.0.0-beta.8",
23
+ "@docusaurus/utils": "2.0.0-beta.8",
24
+ "@docusaurus/utils-common": "2.0.0-beta.8",
25
+ "@docusaurus/utils-validation": "2.0.0-beta.8",
26
+ "chalk": "^4.1.2",
27
+ "eta": "^1.12.3",
27
28
  "fs-extra": "^10.0.0",
28
29
  "globby": "^11.0.2",
29
30
  "lodash": "^4.17.20",
30
- "tslib": "^2.2.0"
31
+ "tslib": "^2.3.1"
31
32
  },
32
33
  "peerDependencies": {
33
34
  "react": "^16.8.4 || ^17.0.0",
@@ -36,5 +37,5 @@
36
37
  "engines": {
37
38
  "node": ">=10.9.0"
38
39
  },
39
- "gitHead": "16fc4ca84eed792089c77e73584de1e6e0cf0e67"
40
+ "gitHead": "4f9b8d76d1eab9f20ddfad9865a1388ea2ce1c9c"
40
41
  }
@@ -291,7 +291,7 @@ describe('collectRedirects', () => {
291
291
  {
292
292
  createRedirects: (routePath) => {
293
293
  if (routePath === '/') {
294
- return ([[`/fromPath`]] as unknown) as string;
294
+ return [[`/fromPath`]] as unknown as string;
295
295
  }
296
296
  return undefined;
297
297
  },
@@ -111,7 +111,7 @@ describe('createFromExtensionsRedirects', () => {
111
111
  `);
112
112
  });
113
113
 
114
- test('should create redirects to html/htm extensions', () => {
114
+ test('should create redirects from html/htm extensions', () => {
115
115
  const ext = ['html', 'htm'];
116
116
  expect(createFromExtensionsRedirects([''], ext)).toEqual([]);
117
117
  expect(createFromExtensionsRedirects(['/'], ext)).toEqual([]);
@@ -120,7 +120,10 @@ describe('createFromExtensionsRedirects', () => {
120
120
  {from: '/abc.htm', to: '/abc'},
121
121
  ]);
122
122
  expect(createFromExtensionsRedirects(['/def.html'], ext)).toEqual([]);
123
- expect(createFromExtensionsRedirects(['/def/'], ext)).toEqual([]);
123
+ expect(createFromExtensionsRedirects(['/def/'], ext)).toEqual([
124
+ {from: '/def.html/', to: '/def/'},
125
+ {from: '/def.htm/', to: '/def/'},
126
+ ]);
124
127
  });
125
128
 
126
129
  test('should create "from" redirects when relativeRoutesPath contains a prefix', () => {
@@ -50,7 +50,7 @@ describe('normalizePluginOptions', () => {
50
50
  test('should reject bad fromExtensions user inputs', () => {
51
51
  expect(() =>
52
52
  normalizePluginOptions({
53
- fromExtensions: ([null, undefined, 123, true] as unknown) as string[],
53
+ fromExtensions: [null, undefined, 123, true] as unknown as string[],
54
54
  }),
55
55
  ).toThrowErrorMatchingSnapshot();
56
56
  });
@@ -58,7 +58,7 @@ describe('normalizePluginOptions', () => {
58
58
  test('should reject bad toExtensions user inputs', () => {
59
59
  expect(() =>
60
60
  normalizePluginOptions({
61
- toExtensions: ([null, undefined, 123, true] as unknown) as string[],
61
+ toExtensions: [null, undefined, 123, true] as unknown as string[],
62
62
  }),
63
63
  ).toThrowErrorMatchingSnapshot();
64
64
  });
@@ -66,10 +66,7 @@ describe('normalizePluginOptions', () => {
66
66
  test('should reject bad createRedirects user inputs', () => {
67
67
  expect(() =>
68
68
  normalizePluginOptions({
69
- createRedirects: ([
70
- 'bad',
71
- 'value',
72
- ] as unknown) as CreateRedirectsFnOption,
69
+ createRedirects: ['bad', 'value'] as unknown as CreateRedirectsFnOption,
73
70
  }),
74
71
  ).toThrowErrorMatchingSnapshot();
75
72
  });
@@ -51,14 +51,14 @@ describe('validateRedirect', () => {
51
51
 
52
52
  expect(() =>
53
53
  validateRedirect({
54
- from: (null as unknown) as string,
54
+ from: null as unknown as string,
55
55
  to: '/toSomePath?queryString=xyz',
56
56
  }),
57
57
  ).toThrowErrorMatchingSnapshot();
58
58
 
59
59
  expect(() =>
60
60
  validateRedirect({
61
- from: (['heyho'] as unknown) as string,
61
+ from: ['heyho'] as unknown as string,
62
62
  to: '/toSomePath?queryString=xyz',
63
63
  }),
64
64
  ).toThrowErrorMatchingSnapshot();
@@ -59,7 +59,7 @@ describe('toRedirectFilesMetadata', () => {
59
59
  );
60
60
 
61
61
  expect(redirectFiles.map((f) => f.fileAbsolutePath)).toEqual([
62
- path.join(pluginContext.outDir, '/abc.html'),
62
+ path.join(pluginContext.outDir, '/abc.html/index.html'),
63
63
  path.join(pluginContext.outDir, '/def/index.html'),
64
64
  path.join(pluginContext.outDir, '/xyz/index.html'),
65
65
  ]);
@@ -86,7 +86,7 @@ describe('toRedirectFilesMetadata', () => {
86
86
  );
87
87
 
88
88
  expect(redirectFiles.map((f) => f.fileAbsolutePath)).toEqual([
89
- path.join(pluginContext.outDir, '/abc.html'),
89
+ path.join(pluginContext.outDir, '/abc.html/index.html'),
90
90
  path.join(pluginContext.outDir, '/def/index.html'),
91
91
  path.join(pluginContext.outDir, '/xyz/index.html'),
92
92
  ]);
@@ -113,9 +113,10 @@ describe('toRedirectFilesMetadata', () => {
113
113
  );
114
114
 
115
115
  expect(redirectFiles.map((f) => f.fileAbsolutePath)).toEqual([
116
- path.join(pluginContext.outDir, '/abc.html'),
117
- path.join(pluginContext.outDir, '/def.html'),
118
- path.join(pluginContext.outDir, '/xyz.html'),
116
+ // path.join(pluginContext.outDir, '/abc.html/index.html'), // Can't be used because /abc.html already exists, and file/folder can't share same name on Unix!
117
+ path.join(pluginContext.outDir, '/abc.html.html'), // Weird but on purpose!
118
+ path.join(pluginContext.outDir, '/def/index.html'),
119
+ path.join(pluginContext.outDir, '/xyz/index.html'),
119
120
  ]);
120
121
 
121
122
  expect(redirectFiles.map((f) => f.fileContent)).toMatchSnapshot(
@@ -64,7 +64,7 @@ function validateCollectedRedirects(
64
64
  try {
65
65
  validateRedirect(redirect);
66
66
  return undefined;
67
- } catch (e) {
67
+ } catch (e: any) {
68
68
  return e.message;
69
69
  }
70
70
  })
@@ -6,7 +6,11 @@
6
6
  */
7
7
 
8
8
  import {flatten} from 'lodash';
9
- import {removeSuffix} from '@docusaurus/utils';
9
+ import {
10
+ addTrailingSlash,
11
+ removeSuffix,
12
+ removeTrailingSlash,
13
+ } from '@docusaurus/utils';
10
14
  import {RedirectMetadata} from './types';
11
15
 
12
16
  const ExtensionAdditionalMessage =
@@ -61,7 +65,8 @@ export function createToExtensionsRedirects(
61
65
  return flatten(paths.map(createPathRedirects));
62
66
  }
63
67
 
64
- // Create new /path.html that redirects to existing an /path
68
+ // Create new /path.html/index.html that redirects to existing an /path
69
+ // The filename pattern might look weird but it's on purpose (see https://github.com/facebook/docusaurus/issues/5055)
65
70
  export function createFromExtensionsRedirects(
66
71
  paths: string[],
67
72
  extensions: string[],
@@ -74,11 +79,22 @@ export function createFromExtensionsRedirects(
74
79
  dottedExtensions.some((ext) => str.endsWith(ext));
75
80
 
76
81
  const createPathRedirects = (path: string): RedirectMetadata[] => {
77
- if (path === '' || path.endsWith('/') || alreadyEndsWithAnExtension(path)) {
82
+ if (path === '' || path === '/' || alreadyEndsWithAnExtension(path)) {
78
83
  return [];
79
84
  }
85
+
86
+ // /path => /path.html
87
+ // /path/ => /path.html/
88
+ function getFrom(ext: string) {
89
+ if (path.endsWith('/')) {
90
+ return addTrailingSlash(`${removeTrailingSlash(path)}.${ext}`);
91
+ } else {
92
+ return `${path}.${ext}`;
93
+ }
94
+ }
95
+
80
96
  return extensions.map((ext) => ({
81
- from: `${path}.${ext}`,
97
+ from: getFrom(ext),
82
98
  to: path,
83
99
  }));
84
100
  };
package/src/index.ts CHANGED
@@ -15,7 +15,6 @@ import writeRedirectFiles, {
15
15
  RedirectFileMetadata,
16
16
  } from './writeRedirectFiles';
17
17
  import {removePrefix, addLeadingSlash} from '@docusaurus/utils';
18
- import chalk from 'chalk';
19
18
 
20
19
  export default function pluginClientRedirectsPages(
21
20
  context: LoadContext,
@@ -25,18 +24,6 @@ export default function pluginClientRedirectsPages(
25
24
 
26
25
  const options = normalizePluginOptions(opts);
27
26
 
28
- // Special case, when using trailingSlash=false we output /xyz.html files instead of /xyz/index.html
29
- // It makes no sense to use option fromExtensions=["html"]: the redirect files would be the same as the original files
30
- if (options.fromExtensions.includes('html') && trailingSlash === false) {
31
- console.warn(
32
- chalk.yellow(`Using the Docusaurus redirect plugin with fromExtensions=['html'] and siteConfig.trailingSlash=false is prevented.
33
- It would lead the redirect plugin to override all the page.html files created by Docusaurus.`),
34
- );
35
- options.fromExtensions = options.fromExtensions.filter(
36
- (ext) => ext !== 'html',
37
- );
38
- }
39
-
40
27
  return {
41
28
  name: 'docusaurus-plugin-client-redirects',
42
29
  async postBuild(props: Props) {
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Copyright (c) Facebook, Inc. and its affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ export type Options = import('./types').UserPluginOptions;
@@ -11,7 +11,7 @@ import {memoize} from 'lodash';
11
11
 
12
12
  import {PluginContext, RedirectMetadata} from './types';
13
13
  import createRedirectPageContent from './createRedirectPageContent';
14
- import {getFilePathForRoutePath, normalizeUrl} from '@docusaurus/utils';
14
+ import {normalizeUrl} from '@docusaurus/utils';
15
15
 
16
16
  export type WriteFilesPluginContext = Pick<PluginContext, 'baseUrl' | 'outDir'>;
17
17
 
@@ -24,6 +24,34 @@ export function createToUrl(baseUrl: string, to: string): string {
24
24
  return normalizeUrl([baseUrl, to]);
25
25
  }
26
26
 
27
+ // Create redirect file path
28
+ // Make sure this path has lower precedence over the original file path when served by host providers!
29
+ // Otherwise it can produce infinite redirect loops!
30
+ //
31
+ // See https://github.com/facebook/docusaurus/issues/5055
32
+ // See https://github.com/facebook/docusaurus/pull/5085
33
+ // See https://github.com/facebook/docusaurus/pull/5102
34
+ function getRedirectFilePath(
35
+ fromPath: string,
36
+ trailingSlash: boolean | undefined, // Now unused, on purpose
37
+ ): string {
38
+ const fileName = path.basename(fromPath);
39
+ const filePath = path.dirname(fromPath);
40
+ // Edge case for https://github.com/facebook/docusaurus/pull/5102
41
+ // If the redirect source path is /xyz, with file /xyz.html
42
+ // We can't write the redirect file at /xyz.html/index.html because for Unix FS, a file/folder can't have the same name "xyz.html"
43
+ // The only possible solution for a redirect file is thus /xyz.html.html (I know, looks suspicious)
44
+ if (trailingSlash === false && fileName.endsWith('.html')) {
45
+ return path.join(filePath, `${fileName}.html`);
46
+ }
47
+ // If the target path is /xyz, with file /xyz/index.html, we don't want the redirect file to be /xyz.html
48
+ // otherwise it would be picked in priority and the redirect file would redirect to itself
49
+ // We prefer the redirect file to be /xyz.html/index.html, served with lower priority for most static hosting tools
50
+ else {
51
+ return path.join(filePath, `${fileName}/index.html`);
52
+ }
53
+ }
54
+
27
55
  export function toRedirectFilesMetadata(
28
56
  redirects: RedirectMetadata[],
29
57
  pluginContext: WriteFilesPluginContext,
@@ -37,8 +65,8 @@ export function toRedirectFilesMetadata(
37
65
  });
38
66
 
39
67
  const createFileMetadata = (redirect: RedirectMetadata) => {
40
- const filePath = getFilePathForRoutePath(redirect.from, trailingSlash);
41
- const fileAbsolutePath = path.join(pluginContext.outDir, filePath);
68
+ const fileRelativePath = getRedirectFilePath(redirect.from, trailingSlash);
69
+ const fileAbsolutePath = path.join(pluginContext.outDir, fileRelativePath);
42
70
  const toUrl = createToUrl(pluginContext.baseUrl, redirect.to);
43
71
  const fileContent = createPageContentMemoized(toUrl);
44
72
  return {