UNPKG

41.7 kBMarkdownView Raw
1# Dynamoose Changelog
2
3---
4
5## Version 2.8.4
6
7This release includes a few bug fixes.
8
9Please comment or [contact me](https://charlie.fish/contact) if you have any questions about this release.
10
11### Bug Fixes
12
13- Fixes a bug where using multiple schemas with an attribute with multiple types won't choose the right schema.
14- Fixes a bug where nested raw conditions wouldn't work.
15
16### Documentation
17
18- Fixing typos on contributuing page.
19
20---
21
22## Version 2.8.3
23
24This release fixes a bug if you started `source-map-support` yourself where Dynamoose would try to do the same and would lead to conflicts.
25
26Please comment or [contact me](https://charlie.fish/contact) if you have any questions about this release.
27
28### Bug Fixes
29
30- Not registering `source-map-support` if already initialized.
31
32### Other
33
34- Renamed primary branch from `master` to `main`.
35- Added Node.js v16.x to CI test suite.
36- General v3 alpha README fixes.
37
38---
39
40## Version 2.8.2
41
42This release fixes a few major bugs.
43
44Please comment or [contact me](https://charlie.fish/contact) if you have any questions about this release.
45
46### Bug Fixes
47
48- Fixed bug where Model initialization would fail if `waitForActive: true`
49- Fixing multiple bugs where objects passed into Dynamoose functions would be mutated
50
51### Documentation
52
53- Added FAQ about empty arrays or objects
54- Improved schema index documentation
55- Improving `Scan.startAt` & `Query.startAt` example in documentation
56- Fixing issue where `\n` appeared in schema attribute type documentation appeared instead of new line
57
58---
59
60## Version 2.8.1
61
62This release includes a few critical bug fixes.
63
64Please comment or [contact me](https://charlie.fish/contact) if you have any questions about this release.
65
66### Bug Fixes
67
68- Fix issue where query would fail with `Index can't be found for query` error when querying table itself
69- Resolve issue where Model.update would fail if beginning of attribute was identical to another attribute and marked as required
70- Fix issue in TypeScript where you couldn't pass a number value in for a key parameter
71- Resolved bug where passing a string or number in for Model.update key parameter would throw error
72
73---
74
75## Version 2.8.0
76
77This release contains general stability improvements to Dynamoose.
78
79Please comment or [contact me](https://charlie.fish/contact) if you have any questions about this release.
80
81### General
82
83- New `returnValues` settings property for `Model.update`
84- Allowing `waitForActive` model setting to be a boolean
85
86### Bug Fixes
87
88- Improvements to index selection when querying without `using` method
89- Including `saveUnknown` properties when using `Model.update`
90- Allowing for strings to be passed into `Query.sort` method when using TypeScript
91- Removing internal cache to improve memory usage
92- Improving performance when working with Buffers
93
94### Documentation
95
96- Model default settings documentation fixes
97
98---
99
100## Version 2.7.3
101
102This release moves internal Dynamoose object utilities to a different package.
103
104Please comment or [contact me](https://charlie.fish/contact) if you have any questions about this release.
105
106### Other
107
108- Moving internal object utilities to different package
109
110---
111
112## Version 2.7.2
113
114This release fixes a bug related to the return value of `document.save` and `Model.create`, and more.
115
116Please comment or [contact me](https://charlie.fish/contact) if you have any questions about this release.
117
118### Bug Fixes
119
120- `document.save` & `Model.create` now return the document saved to DynamoDB
121- Type messages now display `null` when passing in a invalid type `null` value as opposed to the previous `object`
122
123### Other
124
125- Added some more TypeScript tests
126
127---
128
129## Version 2.7.1
130
131This release has a lot of bug fixes for Dynamoose.
132
133Please comment or [contact me](https://charlie.fish/contact) if you have any questions about this release.
134
135### Bug Fixes
136
137- Fixing issue where with required check failing for non updating properties when using `$DELETE` in `Model.delete`
138- Prioritizing indexes with range key when querying
139- Improvements to type and schema matching for nested properties
140- Fixing issue where retrieving previously created model would ignore prefix and suffix
141- Fixing TypeScript issues with nested models
142- Fixing issue where nested models would auto-populate
143- Fixing issues with nested models within nested elements
144
145### Documentation
146
147- Making `saveUnknown` more clear in documentation
148
149### Other
150
151- Added warning when passing in `undefined` into Conditional
152
153---
154
155## Version 2.7.0
156
157This release patches a 🚨 security vulnerability 🚨.
158
159Please comment or [contact me](https://charlie.fish/contact) if you have any questions about this release.
160
161### General
162
163- Patch for [Prototype Pollution (GHSA-rrqm-p222-8ph2)](https://github.com/dynamoose/dynamoose/security/advisories/GHSA-rrqm-p222-8ph2)
164- Added `$DELETE` option for `Model.update`
165
166### Bug Fixes
167
168- Fixed a bug related to `update` setting being true for model with index
169
170---
171
172## Version 2.6.0
173
174This release adds support for a new constant type along with a bunch of other improvements and fixes.
175
176Please comment or [contact me](https://charlie.fish/contact) if you have any questions about this release.
177
178### General
179
180- Added Constant type
181- Added `attributes` setting for Model.batchGet
182
183### Bug Fixes
184
185- Fixed issues with nested arrays with multiple data types
186- Fixed issue with array of indexes
187- Fixed bugs related to multiple types for attribute
188- Fixed internal method bug that had the potential to cause issues throughout codebase (only known issue related to update transactions)
189
190### Other
191
192- Added security policy
193
194---
195
196## Version 2.5.0
197
198This release adds support for the DynamoDB `null` type, along with some more TypeScript fixes, and some other cool enhancements.
199
200Please comment or [contact me](https://charlie.fish/contact) if you have any questions about this release.
201
202### General
203
204- Added support for the DynamoDB `null` type
205- Added support for `Document.save` condition setting
206
207### Bug Fixes
208
209- Fixed TypeScript typing bugs related to Scan & Queries
210- Fixed TypeScript typing bugs related to `dynamoose.THIS`
211- Fixed TypeScript typing bugs related to `Model.waitForActive.check` setting
212- Fixed TypeScript typing bugs related to `dynamoose.THIS`
213- Fixed TypeScript typing issue with multiple type options for attribute
214
215### Documentation
216
217- Better explaination for `name` parameter representing the DynamoDB table name
218
219---
220
221## Version 2.4.1
222
223This release fixes a performance issue related to TypeScript.
224
225Please comment or [contact me](https://charlie.fish/contact) if you have any questions about this release.
226
227### Other
228
229- Fixes a memory leak related to the TypeScript target being `es6`. This was fixed by changing the target to `es2017`.
230
231---
232
233## Version 2.4.0
234
235This release fixes a lot of bugs and adds support for consistent read support to `Model.get` and support for conditional deletes.
236
237Please comment or [contact me](https://charlie.fish/contact) if you have any questions about this release.
238
239### General
240
241- Added consistent read support to `Model.get`
242- Added support for passing a condition into `Model.delete`
243- Added support for strongly typed models in TypeScript
244
245### Bug Fixes
246
247- Fixed bug where `document.delete` would fail with rangeKey
248- Transaction TypeScript improvements
249- Set schema type TypeScript improvements
250- Fixed issue related to having `0` as number for key (range or hash)
251- Fixed bug where passing in reserved keyword attributes into `Model.get` would fail
252- Improvements to how queries decide which index to use
253- Improvements to storing and retrieving documents with multi-dimensional arrays (nested arrays)
254
255### Documentation
256
257- Updated website search
258- Improvements to documentation clarity
259
260---
261
262## Version 2.3.0
263
264This release adds major new support for single table design.
265
266Please comment or [contact me](https://charlie.fish/contact) if you have any questions about this release.
267
268### Major New Features
269
270- Single Table Design Enhancements
271 - Nested Schemas
272 - Multiple Attribute Types
273 - Combine Type
274 - Multiple Schemas per Model
275- Readds populate support (similar to v1 but breaking changes between v1 and v2 populate functionality)
276
277### General
278
279- Adds document.toJSON() method
280- Adds Serialization support
281
282### Bug Fixes
283
284- Minor bug fixes for TypeScript typings
285
286---
287
288## Version 2.2.1
289
290This release fixes some minor bugs found in Dynamoose.
291
292Please comment or [contact me](https://charlie.fish/contact) if you have any questions about this release.
293
294### Bug Fixes
295
296- Fixed an issue with creation of local secondary indexes
297- Fixed an issue where specifying attributes to retrieve wouldn't work with reserved DynamoDB keywords
298
299### Other
300
301- Adding icons to website for GitHub & npm links
302
303---
304
305## Version 2.2.0
306
307This release adds a few key features to improve your Dynamoose workflow.
308
309Please comment or [contact me](https://charlie.fish/contact) if you have any questions about this release.
310
311### General
312
313- Added support for `query.sort`
314- Added support for only passing model name into `dynamoose.model` and having it retrieve the registered model that was already registered previously
315- Added support for passing original value into `set` attribute setting function
316- Added attributes setting to `Model.get` to only retrieve certain attributes
317
318### Bug Fixes
319
320- Fixed an issue where `document.original` would return a DynamoDB object and not a parsed object in certain cases
321
322---
323
324## Version 2.1.3
325
326This release fixes some minor bugs.
327
328Please comment or [contact me](https://charlie.fish/contact) if you have any questions about this release.
329
330### Bug Fixes
331
332- Fixing issue where creating multiple indexes would fail when creating or updating table
333- Fixing issue where `Model.update` with single object and `rangeKey` would fail
334
335---
336
337## Version 2.1.2
338
339This release fixes a few minor bugs with `Model.update`.
340
341Please comment or [contact me](https://charlie.fish/contact) if you have any questions about this release.
342
343### Bug Fixes
344
345- Fixed an issue where `Model.update` using `$REMOVE` wouldn't work on non defined attributes using `saveUnknown`
346- Fixed an issue where `Model.update` would throw an AWS error `ExpressionAttributeValues must not be empty` when using `$REMOVE`
347
348---
349
350## Version 2.1.1
351
352This release fixes some bugs related to TypeScript and improves the website with more accurate information.
353
354Please comment or [contact me](https://charlie.fish/contact) if you have any questions about this release.
355
356### General
357
358- 🔍 Added search functionality to website
359
360### Bug Fixes
361
362- TypeScript Fixes
363 - Removed esModuleInterop from tsconfig.json
364 - Allowing Schema Index Throughput to be Optional
365
366### Documentation
367
368- Add migration section from v1 to v2 to website FAQ page
369- Fixed ES Modules Import Documentation
370
371---
372
373## Version 2.1.0
374
375This release adds beta support for TypeScript typings.
376
377Please comment or [contact me](https://charlie.fish/contact) if you have any questions about this release.
378
379### Major New Features
380
381- Beta support for TypeScript Typings
382
383---
384
385## Version 2.0.0
386
387Version 2.0 is here!! This is a **full** rewrite of Dynamoose from the ground up. This means that the changelog listed below is not necessarily complete, but attempts to cover a lot of the high level items of this release. There are a lot of minor bug fixes and improvements that went into this rewrite that will not be covered, as well as potientally some breaking changes that are not included in the changelog below.
388
389Although version 2.0 is a full rewrite, the underlying API hasn't changed very much. Things like `Model.scan` or `Model.get` have not changed seamingly at all. The foundational syntax is indentical to version 1.0. This means the majority of breaking changes won't effect most users or will require only minor tweaks.
390
391Please comment or [contact me](https://charlie.fish/contact) if you have any questions or problems with this release.
392
393### General
394
395- Complete rewrite of the codebase!!!
396 - Better conditional support with new `dynamoose.Condition` class
397 - Same familiar API
398- Entirely new [website](https://dynamoosejs.com)
399 - Dark mode 🌑
400 - Edit links on each page to contribute changes and improve documentation
401 - Improved sidebar with easier orgainzation
402 - Links to navigate to next/previous pages on website
403- License has been changed to The Unlicense from MIT
404
405### 🚨 Breaking Changes 🚨
406
407- `dynamoose.setDefaults` has been renamed to `dynamoose.model.defaults.set`
408- `dynamoose.local` has been renamed to `dynamoose.aws.ddb.local`
409- `dynamoose.setDDB` has been renamed to `dynamoose.aws.ddb.set`
410- `dynamoose.revertDDB` has been renamed to `dynamoose.aws.ddb.revert`
411- `dynamoose.AWS.config.update` has been renamed to `dynamoose.aws.sdk.config.update`
412- `dynamoose.ddb` has been renamed to `dynamoose.aws.ddb`
413- `Map` attribute type has been replaced with `Object`
414- `List` attribute type has been replaced with `Array`
415- DynamoDB set types are now returned as JavaScript Set's instead of Array's
416- DynamoDB set types are now defined as `{"type": Set, "schema": [String]}` as opposed to the former `[String]` or `{"type": [String]}`. This is more explict and makes it more clear that the type is a set.
417- Trying to save a Document with a property set to `null` will now throw an error. If you would like to remove the property set it to `dynamoose.UNDEFINED` to set it to undefined without taking into account the `default` setting, or `undefined` to set it to undefined while taking into account the `default` setting.
418- Model `update` setting now includes more update actions. To use the v1 update behavior change the value of `update` setting to be `["ttl", "indexes"]`.
419- Schema `default` value does not pass the model instance into `default` functions any more.
420- `Model.update`
421 - `$LISTAPPEND` has been removed, and `$ADD` now includes the behavior of `$LISTAPPEND`
422 - `$DELETE` has been renamed to `$REMOVE`
423 - `$REMOVE` (previously `$DELETE`) now maps to the correct underlying DynamoDB method instead of the previous behavior of mapping to `$REMOVE`
424 - `$PUT` has been replaced with `$SET`
425- `Model.getTableReq` has been renamed to `Model.table.create.request`
426- `Model.table.create.request` (formerly `Model.getTableReq`) is now an async function
427- `model.originalItem` has been renamed to `model.original` (or `Document.original`)
428- `Document.original` formerly (`model.originalItem`) no longer returns the last item saved, but the item first retrieved from DynamoDB
429- The following Schema settings have been moved to Model settings:
430 - `expires`
431 - `throughput`
432- `expires.ttl` now accepts a number representing milliseconds as opposed to seconds
433- `expires.defaultExpires` is no longer an option (most behavior from this option can be replicated by using the new `dynamoose.UNDEFINED` feature)
434- `expires.returnExpiredItems` has been renamed to `expires.items.returnExpired`
435- `Model.transaction.conditionCheck` has been renamed to `Model.transaction.condition`
436- `Model.transaction.condition` now accepts a conditional instance instead of an object to specify the conditional you wish to run
437- In the past the `saveUnknown` option for attribute names would handle all nested properties. Now you must use `*` to indicate one level of wildcard or `**` to indicate infinate levels of wildcard. So if you have an object property (`address`) and want to parse one level of values (no sub objects) you can use `address.*`, or `address.**` to all for infinate levels of values (including sub objects)
438- In the past non-string type properties would be implicitly coerced into strings with a call to their `toString()` methods when saved as `String` type attributes. This will now throw a `TypeMismatch` error. Strings should be converted before saving.
439- `useNativeBooleans` & `useDocumentTypes` have been removed from the Model settings
440- `scan.count()` has been removed, and `scan.counts()` has been renamed to `scan.count()`.
441- The attribute types `Array` & `Object` in Dynamoose v1 don't work without a `schema` option in v2
442- `Scan.null` & `Query.null` have been removed. In most cases this can be replaced with `.not().exists()`.
443- Expires TTL value is set to be a default value. In Dynamoose v1 there were cases where expires TTL wouldn't be set, in Dynamoose v2, the behavior of if the Expires TTL is set behaves the same as any default value
444- Custom methods have changed behavior:
445 - `schema.method` is now `model.methods.document`
446 - `schema.statics` is now `model.methods`
447 - Both `model.methods` & `model.methods` have two functions that you call to add & remove methods. `set` & `delete` methods exist on both objects that you can use to add your methods. This is compared to the old system of calling the function for `schema.method` or setting the object for `schema.statics`.
448
449#### Features Removed to be Readded Later
450
451- TypeScript Support (v2.1.0) (coming soon, see more information [here](https://github.com/dynamoose/dynamoose/issues/836))
452- `Model.populate`
453- Plugin Support
454
455### Bug Fixes
456
457- Fixed issue where objects would get stored as a string `[object Object]` instead of the actual object
458
459### Documentation
460
461- Documentation has been rewritten from the ground up to be more clear and provide more examples
462
463### Other
464
465- Dynamoose logo now included in `internal` folder
466- More automated tests which leads to more stablity for Dynamoose (100% code coverage)
467- More resources/documentation have been added regarding project structure
468 - Code of Conduct (CODE_OF_CONDUCT.md)
469 - Contributing Guidelines (CONTRIBUTING.md)
470- Improvements to README
471 - More badges about project state
472 - More information relevant to repository (branch strategy, etc)
473
474---
475
476## [1.11.1](https://github.com/dynamoose/dynamoose/compare/v1.11.0...v1.11.1) (2019-09-05)
477
478
479### Bug Fixes
480
481* fixing model.transaction.conditioncheck ([cc04bee](https://github.com/dynamoose/dynamoose/commit/cc04bee)), closes [#539](https://github.com/dynamoose/dynamoose/issues/539)
482
483# [1.11.0](https://github.com/dynamoose/dynamoose/compare/v1.10.0...v1.11.0) (2019-08-25)
484
485
486### Bug Fixes
487
488* **plugin:** solve problem with rejecting during batchput:called ([be01f8c](https://github.com/dynamoose/dynamoose/commit/be01f8c))
489* **plugin:** solve problem with rejecting during update:called ([959ba8c](https://github.com/dynamoose/dynamoose/commit/959ba8c))
490
491
492### Features
493
494* **plugin:** add batchPut events ([501c689](https://github.com/dynamoose/dynamoose/commit/501c689))
495* **plugin:** add update events ([78e8538](https://github.com/dynamoose/dynamoose/commit/78e8538))
496
497# [1.10.0](https://github.com/dynamoose/dynamoose/compare/v1.9.0...v1.10.0) (2019-06-28)
498
499
500### Features
501
502* **scan:** add Scan.using() for scanning sparse secondary indexes ([cfb5614](https://github.com/dynamoose/dynamoose/commit/cfb5614))
503
504# [1.9.0](https://github.com/dynamoose/dynamoose/compare/v1.8.5...v1.9.0) (2019-06-27)
505
506
507### Features
508
509* **schema:** change the way attributes are set by parseDynamo function ([b8d1737](https://github.com/dynamoose/dynamoose/commit/b8d1737))
510
511## [1.8.5](https://github.com/dynamoose/dynamoose/compare/v1.8.4...v1.8.5) (2019-06-25)
512
513
514### Bug Fixes
515
516* **schema:** fixed circular reference with `JSON.stringify` in Schema ([3f614f0](https://github.com/dynamoose/dynamoose/commit/3f614f0))
517
518## [1.8.4](https://github.com/dynamoose/dynamoose/compare/v1.8.3...v1.8.4) (2019-06-23)
519
520
521### Bug Fixes
522
523* change originalItem from being static ([44a5b6b](https://github.com/dynamoose/dynamoose/commit/44a5b6b))
524
525## [1.8.3](https://github.com/dynamoose/dynamoose/compare/v1.8.2...v1.8.3) (2019-06-22)
526
527
528### Bug Fixes
529
530* **types:** add property to interface ([0c05751](https://github.com/dynamoose/dynamoose/commit/0c05751)), closes [#617](https://github.com/dynamoose/dynamoose/issues/617)
531
532## [1.8.2](https://github.com/dynamoose/dynamoose/compare/v1.8.1...v1.8.2) (2019-06-22)
533
534
535### Bug Fixes
536
537* **dynamoose.ts.d:** Add/fix TypeScript types ([e7472a7](https://github.com/dynamoose/dynamoose/commit/e7472a7))
538
539## [1.8.1](https://github.com/dynamoose/dynamoose/compare/v1.8.0...v1.8.1) (2019-06-22)
540
541
542### Bug Fixes
543
544* **types:** added streamOptions to ModelOption ([a85780a](https://github.com/dynamoose/dynamoose/commit/a85780a))
545
546# [1.8.0](https://github.com/dynamoose/dynamoose/compare/v1.7.3...v1.8.0) (2019-06-11)
547
548
549### Features
550
551* **plugin:** item prop for model:put put:called ([5043cf3](https://github.com/dynamoose/dynamoose/commit/5043cf3))
552
553## [1.7.3](https://github.com/dynamoose/dynamoose/compare/v1.7.2...v1.7.3) (2019-05-15)
554
555
556### Bug Fixes
557
558* **model:** allows string for array attribute in contains condition ([f68c13a](https://github.com/dynamoose/dynamoose/commit/f68c13a))
559
560## [1.7.2](https://github.com/dynamoose/dynamoose/compare/v1.7.1...v1.7.2) (2019-03-18)
561
562
563### Bug Fixes
564
565* **types:** minor updates to typings ([63bb60d](https://github.com/dynamoose/dynamoose/commit/63bb60d)), closes [#599](https://github.com/dynamoose/dynamoose/issues/599) [#600](https://github.com/dynamoose/dynamoose/issues/600)
566
567## [1.7.1](https://github.com/dynamoose/dynamoose/compare/v1.7.0...v1.7.1) (2019-03-18)
568
569
570### Bug Fixes
571
572* **naming:** remove extension from name ([ca346d0](https://github.com/dynamoose/dynamoose/commit/ca346d0))
573
574# [1.7.0](https://github.com/dynamoose/dynamoose/compare/v1.6.5...v1.7.0) (2019-03-18)
575
576
577### Features
578
579* **ts:** adding ts testing, compiling and exports ([0d2ef68](https://github.com/dynamoose/dynamoose/commit/0d2ef68))
580* **ts:** fix ci script to also lint typescript ([992c7ff](https://github.com/dynamoose/dynamoose/commit/992c7ff))
581* **ts:** fixing spelling ([e087570](https://github.com/dynamoose/dynamoose/commit/e087570))
582
583## [1.6.5](https://github.com/dynamoose/dynamoose/compare/v1.6.4...v1.6.5) (2019-03-03)
584
585
586### Bug Fixes
587
588* **comment:** fix comments in pr ([68d757b](https://github.com/dynamoose/dynamoose/commit/68d757b))
589* **index:** fixing styling and content ([75ea512](https://github.com/dynamoose/dynamoose/commit/75ea512))
590
591## [1.6.4](https://github.com/dynamoose/dynamoose/compare/v1.6.3...v1.6.4) (2019-02-19)
592
593
594### Bug Fixes
595
596* stop conditions being overwritten ([966d7bc](https://github.com/dynamoose/dynamoose/commit/966d7bc))
597* **lint:** increase limit for Model test file ([907b8a6](https://github.com/dynamoose/dynamoose/commit/907b8a6))
598
599## [1.6.3](https://github.com/dynamoose/dynamoose/compare/v1.6.2...v1.6.3) (2019-02-18)
600
601
602### Bug Fixes
603
604* **model:** fixing batchDelete syntax bug ([dfb448f](https://github.com/dynamoose/dynamoose/commit/dfb448f))
605* **model:** fixing update and condition check syntax bug ([74623bf](https://github.com/dynamoose/dynamoose/commit/74623bf))
606
607## [1.6.2](https://github.com/dynamoose/dynamoose/compare/v1.6.1...v1.6.2) (2019-02-13)
608
609
610### Bug Fixes
611
612* **saveunknown:** fixing saveunknown toDynamo for maps ([873a6ed](https://github.com/dynamoose/dynamoose/commit/873a6ed)), closes [#323](https://github.com/dynamoose/dynamoose/issues/323)
613
614## Version 1.5.2
615
616This is a minor bug fix for Plugins, and also adds some other improvements for plugins and other parts of the app.
617
618Please comment or [contact me](https://charlie.fish/contact) if you have any questions about this release.
619
620### General
621
622- **[Plugin shouldContinue Fix & Other Improvements](https://github.com/dynamoose/dynamoose/pull/564)** #564
623
624---
625
626## Version 1.5.1
627
628This is a minor release with documentation and project improvements.
629
630Please comment or [contact me](https://charlie.fish/contact) if you have any questions about this release.
631
632### Documentation
633
634- **[Add constructor for model schema types in TypeScript](https://github.com/dynamoose/dynamoose/pull/547)** #547
635- **[Defined dynamoose transaction in dynamoose.d.ts](https://github.com/dynamoose/dynamoose/pull/540)** #540
636- **[Documentation Improvements](https://github.com/dynamoose/dynamoose/pull/561)** #561
637
638### Other
639
640- **[ESLint](https://github.com/dynamoose/dynamoose/pull/557)** #557
641- **[Project Improvements](https://github.com/dynamoose/dynamoose/pull/558)** #558
642- **[Updating issue template with warning about not filling out fields](https://github.com/dynamoose/dynamoose/pull/538)** #538
643- **[Updating Dependencies](https://github.com/dynamoose/dynamoose/pull/562)** #562
644- **[Refactor transactions tests to use DynamoDB Local tests](https://github.com/dynamoose/dynamoose/pull/563)** #563
645
646---
647
648## Version 1.5.0
649
650This release adds support for `list_append` when adding elements to a list using the `Model.update` method.
651
652Please comment or [contact me](https://charlie.fish/contact) if you have any questions about this release.
653
654### General
655
656- **[Adding support for list_append](https://github.com/dynamoose/dynamoose/pull/544)** #544
657
658---
659
660## Version 1.4.0
661
662This version adds some more options to the model and schema options objects.
663
664Please comment or [contact me](https://charlie.fish/contact) if you have any questions about this release.
665
666### General
667
668- **[errorUnknown](https://github.com/dynamoose/dynamoose/pull/531)** #531
669- **[defaultReturnValues](https://github.com/dynamoose/dynamoose/pull/533)** #533
670
671---
672
673## Version 1.3.1
674
675Just a simple bug fix release!
676
677Please comment or [contact me](https://charlie.fish/contact) if you have any questions about this release.
678
679### Bug Fixes
680
681- **[Make saveUnknown work recursively](https://github.com/dynamoose/dynamoose/pull/522)** #522
682- **[Always use Array.isArray to check if array](https://github.com/dynamoose/dynamoose/pull/521)** #521
683- **[Fix error logging for data/schema mismatch](https://github.com/dynamoose/dynamoose/pull/518)** #518
684- **[Changing to not update timestamps when scaning or querying with filter](https://github.com/dynamoose/dynamoose/pull/510)** #510
685
686### Documentation
687
688- **[dynamoose.d.ts allow validate property on schema to return promise as well as raw boolean](https://github.com/dynamoose/dynamoose/pull/520)** #520
689- **[update typescript typings to allow `ON_DEMAND` throughput in SchemaOptions](https://github.com/dynamoose/dynamoose/pull/530)** #530
690
691### Other
692
693- **[Add error when not missing hash key for Model.get](https://github.com/dynamoose/dynamoose/pull/524)** #524
694
695---
696
697## Version 1.3.0
698
699Dynamoose Version 1.3.0 finishes implementation of some important features (DynamoDB transaction support, and pay per request billing mode), improves the overall stability of the project (reduces NPM package size, bug fixes, throwing more errors), along many more improvements.
700
701Please comment or contact me if you have any questions about this release.
702
703### General
704
705- **[RAW DynamoDB Transaction Item Support](https://github.com/dynamoose/dynamoose/pull/486)** #486
706- **[Model.transaction.conditionCheck](https://github.com/dynamoose/dynamoose/pull/485)** #485
707- **[Async Schema Methods](https://github.com/dynamoose/dynamoose/pull/492)** #492
708- **[Reducing Size of NPM Package](https://github.com/dynamoose/dynamoose/pull/484)** #484
709- **[Raise error if list or map not provided](https://github.com/dynamoose/dynamoose/pull/443)** #443
710
711### Bug Fixes
712
713- **[Fix support for PAY_PER_REQUEST BillingMode when Model includes Global Secondary Indexes](https://github.com/dynamoose/dynamoose/pull/504)** #504
714- **[Fixing problem where if primary key starts with underscore Model.create doesn’t work](https://github.com/dynamoose/dynamoose/pull/502)** #502
715
716### Other
717
718- **[Pin & Update Dependency Versions](https://github.com/dynamoose/dynamoose/pull/487)** #487
719- **[Creating release notes template](https://github.com/dynamoose/dynamoose/pull/482)** #482
720- **[Project Cleanup](https://github.com/dynamoose/dynamoose/pull/483)** #483
721
722### Documentation
723
724- **[Adding documentation for query.using method](https://github.com/dynamoose/dynamoose/pull/489)** #489
725- **[Adding documentation for populating an array of items](https://github.com/dynamoose/dynamoose/pull/493)** #493
726- **[Fixes a typo in Model.update documentation](https://github.com/dynamoose/dynamoose/pull/506)** #506
727
728---
729
730## Version 1.2.0
731
732AWS reInvent 2018 has wrapped up, and this release includes support for all of the DynamoDB goodies announced. This version also includes beta support for plugins! Plugin support has the potential to have breaking changes in the future with no warning, so please be aware of that when using the system. Please give feedback on plugins by creating issues on the Dynamoose repository.
733
734Please comment or [contact me](https://charlie.fish/contact) if you have any questions about this release.
735
736### Major New Features
737
738- **[DynamoDB Transaction Support](https://github.com/dynamoose/dynamoose/pull/472)** #472
739- **[DynamoDB On-Demand Support](https://github.com/dynamoose/dynamoose/pull/471)** #471
740- **[Plugins - BETA](https://github.com/dynamoose/dynamoose/pull/325)** #325
741
742### General
743
744- **[ES6 Template Literals](https://github.com/dynamoose/dynamoose/pull/465)** #465
745
746### Bug Fixes
747
748- **[Return LastKey when using RAW Scan](https://github.com/dynamoose/dynamoose/pull/475)** #475
749- **[Sorting index project array before comparing](https://github.com/dynamoose/dynamoose/pull/455)** #455
750
751### Other
752
753- **[Adding Node.js version 11 to Travis CI test suite](https://github.com/dynamoose/dynamoose/pull/468)** #468
754- **[Adding more NPM Keywords](https://github.com/dynamoose/dynamoose/pull/469)** #469
755- **[Updating NPM Dependencies](https://github.com/dynamoose/dynamoose/pull/466)** #466 #473
756
757---
758
759## Version 1.1.0
760
761Dynamoose version 1.1.0 has a few improvements for debugging Dynamoose as well as a few new features.
762
763Please comment or [contact me](https://charlie.fish/contact) if you have any questions about this release.
764
765### General
766
767- **[Update batchPut to work with timestamps](https://github.com/automategreen/dynamoose/pull/449)** #449
768- **[Adding expires defaultExpires function](https://github.com/automategreen/dynamoose/pull/452)** #452
769- **[Make debugging index creation dramatically easier](https://github.com/automategreen/dynamoose/pull/440)** #440
770- **[Adding debug messages for setDDB and revertDDB](https://github.com/dynamoose/dynamoose/pull/451)** #451
771
772---
773
774## Version 1.0.1
775
776Dynamoose version 1.0.1 comes with some minor bug fixes to solve problems with Dynamoose version 1.0.0. We are actively monitoring the [GitHub Issues](https://github.com/dynamoose/dynamoose/issues) and will continue to work to provide bug fixes as fast as possible. Please create a [GitHub Issue](https://github.com/dynamoose/dynamoose/issues) or [contact me](https://charlie.fish/contact) if you are having problems and we will work to address it as fast as possible.
777
778### Bug Fixes
779
780- **[Fix saveUnknown throwing errors when value where falsy](https://github.com/automategreen/dynamoose/pull/442)** #442
781
782### Documentation
783
784- **[Fix model update add documentation](https://github.com/automategreen/dynamoose/pull/438)** #438
785
786---
787
788## Version 1.0.0
789
790Dynamoose version 1.0.0 is here. This is a **massive** release, and will also be the first official breaking update to Dynamoose. You can view the details about the release below.
791
792This version officially removes support for Node.js versions below 8.0. Versions below 8.0 _might_ work, but we do not make guarantees. Even if Node.js versions below 8.0 work with Dynamoose 1.0+ we might add features that break support for older Node.js versions _without_ a SEMVER major version release.
793
794The one major thing about the release notes below that is a bit confusing is the fact that `ES6/Future Changes` are in the `Breaking changes` section. That section is directly related to `Requiring Node.js version 8.0 and higher`. Therefor although the breaking change is technically the fact that Node.js versions less than 8.0 won't be supported, they are directly related, therefor they are both in the `Breaking changes` section. In future 1.x we might add more ES6/Future Changes, but those will not be considered breaking changes due to the fact that it will only break if you are running on a Node.js version less than version 8.0.
795
796Please comment or [contact me](https://charlie.fish/contact) if you have any questions about this release.
797
798### 🚨 Breaking changes 🚨
799
800- **[Requiring Node.js version 8.0 and higher](https://github.com/automategreen/dynamoose/pull/366)** #366
801- **[Toggle useDocumentTypes and useNativeBooleans defaults to true](https://github.com/dynamoose/dynamoose/pull/376)** #376
802- **[Query.all and Scan.all Delay Seconds to Milliseconds](https://github.com/automategreen/dynamoose/pull/287)** #287
803- **[Fix data corruption when storing binary data](https://github.com/automategreen/dynamoose/pull/386)** #386
804
805### Major New Features
806
807- **[Adding updateTimestamps option to Model.save](https://github.com/automategreen/dynamoose/pull/317)** #317
808- **[Feature/add enum attribute](https://github.com/automategreen/dynamoose/pull/274)** #274
809- **[`model.originalItem() `](https://github.com/automategreen/dynamoose/pull/338)** #338
810
811### General
812
813- **[Adding support for saveUnknown being an array](https://github.com/automategreen/dynamoose/pull/333)** #333
814- **[DynamoDB Document Client/DAX Support](https://github.com/automategreen/dynamoose/pull/330)** #330
815- **[Adding better error handling for parsing invalid data from DynamoDB](https://github.com/automategreen/dynamoose/pull/331)** #331
816- **[Adding support for SSESpecification](https://github.com/automategreen/dynamoose/pull/306)** #306
817- **[Adding support for DynamoDB table streams](https://github.com/automategreen/dynamoose/pull/332)** #332
818- **[`Model.getTableReq()`](https://github.com/automategreen/dynamoose/pull/308)** #308 #151
819- **[Static methods are automatically bound with the context of their Model](https://github.com/automategreen/dynamoose/pull/361)** #361
820- **[Recreate dynamo db instance on .local()](https://github.com/automategreen/dynamoose/pull/354)** #354
821- **[added support for specifying the ReturnValues option in update](https://github.com/automategreen/dynamoose/pull/350)** #350
822- **[Expose Model classes to Schema methods](https://github.com/automategreen/dynamoose/pull/400)** #400 #397
823- **[Refactoring custom error code](https://github.com/automategreen/dynamoose/pull/414)** #414
824- **[Saying which table is effected by Error](https://github.com/automategreen/dynamoose/pull/356)** #356
825- **[Adding expires returnExpiredItems property](https://github.com/automategreen/dynamoose/pull/426)** #426
826- **[DDB Functions](https://github.com/automategreen/dynamoose/pull/429)** #429
827- **[Updates Expires attribute on Model Updates Option](https://github.com/automategreen/dynamoose/pull/420)** #420
828- ES6/Future Changes
829 - **[`let`/`const`](https://github.com/automategreen/dynamoose/pull/410)** #410
830 - **[Removing Lodash](https://github.com/automategreen/dynamoose/pull/411)** #411
831 - **[Removing self = this in favor of arrow functions](https://github.com/automategreen/dynamoose/pull/412)** #412
832
833### Bug Fixes
834
835- **[Fix saveUnknown throwing errors when value where falsy](https://github.com/automategreen/dynamoose/pull/336)** #336
836- **[Fix scanByRawFilter containing - Select: 'COUNT'](https://github.com/automategreen/dynamoose/pull/341)** #341
837- **[Fix loading document type attributes from DynamoDB when when saveUnknown=true](https://github.com/automategreen/dynamoose/pull/339)** #339
838- **[Fix the ModelError type](https://github.com/automategreen/dynamoose/pull/374)** #374
839- **[Fixes falsy key value for batch get](https://github.com/automategreen/dynamoose/pull/379)** #379
840- **[Fix serverSideEncryption option](https://github.com/automategreen/dynamoose/pull/383)** #383
841- **[Using Buffer.from instead of new Buffer](https://github.com/automategreen/dynamoose/pull/413)** #413
842- **[Fixing issue with query with multiple indexes](https://github.com/automategreen/dynamoose/pull/344)** #344 #343
843- **[Save unknown update](https://github.com/automategreen/dynamoose/pull/431)** #431 #403
844- **[Fixing typo related to stream options](https://github.com/automategreen/dynamoose/pull/432)** #432 #430
845
846### Documentation
847
848- **[Improving Model.delete documentation](https://github.com/automategreen/dynamoose/pull/309)** #309
849- **Updated TypeScript types** #358 #357
850- **[Updating typescript documentation for create vs put overwrite default](https://github.com/automategreen/dynamoose/pull/377)** #377 #359
851- **[GitHub issue and PR templates](https://github.com/automategreen/dynamoose/pull/394)** #394 #405
852- **[Updating metadata](https://github.com/automategreen/dynamoose/pull/369)** #369
853- **[Change QueryKey and ScanKey type to any](https://github.com/automategreen/dynamoose/pull/419)** #419
854
855### Other
856
857- **[General project work](https://github.com/automategreen/dynamoose/pull/409)** #409
858
859---
860
861## Version 0.8.7
862
863Version 0.8.7 is here! Below is a list of the changes released in Version 0.8.7. Huge **THANK YOU** to everyone who submitted pull requests and issues in this release. As always keep the issues and pull requests coming, only makes this package better!!
864
865### Major New Features
866
867- **[Adding support for `Query.all()`](https://github.com/dynamoose/dynamoose/pull/223)** #223
868 - **[Adding `Query.all()` to documentation](https://github.com/dynamoose/dynamoose/pull/285)** #285
869 - **[Changing `Query.all()` timesScanned to timesQueried](https://github.com/dynamoose/dynamoose/pull/286)** #286
870- **[Suffix Option](https://github.com/dynamoose/dynamoose/pull/321)** #321
871
872### General
873
874- **[Catch corrupted JSON error](https://github.com/dynamoose/dynamoose/pull/243)** #243 #242
875- **[Pass model instance directly to schema::attributeFromDynamo](https://github.com/dynamoose/dynamoose/pull/257)** #257
876- **[Fix range key on queries](https://github.com/dynamoose/dynamoose/pull/225)** #225
877- **[Provide model when converting keys .toDynamo](https://github.com/dynamoose/dynamoose/pull/217)** #217
878- **[Normalise Scan response shape when using "RawAWSFilter"](https://github.com/dynamoose/dynamoose/pull/320)** #320
879- **[Remove JSON.stringify for model in Debug message](https://github.com/dynamoose/dynamoose/pull/277)** #277
880- **[Set NewModel.name to include table name](https://github.com/dynamoose/dynamoose/pull/300)** #300
881- **[Allow unknown types to be populated as native dynamo types](https://github.com/dynamoose/dynamoose/pull/240)** #240
882- **[Competition of `.populate` method](https://github.com/dynamoose/dynamoose/pull/250)** #250
883
884
885### Documentation
886
887- **[Adding Model.queryOne to docs](https://github.com/dynamoose/dynamoose/pull/298)** #298
888- **[Schema Get Function Clarification](https://github.com/dynamoose/dynamoose/pull/291)** #291
889- **[Fixed Typo in README](https://github.com/dynamoose/dynamoose/pull/282)** #282
890- **[Better Static method example (`getAll`)](https://github.com/dynamoose/dynamoose/pull/284)** #284
891- **[Added Dynamoose Gitter chat badge to README](https://github.com/dynamoose/dynamoose/pull/247)** #247
892- **[Improving README badges on retina displays](https://github.com/dynamoose/dynamoose/pull/229)** #229
893- **[Moving ChangeLog and Roadmap to separate files](https://github.com/dynamoose/dynamoose/pull/305)** #305
894- **[Moving Examples to Website](https://github.com/dynamoose/dynamoose/pull/304)** #304
895- **[Adding AWS X-Ray Support documentation](https://github.com/dynamoose/dynamoose/pull/307)** #307 #144
896- **[Throughput is only respected on table creation](https://github.com/dynamoose/dynamoose/pull/316)** #316 #311
897
898
899### Testing
900
901- **[More Query tests](https://github.com/dynamoose/dynamoose/pull/290)** #290
902- **[Even more Query tests](https://github.com/dynamoose/dynamoose/pull/310)** #310
903- **[Fixing issue where some scan tests weren't being run correctly](https://github.com/dynamoose/dynamoose/pull/289)** #289
904- **[Switch to NYC (istanbul) for unit test coverage](https://github.com/dynamoose/dynamoose/pull/219)** #219
905- **[Enable unit test code coverage reporting](https://github.com/dynamoose/dynamoose/pull/215)** #215
906- **[Scan test to ensure all with delay and limit works correctly](https://github.com/dynamoose/dynamoose/pull/314)** #314
907
908
909### TypeScript Improvements
910
911- **[Nested Properties Schema Support](https://github.com/dynamoose/dynamoose/pull/258)** #258
912- **[Option fields optional, and added overloaded create function](https://github.com/dynamoose/dynamoose/pull/245)** #245
913- **[Improve the typing support for `.model()`](https://github.com/dynamoose/dynamoose/pull/234)** #234 #233
914- **[Allow update partial data](https://github.com/dynamoose/dynamoose/pull/319)** #319
915- **[Adds `ddb` interface](https://github.com/dynamoose/dynamoose/pull/280)** #280
916
917---
918
919## 0.8.0
920
921- useNativeBooleans [#55](//github.com/dynamoose/dynamoose/issues/55)
922- saveUnknown [#125](//github.com/dynamoose/dynamoose/issues/125)
923- Support for multiple indexes defined on the hashkey attribute of the table
924- scan.all() [#93](//github.com/dynamoose/dynamoose/issues/93) [#140](//github.com/dynamoose/dynamoose/issues/140)
925- scan.parallel [d7f7f77](//github.com/dynamoose/dynamoose/commit/d7f7f77)
926- TTL support [92994f1](//github.com/dynamoose/dynamoose/commit/92994f1)
927- added schema parsing overrides [#145](//github.com/dynamoose/dynamoose/issues/145)
928- populate [#137](//github.com/dynamoose/dynamoose/issues/137)
929- Added consistent() to scan. [#15](//github.com/dynamoose/dynamoose/issues/15) [#142](//github.com/dynamoose/dynamoose/issues/142)
930- Default function enhancements [#127](//github.com/dynamoose/dynamoose/issues/127)
931- Create required attributes on update [#96](//github.com/dynamoose/dynamoose/issues/96)
932- Add typescript typings [#123](//github.com/dynamoose/dynamoose/issues/123)
933- Added .count() for Query and Scan [#101](//github.com/dynamoose/dynamoose/issues/101)
934- Nested scans [#141](//github.com/dynamoose/dynamoose/issues/141) [#158](//github.com/dynamoose/dynamoose/issues/158)