Skip to content

Latest commit

 

History

History
1204 lines (693 loc) · 64.8 KB

CHANGELOG.md

File metadata and controls

1204 lines (693 loc) · 64.8 KB

Changelog

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

Generated by auto-changelog.

  • Bump husky from 9.1.0 to 9.1.1 #92
  • Bump husky from 9.0.11 to 9.1.0 #91
  • Bump @eslint/js from 9.6.0 to 9.7.0 #90
  • Bump eslint from 9.6.0 to 9.7.0 #89
  • Bump rollup from 4.18.0 to 4.18.1 #88
  • Updating some function signatures and types def b579b21
  • Updating README.md benchmark section with a macbook air m3 (2024) 531dcb8

6 July 2024

  • Bump mocha from 10.5.2 to 10.6.0 #87
  • Bump globals from 15.7.0 to 15.8.0 #86
  • Bump typescript from 5.5.2 to 5.5.3 #85
  • Bump globals from 15.6.0 to 15.7.0 #84
  • Bump @eslint/js from 9.5.0 to 9.6.0 #83
  • Bump eslint from 9.5.0 to 9.6.0 #82
  • Bump mocha from 10.5.1 to 10.5.2 #81
  • Bump mocha from 10.5.0 to 10.5.1 #80
  • Bump mocha from 10.4.0 to 10.5.0 #79
  • Bump typescript from 5.4.5 to 5.5.2 #78
  • Bump globals from 15.4.0 to 15.6.0 #77
  • Updating dependencies, 'files' array of 'package.json', & 'haro.d.ts' be76bc0
  • Generating CHANGELOG.md 8786238

16 June 2024

  • Removing defaults from 'this.merge()' to allow setting 'undefined' aaa607e
  • Generated CHANGELOG.md 6587796

16 June 2024

16 June 2024

  • Updating README.md, undoing change to 'this.merge()' & removing erroneous tests 16c9543
  • Generating CHANGELOG.md 37d834d

16 June 2024

  • Creating 'this.uuid()' from lexical scope function, updating tests to remove outdated 'logging' option dc81050
  • Generating CHANGELOG.md c203a99

16 June 2024

16 June 2024

  • Refactoring utility functions into class functions #76
  • Bump eslint from 9.4.0 to 9.5.0 #75
  • Bump @eslint/js from 9.4.0 to 9.5.0 #74
  • Version bump to release, generating CHANGELOG.md 168a67d
  • Generating CHANGELOG.md 4c45061

11 June 2024

  • Removing a 'clone()' from 'set()', replacing '||' with '??' operator ec622c4

11 June 2024

  • Removing a reference error for node <=16 88aacb2
  • Updating CHANGELOG.md 6559cb1

11 June 2024

  • Updating build #73
  • Removing issues 21ccad7
  • Updating build tools, adding constants.js, updating utils.js, setting 'this.key' if not on the record 646e655
  • Building outputs 9980d75

6 April 2021

6 April 2021

  • Sync refactor #72
  • Updating README.md, .npmignore, adding precise dev dependency for benchmark.js a9e3e06
  • Updating CHANGELOG.md ec39645
  • More changes (WIP) 06a75dd

5 April 2021

  • Creating onoverride(type) and executing from override(type), updating dependencies, updating copyright year in LICENSE & README.md 35ab498

9 December 2020

  • Removing superficial/unneeded ops & property d00a01b
  • Updating CHANGELOG.md ed7d074

4 December 2020

  • Revert "Merge pull request #71 from avoidwork/workers" 90351ae
  • Version bump to release, generating CHANGELOG.md, undoes ArrayBuffer work e94411e
  • Revert "Version bump to release, generating CHANGELOG.md" 8caf564

3 December 2020

  • Binary storage #71
  • Adding benchmark data.json (missed in last commit) 20139cf
  • Initial refactoring to storing ArrayBuffer instances instead of Objects c98d3be
  • Removing clone() because it's not needed if working with ArrayBuffer instances de32c95

29 November 2020

  • Removing logical not operators, removing argument from has() f967ab2
  • Updating CHANGELOG.md d8eb0a7
  • Updating CHANGELOG.md 792cd3b

28 November 2020

  • Fixing a copy/pasta error in new indexKeys() 54541a8

26 November 2020

  • Removing exec() and unneeded Promise instances 83342a7
  • Updating CHANGELOG.md e18cad1

26 November 2020

  • Find #70
  • Early version bump to imply memory requirements are going to change and can be considered a "breaking change" 582809a
  • Updating changelog 8e4d362
  • Refactoring how setIndex() generates data 053d946

24 November 2020

  • Updating everything #69
  • Updating build tools, breaking change with a named export b327eb2
  • Adding auto-changelog dev dependency back, turning original value of repository.url 21f64c2
  • Updating the remaining tests 6056e3d

16 September 2020

  • Fixing how multiple inputs for a non-array attribute is queried 8d3554c

3 September 2020

  • Updating CHANGELOG.md 9030311
  • Fixing dump("indexes") such that Map keys remain the correct type, updating tests - breaking change to support primitives again 629dae8

3 September 2020

  • Fixing dump("indexes") such that Map keys remain the correct type bc72535

10 May 2020

  • Minor optimization in filter() 43a842a
  • Updating CHANGELOG.md 786d540

10 May 2020

8 May 2020

  • Generating missing build assets? version bump to release ba219eb
  • Updating CHANGELOG.md 68d288a

7 May 2020

  • Removing truthy condition from get() such that the output is consistent in shape (breaking change for invalid key & tuple result), updating "invalid" read tests 1cd84f5
  • Updating CHANGELOG.md 476d5d0

13 April 2020

  • Removing unneeded attributes for major release 4c238ea

11 April 2020

  • Undoing change to toArray() and adding a minor optimization b5561f5

11 April 2020

  • Narrowing responsibilities #66
  • Bump acorn from 7.1.0 to 7.1.1 #65
  • Swapping babel-minify for terser b5a910b
  • Updating CHANGELOG.md e35a5d3
  • Updating CHANGELOG.md 137baa6

22 February 2020

  • Refactoring toArray() to not use limit() 30fe2d1
  • Updating CHANGELOG.md 50972c0

22 February 2020

  • Optimizations #64
  • Refactoring dump() & override() to do less ops 30c31d9
  • Updating minimum node.js engine & updating travis-ci.org config, removing old benchmark.js 4eccd0c
  • Removing unneeded funtions, etc. 3cd35a0

20 December 2019

20 December 2019

  • Create FUNDING.yml #63
  • Bump eslint-utils from 1.4.0 to 1.4.2 #62
  • Updating dependencies 6edc102
  • Removing notion of abstracting an API - realistically caching strategies could / should be more complex than what this lib would be aware of, updating travis-ci.org configuration, updating README, version bump for breaking change bb30a64
  • Generating new changelog file 511cc61

27 February 2019

  • Adding inner param in where function #60
  • Version bump for refactored where(), adjusting minified banner inclusion d3f2765
  • Upgrading dev dependency 3ed03f4
  • Adding inner join on where clause 3de61a0

24 January 2019

  • Fixing keyIndex() for dealing with inconsistent shapes 49ecbe9

13 January 2019

  • Using String.includes(), removing unneeded ops from conditional statements a392d4c

10 January 2019

  • Minimizing assignment of lindex in setIndex() 2ca8acf

10 January 2019

  • Fixing setIndex() such that Array values are indexed individually unless the index key includes a delimiter, fixes #59 #59

8 January 2019

  • Refactoring where() to support RegExp values in the predicate 44f359e

18 October 2018

  • Refactoring where() to support arrays of values to test against a key 9c2dab3
  • Forgot to quote the joined array in where() f436b60

11 October 2018

  • Setting content-type header on outbound requests c5a7614

27 September 2018

  • Revert "Refactoring where() such that the predicate does not have to be a indexed values, e.g. an aware filter()" a8cf154
  • Reverting recent change to where() ef73cff

24 September 2018

  • Refactoring where() such that the predicate does not have to be a indexed values, e.g. an aware filter() 584779e

29 June 2018

  • Setting adapters from factory, changing undefined to void 0 8511953

3 April 2018

  • Fixing a regression in utility joinData() c29d1ea

3 April 2018

  • Creating reduce(), refactoring filter() to use reduce(), fixing a type assumption in where()'s meta function 24888cf

2 April 2018

2 April 2018

2 April 2018

2 April 2018

  • I can't even part deux - reducing where() 3e09447

2 April 2018

2 April 2018

  • Wrong behavior on non-matches (oops) 21071f0
  • Updating README de0dcd6

2 April 2018

  • Refactoring utility.each(), creating where(predicate) for situations where search() & find() are not ideal 71a334e

25 February 2018

  • Refactoring override() to create a new Map() at store.data a2f2a49

22 February 2018

  • Creating size property to mimic the underlying Map better & updating tests 54f788c

20 February 2018

  • Optimizing startup time (reduced tests by 400ms on my macbook air) 290534b

17 February 2018

13 February 2018

  • Creating exec() to manage del() & set() 655ad7d

13 February 2018

  • Reverting a change of merge() to Object.assign() due to deep cloning mistakes 9ce4ccf

8 February 2018

  • Initial refactoring to async/await synctax & major version bump, removing babel transpile (WIP) 718eaa6
  • Initial commit refactoring to async/await syntax 7dadd81
  • Removing object spread merge due to minification issue with babel-minify c1f1c71

6 February 2018

  • Updating signatures to return new Promise() where applicable (ground work for move to async/await), updating dependencies & lint 9cb9aa4
  • Adding package-lock.json for npm@5 923be71
  • Fixing lock file? 7c7d698

3 June 2017

  • Removing a useless node module named Blob, fixes #57 #57

10 May 2017

  • Fixing a deprecated value for fetch() f0da6e4

12 April 2017

  • Reverting changes to adapters introduced with 3.4 due to an incompatible API for pre-existing adapters, fixes #56 #56

30 March 2017

20 March 2017

  • Removing try/catch statements from factory(), sync() & blob() & relying on Promise for error handling ffaaec5

18 March 2017

18 March 2017

  • Simplifying search(), fixes #53 #53
  • Adding a reasonable data set for benchmarking 8e8cd51
  • Simplifying cast(), adding lazyLoad & retry parameters to del(), replacing registry with a getter for an Array from this.data.keys(), changing order of ops in factory such that the batch operation may benefit from a worker thread in the future c123896
  • Fixing factory & constructor, disabling versioning by default 938c26f

16 March 2017

5 March 2017

  • Adding debounce configuration property to debounce changes transmitted over the wire d8e5beb
  • Renaming server const to node 4218906
  • Cleaning up this.debounced from the debounced function 6abcf10

5 February 2017

  • Making the arguments of beforeRequest() by reference 2110186

5 February 2017

  • Moved beforeSync() execution into sync() for consistent behavior 24e3c6f
  • Moved beforeSync() execution into sync() for consistent behavior 2117bf4

5 February 2017

4 February 2017

  • Blocking an infinite retry loop in set() f60219f

4 February 2017

  • Adding third argument to onset() call to signal a retry 5a2ca79

4 February 2017

4 February 2017

  • Fixing set() by passing batch on recursive call, removing onset() c436884

4 February 2017

  • Fixing onset() arguments when called for a reversion 213d643

4 February 2017

  • Adding a third argument to onset to indicate if the operation is a reversion 0be2c17

4 February 2017

  • Fixing find() by passing this.pattern c3677ad

3 February 2017

  • Adding second argument to ondelete() & onset() handlers 5b07d1d

3 February 2017

  • Fixing handling of res.headers when using latest fetch() polyfill 98aa80c
  • Adding third step to benchmark to prove overridden data & adding logging for absent records 22d9598
  • Updating benchmark to have proper indices 053a4c7

31 January 2017

  • Updating build tools, changing bower.json to include contents of /lib 58003e2
  • More bower tweaks c241e5d

23 January 2017

  • Refactoring some signatures to minimize assignments, fixing transmit() retry when a delete patch fails 6cf027c

23 January 2017

  • Refactoring batch() such that it is no longer a vehicle for over the wire i/o - it'll only do local async ops 1c1dae3

22 January 2017

  • Refactoring del() to use transmit(), fixes #55 #55
  • Minor tweak b86ddab

22 January 2017

  • Fixing del() to use og when calling delIndex() eeaa22e

22 January 2017

  • Refactoring set() to resolve before going over the wire, creating transmit() fd1bbe4
  • Refactoring del() to resolve before going over the wire 87383f5
  • Updating README 82e7960

7 January 2017

7 January 2017

  • Removing tuple & deferred() dependencies, created this.list() which returns a frozen Array of the arguments, creating has() utility function, using const where possible, compressing statements where possible, updating crawl() to return a clone of the input if the this.source is not found 2b2be35
  • Updating adapter example to remove tiny-defer, updating sortBy() signature fffef1e
  • Updating README 20a6f8d

5 December 2016

  • Creating onrequest() handler to allow custom transformation of requested data, fixes #54 #54

22 November 2016

  • Changing the signature of each() to accept a third param to determine if the iteration can exit early (to minimize unneeded ops), refactoring iterate() to use each(), using each() where possible (reversion from 2.x) a6b46aa
  • Minor tweak to params for each() function 141e914

19 November 2016

  • Minor change to be logical for node env caa6b2d

19 November 2016

  • Changing some let to const 6b3b8d6
  • Making the code a little DRYr ab3c8b0

19 November 2016

  • Optimizing some code paths 2ec411f
  • Loading es6 version if supported b88b7c0

19 November 2016

  • Splitting tests up for debugging f99db38
  • Updating eslint task to include the test file, fixing lint errors in test file ab5572d
  • Updating online tests 0d22aab

2 November 2016

  • Updating dependencies, updating eslint rules & fixing lint errors 21a454f
  • Tweaking package.json 97afe80
  • Updating travis-ci.org config to map to current LTS & edge 01915ae

28 October 2016

  • Updating filter() to add a second raw parameter to get an Array of Objects c0dc323

27 October 2016

  • Fixing a regression of limit() by switching to [].slice() 2c76e4b

25 October 2016

  • Changing the signature of toArray() to remove decoration of the record keys in the resulting Array because it shouldn't happen 37eaac5

24 October 2016

  • Changing the signature of toObjekt() to add a second frozen = true parameter which is passed from this.toObject(), updating toObject() to insure the return is frozen, updating tests, updating batch() to minimize unneeded Object.freeze() 78be7cc
  • Fixing toArray() such that Array contents are frozen if frozen is true 5c90bc7
  • Changing the signature of map() to accept a second raw parameter d24f4b4

23 October 2016

  • Refactoring limit() to do less work, changing order of parameters for limit() to align with common order of parameters: fixes #52, adding third parameter to limit() to return raw record: fixes #51, updating search() to do less ops, updating sort() to utilize limit(), adding yarn.lock to .gitnore #52 #51

21 September 2016

  • Refactoring keyIndex() to remove a deopt by v8 1293b9c
  • Updating travis-ci.org config b61c9b5

21 September 2016

  • Removing es6-* polyfills, setting minimum engine version to 4.0.0+, updating dependencies, bumping major version due to engine strictness (breaking change potentially) 335c6cb

8 August 2016

  • Fixing how search() handles indexed Arrays by doing an explicit join() when testing with a RegExp, fixes #50 #50
  • Updating a failing test assertion (old value was wrong based on Array handling), updating website URL in package.json 80f4af3
  • Updating assertion count in test a01dd2f

15 July 2016

  • Adding loading, updating tests b8d4939
  • Adding a test for loading e9b503d
  • Updating travis-ci.org config 4516d6c

13 June 2016

28 May 2016

  • Initial update, adding raw parameter to search() 845da30
  • Fixing eslint config 68cee12
  • Update bower.json ebba88e

28 December 2015

  • Fixing record sets passed in batch & sync pipelines 85811ce

28 November 2015

5 November 2015

  • Version bump for npm (sigh) 97fdefd

5 November 2015

  • Fixing by returning a clone of the record when asking for the raw data, added a test 3f8a845

27 October 2015

  • Reversing the order for dual context situations like nwjs e8166d2

24 October 2015

24 October 2015

  • Removing a conditional via ternary, updating the README example 5652af5

24 October 2015

  • Revising parameters of join() to support two WHERE clause descriptors, adding a test 93959e2

19 October 2015

  • Changing onbatch arguments to be ['type', Tuple] f5370b2

19 October 2015

  • Adding event hooks in the form of prototype noop methods for overriding on an instance, fixes #45 #45
  • Forgot the throws fd3369d
  • Updating README for join() de6ed33

16 October 2015

  • 1.8 #44
  • Implementing "inner", "left", & "right" joins in joinData(), fixes #41 #41
  • Fleshing out join() & joinData() more 368dbc0
  • Creating join(other, on, type, where) which utilizes offload() for multi-threading, fleshed out joinData() but it's a WIP, initial work for #41 00b23b7
  • Functional inner join, need to audit resulting object 1264f22

15 October 2015

  • Undoing a recent change to set(), creating a test for an existing bug 2589dc2
  • Switching const containers back to native, node 4.2.1 is faster 936f8b9
  • Nullifying an invariant before deleting it's origin, fixing tests 812bd82

14 October 2015

  • Fixing a key error in set() 19f99af

14 October 2015

  • Fixing registry & total growth d926351
  • Updating travis config 21dcdab

14 October 2015

  • Misc file changes 068df75
  • Blocking null & undefined indices since that's counter intuitive to finding data 982dd09

2 October 2015

  • Initial refactoring of createIndexes() for very large data sets (40MB+) [WIP] 880cbce
  • Completing refactoring of createIndexes() c4fc1a2
  • Updating bower & npmignore files 9661e09

29 September 2015

  • Implementing tiny-worker for a nodejs Worker 85f6d2b
  • Dropping iojs since the worker module is not compatible with that (and it's ... kinda dead) a0a4a77

29 September 2015

  • Adding server side worker support & a blob placeholder (not utilized beyond an existence check) 620fd25

29 September 2015

29 September 2015

  • Completing offload(), fixes #43 #43
  • Changing set() to call concatUri() once, fixes #42 #42
  • Creating createIndexes() to be used sync or async with a Worker, moved transform() for lint 1573699
  • Moving transform() out of the class and calling it depending upon input, more prep work for a Worker e112d3f
  • Renaming the utility transform() to cast() to avoid Class issues, creating onmessage() with mimic messaging 91b6ef4

21 September 2015

  • Extending tranform() with an optional second parameter d2ff10a
  • Extending override() with an optional third parameter 50744db
  • Update README.md 82f0bc6

19 September 2015

  • Creating dump(), override(), & transform() f4a37e1
  • Updating benchmark to compare the override timing 2b0ffcd
  • Updating README 5c80753

31 August 2015

  • Replaces internal deferred() with tiny-defer module, removes custom biz logic fromthis.pattern ("." and "-") d7f91eb
  • Back to basics... 5e4dd30
  • Definitely do not want native promise in nodejs (atm, very slow) 8dbd232

22 August 2015

  • Removes business logic from keyIndex() and moves it onto the instance of Haro as pattern, fixes #40 #40

14 August 2015

  • Fixing a reference error in browser env 828774f

13 August 2015

  • Relying on es6-promise for server side due to V8's overhead with Arrays for Promises (aka it's slower) 7da9df9
  • Updating README 363df89

27 July 2015

  • Fixing load() by not sending the data right back into the adapters e2fdf4f

27 July 2015

  • Refactoring toArray() to include the record key for a complete ''export', changing the signature of sort() to accept a second parameter to keep the result unfrozen 56c2001

27 July 2015

  • Updating signature of merge() 3dce2c1

25 July 2015

  • Adding the index as the second parameter to search(fn()), fixes #36 #36

12 July 2015

  • Refactoring search() to support an Array for index & default to this.index when not supplied 843fc44

12 July 2015

  • Refactoring toObject() to support a subset of data and optional freezing, fixes #35, adding tests #35

12 July 2015

  • Refactoring toArray() to support a subset of data and optional freezing, fixes #34 #34
  • Version bump 7e6f6e9

10 July 2015

  • Changing how rgex is determined in search(), fixes #33 #33

10 July 2015

  • Fixing the minified file, fixes #32, fixing index keys such than they're normalized, fixes #30 #32 #30

7 July 2015

6 July 2015

  • Fixing the order of arguments for limit() such that it maps to mysql 5bd85d2

5 July 2015

  • Updating README & keywords bb11146
  • Updating README & keywords 4e33722

5 July 2015

  • Add a Gitter chat badge to README.md #29
  • Updating console statements to be consistent, refactoring load() & unload(), updating README 294b507
  • Updating README ea350fe
  • Added Gitter badge 92c5c37

4 July 2015

  • Returning concerns to the DataStore from the adapters 520fb72

4 July 2015

  • Extending the logging, created unload([adapter]) to remove the DataStore from persistent storage (this doesn't erase individual records, that's different data!), fixes #28 #28
  • Extending the logging around persistent storage, created unload([adapter]) to remove the DataStore from persistent storage (this doesn't erase individual records/diff data!), fixes #28 #28

4 July 2015

  • Adding persistent storage adapter supporting, incluiding mongo adapter 7663303
  • Refactoring the persistent storage to be module based c368df7
  • Clearing the DataStore before loading it's data from persistent storage d11c60a

3 July 2015

  • Updating README, fixing batch() such that it calls concatURI() fcd092c

3 July 2015

  • Fixing request() such that cfg.method is upper case (required for PATCH in the browser??), fixes #26 with a naive replace of the entity in the collection #26
  • Implementing PATCH requests, moving "index" methods into utility function file & taking them off the prototype, refactoring reindex() to iterate the datastore once & the indices array many times (switched) b4b168d
  • Creating this.patch property & patch(data, ogdata, override=false), creating place holders for implementing PATCH requests, initial work for #26 198b1d4
  • Fleshing out batch(), refactoring iterate() & changing the signature of patch() 7a706f4

2 July 2015

  • Updating README, fixes #25 #25
  • Fixing limit() when passed a single argument 4083073
  • Changing the signature of limit() to take max & offset parameters like MySQL syntax d529014
  • Fixing a test 301a5c7

2 July 2015

  • Fixing README, version bump for npm ce8adaa

2 July 2015

  • Creating regex constant to hold reusable patterns/instances, fleshing out concatURI() & fixes #24 #24
  • Removing the notion of OAuth handling, initial work for #24 ec6b419
  • Refactoring setUri() into two functions - creating sync([clear]), updating README 8e3e268
  • Updating README e77ccf6

23 June 2015

  • Updating README, fixes #22 (hopefully) #22
  • Refactoring keyIndex() to not always cast a value to String, fixing search() & index behavior as a result, fixes #23 #23
  • Creating versioning config boolean to enable/disable MVCC style versioning of records, fixes #21 #21

22 June 2015

  • Adding search(value, index), fixes #18 in spirit without implementing a trie, fixing utility function merge(), updating tests to support newer syntax of factory #18
  • Updating README 03c824c

21 June 2015

  • Adding a lint step, fixes #20 #20
  • Updating CHANGELOG 8cc05b2

21 June 2015

  • Adding indexes, & new methods #19
  • Moving utility functions into a single file, fixes #16 #16
  • Updating README, fixes #15 #15
  • Initial commit of indexes 521679d
  • Creating sortBy(index) to sort by an indexed field, and lazily create said index at the same time b6bd15e
  • Completing deleting & setting indexes 15f36de

31 May 2015

  • Fixing renamed constructor, fixes #11 #11

31 May 2015

  • Refactoring request() to handle errors properly & return a double Tuple of shape [body, status], fixes #10 #10
  • Version bump 9a00c37
  • Updating README 21e849d

31 May 2015

  • Adding map(fn) which returns a Tuple of double Tuples of [key, value] with value being the return of fn(value, key), fixes #9 #9
  • Adding filter(fn), fixes #8 #8
  • Changing the return of filter() to be a Tuple of double Tuples with the shape [key, value], updating README 5cb54a5
  • Fixing the method on filter() 2049487
  • Updating test to cover new behavior of limit() 48761eb

31 May 2015

  • Fixing limit() return, fixes #7 #7
  • Disabling io.js testing while it results in an npm SSL error c0de6ae

31 May 2015

  • Ensuring versions is immutable by using a Tuple to be set into the Set, fixes #6 #6

30 May 2015

  • Adding record versioning, fixes #5, updating README #5
  • Adding a version property, fixes #4 #4

30 May 2015

  • Fixing reject() parameters, fixes #3 #3
  • Fixing a counting error in set(), fixes #2 #2
  • Updating README 73d70f8

1.0.0

30 May 2015

  • Initial commit of code d8db900
  • Getting some unit tests running [WIP] 73f0be1
  • Fleshing out the interface a4d5a48