{"_id":"@abinnovision/payloadcms-wayfinder","_rev":"7-56567ea6c705c3cf647b367d19b85570","name":"@abinnovision/payloadcms-wayfinder","dist-tags":{"latest":"1.0.1","beta":"1.0.1-beta.1"},"versions":{"1.0.0-beta.2":{"name":"@abinnovision/payloadcms-wayfinder","version":"1.0.0-beta.2","keywords":["payload","payloadcms","routing","permalinks","urls","link-field"],"author":{"url":"https://abigroup.io","name":"abi group GmbH","email":"info@abigroup.io"},"license":"Apache-2.0","_id":"@abinnovision/payloadcms-wayfinder@1.0.0-beta.2","maintainers":[{"name":"wipeair","email":"andre@loreth.co"}],"dist":{"shasum":"cf924d36515cc14e097a6757eee844316242b60c","tarball":"https://registry.npmjs.org/@abinnovision/payloadcms-wayfinder/-/payloadcms-wayfinder-1.0.0-beta.2.tgz","fileCount":58,"integrity":"sha512-jQPppG6VlnRriiTVqJRn3DVjIMCjIvVXY3RP2KFfThZtXUcE1N1L78glWJVgGJebay2yNp8VKgr6c1o0ZfP/zg==","signatures":[{"sig":"MEQCIGhwzFGDq/K1wcO5pb6NCnh5Wk6kLGWgrwpuuJ1XBJI2AiBWm4BhK4wvzM6N2nmbcHO6Q1M0ySqKKp8YS65+lAFDkw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":122846},"type":"module","$schema":"https://json.schemastore.org/package.json","exports":{".":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"./admin":{"types":"./dist/admin/index.d.mts","default":"./dist/admin/index.mjs"},"./config":{"types":"./dist/config/index.d.mts","default":"./dist/config/index.mjs"},"./lexical":{"types":"./dist/lexical/index.d.mts","default":"./dist/lexical/index.mjs"},"./montage":{"types":"./dist/montage/index.d.mts","default":"./dist/montage/index.mjs"}},"gitHead":"814eae589cb23bf803043a9858841027919f215b","scripts":{"build":"tsdown","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'test/**/*.ts' --fix","test-unit":"vitest --run --coverage --config vitest.config.mts","typecheck":"tsc --noEmit","format:fix":"prettier --write 'src/**/*.{ts,tsx}' 'test/**/*.ts' '*.{json{,5},md,y{,a}ml}'","lint:check":"eslint 'src/**/*.{ts,tsx}' 'test/**/*.ts'","format:check":"prettier --check 'src/**/*.{ts,tsx}' 'test/**/*.ts' '*.{json{,5},md,y{,a}ml}'","test-unit:watch":"vitest --config vitest.config.mts","test-integration":"vitest --run --config test/integration/vitest.config.mts"},"_npmUser":{"name":"wipeair","email":"andre@loreth.co"},"prettier":"@abinnovision/prettier-config","repository":{"url":"git+https://github.com/abinnovision/payloadcms-commons.git","type":"git","directory":"packages/wayfinder"},"description":"Editor-authored URL routing for Payload: collection-to-path patterns, document-to-href building, path-to-document resolution and a routing-aware link field.","directories":{},"lint-staged":{"src/**/*.{ts,tsx}":["eslint --fix","prettier --write"],"*.{json{,5},md,y{,a}ml}":"prettier --write"},"dependencies":{"path-to-regexp":"^8.4.2"},"publishConfig":{"npm":true,"ghpr":true,"npmAccess":"public"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.8","eslint":"^10.9.1","tsdown":"^0.22.14","vitest":"^4.1.10","lexical":"0.41.0","payload":"3.88.0","publint":"^0.3.24","prettier":"^3.9.5","@swc/core":"^1.16.1","typescript":"^6.0.3","@types/node":"^26.3.0","@types/react":"^19.2.18","unplugin-swc":"^1.5.11","@lexical/react":"0.41.0","@payloadcms/ui":"3.88.0","@vitest/coverage-v8":"^4.1.10","@payloadcms/db-sqlite":"3.88.0","@arethetypeswrong/core":"^0.18.5","@payloadcms/richtext-lexical":"3.88.0","@abinnovision/prettier-config":"^2.2.0","@abinnovision/eslint-config-base":"^3.4.2","@abinnovision/payloadcms-montage":"0.0.0"},"peerDependencies":{"react":"^19","lexical":">=0.35 <1","payload":">=3.88.0 <4","@lexical/react":">=0.35 <1","@payloadcms/ui":">=3.88.0 <4","@payloadcms/richtext-lexical":">=3.88.0 <4","@abinnovision/payloadcms-montage":">=1.0.0-beta.1"},"peerDependenciesMeta":{"react":{"optional":true},"lexical":{"optional":true},"@lexical/react":{"optional":true},"@payloadcms/ui":{"optional":true},"@payloadcms/richtext-lexical":{"optional":true},"@abinnovision/payloadcms-montage":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/payloadcms-wayfinder_1.0.0-beta.2_1788597694243_0.46888019006930315","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-beta.3":{"name":"@abinnovision/payloadcms-wayfinder","version":"1.0.0-beta.3","keywords":["payload","payloadcms","routing","permalinks","urls","link-field"],"author":{"url":"https://abigroup.io","name":"abi group GmbH","email":"info@abigroup.io"},"license":"Apache-2.0","_id":"@abinnovision/payloadcms-wayfinder@1.0.0-beta.3","maintainers":[{"name":"wipeair","email":"andre@loreth.co"}],"dist":{"shasum":"41316c7922c12fd6a31e6ee05dde129b4f658a19","tarball":"https://registry.npmjs.org/@abinnovision/payloadcms-wayfinder/-/payloadcms-wayfinder-1.0.0-beta.3.tgz","fileCount":60,"integrity":"sha512-j+V5I0tetDHFZjeuo9pmx3i+U4uM8j7XoaIocHXCc2L3TvErj8LF/5BeSsONUouYnyuJUgXDHC7YXDkfjFeefA==","signatures":[{"sig":"MEUCIQDiYhyUfFj2xLp+myoRbEFxp8PMWEYKXWFs9WvEv3Ke0AIgdpdmwVBVLbOJJMYVzn831etMYRT1h10Byjml+vNn1h8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQD29+0/4muBDa5lwZ3VtYlXnc3DSxo88QF/Tw4E7ilsGgIhAJG8b6WNiBF8Iq9gJUfEvHRtE737h694hWkPRqzloyfA","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@abinnovision%2fpayloadcms-wayfinder@1.0.0-beta.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":135823},"type":"module","$schema":"https://json.schemastore.org/package.json","exports":{".":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"./admin":{"types":"./dist/admin/index.d.mts","default":"./dist/admin/index.mjs"},"./config":{"types":"./dist/config/index.d.mts","default":"./dist/config/index.mjs"},"./lexical":{"types":"./dist/lexical/index.d.mts","default":"./dist/lexical/index.mjs"},"./montage":{"types":"./dist/montage/index.d.mts","default":"./dist/montage/index.mjs"},"./internal":{"types":"./dist/internal.d.mts","default":"./dist/internal.mjs"}},"gitHead":"fdd70414c789eda7a50f0111fca521b702630de7","scripts":{"build":"tsdown","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'test/**/*.ts' --fix","test-unit":"vitest --run --coverage --config vitest.config.mts","typecheck":"tsc --noEmit","format:fix":"prettier --write 'src/**/*.{ts,tsx}' 'test/**/*.ts' '*.{json{,5},md,y{,a}ml}'","lint:check":"eslint 'src/**/*.{ts,tsx}' 'test/**/*.ts'","format:check":"prettier --check 'src/**/*.{ts,tsx}' 'test/**/*.ts' '*.{json{,5},md,y{,a}ml}'","test-unit:watch":"vitest --config vitest.config.mts","test-integration":"vitest --run --config test/integration/vitest.config.mts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:45b3fd2a-89e7-4c0a-a8b9-fcb3fdfd56ef"}},"prettier":"@abinnovision/prettier-config","repository":{"url":"git+https://github.com/abinnovision/payloadcms-commons.git","type":"git","directory":"packages/wayfinder"},"description":"Editor-authored URL routing for Payload: collection-to-path patterns, document-to-href building, path-to-document resolution and a routing-aware link field.","directories":{},"lint-staged":{"src/**/*.{ts,tsx}":["eslint --fix","prettier --write"],"*.{json{,5},md,y{,a}ml}":"prettier --write"},"dependencies":{"path-to-regexp":"^8.4.2"},"publishConfig":{"npm":true,"ghpr":true,"npmAccess":"public"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.8","eslint":"^10.9.1","tsdown":"^0.22.14","vitest":"^4.1.10","lexical":"0.41.0","payload":"3.88.0","publint":"^0.3.24","prettier":"^3.9.5","@swc/core":"^1.16.1","typescript":"^6.0.3","@types/node":"^26.3.0","@types/react":"^19.2.18","unplugin-swc":"^1.5.11","@lexical/react":"0.41.0","@payloadcms/ui":"3.88.0","@vitest/coverage-v8":"^4.1.10","@payloadcms/db-sqlite":"3.88.0","@arethetypeswrong/core":"^0.18.5","@payloadcms/richtext-lexical":"3.88.0","@abinnovision/prettier-config":"^2.2.0","@abinnovision/eslint-config-base":"^3.4.2","@abinnovision/payloadcms-montage":"1.0.0-beta.3"},"peerDependencies":{"react":"^19","lexical":">=0.35 <1","payload":">=3.88.0 <4","@lexical/react":">=0.35 <1","@payloadcms/ui":">=3.88.0 <4","@payloadcms/richtext-lexical":">=3.88.0 <4","@abinnovision/payloadcms-montage":">=1.0.0-beta.1"},"peerDependenciesMeta":{"react":{"optional":true},"lexical":{"optional":true},"@lexical/react":{"optional":true},"@payloadcms/ui":{"optional":true},"@payloadcms/richtext-lexical":{"optional":true},"@abinnovision/payloadcms-montage":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/payloadcms-wayfinder_1.0.0-beta.3_1788614355136_0.20640743161914","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-beta.4":{"name":"@abinnovision/payloadcms-wayfinder","version":"1.0.0-beta.4","keywords":["payload","payloadcms","routing","permalinks","urls","link-field"],"author":{"url":"https://abigroup.io","name":"abi group GmbH","email":"info@abigroup.io"},"license":"Apache-2.0","_id":"@abinnovision/payloadcms-wayfinder@1.0.0-beta.4","maintainers":[{"name":"wipeair","email":"andre@loreth.co"}],"dist":{"shasum":"4639217402151b27241035f006efdfe0a3361b9d","tarball":"https://registry.npmjs.org/@abinnovision/payloadcms-wayfinder/-/payloadcms-wayfinder-1.0.0-beta.4.tgz","fileCount":60,"integrity":"sha512-i6mCuo2v0sZWT7agWt8igqVJfiDoRFzl/2lEg49E7xScTIy3RtHrSkY8Srqa6hGziZ1Sz74uDr3MO/RyBtkkWw==","signatures":[{"sig":"MEQCIHXDCtqGWxC6RFyS5btY7AHvZG0rYCr3rnOUrTUtACm6AiB1C3S10tcguQ/jLsBjxrHtq649zrvNQ9s82hfuFgiNHw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIG/M0z6xgm1ZnXQM3Wz9TMhkkrFN2OLGXZDpnhrK7brmAiBIUWlPOtg9q2Qkv1C0ONc1nXTpuZZ01bg9r3bqNCTqWw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@abinnovision%2fpayloadcms-wayfinder@1.0.0-beta.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":134455},"type":"module","$schema":"https://json.schemastore.org/package.json","exports":{".":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"./admin":{"types":"./dist/admin/index.d.mts","default":"./dist/admin/index.mjs"},"./config":{"types":"./dist/config/index.d.mts","default":"./dist/config/index.mjs"},"./lexical":{"types":"./dist/lexical/index.d.mts","default":"./dist/lexical/index.mjs"},"./montage":{"types":"./dist/montage/index.d.mts","default":"./dist/montage/index.mjs"},"./internal":{"types":"./dist/internal.d.mts","default":"./dist/internal.mjs"}},"gitHead":"e77c0b94fcb696e2e9165d76b33945bf98d5a4ba","scripts":{"build":"tsdown","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'test/**/*.ts' --fix","test-unit":"vitest --run --coverage --config vitest.config.mts","typecheck":"tsc --noEmit","format:fix":"prettier --write 'src/**/*.{ts,tsx}' 'test/**/*.ts' '*.{json{,5},md,y{,a}ml}'","lint:check":"eslint 'src/**/*.{ts,tsx}' 'test/**/*.ts'","format:check":"prettier --check 'src/**/*.{ts,tsx}' 'test/**/*.ts' '*.{json{,5},md,y{,a}ml}'","test-unit:watch":"vitest --config vitest.config.mts","test-integration":"vitest --run --config test/integration/vitest.config.mts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:45b3fd2a-89e7-4c0a-a8b9-fcb3fdfd56ef"}},"prettier":"@abinnovision/prettier-config","repository":{"url":"git+https://github.com/abinnovision/payloadcms-commons.git","type":"git","directory":"packages/wayfinder"},"description":"Editor-authored URL routing for Payload: collection-to-path patterns, document-to-href building, path-to-document resolution and a routing-aware link field.","directories":{},"lint-staged":{"src/**/*.{ts,tsx}":["eslint --fix","prettier --write"],"*.{json{,5},md,y{,a}ml}":"prettier --write"},"dependencies":{"path-to-regexp":"^8.4.2"},"publishConfig":{"npm":true,"ghpr":true,"npmAccess":"public"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.8","eslint":"^10.10.0","tsdown":"^0.23.0","vitest":"^5.0.0","lexical":"0.41.0","payload":"3.88.0","publint":"^0.3.24","prettier":"^3.9.5","@swc/core":"^1.16.2","typescript":"^6.0.3","@types/node":"^26.5.1","@types/react":"^19.2.18","unplugin-swc":"^1.6.0","@lexical/react":"0.41.0","@payloadcms/ui":"3.88.0","@vitest/coverage-v8":"^5.0.0","@payloadcms/db-sqlite":"3.88.0","@arethetypeswrong/core":"^0.18.5","@payloadcms/richtext-lexical":"3.88.0","@abinnovision/prettier-config":"^2.2.0","@abinnovision/eslint-config-base":"^3.4.2","@abinnovision/payloadcms-montage":"1.0.0-beta.5"},"peerDependencies":{"react":"^19","lexical":">=0.35 <1","payload":">=3.88.0 <4","@lexical/react":">=0.35 <1","@payloadcms/ui":">=3.88.0 <4","@payloadcms/richtext-lexical":">=3.88.0 <4","@abinnovision/payloadcms-montage":">=1.0.0-beta.1"},"peerDependenciesMeta":{"react":{"optional":true},"lexical":{"optional":true},"@lexical/react":{"optional":true},"@payloadcms/ui":{"optional":true},"@payloadcms/richtext-lexical":{"optional":true},"@abinnovision/payloadcms-montage":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/payloadcms-wayfinder_1.0.0-beta.4_1789742436955_0.43720478640781546","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-beta.6":{"name":"@abinnovision/payloadcms-wayfinder","version":"1.0.0-beta.6","keywords":["payload","payloadcms","routing","permalinks","urls","link-field"],"author":{"url":"https://abigroup.io","name":"abi group GmbH","email":"info@abigroup.io"},"license":"Apache-2.0","_id":"@abinnovision/payloadcms-wayfinder@1.0.0-beta.6","maintainers":[{"name":"wipeair","email":"andre@loreth.co"}],"dist":{"shasum":"00b9e19ad483b13d7f29d490f7d14fc071d43676","tarball":"https://registry.npmjs.org/@abinnovision/payloadcms-wayfinder/-/payloadcms-wayfinder-1.0.0-beta.6.tgz","fileCount":60,"integrity":"sha512-H3iS3pn8Umwtlv9IGpAYgcXvXmNB4dLtMgs6sKuQ/iX8/vey1PyF5JyJh2JVxzgS+2tBtLQSTRiWxW1qdU75QA==","signatures":[{"sig":"MEYCIQCi/8QGVo3GoKmY1KYrsObiLvF3dUiGEQGeUJPIA67M6wIhAKZLHrXvtFstgaAiKFvBDajrXxXHUaJXSfHZ2iSveXeM","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIHE9wP45DZyLrZx850qzvpLHVXJ/wL50CMG/ijBXailjAiEAhXRldc2fQtfwxhyD4yICTLRej3OILqYG90jkKsXAgTQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@abinnovision%2fpayloadcms-wayfinder@1.0.0-beta.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":134803},"type":"module","$schema":"https://json.schemastore.org/package.json","exports":{".":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"./admin":{"types":"./dist/admin/index.d.mts","default":"./dist/admin/index.mjs"},"./config":{"types":"./dist/config/index.d.mts","default":"./dist/config/index.mjs"},"./lexical":{"types":"./dist/lexical/index.d.mts","default":"./dist/lexical/index.mjs"},"./montage":{"types":"./dist/montage/index.d.mts","default":"./dist/montage/index.mjs"},"./internal":{"types":"./dist/internal.d.mts","default":"./dist/internal.mjs"}},"gitHead":"7f083e3e040ffa99cd66347965c3a492c46e7f12","scripts":{"build":"tsdown","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'test/**/*.ts' --fix","test-unit":"vitest --run --coverage --config vitest.config.mts","typecheck":"tsc --noEmit","format:fix":"prettier --write 'src/**/*.{ts,tsx}' 'test/**/*.ts' '*.{json{,5},md,y{,a}ml}'","lint:check":"eslint 'src/**/*.{ts,tsx}' 'test/**/*.ts'","format:check":"prettier --check 'src/**/*.{ts,tsx}' 'test/**/*.ts' '*.{json{,5},md,y{,a}ml}'","test-unit:watch":"vitest --config vitest.config.mts","test-integration":"vitest --run --config test/integration/vitest.config.mts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:45b3fd2a-89e7-4c0a-a8b9-fcb3fdfd56ef"}},"prettier":"@abinnovision/prettier-config","repository":{"url":"git+https://github.com/abinnovision/payloadcms-commons.git","type":"git","directory":"packages/wayfinder"},"description":"Editor-authored URL routing for Payload: collection-to-path patterns, document-to-href building, path-to-document resolution and a routing-aware link field.","directories":{},"lint-staged":{"src/**/*.{ts,tsx}":["eslint --fix","prettier --write"],"*.{json{,5},md,y{,a}ml}":"prettier --write"},"dependencies":{"path-to-regexp":"^8.4.2"},"publishConfig":{"npm":true,"ghpr":true,"npmAccess":"public"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.3.0","eslint":"^10.10.0","tsdown":"^0.23.0","vitest":"^5.0.0","lexical":"0.41.0","payload":"3.89.0","publint":"^0.3.24","prettier":"^3.9.5","@swc/core":"^1.16.2","typescript":"^6.0.3","@types/node":"^26.5.1","@types/react":"^19.3.0","unplugin-swc":"^1.6.0","@lexical/react":"0.41.0","@payloadcms/ui":"3.89.0","@vitest/coverage-v8":"^5.0.0","@payloadcms/db-sqlite":"3.89.0","@arethetypeswrong/core":"^0.18.5","@payloadcms/richtext-lexical":"3.89.0","@abinnovision/prettier-config":"^2.2.0","@abinnovision/eslint-config-base":"^3.4.2","@abinnovision/payloadcms-montage":"1.0.1-beta.1"},"peerDependencies":{"react":"^19","lexical":">=0.35 <1","payload":">=3.88.0 <4","@lexical/react":">=0.35 <1","@payloadcms/ui":">=3.88.0 <4","@payloadcms/richtext-lexical":">=3.88.0 <4","@abinnovision/payloadcms-montage":">=1.0.0-beta.1"},"peerDependenciesMeta":{"react":{"optional":true},"lexical":{"optional":true},"@lexical/react":{"optional":true},"@payloadcms/ui":{"optional":true},"@payloadcms/richtext-lexical":{"optional":true},"@abinnovision/payloadcms-montage":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/payloadcms-wayfinder_1.0.0-beta.6_1790119895550_0.4162760419083711","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@abinnovision/payloadcms-wayfinder","version":"1.0.0","keywords":["payload","payloadcms","routing","permalinks","urls","link-field"],"author":{"url":"https://abigroup.io","name":"abi group GmbH","email":"info@abigroup.io"},"license":"Apache-2.0","_id":"@abinnovision/payloadcms-wayfinder@1.0.0","maintainers":[{"name":"wipeair","email":"andre@loreth.co"}],"homepage":"https://github.com/abinnovision/payloadcms-commons#readme","bugs":{"url":"https://github.com/abinnovision/payloadcms-commons/issues"},"dist":{"shasum":"84d355da50ac1c4d384429b499fd589ce3523c74","tarball":"https://registry.npmjs.org/@abinnovision/payloadcms-wayfinder/-/payloadcms-wayfinder-1.0.0.tgz","fileCount":61,"integrity":"sha512-Bs1t2RFOwXJu9swmAYBCVe8k11rrsrBtj5fBoc3KL47P/wtlllTC9hmjijA1Z5A+d9HswKjGhp9WiGmmkA3PMg==","signatures":[{"sig":"MEUCIQCjUNd9mbLfKK0aKCEkOZpOE7dmDA7R8HEqps9iixEaMAIgdWtjT//0jjttTUys3vW0spNgZptdFUzJmLQAcKFcl8g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIGdzeFkIb3KQfSMsbsmug0beDH+1p/uBq1dfniQiAzduAiAeUn3sxS1/sElceZcQFtV5S/ehlfzXbNstjCSbGEsvVw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@abinnovision%2fpayloadcms-wayfinder@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":136575},"type":"module","_from":"file:/home/runner/work/_temp/work/0.tgz","$schema":"https://json.schemastore.org/package.json","exports":{".":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"./admin":{"types":"./dist/admin/index.d.mts","default":"./dist/admin/index.mjs"},"./config":{"types":"./dist/config/index.d.mts","default":"./dist/config/index.mjs"},"./lexical":{"types":"./dist/lexical/index.d.mts","default":"./dist/lexical/index.mjs"},"./montage":{"types":"./dist/montage/index.d.mts","default":"./dist/montage/index.mjs"},"./internal":{"types":"./dist/internal.d.mts","default":"./dist/internal.mjs"}},"scripts":{"build":"tsdown","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'test/**/*.ts' --fix","test-unit":"vitest --run --coverage --config vitest.config.mts","typecheck":"tsc --noEmit","format:fix":"prettier --write 'src/**/*.{ts,tsx}' 'test/**/*.ts' '*.{json{,5},md,y{,a}ml}'","lint:check":"eslint 'src/**/*.{ts,tsx}' 'test/**/*.ts'","format:check":"prettier --check 'src/**/*.{ts,tsx}' 'test/**/*.ts' '*.{json{,5},md,y{,a}ml}'","test-unit:watch":"vitest --config vitest.config.mts","test-integration":"vitest --run --config test/integration/vitest.config.mts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"45b3fd2a-89e7-4c0a-a8b9-fcb3fdfd56ef"}},"prettier":"@abinnovision/prettier-config","_resolved":"/home/runner/work/_temp/work/0.tgz","_integrity":"sha512-Bs1t2RFOwXJu9swmAYBCVe8k11rrsrBtj5fBoc3KL47P/wtlllTC9hmjijA1Z5A+d9HswKjGhp9WiGmmkA3PMg==","repository":{"url":"git+https://github.com/abinnovision/payloadcms-commons.git","type":"git","directory":"packages/wayfinder"},"_npmVersion":"11.19.0","description":"Editor-authored URL routing for Payload: collection-to-path patterns, document-to-href building, path-to-document resolution and a routing-aware link field.","directories":{},"lint-staged":{"src/**/*.{ts,tsx}":["eslint --fix","prettier --write"],"*.{json{,5},md,y{,a}ml}":"prettier --write"},"_nodeVersion":"24.21.0","dependencies":{"path-to-regexp":"^8.4.2"},"publishConfig":{"npm":true,"ghpr":true,"npmAccess":"public"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.3.0","eslint":"^10.10.0","tsdown":"^0.23.0","vitest":"^5.0.0","lexical":"0.41.0","payload":"3.89.0","publint":"^0.3.24","prettier":"^3.9.5","@swc/core":"^1.16.2","typescript":"^6.0.3","@types/node":"^26.5.1","@types/react":"^19.3.0","unplugin-swc":"^1.6.0","@lexical/react":"0.41.0","@payloadcms/ui":"3.89.0","@vitest/coverage-v8":"^5.0.0","@internal/test-utils":"0.0.0","@payloadcms/db-sqlite":"3.89.0","@arethetypeswrong/core":"^0.18.5","@payloadcms/richtext-lexical":"3.89.0","@abinnovision/prettier-config":"^2.2.0","@abinnovision/eslint-config-base":"^3.4.2","@abinnovision/payloadcms-montage":"1.0.1-beta.1"},"peerDependencies":{"react":"^19","lexical":">=0.35 <1","payload":">=3.88.0 <4","@lexical/react":">=0.35 <1","@payloadcms/ui":">=3.88.0 <4","@payloadcms/richtext-lexical":">=3.88.0 <4","@abinnovision/payloadcms-montage":">=1.0.0-beta.1"},"peerDependenciesMeta":{"react":{"optional":true},"lexical":{"optional":true},"@lexical/react":{"optional":true},"@payloadcms/ui":{"optional":true},"@payloadcms/richtext-lexical":{"optional":true},"@abinnovision/payloadcms-montage":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/payloadcms-wayfinder_1.0.0_1791036768685_0.9626261320536837","host":"s3://npm-registry-packages-npm-production"}},"1.0.1-beta.1":{"name":"@abinnovision/payloadcms-wayfinder","version":"1.0.1-beta.1","keywords":["payload","payloadcms","routing","permalinks","urls","link-field"],"author":{"url":"https://abigroup.io","name":"abi group GmbH","email":"info@abigroup.io"},"license":"Apache-2.0","_id":"@abinnovision/payloadcms-wayfinder@1.0.1-beta.1","maintainers":[{"name":"wipeair","email":"andre@loreth.co"}],"homepage":"https://github.com/abinnovision/payloadcms-commons#readme","bugs":{"url":"https://github.com/abinnovision/payloadcms-commons/issues"},"dist":{"shasum":"29f53be736fa52b3606af74ec6dccf72184d53fb","tarball":"https://registry.npmjs.org/@abinnovision/payloadcms-wayfinder/-/payloadcms-wayfinder-1.0.1-beta.1.tgz","fileCount":61,"integrity":"sha512-x0ucSamzxCfzvXR2rAeMR5WZ7HYkgaDYhHbcmV2sUGDYEvQYegoBh5bLCk+bP+oIo/E0eBnG813R3bDBq18/Tg==","signatures":[{"sig":"MEUCIQDNEpKWhK/UU0PsWMOHEHTNUc03D/NuHdxBRPyZIca1mAIgYpN4CwHm2CJg4EGB6eGoTpKbA9VaGhM8kawFYaeE/Q4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQD5jZ7iAmZ4mmULbjC40coD5EDL7iit78aFslE/V7MF7AIhAPEe8Am3DfCOf4dPyTLI9zCCCnvIYnbxwrTzwd0/OK6H","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@abinnovision%2fpayloadcms-wayfinder@1.0.1-beta.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":136582},"type":"module","_from":"file:/home/runner/work/_temp/work/5.tgz","$schema":"https://json.schemastore.org/package.json","exports":{".":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"./admin":{"types":"./dist/admin/index.d.mts","default":"./dist/admin/index.mjs"},"./config":{"types":"./dist/config/index.d.mts","default":"./dist/config/index.mjs"},"./lexical":{"types":"./dist/lexical/index.d.mts","default":"./dist/lexical/index.mjs"},"./montage":{"types":"./dist/montage/index.d.mts","default":"./dist/montage/index.mjs"},"./internal":{"types":"./dist/internal.d.mts","default":"./dist/internal.mjs"}},"scripts":{"build":"tsdown","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'test/**/*.ts' --fix","test-unit":"vitest --run --coverage --config vitest.config.mts","typecheck":"tsc --noEmit","format:fix":"prettier --write 'src/**/*.{ts,tsx}' 'test/**/*.ts' '*.{json{,5},md,y{,a}ml}'","lint:check":"eslint 'src/**/*.{ts,tsx}' 'test/**/*.ts'","format:check":"prettier --check 'src/**/*.{ts,tsx}' 'test/**/*.ts' '*.{json{,5},md,y{,a}ml}'","test-unit:watch":"vitest --config vitest.config.mts","test-integration":"vitest --run --config test/integration/vitest.config.mts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"45b3fd2a-89e7-4c0a-a8b9-fcb3fdfd56ef"}},"prettier":"@abinnovision/prettier-config","_resolved":"/home/runner/work/_temp/work/5.tgz","_integrity":"sha512-x0ucSamzxCfzvXR2rAeMR5WZ7HYkgaDYhHbcmV2sUGDYEvQYegoBh5bLCk+bP+oIo/E0eBnG813R3bDBq18/Tg==","repository":{"url":"git+https://github.com/abinnovision/payloadcms-commons.git","type":"git","directory":"packages/wayfinder"},"_npmVersion":"11.19.0","description":"Editor-authored URL routing for Payload: collection-to-path patterns, document-to-href building, path-to-document resolution and a routing-aware link field.","directories":{},"lint-staged":{"src/**/*.{ts,tsx}":["eslint --fix","prettier --write"],"*.{json{,5},md,y{,a}ml}":"prettier --write"},"_nodeVersion":"24.21.0","dependencies":{"path-to-regexp":"^8.4.2"},"publishConfig":{"npm":true,"ghpr":true,"npmAccess":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"react":"^19.3.0","eslint":"^10.10.0","tsdown":"^0.23.0","vitest":"^5.0.0","lexical":"0.50.0","payload":"3.90.2","publint":"^0.3.24","prettier":"^3.9.5","@swc/core":"^1.16.2","typescript":"^6.0.3","@types/node":"^26.5.1","@types/react":"^19.3.0","unplugin-swc":"^1.6.0","@lexical/react":"0.50.0","@payloadcms/ui":"3.90.2","@vitest/coverage-v8":"^5.0.0","@internal/test-utils":"0.0.0","@payloadcms/db-sqlite":"3.90.2","@arethetypeswrong/core":"^0.18.5","@payloadcms/richtext-lexical":"3.90.2","@abinnovision/prettier-config":"^2.2.0","@abinnovision/eslint-config-base":"^3.4.2","@abinnovision/payloadcms-montage":"1.0.2-beta.1"},"peerDependencies":{"react":"^19","lexical":">=0.35 <1","payload":">=3.88.0 <4","@lexical/react":">=0.35 <1","@payloadcms/ui":">=3.88.0 <4","@payloadcms/richtext-lexical":">=3.88.0 <4","@abinnovision/payloadcms-montage":">=1.0.0-beta.1"},"peerDependenciesMeta":{"react":{"optional":true},"lexical":{"optional":true},"@lexical/react":{"optional":true},"@payloadcms/ui":{"optional":true},"@payloadcms/richtext-lexical":{"optional":true},"@abinnovision/payloadcms-montage":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/payloadcms-wayfinder_1.0.1-beta.1_1791043394279_0.12748839420869995","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"_id":"@abinnovision/payloadcms-wayfinder@1.0.1","bugs":{"url":"https://github.com/abinnovision/payloadcms-commons/issues"},"dist":{"shasum":"e824ed9be94e56893c2d8abbac72ca1b928149e0","tarball":"https://registry.npmjs.org/@abinnovision/payloadcms-wayfinder/-/payloadcms-wayfinder-1.0.1.tgz","fileCount":61,"integrity":"sha512-kz9uENgyRlymXHpfPWGenMigwVmxtWATeaKZisgE46fLr4JE4SgkgKf8Q1/PMBazB86B/VDJLO+jNuqznN9W6g==","signatures":[{"sig":"MEUCIFzNuohgxj0DAxZ7MjdbnGRgyh8LDi1k9dCDstYXDWUnAiEA3wTgkUkc5dtbDApjKvYyQ95+ZbRni4dOVDOpYn5gHkM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDqhBBAAgcu+5JNw28Ychyscc8PX2xoGfvr7vrXIALIWQIgewoJs7znl4FjIbJMQTj9jSRKyFoj1U8iwOOZwC//RfI="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@abinnovision%2fpayloadcms-wayfinder@1.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":137002},"name":"@abinnovision/payloadcms-wayfinder","type":"module","_from":"file:/home/runner/work/_temp/work/0.tgz","author":{"url":"https://abigroup.io","name":"abi group GmbH","email":"info@abigroup.io"},"$schema":"https://json.schemastore.org/package.json","exports":{".":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"./admin":{"types":"./dist/admin/index.d.mts","default":"./dist/admin/index.mjs"},"./config":{"types":"./dist/config/index.d.mts","default":"./dist/config/index.mjs"},"./lexical":{"types":"./dist/lexical/index.d.mts","default":"./dist/lexical/index.mjs"},"./montage":{"types":"./dist/montage/index.d.mts","default":"./dist/montage/index.mjs"},"./internal":{"types":"./dist/internal.d.mts","default":"./dist/internal.mjs"}},"license":"Apache-2.0","scripts":{"build":"tsdown","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'test/**/*.ts' --fix","test-unit":"vitest --run --coverage --config vitest.config.mts","typecheck":"tsc --noEmit","format:fix":"prettier --write 'src/**/*.{ts,tsx}' 'test/**/*.ts' '*.{json{,5},md,y{,a}ml}'","lint:check":"eslint 'src/**/*.{ts,tsx}' 'test/**/*.ts'","format:check":"prettier --check 'src/**/*.{ts,tsx}' 'test/**/*.ts' '*.{json{,5},md,y{,a}ml}'","test-unit:watch":"vitest --config vitest.config.mts","test-integration":"vitest --run --config test/integration/vitest.config.mts"},"version":"1.0.1","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"45b3fd2a-89e7-4c0a-a8b9-fcb3fdfd56ef"}},"homepage":"https://github.com/abinnovision/payloadcms-commons#readme","keywords":["payload","payloadcms","routing","permalinks","urls","link-field"],"prettier":"@abinnovision/prettier-config","_resolved":"/home/runner/work/_temp/work/0.tgz","_integrity":"sha512-kz9uENgyRlymXHpfPWGenMigwVmxtWATeaKZisgE46fLr4JE4SgkgKf8Q1/PMBazB86B/VDJLO+jNuqznN9W6g==","repository":{"url":"git+https://github.com/abinnovision/payloadcms-commons.git","type":"git","directory":"packages/wayfinder"},"_npmVersion":"11.19.0","description":"Editor-authored URL routing for Payload: collection-to-path patterns, document-to-href building, path-to-document resolution and a routing-aware link field.","directories":{},"lint-staged":{"src/**/*.{ts,tsx}":["eslint --fix","prettier --write"],"*.{json{,5},md,y{,a}ml}":"prettier --write"},"maintainers":[{"name":"wipeair","email":"andre@loreth.co"}],"_nodeVersion":"24.21.0","dependencies":{"path-to-regexp":"^8.4.2"},"publishConfig":{"npm":true,"ghpr":true,"npmAccess":"public"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.3.0","eslint":"^10.10.0","tsdown":"^0.23.0","vitest":"^5.0.0","lexical":"0.50.0","payload":"3.90.2","publint":"^0.3.24","prettier":"^3.9.5","@swc/core":"^1.16.2","typescript":"^6.0.3","@types/node":"^26.5.1","@types/react":"^19.3.0","unplugin-swc":"^1.6.0","@lexical/react":"0.50.0","@payloadcms/ui":"3.90.2","@vitest/coverage-v8":"^5.0.0","@internal/test-utils":"0.0.0","@payloadcms/db-sqlite":"3.90.2","@arethetypeswrong/core":"^0.18.5","@payloadcms/richtext-lexical":"3.90.2","@abinnovision/prettier-config":"^2.2.0","@abinnovision/eslint-config-base":"^3.4.2","@abinnovision/payloadcms-montage":"1.0.2-beta.1"},"peerDependencies":{"react":"^19","lexical":">=0.35 <1","payload":">=3.88.0 <4","@lexical/react":">=0.35 <1","@payloadcms/ui":">=3.88.0 <4","@payloadcms/richtext-lexical":">=3.88.0 <4","@abinnovision/payloadcms-montage":">=1.0.0-beta.1"},"peerDependenciesMeta":{"react":{"optional":true},"lexical":{"optional":true},"@lexical/react":{"optional":true},"@payloadcms/ui":{"optional":true},"@payloadcms/richtext-lexical":{"optional":true},"@abinnovision/payloadcms-montage":{"optional":true}},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/payloadcms-wayfinder_1.0.1_1791120220482_0.004914765032631996"}}},"time":{"created":"2026-09-05T08:41:34.058Z","modified":"2026-10-04T13:23:41.056Z","1.0.0-beta.2":"2026-09-05T08:41:34.376Z","1.0.0-beta.3":"2026-09-05T13:19:15.234Z","1.0.0-beta.4":"2026-09-18T14:40:37.045Z","1.0.0-beta.6":"2026-09-22T23:31:35.652Z","1.0.0":"2026-10-03T14:12:48.772Z","1.0.1-beta.1":"2026-10-03T16:03:14.415Z","1.0.1":"2026-10-04T13:23:40.588Z"},"bugs":{"url":"https://github.com/abinnovision/payloadcms-commons/issues"},"author":{"url":"https://abigroup.io","name":"abi group GmbH","email":"info@abigroup.io"},"license":"Apache-2.0","homepage":"https://github.com/abinnovision/payloadcms-commons#readme","keywords":["payload","payloadcms","routing","permalinks","urls","link-field"],"repository":{"url":"git+https://github.com/abinnovision/payloadcms-commons.git","type":"git","directory":"packages/wayfinder"},"description":"Editor-authored URL routing for Payload: collection-to-path patterns, document-to-href building, path-to-document resolution and a routing-aware link field.","maintainers":[{"name":"wipeair","email":"andre@loreth.co"}],"readme":"# @abinnovision/payloadcms-wayfinder\n\n![An editor-authored map of path patterns turns collections into URLs and URLs back into documents](https://raw.githubusercontent.com/abinnovision/payloadcms-commons/main/packages/wayfinder/assets/header.png)\n\nEditor-authored URL routing for [Payload CMS](https://payloadcms.com/).\n\nOn a shoot, the route to set is marked by a trail of small signs, one arrow per junction, put\nup by someone who walked it first. Nobody has to be told the address. Wayfinder is that trail for\nURLs: editors author which collection is served at which path pattern, and everything that needs\na link follows the signs instead of hard-coding the route.\n\nWayfinder owns one thing: the map from collections to the URL patterns their documents are served\nat. That map is authored in the CMS, so adding a page type is an editorial act rather than a code\nchange. Everything else in the package falls out of it. `createRouter` binds the mapping, the\nlocale and the href formatter once per request and hands back a router: `router.href` turns a\ndocument into an href, `router.path` builds a path from parameter values alone for sitemaps and\nfeeds, `router.resolve` turns a request path back into a document for a catch-all route, and\n`router.link` plus `linkField` give editors a link that follows its target when that collection's\npattern changes. [`docs/concepts.md`](./docs/concepts.md) describes the model;\n[`docs/limitations.md`](./docs/limitations.md) states what is out of scope and why.\n\n## Install\n\n```sh\nyarn add @abinnovision/payloadcms-wayfinder\n```\n\nOnly `payload` is required. Every other peer is optional and pulled in solely by the surface that\nuses it, so a project that only needs the URL layer installs nothing else:\n\n| Peer                                 | Range              | Needed for                |\n| ------------------------------------ | ------------------ | ------------------------- |\n| `payload`                            | `>=3.88.0 <4`      | everything (required)     |\n| `@payloadcms/richtext-lexical`       | `>=3.88.0 <4`      | `./lexical` and `./admin` |\n| `react`, `lexical`, `@lexical/react` | `^19`, `>=0.35 <1` | `./admin`                 |\n| `@payloadcms/ui`                     | `>=3.88.0 <4`      | `./admin`                 |\n| `@abinnovision/payloadcms-montage`   | `>=1.0.0-beta.1`   | `./montage`               |\n\n## Setup\n\nRegister the plugin in `payload.config.ts`. It adds the mapping global and the package's admin\ntranslations:\n\n```ts\n// payload.config.ts\nimport { wayfinderPlugin } from \"@abinnovision/payloadcms-wayfinder/config\";\nimport { buildConfig } from \"payload\";\n\nexport default buildConfig({\n  // ...\n  plugins: [wayfinderPlugin({ checkDefaultPopulateOn: [\"pages\", \"articles\"] })],\n});\n```\n\nThen open the global in the admin panel and author one row per collection. A row is a collection\nslug and a path pattern:\n\n```\npages      /*path\narticles   /journal/:slug\nsections   /:slug\n```\n\nThe last parameter of a pattern identifies the document; earlier parameters narrow the lookup. A\npattern is validated on save against the collection's own fields, so a parameter that names\nnothing queryable is rejected before it can produce a URL that resolves to nothing.\n\nRead the mapping and hand it to a catch-all route:\n\n```tsx\n// app/[[...path]]/page.tsx\nimport { createRouter } from \"@abinnovision/payloadcms-wayfinder\";\nimport { loadMappings } from \"@abinnovision/payloadcms-wayfinder/config\";\nimport { notFound } from \"next/navigation\";\nimport { getPayload } from \"payload\";\n\nimport config from \"@payload-config\";\n\nconst Page = async ({ params }: { params: Promise<{ path?: string[] }> }) => {\n  const payload = await getPayload({ config });\n  const mappings = await loadMappings({ payload });\n  const { path } = await params;\n\n  const wayfinder = createRouter({ mappings, locale: \"en\" });\n\n  const resolved = await wayfinder.resolve(`/${(path ?? []).join(\"/\")}`, {\n    payload,\n  });\n\n  if (!resolved) {\n    notFound();\n  }\n\n  return <Document collection={resolved.collection} data={resolved.document} />;\n};\n\nexport default Page;\n```\n\n[`docs/integration.md`](./docs/integration.md) covers the rest: caching the mapping, the\n`defaultPopulate` prerequisite for linkable collections, and sitemap and feed usage.\n\n## Entrypoints\n\n```\n\".\"          createRouter, defineMappings, defineLinks, resolveRelationshipSlug, deriveLinkLabel, types\n\"./internal\" the unbound functions the router is built out of, plus the pattern internals\n\"./config\"   wayfinderPlugin, createMappingGlobal, loadMappings, linkField\n\"./lexical\"  wayfinderLinkFeature, linkLabelFeature, resolveLinkNode\n\"./admin\"    LinkLabelFeatureClient, mounted by linkLabelFeature through the import map\n\"./montage\"  initWayfinder, wayfinderFrom, wayfinderExtension\n```\n\n`.` is the runtime half. It takes mappings as plain data and never reads the CMS, so it runs in a\nroute handler, a sitemap, a script or a test alike. `./internal` is the escape hatch behind it,\nfor a caller that holds no request or wants a different set of arguments per call; nothing there\ncarries a compatibility guarantee. `./config` is loaded by the CLI, by migrations and by\n`payload generate:types`, so it must stay React-free. `./lexical`, `./admin` and `./montage` each\npull in an optional peer and are separate for that reason.\n[`docs/layers.md`](./docs/layers.md) explains the split.\n\n## Documentation\n\n- [`docs/concepts.md`](./docs/concepts.md): the mapping global, patterns, specificity and the\n  wildcard contract.\n- [`docs/layers.md`](./docs/layers.md): the three layers, the optional surfaces, and what each one\n  works without.\n- [`docs/integration.md`](./docs/integration.md): plugin setup, caching, catch-all routes,\n  sitemaps and `defaultPopulate`.\n- [`docs/linking.md`](./docs/linking.md): `linkField`, `defineLinks`, `router.link` and the Lexical\n  feature.\n- [`docs/code-defined-mappings.md`](./docs/code-defined-mappings.md): `defineMappings`, with no CMS\n  global at all.\n- [`docs/recipes.md`](./docs/recipes.md): link components, locale and preview prefixing, admin\n  preview URLs, and request-scoped mappings.\n- [`docs/limitations.md`](./docs/limitations.md): what wayfinder does not do, and why.\n\n## License\n\nApache-2.0\n","readmeFilename":"README.md"}