Skip to content

Latest commit

 

History

History
executable file
·
1105 lines (984 loc) · 92.8 KB

CHANGELOG.md

File metadata and controls

executable file
·
1105 lines (984 loc) · 92.8 KB
  • #2396 Inert 2.1.3 update
  • #2397 throw when attaching route handlers without a connection
  • #2374 Server methods context not available in route prerequisites
  • #2392 No Payload Validation
  • #2395 Update jshttp/mime-db to 1.6.1 from 1.5.0
  • #2370 Add xss protection to validation response
  • #2362 Don't respond to connections until listening is started
  • #2363 Refuse to handle incoming request after server is stopped
  • #2347 Improve error message when validation.payload is set but type is GET
  • #2309 Fixes #2308 by logging boom error object instead of just message
  • #2308 Logging boom errors from handlers should send boom error to log not just message
  • #2372 inert 2.1.2
  • #2359 Remove '{}' payload from cors OPTIONS response
  • #2354 Update API.md for inert 2.1.0
  • #2366 Update hapijs/catbox to 4.2.1 from 4.2.0
    • hapijs/catbox 4.2.1
    • #116 Prefix keys with a '+' when using object as a hash
  • #2355 Fix table labels
  • #2335 Expose the request object in inject()
  • #2277 Fix invalid response for empty reply() (v8.x regression)
  • #2316 Update jshttp/mime-db to 1.5.0 from 1.3.1
  • #2302 allow replying with a stream as returned by node core http client methods
  • #2301 can't reply with stream returned by node core http client methods
  • #2291 external listener protocol issue
  • #2331 Revise range tests to not depend on the inert module
  • #2324 Remove catch call for promise replies
  • #2323 Promise support
  • #2300 Bumped mime-db version
  • #2271 Update jshttp/mime-db to 1.3.0 from 1.2.0
  • #2270 Update hapijs/boom to 2.6.1 from 2.6.0
    • hapijs/boom 2.6.1
    • #40 Lab 5.0, code 1.0
  • #2269 Update hapijs/shot to 1.4.0 from 1.3.5
    • hapijs/shot 1.4.0
    • #19 optionally accept an object as the url
  • #2268 Update hapijs/joi to 5.0.2 from 5.0.0
    • hapijs/joi 5.0.2
    • #505 Convert date regex to date before comparison. Closes #503.
    • #503 Joi.date().iso() throws error when required() is used.
    • hapijs/joi 5.0.1
    • #502 Joi.array() modifies original array
  • #2262 Change server.table() result from object to array
  • #2255 Throw when calling reply() with objectMode stream
  • #2249 Add 'uri' connection option
  • #2247 Split debug settings per event type
  • #2246 plugin dependencies error message changed
  • #2234 Support views in auth schemes
  • #2243 Fix reply.continue() in prerequisite.
  • #2244 Fix reply.continue() in prerequisite. Closes #2243
  • #2242 Uncaught error: Cannot read property 'isBoom' of null in hapi/lib/handler.js
  • #2241 Remove string notation method logging when cache not setup
  • #2226 When using string shorthand in pre it does not provide reply interface
  • #2240 Cached method in string notation bypasses cache
  • #2238 Conditional Validation Rules based on Auth
  • #2233 Populate connection.info.uri before start when port 0
  • #2237 Support bare server (no files, proxy, views)
  • #1971 Allow plugins to extend Server
  • #2231 Change request.route to a wrapper object containing settings
  • #2235 Expose realm as public interface
  • #2230 Replace server.config with server.realm.modifiers
  • #2229 plugin.expose() only sets server.plugins, not connection.plugins
  • #2190 Log heavy load reason when check() is false
  • #2220 A method to test a string against the routes table
  • #2228 Update hapijs/joi to 5.0.0 from 4.9.0
    • hapijs/joi 5.0.0
    • #498 array().single()
    • #497 array.unique doesn't validate duplicate dates
    • #494 Joi.number allows Infinity
    • #462 Return context with errors.
    • #486 array().includes() should not allow undefined
    • #485 Round number.precision if options.convert
    • #489 add missing semicolon
  • #2227 Update moment to 2.8.4
  • #2224 Cleanup connection.info settings and introduce 'address' config
  • #2219 Update hapijs/hoek to 2.10.0 from 2.9.0
    • hapijs/hoek 2.10.0
    • #109 Enhance shallow clone methods to support nested keys
    • #110 enhance withShallow methods to support nested keys. Closes #109
    • hapijs/hoek 2.9.1
    • #108 Fix applyToDefaultsWithShallow default clone. Closes #107
    • #107 applyToDefaultsWithShallow() fail to retain defaults shallow key
  • #2216 Invalid deep cloning of bind context
  • #2217 Disable scope checking on a route
  • #2215 Revert change to trailing slash behavior
  • #2209 Not possible to add route in plugins
  • #2203 Move connection route config to route with connections defaults
  • #2206 Change server.bind() and server.path() to apply only to routes that follow
  • #2205 Rename plugin register() route option to routes
  • #2201 Rename cacheControlStatus to cache.statuses
  • #2200 Validation failAction and custom function are not protected
  • #2199 add missing variety handler for promises returning a object
  • #2198 Update hapijs/call to 2.0.1 from 1.0.0
    • hapijs/call 2.0.0
    • #10 Support route id
    • #3 Support for flexible routes
    • #9 /a/{p}/{p*} conflicts with /a/{p*} (which is not reachable)
    • #8 '/a/b/{p*}' is more specific than '/{p*5}'
    • #7 /a/b/{p*} is more specific than /a/{b}/{c}
    • #6 '/a/{b*}' is less specific than '/a/{b}/{c*}'
    • #2 Match case-insensitive paths with no params
  • #1939 Reverse Routing a URL
  • #2185 Update hapijs/catbox to 4.2.0 from 4.1.0
    • hapijs/catbox 4.2.0
    • #109 Return cached on error when dropOnError is false
    • #105 StaleIn can be function.
    • #113 Allow empty keys
  • #2181 Remove server method cache key 'h' prefix
  • #2179 server.register() doesn't work with direct require of plugins (-rc1)
  • #2156 Rewrite reply() interface section
  • #1945 IE <=8 doesn't accept application/javascript as a mimetype
  • #2178 Update hapijs/mimos to 2.0.2 from 1.0.1
    • hapijs/mimos 2.0.2
    • #8 Change source from hapi to mimos
    • hapijs/mimos 2.0.1
    • #7 Improve performance for testing
    • hapijs/mimos 2.0.0
    • #6 Added ability to override entries in the mime database.
  • #2157 Link mentions of methods to their reference
  • #2177 Return select() on server.connection()
  • #2155 Cleanup and document all internal request logs
  • #2175 Update jshttp/mime-db to 1.2.0 from 1.1.2
  • #2174 Update hapijs/qs to 2.3.3 from 2.3.2
    • hapijs/qs 2.3.3
    • #59 make sure array indexes are >= 0, closes #57
    • #58 make qs usable for browser loader
  • #2173 Update hapijs/catbox-memory to 1.1.1 from 1.1.0
  • #2172 Update hapijs/boom to 2.6.0 from 2.5.1
    • hapijs/boom 2.6.0
    • #33 Added status code 429 Too Many Requests.
  • #2170 Spin off range header parser
  • #2066 Configure auth scheme to require payload validation
  • #2111 CORS matchOrigin should echo origin when config doesn't specify
  • #2158 How to get default auth strategy from server object?
  • #1994 Pass meta data from a joi object to a failAction
  • #2167 Add response 'close' processor
  • #2166 ETag vary modification not applied to content-encoding set elsewhere
  • #2165 Expose request.paramsArray
  • #2164 Bypass compression on empty payload
  • #2163 ETag vary modification is incorrect
  • #2099 ETags never match with varyEtag setting
  • #2160 Add cors.override setting
  • #2154 Rename response object option marshall to marshal
  • #2153 Change etag based on vary header by default
  • #2093 Include ETag and Last-Modified in 304 response
  • #2152 Change server method generateKey() to only take the arguments
  • #2148 Optimize use of arguments
  • #2150 argument Object Optimizations
  • #2129 Support promises in server.method()
  • #2149 Support server methods without callback
  • #2122 Pass the reply() interface everywhere a response can be returned
  • #2146 Deep copy app and plugins configurations
  • #2124 Server-level connection defaults
  • #2145 Split request log events into request and request-internal
  • #2048 New Event for request.log
  • #2144 Rename server event internalError to request-error
  • #2143 Replace log 'hapi' tag with event.internal flag
  • #2142 Rename request.responses to request.preResponses
  • #2104 Apply reply.continue() to auth interfaces
  • #2137 Remove auth authenticate() log option in result
  • #2136 Here comes 8
  • #2135 Remove Hapi.version
  • #2131 Simplify server.register() to only accept register() or { register, options }
  • #2128 Change server.method() object key from fn to method
  • #2097 Support Promises in reply() interface
  • #2126 Change server.cache() to take only options
  • #2125 Remove .hapi references
  • #2118 Cleanup register() to accept a plugin or { plugin, options }
  • #2116 Move peek logic to Peekaboo
  • #2040 Improve request ID generator to prevent collisions
  • #2113 Missing host will default to hostname or 'localhost' instead of '0.0.0.0' pre start()
  • #2112 Switch unix domain socket and windows named pipe to use options.port
  • #1977 Throw when route() is called with multiple arguments
  • #2003 Stop cache client when pack stops
  • #1926 Remove special handling of the HTTP Location header
  • #2109 Remove request aborted listener
  • #1902 reply.redirect() and reply.file() not working in server extensions
  • #2103 Change ext continuation method from reply() to reply.continue()
  • #1965 Need to know when response was sent in server.on(tail)
  • #2065 failing to generate a method key should generate an error somewhere
  • #2089 Server method generateKey no longer supports returning null as valid no caching indicator
  • #1963 Extensible reply() interface
  • #1866 Throw error when trying to reply twice
  • #1864 Feature Request: Validation of non-200/ok responses.
  • #1723 Allow response object stripping according to schema
  • #2096 Skip onPreResponse when connection closes prematurely
  • #1686 Don't report request closed on redirect payload write
  • #2086 Remove bin/hapi
  • #2085 Remove server.compose()
  • #1672 Enable starting the server listener externally
  • #2095 Rework composer format
  • #2092 Change default port to 0
  • #2090 Remove plugin.version
  • #2084 Remove Hapi.state.prepareValue()
  • #2083 Remove Hapi.error
  • #2082 Remove Hapi.createServer()
  • #2052 Remove plugin.length
  • #2053 Change plugin.servers to plugin.connections
  • #2071 Move proxy handler to use local maxSocket config
  • #2072 Remove debug from server configuration
  • #2073 Split process load from server load limits
  • #2076 Move files.etagsCacheMaxSize to pack level
  • #2080 app config no longer copied over to server.app or connection.app
  • #2123 Upgrade hoek to 2.9.0
  • #2120 TypeError: Cannot read property 'get' of undefined
  • #2105 Added ability to pass option into unstate.
  • #1916 Temp file is not deleted when request is aborted by client
  • #2100 Global view context.
  • #2069 Isolate server in its own pack
  • #2061 Second phase of server/pack/plugin refactor
  • #2057 Pack refactor
  • #2039 Added npm-shrinkwrap
  • #2038 Move cli logic to rejoice
  • #2036 Move lru-cache to inert
  • #2034 Lab 5.0
  • #2035 lab 5.0 features. Closes #2034
  • #2028 Improve error message when auth scope is insufficient
  • #2029 Fixes #2028. Updated error message for invalid scope to explain that any of the specified are sufficient
  • #2024 Resolve undefined environment variables to the empty string in the cli.
  • #2022 Spin off file and directory to inert
  • #1913 Change proxy localStatePassThrough setting default to false
  • #2021 Override server files.relativeTo config per route
  • #2020 h2o2 2.0
  • #1941 Remove route from handler registration arguments
  • #2019 Catbox 4.0
  • #1954 Remove support for catbox getOrGenerate()
  • #2017 Initial 7.0 changes
  • #2016 Remove $env support from pack.compose()
  • #1955 Use environment variables in CLI configuration json file
  • #2011 Hapi should not override cache-control header if it's manually set by user's code
  • #1960 Remove support for tos authentication setting
  • #2007 Remove server views config
  • #2010 Heavy
  • #2002 show route method in error message
  • #1984 All non 200 responses get cache-control=no-cache header
  • #1995 Adding route with multiple methods overrides route config
  • #2001 Keep the options of server.inject untouched #2000
  • #2005 Replace negotiator
  • #1998 Migrate payload parsing to subtext with multipart support via pez
  • #1993 Replaced optimist with bossy
  • #1928 Handle empty or falsy charset in response
  • #1968 Vision / Mimos
  • #1959 Fix server/plugin ext views conflict
  • #1958 Move proxy handler to h2o2
  • #1956 Fix Content-Type overriding
  • #1944 Move router to Call
  • #1934 Fix non-spec compliant Last-Modified header in response
  • #1932 handle empty CORS expose-headers header response
  • #1922 Handle server methods without cache as special case
  • #1828 Disable compression on file types already compressed (png, jpg)
  • #1905 Replaced mime-type with mime.
  • #1889 Upgrade to wreck v5
  • #1919 Log method pre string notation
  • #1915 Issue/1911
  • #1885 Handler timeout with onPreResponse asserts on bad protect
  • #1884 Improve protect logging
  • #1881 update qs dependency
  • #1863 Allow agent to be set on proxy options and passed into Nipple.
  • #1878 Rename private route members
  • #1877 Move state.js to statehood module
  • #1875 Session scope does not match one to many auth.scope on route.
  • #1871 Switch to wreck
  • #1856 Allow view options override on handler object
  • #1858 Fix typo in defaults.js
  • #1857 Manifest validation tests server config before defaults applies
  • #1851 Updated route documentation.
  • #1844 Replace async
  • #1842 Lab 4.00
  • #1840 No longer possible to load caches using CLI?
  • #1835 server.state ttl must be a number
  • #1795 request.server._views in plugin
  • #1832 Replace mime with mime-type
  • #1822 Added joi validation to manifest.
  • #1810 set X-Content-Type-Options to nosnif for jsonp responses
  • #1827 Cannot call setTimeout with non-integer msec value
  • #1826 Support cache generateTimeout setting
  • #1820 Rename spumko to hapijs
  • #1801 Stale dependencies
  • #1767 plugin.location
  • #1790 Expose authentication mode
  • #1769 Plugin X missing dependency Y in server if manifest.plugins key order not carefully managed
  • #1754 File handler to handle 206 Partial Content?
  • #1788 Last-Modified comparison needs to account for 1 second precision
  • #1778 Do not create a duplicate Content-Type header on proxy passthrough
  • #1774 Style fixes
  • #1766 prepend jsonp callbacks with a comment to prevent the rosetta-flash vulnerability
  • #1763 fixes #1755 - stripTrailingSlash doesn't work when query variables are used
  • #1760 How can I set Content-Type header to the content generated from reply.view?
  • #1762 fix content-type overriding issue #1760.
  • #1733 log function should only emit once if _server object
  • #1783 Change etag when content-encoding is used
  • #1782 server.inject() res.result does not reflect actual payload sent on 304/204
  • #1781 Send empty payload on 204
  • #1756 Follow coding conventions concerning semicolons; Don't initialize variab...
  • #1776 Proxy pass-through with onResponse fails to preserve vary header values
  • #1773 Windows path fails on trailing slash on view helpers
  • #1676 Problem serving precompressed files with directory handler
  • #1772 HEAD requests should retail etag header
  • #1771 Open open one file stream when using precompressed file
  • #1407 Skip opening file or rendering view on head or 304
  • #1752 Adding helpful error message when pack.register is missing a callback
  • #1745 Add joi validation of pack options
  • #1728 6.x breaks plugin modules exporting functions
  • #1720 No way to handle root routes with route: {prefix: '...'}
  • #1719 Fixes undefined error in plugin.dependency
  • #1710 Buffer based passwords fail schema validation (6.0 regression)
  • #1708 Hapi 6.0 no longer invalidates auth strategy on registration of route
  • #1703 Catbox 3.0 and drop internal require support
  • #1700 Change the order of actions when starting a pack
  • #1668 Delete 'Accept-Encoding' header on proxy requests
  • #1696 Non-Error auth err responses are ignored in try mode
  • #1695 Preserve auth error on try
  • #1691 V6.0
  • #1693 Enhance setting authentication defaults
  • #1692 Allow testing a request against any configured authentication strategy
  • #1688 Bring back reply.redirect()
  • #1687 Don't log auth non-error responses with 'error' tag
  • #1679 Allow cookie-specific settings for failAction, strictHeader, and clearInvalid
  • #1678 Expose the location header logic
  • #1677 Enhance manifest format to support registration options (select, prefix, vhost)
  • #1674 Make plugin register() and dependency() selectable
  • #1675 Remove pack.list
  • #1673 Make plugin.events selectable
  • #1663 Allow register to pre-select servers
  • #1662 Config clones bind, app, and plugins
  • #1661 View manager clones engines including modules
  • #1658 Set route path prefix when loading plugin
  • #1659 plugin.view() modifies options' basePath
  • #1656 Remove pack.require() and plugin.require()
  • #1655 Remove support for string view engine config
  • #1653 Move Composer into Pack.compose()
  • #1652 Remove composer support for multiple packs
  • #981 Scope plugin routes to a virtual host
  • #1579 Add option to remove trailing slashes to router
  • #1574 Document the best way to implement a 404 from the directory handler when using path callback
  • #1573 Server throttling controls do not log execution
  • #1508 Escaped error message with regex validation
  • #1477 proxy xforward option will set bad headers in some cases
  • #1581 Authentication throws are treated as valid reply()
  • #1644 request.params contains empty strings for missing optional params
  • #1643 Expose cross inputs as validation context
  • #1642 Cjihrig header validation
  • #1641 Upgrade to joi 4.x
  • #1622 Extend Hapi cli to enable loading a module before loading hapi
  • #1638 Unahndled Exception when a request is aborted
  • #1634 Request domain leaks request object
  • #1635 Remove reference to request in domain. Closes #1634
  • #1633 Rework domains to single entry
  • #1632 Clean response objects for aborted requests
  • #1461 Security headers
  • #1583 Support JSON-derived media types
  • #1604 response emitter fails to retain custom event listeners once sent
  • #1597 Template helpers fail on relative paths
  • #1598 Throws when response does not have _close()
  • #1594 Can jsonp be optional?
  • #1567 allow defaultExtension
  • #1590 RSS leak occurs when request does not read entire stream response
  • #1569 Move ext topo sort to its own module
  • #1566 Precompile joi validation
  • #1548 wip: fix windows bugs
  • #1560 4.0.0
  • #1559 joi 3.0
  • #1558 Change Hapi.utils.version() to Hapi.version and remove Hoek alias
  • #1547 Make certain that path is relative before joining it to relativeTo
  • #1554 coverage, closes #1524
  • #1524 Coverage after lab partial condition result coverage
  • #1521 Allow plugins to register handler types
  • #1551 add an insecureAgent when maxSockets is set, closes #1512
  • #1525 expose filename and headers for streams in a multipart form
  • #1523 Question: How to validate payload with templated response properly ?
  • #1541 Clarify that statusCode key of stream response passed in response
  • #1540 Pre-gzipped source stream not properly tested for being the active source
  • #1538 Passing Error objects can leak message in 500 response
  • #1536 maxEventLoopDelay fails to catch when load is too high to reach next sample interval
  • #1535 Cannot set maxSockets to node default
  • #1533 Proxy without passThrough fails to set cache-control header
  • #1532 Multipart payload to files with multiple files skips second file when large
  • #1531 pack.log() doesn't retain server debug false setting
  • #1530 plugin.method() should use method bind before plugin bind
  • #1515 Coverage to 100% after lab logical statement support
  • #1520 server.table() mis-documented, missing args, and route.table() is wrong
  • #1518 Server timeout config allows invalid values
  • #1517 Proxy handler payload config validation using incorrect variable
  • #1514 Server allows duplicate lables
  • #1513 Authentication userland code not protected by domain
  • #1507 request.setUrl('') throws
  • #1503 plugin.method(name, fn, [options]) fails
  • #1466 Drop support for server helpers
  • #1458 Removed Http(s) globalAgent settings
  • #1485 Bring coverage back to 100% after lab fix
  • #1476 add PATCH to default cors methods, closes #1475
  • #1475 Include PATCH method in options/cors/methods default
  • #1478 Use joi 2.8 alternatives()
  • #1465 Migrate to catbox 2.0
  • #1473 Drop dtrace support
  • #1455 Print to console server logs based on debug config
  • #1451 Objects created in plugin.dependency or plugin.after are monitored by the wrong domain
  • #1452 Perhaps include request.pre in handler view context
  • #1453 Include prerequisites in default view context. #1452
  • #1445 Server method bind option
  • #1450 Enable handlers to use the prerequisite method string notation
  • #1449 Allow server methods names to include '.' (nested)
  • #1448 Prerequisite string notation parsing errors
  • #1447 Allow prerequisites string notation to use method name without ()
  • #1446 Document server method callback 'isUncacheable' argument
  • #1442 Response 304
  • #1440 Redirecting from within an Auth.Scheme generates a Circular Reference
  • #1439 proper etag formatting
  • #1434 Allow overriding the filename in content-disposition headers
  • #1432 Replace server helpers with server methods
  • #1299 thrown errors inside server.inject does not propagate
  • #1430 Server fails to parse "" cookie value
  • #1428 request.getLog() includes same event multiple times when using multiple tags
  • #1424 Searching actual working SSE example (#1008 does not work for me)
  • #1425 return a reference to the server when adding via pack.server
  • #1419 Send newline \n after all responses
  • #1320 Add support for asynchronous view rendering
  • #1372 test that handler isn't called when a request is interrupted
  • #1362 (cookies) TypeError: Cannot call method 'match' of undefined
  • #1378 add failureResponse option to proxy handler
  • #1354 Use configuration objects to register helpers
  • #1380 Allow bind context for view handler
  • #1382 Make joi optional for route validation
  • #1404 Protect JSON.stringify from throwing.
  • #1395 JSON circular structure error in authentication error logging
  • #1405 Call parseInt() for Joi-validated integers
  • #1414 Sending incorrect status code (200) when file fails to open before transmit
  • #1413 File stream is opened before necessary (e.g. if replaced by another response in ext)
  • #1412 Missing file (404) not captured by onPreResponse
  • #1411 Wasteful encoder prep when response is 304 or head
  • #1410 passThrough statusCode overrides manual code value
  • #1409 Status code set from upstream without passThrough flag
  • #1408 precompressed file handle not closed when using head or 304
  • #1387 EMFILE error when hapi serves static files over period of time in hapi 2.1.2
  • #1391 Disable autoparsing without losing gzip
  • #1393 add gunzip as third option to parse; resolves #1391
  • #1400 Question: Can you get a log of requests that don't pass validation?
  • #1401 route.payload.allow as Array never matches
  • #1357 specify hoek minor version
  • #1359 Ext reply(null).state() race condition
  • #1351 Prepare for node 0.12
  • #1347 Views should not use basePath when path is absolute
  • #1344 Use the plugin loader when configured to load view engines
  • #1245 Replace request with nipple in tests
  • #1336 Allow custom view layout folder
  • #1335 Allow view layout to contain a string and boolean
  • #1322 Does Hapi support multiple view templates?
  • #1317 Cannot Parse form-encoded arrays
  • #1331 Fix query(string) regression
  • #1332 Payload always logging an error regardless of error state
  • #1327 Better debug support for object data
  • #1324 When no query params are sent, request.params is null instead of {}.
  • #1301 querystring => qs, adds support for nested objects
  • #1314 Replace old payload try mode with failAction
  • #1313 Change redirectToSlash default value to true
  • #1312 Remove special values for server config 'files.relativeTo'
  • #1311 Implement saving payload to file when not using mutlipart
  • #1304 Request 'peek' event
  • #1300 Do not overwrite Access-Control-Allow-Origin
  • #1297 Document validation option in settings
  • #1295 Replace route payload.mode with payload.output and payload.parse
  • #1292 Skip loading entire multipart to memory and stream directly to multiparty
  • #1168 Save stream to file like {mode: 'file' ...}
  • #1236 Review lru-cache settings
  • #1239 Disable cache when Authorization header is included
  • #1241 Add user/private flag to state variable
  • #1282 Security tests using reply().setState() which throws
  • #1264 requesting url that is not encoded correctly should return 400, not 404
  • #1291 Remove server config normalizeRequestPath and default to true
  • #1290 Partial path param match /a{b}c does not apply isCaseSensitive
  • #1288 Move auth schemes to plugins
  • #1287 Split server.auth() into server.auth.scheme() and server.auth.strategy()
  • #1286 Expose response preview as public API
  • #1284 Expose request.response and change it to direct ref from func
  • #1285 Change authenticate() callback to reply interface
  • #1269 Manage state all in the request
  • #1281 Change authenticate() callback signature
  • #1280 Support node callback pattern (err, result) for reply()
  • #1279 Convert ext method signature to handler
  • #1270 Apply encoding to Response.Payload operations consistently
  • #1272 Redo reply.close()
  • #1277 Emit 'internalError' for every 500, not just the one sent back
  • #1276 Retain headers in 304 response
  • #1275 Boom 2.0
  • #1274 Fixed code example in README to comply with 2.0.x
  • #1238 Special handling for '*' Vary response header
  • #1059 Allow route prerequisites to takeover() and preempt handler
  • #1222 Proxy passthrough does not allow for cookie domain modification
  • #1247 Clean up postResponse in proxy config
  • #1253 in directory, fix the listing of subdirs that reside in a subdirs that have spaces
  • #1268 Expose more response properties
  • #1267 Add 'app' and 'plugins' to response object
  • #1266 Remove 'response.variety' support
  • #1262 Remove response.getTtl()
  • #1261 Rename response.uri() to response.location()
  • #1258 Default Buffer responses to application/octet-stream
  • #1256 Remove access to internal response types
  • #1233 Clarify server app config usage
  • #1246 Allow zero key helpers with cache
  • #1249 Cleanup use of request._route.cache and request.route.cache
  • #1248 Review proxy upstream ttl passing
  • #1254 File response leaks fd if gzipped stream used instead and the other way.
  • #1251 Replace File from response type to reply.file() helper
  • #1252 Protect response payload stream wrapper from multiple replays
  • #1242 Remove server-side route caching
  • #1231 request.log() no longer adds 'error' tag if data is Error
  • #1234 Move client out to separate module
  • #1229 Add req.on('error'/'close') to request object processing
  • #1189 Attaching a websocket to a server in a pack
  • #1230 Remove plugin permissions
  • #1219 pack.require doc is somewhat incorrect
  • #1223 views.helpersPath requires .js files
  • #1228 Client request timeout and downstream listener not set when payload is a stream
  • #1183 Remove use of removeAllListeners()
  • #1207 Accessing the response stream.
  • #1216 Remove support for notFound handler string
  • #1215 Content-type charset attribute not added to streams
  • #1214 Allow specifying a list of method in route config
  • #1208 Route error message does not include information about which route failed
  • #1209 Duplicate parameter error is missing route information
  • #1211 Move all response payload processing to _prepare
  • #1205 Honor options.bind in ext
  • #1204 Rename handler/ext context to bind
  • #1202 Move handler and ext context to use this
  • #1200 Removing confidence, alce from composer and CLI
  • #1194 Remove support for decorating request with reply()
  • #1191 Cannot use multiple parallel pre methods in handler mode
  • #1195 Move request.context to request.reply.context
  • #1192 Change pre type to always use handler mode
  • #1190 Move Obj stringify step to _prepare
  • #1187 Change pre to use nested arrays instead of mode (serial, parallel)
  • #1049 Validate pre config schema
  • #1155 404 not being caught by onPreResponse function
  • #1182 Error transformation does not work when serving static files
  • #1185 be more careful about options in _provisionCache
  • #1176 Unify stream and buffer responses
  • #1175 Allow disabling CORS for individual route
  • #1174 Adjust CORS origin header options
  • #1171 Only emit vary origin for CORS wildcard mode
  • #1169 Remove load samples and add protection against interval sample falling behind
  • #1165 Switch benchmarks to use Hoek.Bench instead of Date.now()
  • #1163 CORS response doesn't set Vary header in all cases
  • #1157 route cache config does not allow specifying name
  • #1156 Honor upstream ttl when proxying
  • #1152 Load sampling and limits
  • #1150 Support multiple cache instances
  • #1148 Return 401 when allowEmptyUsername is false and username missing
  • #1147 Add request.reply.proxy()
  • #1146 Expose proxy functionality as a utility
  • #1070 TypeError when validate.* is set to false
  • #1102 How to exclude views from layout
  • #1140 Not able to login after attempting without user name
  • #1144 Support pre-compressed files
  • #1142 Fix ext function plugin env binding
  • #1137 generateView at 'onRequest' extension point
  • #1135 Formatting problem in Reference.md
  • #1136 Handlebars 1.1.x uses prototype for registerPartials which breaks its use in Hapi
  • #1129 support for iisnode and windows named pipes
  • #1123 add ability to listen on unix domain socket
  • #1133 Joi 2.0
  • #1124 Use ALCE for manifest loading.
  • #1103 allow arrays of scopes on routes
  • #1116 CORS origin bug fixes and enhancements
  • #1091 Only set access-control-allow-origin if the origin header value matches (or '*' is allowed)
  • #1113 updates plugin.views Reference.md entry to a clear and working example
  • #1094 404 not being caught by onPreResponse function
  • #1112 Too strict cookie parsing?
  • #1114 What is the best way to access request headers?
  • #1098 Add criteria support to CLI
  • #1092 Empty path parameter should have empty string value, not undefined
  • #1028 Expose requests content-type/mime & accept
  • #1024 Hapi.Composer.compose() requires "plugins" but won't warn if it's not there
  • #995 Block response.created() from methods other than POST and PUT
  • #1090 Support partial path segment parameter
  • #1061 POST requests with Content-Type=text/plain
  • #1004 validation fails when using Hapi.types.Object() at the root
  • #1088 Plugin dependencies
  • #1085 Validation options
  • #1083 Normalize response headers to lowercase field name
  • #1076 Test for both formats of Content-Encoding header
  • #1081 Migrate to Iron 1.0
  • #1074 Route-specific validation error handler
  • #1077 Add compileMode to schema.js
  • #1067 Bug fix for loading ext auth scheme into multiple servers
  • #1064 Helper cache drop interface
  • #1057 '/{p*}' is sorted ahead of '/{a}/b/{p*}'
  • #1056 Allow directory paths to include multiple params and use last for resource selection
  • #1058 Closes #1056 and #1057
  • #1054 Enhance prerequisites configuration options
  • #1030 Problems with routes
  • #1044 Reverting changes to generic/stream responses
  • #1037 Stream responses emit response event
  • #1033 Node 0.11 bug fixes
  • #1034 Upping shot dep version
  • #1032 Updating boom version to 1.0.0
  • #1019 Depend on Joi v1.1.x
  • #1029 Using latest hoek and moved to AUTHORS file
  • #1017 Overrides Cache-Control in proxy even when no local policy is defined
  • #1016 Adding helper with cache to pack with multiple server crash
  • #1014 plugin.helper should be selectable
  • #1005 Improve server constructor argument validation error reporting
  • #1001 Pack event handlers now support correct args
  • #998 Adding dtrace probes
  • #993 Plugin context
  • #996 Remove Directory and View from cacheable responses
  • #994 Server level cache
  • #959 Adding foundation for dtrace probe support
  • #980 Add interface to register local require function with plugin api
  • #979 Confusing error message when configuring auth using default strategy when none configured
  • #978 Change plugin ext permission default to true
  • #976 plugin.require support
  • #974 Pack start/stop events
  • #971 Use instanceof Error + isBoom to replace instanceof Boom
  • #968 Changes to plugin.hapi and the cookie scheme
  • #970 Removing complexity-report
  • #967 Authentication defaultMode allowed invalid values
  • #966 Expose the hapi module on the request object
  • #963 Question: should pack.register's register pack parameter should be renamed to plugin?
  • #965 Change parameter name pack to plugin to resolve #963
  • #962 Server config schema does not allow single string labels
  • #960 Updates to case sensitive routing
  • #958 Path params are no longer lowercased in router
  • #955 Update Reference.md plugin.lenght to plugin.length
  • #951 use .isBoom instead of instanceof Boom
  • #949 Error when hawk payload validation is required but the request contains no hash
  • #948 reference multiparty instead of formidable
  • #946 Updating example to be clearer
  • #944 Found some small typos/formatting issues in Reference.md
  • #943 Updating version
  • #942 Layouts work correctly in jade
  • #941 No longer destroying request socket
  • #938 Fixed the code example to get Hapi's version
  • #936 Allow omitting trailing slash when last segment is an optional parameter
  • #933 Updating version to 1.8.1
  • #928 Removing listeners on domain when exiting
  • #927 Removing global variable
  • #925 Fixing edge case where bad path can cause issues with url.parse
  • #924 Issue/922
  • #922 Handling directory routes that end both with and without a trailing slash
  • #923 remove connection event listeners when server stops
  • #920 Upping version to 1.7.3
  • #919 Client now handles downstreamRes close event
  • #915 custom cache engine support
  • #912 Fixing aborted causing duplicate res.ends issue with incoming request
  • #911 Allow client.request calls without a callback (ignoring response)
  • #910 Client does not destroy request on redirection error
  • #907 Adding test
  • #906 Proxy requests are closed when server response already sent
  • #904 Issue/902
  • #903 Fixing issue where timeout occurs after socket close in client
  • #901 Performance tweaks
  • #897 Hapi node_modules_path now supports symlinks
  • #891 Exposing rejectUnauthorized property on proxy
  • #889 Plugin view engine required from hapi's module path, not plugin
  • #887 Default auth scheme only works when scheme is added with 'default' name
  • #868 Potential leak when aborting reading a payload if max size reached
  • #872 Test for invalid incoming path without leading '/'
  • #869 Request._replyInterface called twice but does not share wasProcessed state
  • #870 Response treats objects as errors based on too trivial keys
  • #885 Fix plugin.path
  • #883 Cleanup pack requirePath
  • #871 * allowed in path but used as special character in route fingerprint
  • #880 Performance and hawk options
  • #879 Support all Hawk and Bewit options
  • #878 Adding Client request socket timeout
  • #863 Absolute paths now work correctly with hapi command
  • #860 Adding hapi bin test and fixing issue with no plugins
  • #862 Minor performance tweaks
  • #859 Fixing test
  • #858 Added missing done() call in test
  • #856 Remove _log() wrapper
  • #846 Request: View configuration to autoload helepers
  • #854 Move to use multiparty
  • #853 New internal proxy handler
  • #850 Increasing allowed sockets to 10 for client
  • #848 Template settings override fix
  • #845 Generic response fails to account for all possible res events
  • #844 Proxy to outside site fails due to request's old stream api and node 0.10 wrap()
  • #843 Allow setting custom headers via proxy mapUri
  • #839 Cleanup listeners
  • #838 Issue/808
  • #837 Issue/812
  • #834 Pack throws an AssertionError if the requirePath is not absolute
  • #835 Pack: Automatically resolve the requirePath if provided
  • #832 Allow route.payload config to be an object with mode
  • #833 closes #832
  • #830 Add payload 'try' parsing mode
  • #831 Closes #830
  • #828 Add HttpOnly support to cookie auth
  • #827 request debug printout format and condition
  • #820 Clarified the format of payload in server.inject in the Reference doc
  • #824 Issue/821
  • #823 Issue/822
  • #822 JSONP doesn't seem to be working
  • #817 Payload bugfix for PATCH method
  • #818 Tiny composer documentation fix
  • #814 Fixed jade compile issues and updated tests to verify fix.
  • #804 Remove restriction on params in path for static file handler
  • #813 text/* content-type always echo back the received content
  • #796 Allow unencoded double quote and backslash in the cookie value
  • #793 Use new assert with passed parameters instead of concat string
  • #791 Test fails: Auth Hawk includes authorization header in response when the response is a stream
  • #789 Streams not properly being closed for static files when browser gets cache hit
  • #788 Need more detailed documentation for "next" callback for event handlers
  • #787 Expose Plugin File Path
  • #767 Verify every example works with 1.0
  • #780 Relative path redirection should have vhost support
  • #768 Directory handler example
  • #784 Change server helper options.generateKey to receive the same arguments as the helper method
  • #782 Payload parsing should be based on request method, not path method
  • #781 Do not set request.state[name] when value is invalid regardless of failAction
  • #779 Add server config location for Location header prefix
  • #776 Streamline request.reply()
  • #771 Multipart upload issue
  • #765 Refactor views manager configuration
  • #752 Shared config for plugins
  • #751 Cleanup Unmonitored error
  • #759 Feature/misc
  • #758 cookie authentication example fails with 1.0.0
  • #755 Views now render without child path
  • #745 Basic Authentication callback with no username/password returns 500
  • #742 Remove built-in Oz support
  • #741 Remove Raw response type
  • #739 Adding server.stop support for destroying connections after a timeout
  • #738 Support for Access-Control-Expose-Headers in the CORS options
  • #736 Node v0.10
  • #656 Support for virtual hosts
  • #727 Fix hawk response header edge cases
  • #726 Misc features
  • #725 Debug enhancements
  • #714 Adding remote address and referrer information to request.info
  • #724 Route validation is now using payload instead of schema
  • #716 Errors when preparing a response now emit internalError correctly
  • #715 Auth api refactor
  • #700 Adding security tests and fixing security bugs
  • #686 Pack auth api
  • #683 Pack and cache API refactor
  • #723 Global autoValue cookie overwrites other cookies
  • #722 Proxy shares cookies across different sessions
  • #717 Auto cookie value
  • #682 Bypass node http bug in writeHead
  • #678 Updating tutorials and adding a plugins list doc
  • #674 Adding missing branch tests
  • #677 Fix ext() with function array bug
  • #670 internalError event
  • #669 Optimize prerequisites and protect
  • #663 Full plugin deps
  • #662 Plugin deps
  • #659 handler interface api styles
  • #653 Add request defensive protection
  • #642 Adding hawk response auth header
  • #649 Migrate to lab (from mocha)
  • #638 Event tags
  • #632 Adding example of cookie failAction
  • #635 Cleanup
  • #634 Domains
  • #633 pack interface cleanup
  • #630 shot 0.1.0, Buffer response type, encoding
  • #619 hawk 0.10, payload cleanup, text/* parse support
  • #617 Upgrade to Hawk 0.9.0
  • #615 Using path.join where possible
  • #616 Cookie Max-Age is in seconds, not msec
  • #613 Fix proxy mapUri query bug, allow pack.api to specify key
  • #612 Remove monitor
  • #611 Adding vhost tests
  • #609 Virtual hosts support
  • #610 Cleaning up test and stream response
  • #607 Adding basic crumb CSRF information to reference guide
  • #602 Relative paths
  • #595 Fixing gzip stream test to use simple stream
  • #596 Adding request payload section
  • #594 Adding deflate support to stream response
  • #593 Adding graceful shutdown from QUIT signal event
  • #592 refactor router
  • #591 Fixing test to be isolated
  • #589 Sending a gzipped proxy response now works correctly
  • #585 Server.stop now stops gracefully
  • #587 Composer config options
  • #577 Beef up file etag tests
  • #563 Using memory instead of redis for test
  • #561 Composer
  • #553 Pack server event and socket timeout override
  • #543 Fix scoping bug when using multiple helper prerequisites
  • #438 Adding support for payload authentication validation
  • #537 Update docs/Reference.md
  • #531 JSONP
  • #523 Set CORS origin header to incoming request origin if allowed
  • #522 rename helmet to tv
  • #512 Direct use of Boom (0.3.0)
  • #496 Distributable cache for files
  • #500 Cookie parsing fails if encoding set to 'none'
  • #501 Response refactor, bug fixes
  • #498 Adding code coverage support using blanket
  • #494 fix typo from issue/491
  • #493 Fixing test that would fail periodically
  • #482 Parse cookies before authentication
  • #481 Adding log tag filtering information to readme
  • #480 Cleaning up this. use
  • #478 Cleanup ext options and error handling
  • #475 Simplify path regex
  • #474 0.13.2
  • #466 Directory listing at top level folders now link correctly
  • #472 Fix matching of wildcard path param with trailing /
  • #463 Typo: req.session.used -> req.session.user
  • #435 Prerequisite helper shortcut interface
  • #434 Bound handler to request, bump to 0.12.0
  • #427 CORS cleanup and Monitor defaults
  • #425 Route sorting rewrite
  • #373 Add support for private cache-control flag
  • #420 Goodies
  • #416 Auth cleanup
  • #407 Adding support for basic auth password hashing
  • #406 Update auth dependencies
  • #402 Use fixed time password comparison
  • #329 Add redirection response
  • #314 Multiple auth schemes
  • #322 Docs handler refactor
  • #317 Test helpers, mongo auth test
  • #312 Misc cleanup
  • #301 Merge, payload tests
  • #305 Hidden files can now optionally be served
  • #299 Fix issue with case-insensitive route conflic
  • #298 Prevent use of encoded non-reserved characters in path
  • #297 Refactor request path normalization
  • #294 Refactor responses, auth, payload
  • #277 Changed matching rule of {param*}, Oz tests
  • #275 Prevent basic routes collision
  • #268 Tests, extension auth schemes
  • #258 Adding support for etag and last-modified headers
  • #255 Adding support for gzip responses
  • #262 Support /path/{param*} syntax
  • #221 Adding parsing of multipart form-data content-type
  • #212 Adding proxy tests and doing a little refactoring
  • #211 Cache tests, Fix response processing header order
  • #210 0.8.2
  • #209 Tests
  • #207 Error refactor, custom error support (passThrough)
  • #206 Fixing issue with error responses being cached + test
  • #183 Cache segment validation
  • #164 Server helpers, initial response validation, Mongo support
  • #102 v0.6.0 merge
  • #101 modified new validation fns to use Utils.assert
  • #100 New Query Validation Fns Added
  • #99 Simplified request log interface
  • #63 Added in SSL cert passphrase to https server creation from settings.
  • #96 Small utils
  • #94 debug interface, log interface
  • #93 fix error on subsequent url accesses for queryval
  • #92 Fix example
  • #91 QueryValidation fixes, add default behavior for unspecified params, added small tests