setImmediate support checkdebug dependencyengines field to Node@18 or higherObject.setPrototypeOf polyfillArray.flat instead of array-flatten packagemethods dependency with standard libraryutils-merge dependency with Object.assignafterrouter.route('/user(s?)/:user/:op') but still have optional non-capture /user{s}/:user/:op:name? becomes {:name}:name* becomes *name.{*name}:name+ becomes *name and thus equivalent to *name so I dropped those testsThis incorporates all changes after 1.3.5 up to 1.3.8.
router.paramThis incorporates all changes after 1.3.3 up to 1.3.5.
router.process_params methoddebug dependency?, *, and + parameter modifiers.(*) is no longer valid and must be written as (.*), for example.req.params.
/:foo(.*) only captures as req.params.foo and not available as
req.params[0]./\\d+ is no longer valid and must be written as /(\\d+).:foo named captures can no longer be included inside a capture group.* path segment behavior removed.
/foo/*/bar will match a literal * as the middle segment.next(error)DEBUG_HIDE_DATE environment variableDEBUG_FD environment variable supportRegExpsRouter constructorRegExpDEBUG_MAX_ARRAY_LENGTHnext("router") to exit from routerrouter.use skipped requests routes did not%o in path debug to tell types apart* routereq.url is not setDEBUG_FD environment variable set to 3 or highermergeParams: truereq.paramsdecodeURIComponent
URIErrors are a 400* before params in routesnext('route') in router.param would incorrectly skip valuessetprototypeof instead of __proto__OPTIONS response handlerrouter.param(name, fn)array-flatten for flattening arrays