Skip to content

Latest commit

 

History

History
3605 lines (1964 loc) · 173 KB

CHANGELOG.md

File metadata and controls

3605 lines (1964 loc) · 173 KB

Changelog

All notable changes to this project will be documented in this file. Dates are displayed in UTC.

Generated by auto-changelog.

  • Bump rollup from 4.23.0 to 4.24.0 #147
  • Bump rollup from 4.22.5 to 4.23.0 #146
  • Bump rollup from 4.22.4 to 4.22.5 #145
  • Bump eslint from 9.11.0 to 9.11.1 #144
  • Bump rollup from 4.22.2 to 4.22.4 #143
  • Bump rollup from 4.22.0 to 4.22.2 #142
  • Bump eslint from 9.10.0 to 9.11.0 #141
  • Bump nyc from 17.0.0 to 17.1.0 #140
  • Bump rollup from 4.21.3 to 4.22.0 #139
  • Bump concurrently from 9.0.0 to 9.0.1 #137
  • Bump rollup from 4.21.2 to 4.21.3 #136
  • Bump husky from 9.1.5 to 9.1.6 #135
  • Bump concurrently from 8.2.2 to 9.0.0 #134
  • Bump eslint from 9.9.1 to 9.10.0 #133
  • Bump typescript from 5.5.4 to 5.6.2 #132
  • Bump tiny-jsonl from 2.0.3 to 2.0.4 #131
  • Bump tiny-httptest from 4.0.11 to 4.0.13 #130
  • Updating dependencies d884c90

4 September 2024

4 September 2024

  • Bump fast-xml-parser from 4.4.1 to 4.5.0 #129
  • Updating jsonl module c37605e
  • Generated CHANGELOG.md 4af2321

2 September 2024

  • Updating woodland dependency ec0007e

2 September 2024

  • Early exits #128
  • Creating 'exit[]' config array for skipping middleware e5a5b8d
  • Generated CHANGELOG.md db89f71
  • Version bump to release 656757a

2 September 2024

  • Fixing absolute url linking in 'hypermedia()' 90df9ce
  • Generated CHANGELOG.md 025e518
  • Adding missing type files 23a8fa1

2 September 2024

31 August 2024

  • Adding Prometheus exporter #127
  • Bump rollup from 4.21.1 to 4.21.2 #126
  • Adding 'express-prom-bundle' middleware, & creating 'prometheus' to config (WIP) 9c08f5c
  • Fleshing out prometheus integration d080a3c
  • Initiat code to support prometheus (WIP) 7350be8

29 August 2024

29 August 2024

29 August 2024

  • Removing 'keymaster' middleware 08e828f
  • Generated CHANGELOG.md 982c56d

29 August 2024

29 August 2024

  • Rewrite #125
  • Updating html template files & dependendies (WIP) 4a7a8e1
  • Updating dependencies, devDependencies, & scripts in package.json 85a82a4
  • Created more ./src/utils files from ./lib, deleting ./lib (WIP) 7a7f4b9

15 October 2021

  • Late night mistake (forgot about a feature) 50d41df
  • Updating CHANGELOG.md 6eb6c19

15 October 2021

  • Changing session.cookie.secure to "auto" in Tenso class, changing order of middleware for cookies & sessions, updating dependencies 5aa223a
  • Updating http test framework, adding CORS test 9f53973
  • This shouldn't factor into csrf requests for CORS 725cde2

7 October 2021

  • Adding missing call to headers() from onsend handler, updating CHANGELOG.md, version bump to release 8881ce6

7 October 2021

  • Updating CHANGELOG.md d37972f
  • Decorating req.private, updating README.md dcb5c51
  • Updating lock file e4e392e

7 October 2021

  • Setting req.csrf boolean from connect handler which will specify the cache-control header as private 5a98dd7
  • Decorating req.csrf for setting cache-control to private to avoid token reuse bb07790

6 October 2021

  • Updating CHANGELOG.md 0fbbd7d
  • Version bump 'cause fuck npmjs.com cache bugs 5cb62ce

6 October 2021

  • Fixing connect event handler such that csrf is handled correctly for CORS requests, updating dependencies & dev dependencies, version bump to release 1a2162a
  • Updating CHANGELOG.md f7bc677
  • Updating CHANGELOG.md 325c89a

8 September 2021

  • Updating CHANGELOG.md, version bump to release 642618a
  • Returning required function (sigh) 15b2f5b

28 July 2021

  • Updating csv module for nested JSON fields da90aa3

8 February 2021

  • updating renderers to explicity pass the ?lang parameter ac4ba41

6 January 2021

  • Updating Changelog ef7313e
  • Fixing luscaCsrf() callback, creating hasRead() shared function, erasing deprecated jsonWrap() 83cbc0f
  • Fixing benchmark.js for non-Windows environments 3934725

4 January 2021

  • Updating CHANGELOG.md 4d00c88
  • Fixing copy/pasta error on README.md 1df6a6a

4 January 2021

4 January 2021

  • Creating parser() & updating README.md 80868cf
  • Updating CHANGELOG.md 9bdfb94

4 January 2021

  • Updating onsend() override such that it sets res.statusCode() prior to executing serializer fdb5c25
  • Updating CHANGELOG.md 453af4b

4 January 2021

  • Fixing router.onsend() override such that 204/304 responses will not have a response body set from the renderers 37d4452
  • Updating CHANGELOG.md 73e429e

4 January 2021

3 January 2021

  • Moving template.html into www, fixing SCSS/SSC such that the view is in a proper flexbox 2ee0fd0
  • Missed file in last commit 320b89d
  • Updating CHANGELOG.md, updating README.md 302279e

3 January 2021

  • Adding benchmarks & code coverage scripts, updating README.md 4749bcb
  • Updating CHANGELOG.md, removing deprecated ssl/ folder f0e6eff
  • Updating ignore files & removing erroneous files d717943

3 January 2021

3 January 2021

  • Reduced responsibilities #123
  • Updating bulma assets af2fc11
  • Updating Base methods, removing passport middleware, WIP fba307c
  • Initial changes to support new woodland router (no http2 support) - WIP b8c90ce

8 December 2020

  • Version bump to release, updating CHANGELOG.md 6bd3118
  • Reducing utility.sort() & fixing a reference error 7d42d3a

8 December 2020

  • Changing how utility.sort() handles search parameters, fixing utility.sort() such that order_by=desc applies to both cases, updating dependencies 3cfaffc

28 September 2020

  • Updating CHANGELOG.md eadfaa1
  • Rewriting + to %20 for coercion of form encoded request body 833b36a

1 May 2020

  • Bump acorn from 7.1.0 to 7.1.1 #118
  • Fixing link header regression, updating dependencies 3233d4b
  • Updating CHANGELOG.md 70718c7

13 January 2020

  • Updating CHANGELOG.md 2df3fcf
  • Fixing potential reference error in error() which is passed to send() 3bd1398

7 January 2020

2 January 2020

1 January 2020

  • Updating dependencies & year in LICENSE & README ac471aa
  • Removing each() & changing calls to for...of 771d8d5
  • Removing each() from /index.js & /lib/dtrace.js 4bfbf6b

28 November 2019

  • Updating changelog a53c280
  • Updating EventSource dependency for a cache-control header fix for PWAs fa0ca6f

28 November 2019

17 November 2019

  • Updating dependencies to get newer version of tiny-fifo which reverted usage of a Map for the cache (too slow) b1be777

15 November 2019

  • Fixing a flawed default vary header, updating dev dependencies 063b4ba
  • Updating CHANGELOG.md d127a6c

12 November 2019

  • Updating changelog & package.json description 2aa15a1
  • Adding .github to .npmignore 02a2ec8

12 November 2019

  • Updating CHANGELOG.md 499db14
  • Forgot to set use strict in mime() 40d6ab2

11 November 2019

  • Updating CHANGELOG.md bd759a3
  • Fixing logical OR output of mime() 89703be

11 November 2019

  • Using auto-changelog to generate CHANGELOG 3b8e560
  • Redefining behavior of guard() middleware to respond with a 401 when unauthenticated, swapping mimetype for mime-db as source of media types, creating mime() to access media types by filename (path) 96f9d9b
  • Updating CHANGELOG fd349c7

5 November 2019

26 October 2019

  • thanks webstorm... #117
  • Clean up #116
  • Setting headers instead of passing them - part deux 9290e7e
  • Cleaning up renderers & other functions (WIP) 734d866
  • Setting headers instead of passing them 5682a39

24 October 2019

  • Changing how Base is defined f438e52
  • Version bump to release change f1ce841

24 October 2019

24 October 2019

  • Removing an unneeded conditional due to visible > 0 condition in the allowed() method of the router 2c359e1

24 October 2019

  • Updating woodland router b65d45b
  • Reducing keymaster() middleware such that routes which do not terminate will 500 2605ba9
  • Updating CHANGELOG 309fdbc

23 October 2019

  • Updating woodland router, refactoring keymaster() to utilize req.last() ce00d7d
  • Updating CHANGELOG such that it includes merges 5343949
  • Updating woodland router, fixing 206 tests, returning 204 response for OPTIONS requests routing through keymaster() 78828a3

22 October 2019

  • Authentication pipeline refactor #115
  • Removing some closures ed8001d
  • Fixing a middleware order of ops bug that was exposed by changing how the URIs were tested to align with the router update ef47050
  • Updating router, exposing issues with current auth pipeline 2f99d0a

19 October 2019

  • Create FUNDING.yml #114
  • Creating changelog npm script & CHANGELOG output f9e4080
  • Creating auth.delay: 0 config value to afford random timing of authorization validation on protected routes fc495a4

2 October 2019

  • Fixing a regex bug in keymaster() middleware, updating dependencies, removing 'watch' grunt module & task d2d51e9

19 September 2019

  • Fixing a regression in hypermedia() regarding pagination - returning original or for NaN outputs of Number() bb2d327

19 September 2019

  • Fixing a bug in hypermedia() regarding pagination 8bab09c

19 September 2019

  • Fixing a bug in hypermedia() regarding pagination e9a7e33

5 September 2019

  • Updating router to get a faux CORS regression 3b586bb

5 September 2019

  • Removing an unneeded try/catch in error() & removing bind of it (irrelevant scope) 1eba366
  • Adjusting assignments in send() 304f584
  • Fixing regression of how an unserialized null is handled within send() 84b9f1b

4 September 2019

  • Fixing handling of redirects, updating test framework 1f8c0c0

3 September 2019

  • Multimap #113
  • Bump eslint-utils from 1.4.0 to 1.4.2 #112
  • Adding new lock file 7b5bc6b
  • Updating dependencies, initial refactoring to new woodland 3580d96
  • Refactoring connect() to create a facade of res.send() such that the code is clearer 451593e

10 August 2019

  • Updating woodland router to fix performance regression ca53c92

10 August 2019

10 August 2019

  • Upgrading woodland router, disabling failing test (why is it timing out?) 3b6a372
  • Upgrading woodland router & re-enabling test that was failing due to http1 piping, exposes flaw in local auth & etag handling d609b6f
  • Updating woodland router da692d1

7 August 2019

  • Bump lodash from 4.17.11 to 4.17.14 #111
  • Updating dependencies 1de5ea2

8 June 2019

  • Fixing attempting to cast undefined & null within hypermedia.marshal(), fixes #110 #110

4 June 2019

  • Creating corsExpose string in config for appending to end of access-control-expose-headers, adding CSRF token name to access-control-expose-headers ce3b14b

27 May 2019

  • Fixing a regression for node.js 8 & 9, updating travis-ci.org configuration ac2efbb

27 May 2019

  • Fixing jsonWrap(), fixing hypdermedia() handling of query string parameters for generating links, fixes #109 #109

24 April 2019

  • Changing final to be an async function for real world usage eaac296

24 April 2019

  • Fixing a regression in middleware via the wrong method on a string variable; creating this.final(req, res, body) which can be used to modify the response body output of this.hypermedia() 9f89ed3

22 April 2019

  • Removing unneeded variables 2ef238f
  • Removing unneeded variables 556fb01

20 April 2019

  • Fixing how a string comparison is made within hypermedia() 133fe1d

20 April 2019

20 April 2019

  • Fixing auth regex generated for paths bd0a25b
  • Fixing how config.auth.protect regex get generated such that paths must be an explicit match or a child of a protected route (sub dir); can impact existing configurations by changing/removing the need for /unprotect in some cases 5e973b7

7 March 2019

  • Upgrading router to get list of approved origins for CORS requests & adding origins = ["*"] configuration option, updating README 9852330

28 February 2019

28 February 2019

  • Fixing DTrace probe instantiation such that it happens within start() 2eddc3c

28 February 2019

  • Version bump to release fix ea9afb3
  • Fixing bearer token auth lookup such that changes in time are reflected here d6c2568

27 February 2019

  • Fixing retry-after header decoration 80bac0c

26 February 2019

  • Adding DTrace probes, updating router 9b4b6c6
  • Including dtrace.sh for local dev, swapping forEach() with each() 5009846
  • Forgot to add the Map b3782c7

19 February 2019

  • Upgrading router to get dtrace probes; probably going to add probes in tenso for end to end insight f5b0705

17 February 2019

17 February 2019

  • Decorating a retry-after header for clients 26c39a5
  • Version bump d54ec04

17 February 2019

  • Changing always middleware to require to be a function to register on start() a15f004

17 February 2019

  • Refactoring to run custom always middleware before authorization middleware runs, as an early exit 484a859

29 January 2019

  • Changing what's imported from utility 8fcd718
  • Fixing payload middleware by passing through multipart requests 190e0d7

28 January 2019

  • Updating render() to assign accepts such that it is equal to serializer() 1fb4678

28 January 2019

  • Fixing a memoization error if the request is a HEAD 15e1da9

28 January 2019

  • Changing how URIs are handled within hypermedia(); can be refactored to be better, fixes #108 #108

27 January 2019

  • Refactoring utility.serialize() such that the forth parameter can override explicit client format requests 942cc97

27 January 2019

  • Refactoring utility.serialize() to accept a forth parameter to help determine the appropriate media type response format f5cf141
  • Updating moment 0f4386c

26 January 2019

  • Upgrading etag middleware & router 10c0c92
  • Removing a debugging attribute 5d9abcb
  • Removing a debugging attribute 7e231b1

22 January 2019

  • Fixing pagination regression with utility.hypermedia() (oops) 9f93a6c

21 January 2019

  • Removing regex.scheme & replacing with scheme(), removing each() from Base file, creating req.hypermedia [true] & refactoring hypermedia() to conditionally process the response body such that a generic route can be ignored for Array indices 7d8b19a

14 January 2019

  • Updating ETag middleware & router c8c1a24

14 January 2019

14 January 2019

13 January 2019

13 January 2019

  • Exposing renderers & serializers on instances, updating README fabcbc7

13 January 2019

  • Undoing change to id detection due to lack of major bump cce5bea

13 January 2019

  • Removing regex.id which changes hypermedia ID linking (not considering major change because DB models default to lower case) d67dfbe

13 January 2019

  • Minimizing ops in isEmpty() ee47a57

13 January 2019

13 January 2019

  • Updating etag middleware & router b5be4fc

13 January 2019

  • Updating etag middleware & router, removing unneeded ops from conditional statements 82698dc

13 January 2019

  • Updating etag middleware & router 4ed5f8f

12 January 2019

11 January 2019

  • Fixing a regression in the factory, updating copyright b945dbb

8 January 2019

  • Replacing a global regex replace with an Array.reduce() c841e1c

8 January 2019

6 January 2019

  • Removing some RegExp & creating shared functions, updating router to get a fix affecting reference errors within the error code path for 500s, fixes #99 #99

4 January 2019

4 January 2019

  • Fixing erroneous usage of fs.lstat() b02181b

4 January 2019

4 January 2019

4 January 2019

3 January 2019

  • Changing payload middleware to deal with aggressive streams 744350f

3 January 2019

3 January 2019

3 January 2019

  • Returning config.index[], updating tests to verify redirect & HTML response from /sample, fixing sending files via HTTP2, exposing a flaw in HTTP2 code path, fixes #107 #107
  • Fixing new HTTP2 tests 776d366
  • Updating npm ignore file c7ce3e8
  • Updating npm ignore file 37aeb2b

30 December 2018

19 December 2018

  • Updating etag middleware & router 7e13b00

19 December 2018

  • Fixing assignment of config.root within factory 8c321aa

18 December 2018

  • Updating EventSource module 2acb6bb

17 December 2018

  • Removing hard coded path from file() middleware, fixes #106 #106

17 December 2018

  • Removing external URIs from links due to header value size issues when dealing with large collections which link to many URIs; sample from work project had a 46 KB Link header 28d0017
  • Undoing recent change to tests bed521f

17 December 2018

  • Formatting tests e9e157f
  • Upgrading EventSource module 39e08e5
  • Decoding order_by query string value before passing to keysort() 40b2134

16 December 2018

  • Removing permission check on URIs with schemes due to implied external nature & updating tests, fixes #105 #105

15 December 2018

  • Updating EventSource module 2fe65e0

13 December 2018

12 December 2018

  • Updating etag middleware & router 2e552e8

12 December 2018

  • Updating etag middleware & router 4e13276

12 December 2018

  • Updating etag middleware & router 318bbf8

11 December 2018

  • Memoizing route within keymaster() f563f16
  • Changing keymaster() to not call allowed() and use req.allow instead 0476c9b
  • Removing the call() within keymaster() 07fcf8b

9 December 2018

  • Updating ETag middleware & router, updating README edad27a

8 December 2018

  • Updating ETag middleware & router a5994c8

7 December 2018

  • Updating ETag middleware & router 06cf4af

5 December 2018

  • Updating ETag middleware & router 02ba8f9

5 December 2018

  • Updating ETag middleware & router 6485812

5 December 2018

  • Updating change to hypermedia() such that URIs are consistent b5a541c

5 December 2018

  • Updating hypermedia() to replace spaces with %20 on link URIs 9e67d06

5 December 2018

  • Updating ETag middleware & router 3378401

5 December 2018

  • Updating ETag middleware & router 019e98a

5 December 2018

  • Updating ETag middleware & router 0e42958

5 December 2018

  • Updating ETag middleware & router cae4ab8

5 December 2018

5 December 2018

  • Minor tweaks to error(), updating lock file c5d68d5

4 December 2018

  • Putting a try/catch around res.send() within error() to handle a GC'd req 4295c38
  • Changing connect() such that it doesn't decorate res.send(), removing the bind on error() for the router method 379f081

30 November 2018

  • Updating router & etag middleware ae34bf2

28 November 2018

  • Updating function signatures 456310f

28 November 2018

  • Refactoring bypass() middleware to fix a CORS regression for bypassing auth middleware 5826cdb

28 November 2018

  • Updating EventSource dependency dc01222

28 November 2018

  • Updating EventSource depedency 0696509

27 November 2018

  • Updating router & etag middlware bc925e2

26 November 2018

  • Updating router & eta middlware 675770b

24 November 2018

  • Updating router & etag middleware 479cf75

20 November 2018

  • Updating router & etag middleware 369754d

20 November 2018

  • Updating router & etag middleware 68530fe

20 November 2018

  • Updating router & etag middleware 26babfc

20 November 2018

  • Creating eventsource() 22a94bf
  • Separating eventsource() into separate module 43ce800
  • Changing the signature of EventSource 37143d0

12 November 2018

7 November 2018

  • Removing maxAge value specified on cookies (erroneous approach) 9277946

7 November 2018

  • Fixing express-session config (looks like I was distracted; half done) bc71b6c

1 November 2018

  • Fixing stop() by removing a deprecated statement e05c684

29 October 2018

  • Making etag() a little more robust (aka slow) c7973d1

28 October 2018

  • Upgrading etag middleware df02856

23 October 2018

23 October 2018

23 October 2018

  • Dropping uws & coap dependencies, updating README, updating package.json description e8f3825

23 October 2018

  • API flex #104
  • Updating woodland router, initial refactor to support new API 024e21e
  • Updating woodland router, fixing a reference error in guard() middleware 7bf85cd
  • Version typo lol 50e0dde

23 October 2018

23 October 2018

22 October 2018

  • Adding yargs for command line properties, embedded JSON is supported 4ad1d88
  • Version bump to release 5a2aadb

22 October 2018

  • Upgrading woodland router f7d4bd9

16 October 2018

  • Creating config.logging.stackWire for separating logging a stack from transmitting a stack over the wire ec9e0aa

15 October 2018

  • Removing transpiled & minified router 7004e3a
  • Fixing a conditional statement within static(), fixing text/plain renderer 9a30d4b
  • Removing an assignment because it'd be inlined c4cc833

14 October 2018

  • Simplifying statik() middleware 6cc94c5
  • Simplifying the text/html renderer when the template is empty, updating middleware export syntax, updating /uuid headers 0611727

30 August 2018

30 August 2018

  • Changing the default content-type response header to be text/plain to reflect the default string output 9a8743f

30 August 2018

  • Fixing a regression in zuul such that unprotect overrides protect by config e37cf36

29 August 2018

  • Upgrading router dependency b07871a

28 August 2018

  • Upgrading CSV dependency to get a fix 09c4af3

28 August 2018

  • Upgrading woodland router to get a Promise chain fix 0f7b97a

27 August 2018

  • Upgrading csv.js dependency to get a fix for empty arrays within a text/csv response 626c482

27 August 2018

  • Fixing CSV renderer such that it passes an Array or Object to csv.encode() because a string itself cannot be encoded to CSV cf7c6f8

26 August 2018

  • Updating csv dependency to get a fix 1935389

26 August 2018

26 August 2018

  • Fixing a lint error due to diff project rules & IDE bug e5c926b

26 August 2018

26 August 2018

  • Minor tweak of uws version 41d51ed

26 August 2018

  • Downgrading uws to a version that works bc1b0ed
  • Version bump afd57e6

26 August 2018

  • Adding missing default serializers to match with existing renderers & fixing bugs exposed by adding them ceccfde
  • Reducing a comparison d3b88bf
  • Removing an unneeded op within hypermedia() a9e0ae9

19 August 2018

18 August 2018

  • Fixing regex.hypermedia & regex.id f893987
  • 1 lining the new serializer b744027
  • Fixing CSV output by specifying a default serializer e953f83

29 July 2018

  • Updating etag middleware, updating LICENSE & README years d69440c

25 July 2018

  • Removing unneeded regex, making some regex case insensitive a20552f
  • Upgrading http test module 8efdb68

25 July 2018

24 July 2018

  • Backfilling valid OPTIONS requests without an explicit route handler 6d55324
  • Making some conditionals explicit ae8b0e5
  • Removing unneeded string ops in reduce() 9cd10ad

24 July 2018

  • Fixing OPTIONS route handling, removing an unneeded closure, upgrading router 5da89ae

22 July 2018

  • Changing this.rates to be a Map to avoid megamorphic issues 4eca313

18 July 2018

  • Updating woodland router, changing onsend() handler to be async (WIP for compression) 585da59

11 July 2018

  • Moving each() into shared.js to avoid a circular dependency, fixing logging such that the query string is present c1e3334

11 July 2018

  • Overriding res.json() from connect() such that the tenso code path is utilized b091621

11 July 2018

  • Fixing file() middleware such that it throws a useful error 2a9e5b1

11 July 2018

  • Upgrading router to get a fix for res.error() dc39e43

10 July 2018

  • Deployment regression due to auth change 49a7529

10 July 2018

  • Fixing a middleware regression due to refactoring 606707f

10 July 2018

  • Upgrading ETag middleware 3871938

10 July 2018

  • Removing an old bit of logic that was a stop gap for an earlier bug; you can now specify OPTIONS responses for proper API KT over the wire (that's the point of OPTIONS btw...) 98fabf0

9 July 2018

  • Minimizing relying on the router for error termination 41e4486
  • Removing unneeded ops & decoration 44b93f1
  • Minimizing relying on the router for error termination 5ab2122

9 July 2018

  • oops! deployment regression 7ea4473

9 July 2018

  • Rewrite with HTTP2 fully baked #100
  • Changing the shape of Tenso & moving things to utility & removing middleware (WIP), upgrading router 81bee02
  • Rearranging config properties & utilizing where appropriate e8f9ba4
  • WIP / debugging 1326fcc

13 June 2018

7 June 2018

  • Updating router, changing default address to 0.0.0.0 so vm installs are less annoying 39484d2

5 June 2018

4 June 2018

  • Removing more headers from redirect responses, fixing a test 7ec67d9

4 June 2018

  • Deleting cache-control header on redirect responses, removing grunt-nsp module due to audit warnings from npm e97e7dc

25 May 2018

  • Removing an erroneous parameter left behind in the last change a90bd50

24 May 2018

23 May 2018

23 May 2018

23 May 2018

  • Updating ETag middleware & router 3f960dc

18 May 2018

  • Micro optimization in rate limiting ce5860b

16 May 2018

3 May 2018

23 April 2018

4 April 2018

  • Upgrading the router & removing try/catch for automatic error handling within routes 89d398b

28 March 2018

  • Destroying the session on static assets (implied caching) 6912d1b

28 March 2018

  • Removing cookie header on static assets to raise chance of nginx cache ab0f254

27 March 2018

  • Removing an erroneous header stripping 687968b

26 March 2018

  • Version bump to release the fix 24b3ee8
  • Fixing the decorated res.redirect() such that the parameters are in sync with the signature on tenso a669d83

25 March 2018

  • Updating dependencies to get an LRU fix 2631866

24 March 2018

  • Changing default headers such that assumptions are not made, specifying a TTL on Etags a0fd62f

22 March 2018

22 March 2018

  • Updating woodland router, fixes #98 #98
  • Revert "Updating dependencies" 6453e93
  • Updating dependencies 8ddd7b9
  • Revert "Will it blend, i mean break?" 6f9993e

7 March 2018

  • Updating woodland router for a fix to route parameters 2530b56
  • Updating dependencies 3b24625
  • Updating failing http2 auth tests bc175b7

16 January 2018

16 January 2018

16 January 2018

  • Updating router and creating HTTP2 tests (disabled) 60e48c4
  • Updating router, enabling some HTTP2 tests 1c5a617
  • Disabling all HTTP2 tests except 'auth' for debugging eec5e7c

1 January 2018

  • Fixing a typo in the csrf wrapper within utility.auth() b39ee8e

1 January 2018

  • Changing the default serializer to support {data:null, error:null} responses when a valid API request results in a null response ad7e05f

28 December 2017

  • Updating LRU & router, adding cacheTTL configuration option for etag & routes caches, changing assignment of obj.etags.cache.update to rely on typeof x === "function" evaluating as true 28c35e3

23 December 2017

22 December 2017

  • Fixing the output of utility.explode() 0cab749
  • Updating lock file 0a4c941

22 December 2017

20 December 2017

20 December 2017

20 December 2017

16 December 2017

  • Refactoring errHandler() to be in lexical scope with new arity as utility.error() 1231898
  • Reducing arity of utility.error() 6bdc75a

11 December 2017

  • Updating csv & websocket modules d6a6d0a

5 December 2017

  • Fixing passing undefined as arg to respond() 72240d3

4 December 2017

  • Forgot to return from res.send()!! & changing the conditional statement to be a little more correct d8f5b19

4 December 2017

  • Version bump to re-release because npm is being weird 20aa002

4 December 2017

  • Refactoring res.send() to accept body or status first fcf15af

4 December 2017

  • Refactoring hypermedia() to not blow up if rep.links doesn't exist 83a9230

4 December 2017

  • Patching res.json() to hook respond() e79ebc9

4 December 2017

  • Refactoring keymaster() middleware to use the router Map instead of config such that all middleware is accounted for, updating woodland for no good reason 1b2a24c

3 December 2017

  • Updating retsu, tiny-etag, & woodland 53d2f7d

1 December 2017

  • Extending new HTTPMethods class to inherit a clean set of http methods 561a7ae

30 November 2017

  • Upgrading woodland router for res.json() & res.status() for middleware interop d18b1c3

28 November 2017

  • Version bump to release new router 82118d0

28 November 2017

  • Upgrading woodland router to get a fix on res.send(), disabling nsp task in grunt test due to an out dated dep within the chain which I have no control over 1dfb7d1

24 November 2017

  • Manually changing the browsable app 287760d
  • Minor tweak e5bc862
  • Version bump to release fix for browsable interface f05fc2f

24 November 2017

  • Fixing a regression on the HTML renderer for sending a request via the browsable interface ed7eea4

24 November 2017

  • Adding sample http2 server 9236c3d
  • Working out some of the HTTP2 issues (file streams are non-functional atm) 486412d
  • Working out kinks of serving files from disk 3764560

23 November 2017

  • kinda need this lol pt deux, sorting keys in config.json 9851956

23 November 2017

23 November 2017

  • Updating router to get a logging fix for http2 611b26f

23 November 2017

  • Updating router, major version bump for new engine requirement e891b73

23 November 2017

23 November 2017

22 November 2017

  • Removing a conditional statement within bypass() middleware, updating router 257ffef

13 November 2017

  • Updating ETag middleware & router (underlying LRU cache updated) 2acd048

8 November 2017

  • Fixing a deopt due to reassigning with send() on first error which mutates headers, updating dependencies 230e05c
  • Updating travis-ci.org configuration 2a75fcf

6 November 2017

  • Reflect.ownKeys() to Object.keys() because it doesn't need symbols included, updating dependencies 7ecd5ca

2 November 2017

1 November 2017

  • Linting all root javascript files 72d9290
  • Minor change to hypermedia() cfa4b60
  • Updating grunt watch task f58cbbc

31 October 2017

  • Removing local cached references 497f8f0

20 October 2017

18 October 2017

  • Adding forth parameter to JSON serialization such that an Error stack could be echoed to the end user 4220ee5

18 October 2017

12 October 2017

  • Updating router 76cba08
  • Updating router, fixing #94, adding a test (likely should be in tiny-httptest) 95d0b87

8 October 2017

  • Final removal iterate() from utility module 453af6d
  • Removing iterate() from middleware module 9886881
  • Removing iterate() from Tenso class 4167f58

2 October 2017

  • Adding coerce: true to the config, updating dependencies 6720b42
  • Updating dependencies, fixing LICENSE content, updating README 2b9178d

25 September 2017

  • Removing unused utility functions & changing export, swapping let for const where possible, updating dependencies ffa42bc

19 September 2017

  • Fixing a regression in the HTML renderer for 404 responses, fixes #93, adding error tests for all renderers #93

18 September 2017

  • Updating csv.js dependency 429fa87

11 September 2017

  • Replacing custom Array of HTTP methods with http.METHODS in all() method ce4478b
  • Changing an instanceof Array to Array.isArray() 606b888

11 September 2017

  • Version bump & new lock file 4c9a68d
  • Adding a text/plain renderer 9a818b1
  • Removing straggler logical NOT operators d9be23f

6 September 2017

  • Updating router to get new url parsing 90d4c7f

5 September 2017

  • Switching from deprecated new Buffer() to Buffer.from(), fixes #92, changing a res.setHeader() to res.header()for consistent short-hand, removing reference tores._headersviares.getHeaders() [#92`](#92)

5 September 2017

  • Updating woodland router, removing String.raw for literal template strings bc471a8
  • moar changes a365607
  • Removing truthy / falsy statements 7683a40

3 September 2017

  • Hiding headers behind a preference, fixes #85 #85

19 August 2017

  • Updating stream() middleware to pass an Error ddb7ff6

19 August 2017

  • Fixing error passing within static(), fixes #90 #90

18 August 2017

  • Revert "Testing a new slack module for more flexible scopes" 6d33353
  • Version bump for reverts ef0caa8
  • Revert "Removing deprecated property from the configuration file" 1b35756

18 August 2017

  • Testing a new slack module for more flexible scopes edd516a

18 August 2017

  • Exposing skipUserProfile configuration option of Slack passport middleware 43c3d04

18 August 2017

  • Adding auth.slack.scope to configuration for scope grant specification of Slack auth strategy b10cdac

18 August 2017

  • Revert "Fixing auth route handling in keymaster() by decorating routes in config of server, fixes #88, updating router" #88
  • Undo! a0db2d2

18 August 2017

  • Fixing auth route handling in keymaster() by decorating routes in config of server, fixes #89, updating router #89

17 August 2017

  • Exposing middleware.static() as tenso.static() for easy static route definition 59fc659

17 August 2017

  • Fixing an HTML renderer regression due to a change to use a literal template to generate a RegExp, updating test with realistic accept header value 42626a0

17 August 2017

  • Switching to String.raw() template literals c319c7f

17 August 2017

  • Removing unused middleware.noop(), version bump 26d61e5
  • Updating README e686d12

17 August 2017

  • Adding passport-slack strategy #88
  • Initial commit with passport-slack module added, updated config e9c93ff
  • Changing truthy to explicit comparisons 04b2ca6
  • Wiring passport-slack into utility.auth() 520b684

14 August 2017

  • oops, fixing a logging regression e99f27a

14 August 2017

30 July 2017

  • Fixing coap initialization, fixing websocket handling for significantly newer uws library 2c16ab6
  • Updating ETag middleware 5f3ac0d

30 July 2017

  • Updating web socket server bb6c02f

29 July 2017

  • Removing unneeded regex keys, removing truthy statements 9f76f57

28 July 2017

  • Fixing csv downloads by correcting the content-disposition header (a few cases), removing utility.merge() because just routes back to tiny-merge & is now used much, adding more assertions to text/csv tests f32323c
  • Removing an unneeded file 3bee6e9

26 July 2017

29 June 2017

  • Removing a truthy, moving RegExp into regex ed335f4
  • 1 lining a statement 7b665ac
  • Updating README 1032376

17 June 2017

  • Simplifying sanitize() within the renderers d958f4c

16 June 2017

  • oops! should've used sanitize() last commit, one lining c5bd840

15 June 2017

  • Escaping < & > for HTML renderer, fixes #84 #84
  • Adding a package-lock.json file for npm@5 91b1c2f

29 May 2017

  • Creating delay() & random() utility functions to randomly delay authentication, fixes #83 #83
  • Updating auth() signature 488eb24

28 May 2017

  • Changing undefined to void 0, updating server d1d7ed0

28 May 2017

28 May 2017

  • Removing truthy/falsy statements, upgrading server fb08ab4

28 May 2017

  • Upgrading turtle.io server to fix an error in the router 659c9bb

28 May 2017

  • Upgrading turtle.io server 5514091

27 May 2017

  • Upgrading turtle.io, connect-redis, express-session, uws & tiny-httptest 9e94c9a

27 May 2017

  • Updating server d62b0cc
  • Minor optimization of valid() middleware 48c9289

27 May 2017

24 May 2017

24 May 2017

22 May 2017

  • Sanitizing the innerHTML value that will be set from the API response 677d8b1

22 May 2017

  • Fixing JSON transmission from the browsable interface 840cb2f

22 May 2017

22 May 2017

  • Removing requirement of the request body to have a value before submitting ebbbbf0

21 May 2017

  • Fix session #81
  • Configuring session cookie better 0f4fe06
  • Updating Session portion of README d42d7b6
  • Turning off secure feature of cookie since it requires HTTPS for round trips and that's not a fantastic default for load balanced applications 83ea916

19 May 2017

  • Fixing a reference error for non-JSON responses in the browsable interface fce665d

18 May 2017

18 May 2017

18 May 2017

  • Adding a cache-control header with the value of public, max-age=n for static assets served for browsable interface, upgrades server c734f27

18 May 2017

17 May 2017

  • Changing body parser slightly to do form encoding or json parsing, updating regex. json_wrap 46a0ff9
  • Updating CORS test for new server 6df9c74
  • Updating the server 3c6bd95

14 May 2017

14 May 2017

  • Partial implementation of order_by query string parameter which supports SQL ORDER BY syntax (key [asc|desc], ...), partially fixes #78 #78
  • Fixing sorting of primitives, adding tests c0ea846
  • Adding a test for sorting Objects 28cafe2
  • Refactoring sort() to support Arrays of primitives c961af5

13 May 2017

13 May 2017

  • Updating server & yaml module 06481e8

12 April 2017

  • Updating server, coap, session, & yaml dependencies cf37f18

30 March 2017

22 March 2017

  • Updating server & test framework, updating .npmignore 95cb2cc
  • Fixing some declarations, updating dependencies 646a680

21 March 2017

  • Fixing some declarations, updating dependencies e705c1e

20 February 2017

  • Changing HTTP test frameworks & updating tests, updating sample bf99406
  • Adding a CORS test 46351cb

15 February 2017

13 February 2017

  • Updating server for a CORS header fix d8c17c7

12 February 2017

  • Updating server for a logging fix 0908462

10 February 2017

9 February 2017

  • Changing x instanceof Array to Array.isArray(x), updating dependencies 672ef88

7 February 2017

  • Didn't mean to change that 53a3b74

7 February 2017

  • Fixing x-xss-protection header decoration, adding support for nosniff configuration flag for lusca, fixes #75 #75

7 February 2017

  • Fixing rate() middleware, fixes #76 #76

7 February 2017

  • Rushed the header rewrite a little cdc4bf7

6 February 2017

  • Handling cache-control header rewrite better 9794b25

6 February 2017

  • Another change to respond() regarding header decoration for ETag generation 0e660d1

6 February 2017

  • Refactoring respond() to pass headers to canETag() & re-ordering some ops 10d8443

6 February 2017

5 February 2017

  • Fixing CORS responses for browsers 46abbb1

5 February 2017

  • Fixing CORS responses for browsers 6c0445d

5 February 2017

  • Fixing CORS responses for browsers b2d2cee

5 February 2017

  • Short circuiting OPTIONS requests to bypass authentication/authorization pipeline for CORS requests 778572a

5 February 2017

  • Updating server to get a CORS fix 41f63e0

5 February 2017

  • Updating server to get a CORS fix 62a7c82

30 January 2017

23 January 2017

23 January 2017

  • Fixing config on start up, fixes #73 #73

6 January 2017

  • Updating turtle.io server 7095e43

5 January 2017

  • Updating turtle.io server a7b93b8

2 January 2017

  • Updating turtle.io server faa0f17

2 January 2017

  • Respecting link header passed to hypermedia() 9029ce9

2 January 2017

  • Updating turtle.io dependency 35fa9da

2 January 2017

  • Refactoring to use iterate() instead of calling array.each() directly, changing Object.keys() to Reflect.ownKeys() 5863595
  • Updating turtle.io server & iterate() signature 623a994
  • Adding strict mode declaration to each module d5238d7

1 January 2017

  • Streamlining an assignment in middleware.js, updating README with a link to the sample application in github 39f6886

28 December 2016

  • Changing default JSON output to have no padding, moving regex.id & regex.hypermedia definitions into config.json & allowing for overriding of any default from there fe87c72

21 December 2016

  • Adding JWT strategy #71
  • Updating sample for test purposes 2cf1041
  • Adding JWT tests 5d66a2b
  • Unsetting default value of version, changing occurrences of "all" to const all e4be1b0

27 November 2016

  • Switching Array.forEach() with array.each() 8931d88

27 November 2016

27 November 2016

  • Updating respond() to include the URL in the ETag creation to avoid collisions of the same output across different URLs 3d5fe8f

27 November 2016

  • Adding etags.ignore to config for conditionally blocking ETag header creation on GET requests cbb5887

27 November 2016

  • Upgrading turtle.io to get access to ignoring paths for ETag creation 571a0fa

27 November 2016

  • Updating html renderer, fixes #69 #69

23 November 2016

  • Fixing server header value aa56b89

20 November 2016

19 November 2016

  • Updating turtle.io to get full cache propagation db2f1ad

19 November 2016

  • Upgrading turtle.io to 7.2.0 to gain cache notification/propagation, fixes #68 #68

19 November 2016

  • Fixing hypermedia() cc77fae
  • Updating travis-ci.org config 36ffb7c
  • Updating travis-ci.org config 2f1cbe7

19 November 2016

  • Updating turtle.io, syntax & eslint rules 0f4ade4
  • Update README.md d56c41f

30 July 2016

  • Correcting the default value for the HSTS max-age 047796a

8 July 2016

  • Updating server to get a CORS fix ce62f96

7 July 2016

  • Adding support for route parameters, updating test syntax, fixes #65 #65
  • Updating test with a parameter route 842c05e
  • Updating server 2af54a4

7 July 2016

  • Woodland #64
  • Updating server to get a logging fix 403b33d

6 July 2016

  • Getting it mostly working with a woodland powered turtle.io (WIP) 5b1e958
  • Updating eslint config, getting another test passing, lint changes 4ed556e
  • Removing lint warnings e1fb95c

1 August 2016

1 August 2016

  • Version bump for unpublished version on npm 002ad4b

1 August 2016

  • Replacing lws with uws, fixes #66 #66

4 May 2016

  • Upgrading turtle.io to get a logging fix, version bump c38b32e

4 May 2016

  • Fixing handling of cache-control header & changing the default value, fixes #61 (again) #61

3 May 2016

  • Fixing cache-control header decoration of a private response, fixes #61 for real #61

3 May 2016

  • Upgrading turtle.io to get a header fix, fixes #61 #61

2 May 2016

  • Handling the failure of instantiating lws & coap in such a way that it's OS agnostic a70d44c

20 April 2016

  • Fixing support for Windows by conditionally enabling coap & websocket 2ba36ab

29 March 2016

  • No need to call server.headers() from respond(), updating turtle.io to fix range header handling, fixes #60 #60

29 March 2016

  • Specifying a server header value 68a89da

28 February 2016

  • Upgrading turtle.io to gain this.server.parse(), locking dependencies to minor updates for perceived stability 0dff97d

24 February 2016

  • Adding a parameter to this.serialize() for IoT protocols c7a3a7b

21 February 2016

21 February 2016

  • Adding a COAP server by config, fixes #59 #59

21 February 2016

  • Updating misc documents, no code change 0b9b752

21 February 2016

  • Dropping the spread operator 'cause babel is fucking it up, lowering default hsts maxAge, fixes #57 #57
  • Fleshing out the WebSocket integration 018cd48
  • Adding a content-disposition header to the CSV renderer, removing this.messages, adding websocket module (WIP) 158028d
  • Making some changes (WIP) 49fc8ed

17 February 2016

  • Fixing error() such that it passes a response body (regression [for building on top] due to refactoring) f912e3b

16 February 2016

  • 3.1 dev #58
  • Initial changes to support turtle.io 6.0 5c7b4fa
  • Updating README 6a55062
  • Updating all dependencies d7307dc

28 December 2015

  • Removing baked in functions for modules 6d12632
  • Moving sass file into ./www 09467e2
  • Updating dtrace script, removing jsdoc config 1283b4a

20 December 2015

20 December 2015

  • Fixing the XML renderer via dependency update e28bf81

19 December 2015

  • 3.0 #55
  • Not rate limiting (explicit) "unprotected" routes, fixes #52 #52
  • Deleting generated docs fe34730
  • Initial build passing lint f56ad44
  • Fixing hypermedia tests, fleshing out the test routes such that it's reasonable, enabling the renderer tests (XML is failing) bf0ccb6

26 October 2015

  • Upgrading deps, changing travis-ci.org config c4b2d7d

10 September 2015

  • Upgrading deps to solve a proxy regression c500840

9 September 2015

  • Fixing a regression from 2.0.4 c438657

9 September 2015

  • Changes to support turtle.io 4.1.0 e0d9ffc
  • Upgrading to turtle.io 4.1.1 555abe0

4 July 2015

  • Updating the HTML renderer template 398b152

4 July 2015

  • Updating config & core dependencies c736e79
  • Updating CHANGELOG 8b31fec

17 June 2015

  • Updating CHANGELOG 41d328b
  • Updating README, version bump for npm 34b7873

15 June 2015

  • 2.0 #45
  • Putting route validation a head of csrf validation, fixes #48 #48
  • Making hypermedia generation smartr, fixes #46 #46
  • Changing the response shape, fixes #43 #43
  • Adding eslint to grunt test, making it lint! 4772e18
  • Reformatting code based on new IDE settings, completely superficial ebf0d88
  • Implementing a shallow clone without the try/catch 9fa91b5

7 June 2015

  • Fixing how how the form is shown in the browsable UI c18459a

4 June 2015

  • Completing "unprotect" routes, removing fat arrow abuse 5c81f2e
  • Adding the notion of an "unprotect" route [WIP] 640ad1d

2 June 2015

25 May 2015

  • Allowing empty payloads in the browsable API, fixes #42 #42

25 May 2015

  • Applying hypermedia pagination to GET requests only, fixes #41 #41
  • Upgrading turtle.io to 4.0.0, initial changes to support it (WIP) e0fcbb2
  • Undoing changes to test dc7bd66
  • Upgrading turtle.io for custom error handling 854cae2

19 April 2015

14 April 2015

  • Adding title attribute to anchors in browsable API c0fd541

14 April 2015

  • Adding title attribute to generated anchors in browsable API dbda890

13 April 2015

  • Changing <code> parsing to separate keys & items d54a1af

13 April 2015

  • Fixing an erroneous dep version bump 6cc6198

13 April 2015

  • Fixing / refactoring prepare(), fixes #40 #40

10 April 2015

  • Adding title attribute to config which is used by the browsable API a36b0b6

9 April 2015

  • Updating keigai, changing to array.each(), reformatting code based on IDE settings 97bb22e
  • Updating tests 0747e84
  • Updating test 220784a

2 April 2015

  • Splitting up tests e897a15
  • Refactoring array.iterate() to array.each(), updating keigai & turtle.io 076b6cb
  • Extending test timeouts to 5s 488999e

2 April 2015

  • Adding renderer(name, fn, mimetype) to add custom renderers, fixes #31 #31
  • Adding a CSV renderer, fixes #38 #38
  • Semver bump to 1.4.0 due to new renderer() method 0558504

1 April 2015

  • Tweaking media queries, fixes #37 #37
  • Fixing JSON validation in the browsable API, fixing req.body parsing such that the body is not discarded if it cannot be parsed to JSON, fixes #36 #36
  • Fixing CSS 7931ec3
  • Fixing nav click handling, fixing error display (shape) a8a3937
  • No string comparisons! fd6d9ac

1 April 2015

  • Fixing a reference error, which was meant to fix a parsing error (turtles!) d5b94bf

1 April 2015

  • Making request error handling more durable in the browsable API interface, fixes #35 #35

31 March 2015

  • Finishing v2 Browsable API, fixes #24 #24
  • Making progress on v2 of browsable API by adding the notion of a Request & Response view toggle, the request view is partially implemented 3a1fd62
  • Wiring error handling 2116aff
  • Returning to the identity operator a136811

30 March 2015

  • Fixing H2 line height, adding tests for renderers df47036

30 March 2015

  • Adding a label for the select input, converting indents to tabs 9c2b657

30 March 2015

  • Fixing spacing & a typo that comma operator kept valid (wooo!) 220a1ff

30 March 2015

  • Wiring up the select input f268b53
  • Wiring up the select field [WIP] e72ecf0
  • Adding support for ?format=$renderer query string parameter which is higher priority than the Accept header (explicit vs implicit) acd25d7

30 March 2015

  • Changing "CSS reset" to one I prefer more 877e83e

29 March 2015

  • Tweaking responsive template 94a2ad6

29 March 2015

  • Tweaking responsive template ae0eb44

29 March 2015

29 March 2015

  • Tweaking responsive template 144dc25

29 March 2015

  • Removing PureCSS and writing responsive CSS by hand, fixes #28 #28

29 March 2015

  • Sorting browsable API headers, fixes #30 #30

29 March 2015

  • Upgrading turtle.io, fixes #29 #29

29 March 2015

  • Upgrading turtle.io, fixes #29 #29

29 March 2015

  • Fixing visibility of all response headers, fixes #27 #27

29 March 2015

  • Fixing browsable API URL header, fixes #26 #26

29 March 2015

  • Embedding CSS, & JavaScript in browsable API template, fixes #25 #25

29 March 2015

  • Fixing the browsable status header value 4eea940
  • Fixing the browsable status header value 5798ec4
  • Updating CHANGELOG 9076695

29 March 2015

  • Fixing error() such that it routes through the instance of Tenso, adding support for HTML, YAML, & XML output via new renderers (JSON remains of course); HTML is not implemented yet d2fa0dd
  • Getting a read only HTML renderer mostly functional [WIP] 34281e4
  • Activating URIs within the browsable API template e834374

26 March 2015

  • Updating CHANGELOG 0b0d6ae
  • Updating keigai & turtle.io for proper headers on compressed responses e96b7f8

20 March 2015

19 March 2015

  • Updated keigai & turtle.io bec889f

12 March 2015

  • Updated to keigai 1.2.0, implemented array.iterate() bfa085e

25 February 2015

  • Updated babel transpiler (renamed), updated core dependencies, added io.js (latest stable) to travis-ci 6438864

13 February 2015

  • Updated 6to5 for better transpiling, updated turtle.io for a significant change 'under the hood' d389dc1

3 February 2015

31 January 2015

  • Upgrading keigai, & turtle.io dependencies c2fa096

11 January 2015

  • Add a Gitter chat badge to README.md #21
  • Packaging build, fixes #22 #22
  • Fixing failing tests 1144e9f
  • Enabled CSRF protection by default, tests not passing e4addfe
  • Partial fix for #22, requires a change in turtle.io 9509cf7

13 December 2014

  • Updating turtle.io dependency & fixing how tests are written dc8fb1d
  • Fixing this.respond() by not assuming a cache-control header exists 1cd9036

1 December 2014

  • Upgrading keigai & turtle.io dependencies 513c9f9

24 November 2014

  • Utilizing req.allows in this.respond() 363ead8

22 November 2014

  • Fixing this.respond() by passing a required parameter to this.server.allows() bcd614f

22 November 2014

  • Identifying as tenso in logging strategies, created dtrace.sh to convenient probe output 156aa0f

18 November 2014

  • Fixing pluralization of hypermedia keys bdc0d41

7 November 2014

  • Fixing Tenso.rate() by removing the per hour notion and implement the seconds offset afforded by configuration 11c2669
  • Refactoring rate limiting to ignore Authorization header, as it provides an attack vector 0601e3d

6 November 2014

  • Fixing a regression of rate() execution against protected routes 5e10538

6 November 2014

  • Optimizing respond() by moving 0.9.20 into it, reformatted code based on my WebStorm9 config (keeping it pretty for humans) a34f599

6 November 2014

  • Adding automatic private directive to cache-control header when client is authenticated 04a9012

5 November 2014

  • Changing rate limiting such that it can be 'resized' 2d8ba14

5 November 2014

  • Moving rate() into keymaster() such that it always executes 62242da

5 November 2014

  • Adding rate.override to config which accepts req & rate, and must return rate, such that rate limiting is customizable, fixes #19 #19

2 November 2014

  • Updating dependency, fixes #16 #16
  • Fixing the x-ratelimit-remaining value upon reset, fixes #17 #17
  • Loosening dependency versions, fixed hypermedia() by implementing 'X-Forwarded-Proto' header, fixes #18 #18

24 October 2014

  • Upgrading dependencies (disables SSLv2) 5f4f27f

23 October 2014

  • Updating dependencies to protect against POODLE 0d54348

20 October 2014

16 October 2014

  • Updating dependencies & CSS files 0fd6008

9 October 2014

7 October 2014

  • Fixing a log error in bootstrap() when enabling SSL 0426c9a

3 October 2014

  • Updating turtle.io to gain automatic handling of CORS requests from a browser b43b26f

3 October 2014

  • Refactored Local Auth to not redirect CORS requests from a browser, and return a success message f902927

3 October 2014

2 October 2014

20 September 2014

  • Fixing hypermedia() when URI has a trailing slash and is a collection, adding a test e76fc74

18 September 2014

  • Changing /logout such that it works without being a protected route 4dc3e9e

18 September 2014

  • Made hypermedia() smartr by not mutating the result when it's an Array of URIs, for obvious data modeling issues! 0182190

12 September 2014

9 September 2014

6 September 2014

  • Making hypermedia() smartr by knowing when a key is an item or a related URI, & to not remove link keys for obvious data modeling issues! 7959bd5

6 September 2014

  • Fixing hypermedia() when dealing with collections: Array of Objects e.g. a record set, adding a test 14c8ab2

6 September 2014

3 September 2014

  • Fixing an oversight in two conditionals within auth() 926dc74

2 September 2014

  • Refactored auth() & created 'by config' end points for Basic & Bearer under /auth, such that they don't collide with stateful strategies, updated hypermedia() to add a collection link for non Array/Object representations & to set a rel of item for Array based links, updated tests, fixes #15 #15

1 September 2014

  • Enabling auth.linkedin.scope (missed it), removing double blacklist() of middleware within each authentication strategy bc7dde7

28 August 2014

  • Updating docs 2cf3b06
  • Adding automatic JSON parsing to parse() middleware bd402a9
  • Removing a deprecated condition aa6ba1c

28 August 2014

  • Creating config.auth.redirect which defaults to /, fixes #14 #14
  • Refactored auth() to support stateless & stateful strategies at the same time, fixes #13 (failing test has to wait until later - don't use this sha!) #13
  • Adding OAuth2 & SAML authentication, fixes #10, & fixes #12 #10 #12
  • Created parse() middleware via bootstrap() for interop with express centric middleware 4b67d75
  • Updating SAML auth parameters, updating README 31b79c6
  • Fixing Local Auth guard & test 46ca355

25 August 2014

  • Refining the basic auth tests f126fd3
  • Upgrading turtle.io to 3.0.15 for etag middleware fix (out of order execution negated it) c7e20eb

24 August 2014

  • Making /auth support more than one active strategy, fixes #9 in spirit #9
  • Changed auth config such that protected routes are defined under the strategies 14e328c
  • Moved mediator() middleware out of auth() and into bootstrap(), fixed redundant variable initialization in Tenso.prototype.rate(), added CSS map file 16ca5b0

21 August 2014

  • Updated hypermedia() to apply the same logic to Entity reps, updated tests 64fdf66

21 August 2014

  • Changed data.result to null if all content is lifted into data.link, updated tests 088eb57

21 August 2014

  • Significant change to how responses are processed as hypermedia (see CHANGELOG) 7a2ee0e

19 August 2014

  • Fixed keymaster() for HEAD & OPTIONS requests, fixes #6 #6
  • Fixed blacklisting of middleware within auth(), fixes #7 #7
  • Stragglers 42c6332

18 August 2014

  • Blacklisting authentication middleware ac4a395

16 August 2014

  • Added lusca for security, added grunt-nsp-package for module vulnerability scanning during package task dac3270
  • Updating README 61f5429

16 August 2014

  • Fixed an edge case in hypermedia() such that the URI is not lifted into the links Array via automagic & added a collection link for an Entity representation [RFC6573] & updated test, cached RegExp invariants 90639dc
  • Updating README 5b84aa1

15 August 2014

  • Added Facebook authentication via passport, fixed the RegExp used to retrieve the rate limit id from the authorization header, moved authentication gateway middleware into zuul() 38a4162
  • Getting auth() working with passport.js flow (sessions only atm), naming zuul() & keymaster() for debugging purposes & upgrading turtle.io to 3.0.10 for the same reason d92c9f5
  • Added LinkinIn authentication 07ba0bd

8 August 2014

  • Upgraded turtle.io to 2.3.0, & refactored Basic Auth to use passport 97f4ad5

7 August 2014

  • Fixing tests, fixes #3 #3

7 August 2014

  • Updating config.json with more options of turtle.io, upgrading turtle.io to gain accept: application/json; indent=n driven pretty JSON, fixes #4 #4

7 August 2014

  • Tweaking how wildcards are supported in protected paths e35b0cb
  • Enabling test assertions to debug erroneous response body 4128802

7 August 2014

  • Disabled compression when SSL is enabled, fixed wildcards in protect Array under auth, fixes #1 & fixes #2 #1 #2

6 August 2014

  • Added maxBytes configuration flag to enforce limits on PATCH, POST, & PUT requests & added a test, upgrading turtle.io to 2.2.4 480f4e8
  • Setting default maxBytes size of 1 MB, updating README & CHANGELOG 6dbdd94

5 August 2014

  • Minor tweaks to rate limiting, adding a test 79136e4
  • Fleshing out rate(), creating Tenso.rates{} & Tenso.rate(), fixing alignment, creating Tenso.rates to store rate limiting data, creating Tenso.rates() to be called from rate() middleware 793ebdc
  • Initial rate limiting middleware hook, reverted a change to the Grunt file, such that 'test' runs jshint & mocha tests, updated turtle.io dep, fixing mistakes missed during erroneous 'test' phase 8d6815e

4 August 2014

  • Adding local authentication 6e151e3
  • Updating npm ignore, resetting an auth state in sample.js c042c49
  • Updating README 8512981

4 August 2014

  • Decorating hostname on Tenso instance, removed unwanted function, refactored tests to use multiple servers, added tests for authentications ca4e114
  • Updating README 8d8ba5d
  • Updating README ce86758

3 August 2014

  • Adding middleware to handle protected routes for none Basic Auth, updating deps 7f23a4f
  • Implementing Bearer Token auth ecfdcd8
  • Creating auth() and starting to refactor ce3615e

3 August 2014

  • Fixing hypermedia() by ensuring no link Objects when a collection is empty, added a test ed126f1

3 August 2014

  • Fixing hypermedia() URI reconstruction by encoding the query string values, added a test ce788db

3 August 2014

  • Fixing hypermedia() to deal with an out of bounds page bfc8e9b
  • Adding a 404 test 8da5cae

3 August 2014

  • Changing pagination link generation such that first & prev cannot be the same URI, updating turtle.io dep, adding hippie functional tests dc33597

2 August 2014

  • Changing the default hypermedia link rel to related for a more generic implied relationship 8b52276
  • Updating README 9e7b1a1

2 August 2014

  • Implementing hypermedia & automagic pagination d2e79f0
  • Adding Object support to hypermedia() for consistent automagic links 88f5535

2 August 2014

  • Implementing Basic Auth by config 1a71265

2 August 2014

  • Created response() & added it to the exports, updated README & sample app 182d9c6
  • Cleaning up API such that it's less juggling to send a response f456bdc

2 August 2014

  • Getting routing wired in with an external routes.js to be overridden by configuration 8b15cad
  • Adding support for handlers on routes 4cb2300
  • Making the configuration Object optional, adding a CHANGELOG, updating config.json such that it doesn't inherit the "sample" routes 92b05f9

0.0.1

1 August 2014