UNPKG

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