UNPKG

30.4 kBMarkdownView Raw
1# Dynamoose Changelog
2
3---
4
5## Version 2.0.0
6
7Version 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.
8
9Although 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.
10
11Please comment or [contact me](https://charlie.fish/contact) if you have any questions or problems with this release.
12
13### General
14
15- Complete rewrite of the codebase!!!
16 - Better conditional support with new `dynamoose.Condition` class
17 - Same familiar API
18- Entirely new [website](https://dynamoosejs.com)
19 - Dark mode 🌑
20 - Edit links on each page to contribute changes and improve documentation
21 - Improved sidebar with easier orgainzation
22 - Links to navigate to next/previous pages on website
23- License has been changed to The Unlicense from MIT
24
25### 🚨 Breaking Changes 🚨
26
27- `dynamoose.setDefaults` has been renamed to `dynamoose.model.defaults.set`
28- `dynamoose.local` has been renamed to `dynamoose.aws.ddb.local`
29- `dynamoose.setDDB` has been renamed to `dynamoose.aws.ddb.set`
30- `dynamoose.revertDDB` has been renamed to `dynamoose.aws.ddb.revert`
31- `dynamoose.AWS.config.update` has been renamed to `dynamoose.aws.sdk.config.update`
32- `dynamoose.ddb` has been renamed to `dynamoose.aws.ddb`
33- `Map` attribute type has been replaced with `Object`
34- `List` attribute type has been replaced with `Array`
35- DynamoDB set types are now returned as JavaScript Set's instead of Array's
36- 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.
37- 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.
38- Model `update` setting now includes more update actions. To use the v1 update behavior change the value of `update` setting to be `["ttl", "indexes"]`.
39- Schema `default` value does not pass the model instance into `default` functions any more.
40- `Model.update`
41 - `$LISTAPPEND` has been removed, and `$ADD` now includes the behavior of `$LISTAPPEND`
42 - `$DELETE` has been renamed to `$REMOVE`
43 - `$REMOVE` (previously `$DELETE`) now maps to the correct underlying DynamoDB method instead of the previous behavior of mapping to `$REMOVE`
44 - `$PUT` has been replaced with `$SET`
45- `Model.getTableReq` has been renamed to `Model.table.create.request`
46- `Model.table.create.request` (formerly `Model.getTableReq`) is now an async function
47- `model.originalItem` has been renamed to `model.original` (or `Document.original`)
48- `Document.original` formerly (`model.originalItem`) no longer returns the last item saved, but the item first retrieved from DynamoDB
49- The following Schema settings have been moved to Model settings:
50 - `expires`
51 - `throughput`
52- `expires.ttl` now accepts a number representing milliseconds as opposed to seconds
53- `expires.defaultExpires` is no longer an option (most behavior from this option can be replicated by using the new `dynamoose.UNDEFINED` feature)
54- `expires.returnExpiredItems` has been renamed to `expires.items.returnExpired`
55- `Model.transaction.conditionCheck` has been renamed to `Model.transaction.condition`
56- `Model.transaction.condition` now accepts a conditional instance instead of an object to specify the conditional you wish to run
57- 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)
58- `useNativeBooleans` & `useDocumentTypes` have been removed from the Model settings
59- `scan.count()` has been removed, and `scan.counts()` has been renamed to `scan.count()`.
60- The attribute types `Array` & `Object` in Dynamoose v1 don't work without a `schema` option in v2
61- `Scan.null` & `Query.null` have been removed. In most cases this can be replaced with `.not().exists()`.
62- 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
63- Custom methods have changed behavior:
64 - `schema.method` is now `model.methods.document`
65 - `schema.statics` is now `model.methods`
66 - 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`.
67
68#### Features Removed to be Readded Later
69
70- TypeScript Support (v2.1.0) (coming soon, see more information [here](https://github.com/dynamoose/dynamoose/issues/836))
71- `Model.populate`
72- Plugin Support
73
74### Bug Fixes
75
76- Fixed issue where objects would get stored as a string `[object Object]` instead of the actual object
77
78### Documentation
79
80- Documentation has been rewritten from the ground up to be more clear and provide more examples
81
82### Other
83
84- Dynamoose logo now included in `internal` folder
85- More automated tests which leads to more stablity for Dynamoose (100% code coverage)
86- More resources/documentation have been added regarding project structure
87 - Code of Conduct (CODE_OF_CONDUCT.md)
88 - Contributing Guidelines (CONTRIBUTING.md)
89- Improvements to README
90 - More badges about project state
91 - More information relevant to repository (branch strategy, etc)
92
93---
94
95## [1.11.1](https://github.com/dynamoose/dynamoose/compare/v1.11.0...v1.11.1) (2019-09-05)
96
97
98### Bug Fixes
99
100* fixing model.transaction.conditioncheck ([cc04bee](https://github.com/dynamoose/dynamoose/commit/cc04bee)), closes [#539](https://github.com/dynamoose/dynamoose/issues/539)
101
102# [1.11.0](https://github.com/dynamoose/dynamoose/compare/v1.10.0...v1.11.0) (2019-08-25)
103
104
105### Bug Fixes
106
107* **plugin:** solve problem with rejecting during batchput:called ([be01f8c](https://github.com/dynamoose/dynamoose/commit/be01f8c))
108* **plugin:** solve problem with rejecting during update:called ([959ba8c](https://github.com/dynamoose/dynamoose/commit/959ba8c))
109
110
111### Features
112
113* **plugin:** add batchPut events ([501c689](https://github.com/dynamoose/dynamoose/commit/501c689))
114* **plugin:** add update events ([78e8538](https://github.com/dynamoose/dynamoose/commit/78e8538))
115
116# [1.10.0](https://github.com/dynamoose/dynamoose/compare/v1.9.0...v1.10.0) (2019-06-28)
117
118
119### Features
120
121* **scan:** add Scan.using() for scanning sparse secondary indexes ([cfb5614](https://github.com/dynamoose/dynamoose/commit/cfb5614))
122
123# [1.9.0](https://github.com/dynamoose/dynamoose/compare/v1.8.5...v1.9.0) (2019-06-27)
124
125
126### Features
127
128* **schema:** change the way attributes are set by parseDynamo function ([b8d1737](https://github.com/dynamoose/dynamoose/commit/b8d1737))
129
130## [1.8.5](https://github.com/dynamoose/dynamoose/compare/v1.8.4...v1.8.5) (2019-06-25)
131
132
133### Bug Fixes
134
135* **schema:** fixed circular reference with `JSON.stringify` in Schema ([3f614f0](https://github.com/dynamoose/dynamoose/commit/3f614f0))
136
137## [1.8.4](https://github.com/dynamoose/dynamoose/compare/v1.8.3...v1.8.4) (2019-06-23)
138
139
140### Bug Fixes
141
142* change originalItem from being static ([44a5b6b](https://github.com/dynamoose/dynamoose/commit/44a5b6b))
143
144## [1.8.3](https://github.com/dynamoose/dynamoose/compare/v1.8.2...v1.8.3) (2019-06-22)
145
146
147### Bug Fixes
148
149* **types:** add property to interface ([0c05751](https://github.com/dynamoose/dynamoose/commit/0c05751)), closes [#617](https://github.com/dynamoose/dynamoose/issues/617)
150
151## [1.8.2](https://github.com/dynamoose/dynamoose/compare/v1.8.1...v1.8.2) (2019-06-22)
152
153
154### Bug Fixes
155
156* **dynamoose.ts.d:** Add/fix TypeScript types ([e7472a7](https://github.com/dynamoose/dynamoose/commit/e7472a7))
157
158## [1.8.1](https://github.com/dynamoose/dynamoose/compare/v1.8.0...v1.8.1) (2019-06-22)
159
160
161### Bug Fixes
162
163* **types:** added streamOptions to ModelOption ([a85780a](https://github.com/dynamoose/dynamoose/commit/a85780a))
164
165# [1.8.0](https://github.com/dynamoose/dynamoose/compare/v1.7.3...v1.8.0) (2019-06-11)
166
167
168### Features
169
170* **plugin:** item prop for model:put put:called ([5043cf3](https://github.com/dynamoose/dynamoose/commit/5043cf3))
171
172## [1.7.3](https://github.com/dynamoose/dynamoose/compare/v1.7.2...v1.7.3) (2019-05-15)
173
174
175### Bug Fixes
176
177* **model:** allows string for array attribute in contains condition ([f68c13a](https://github.com/dynamoose/dynamoose/commit/f68c13a))
178
179## [1.7.2](https://github.com/dynamoose/dynamoose/compare/v1.7.1...v1.7.2) (2019-03-18)
180
181
182### Bug Fixes
183
184* **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)
185
186## [1.7.1](https://github.com/dynamoose/dynamoose/compare/v1.7.0...v1.7.1) (2019-03-18)
187
188
189### Bug Fixes
190
191* **naming:** remove extension from name ([ca346d0](https://github.com/dynamoose/dynamoose/commit/ca346d0))
192
193# [1.7.0](https://github.com/dynamoose/dynamoose/compare/v1.6.5...v1.7.0) (2019-03-18)
194
195
196### Features
197
198* **ts:** adding ts testing, compiling and exports ([0d2ef68](https://github.com/dynamoose/dynamoose/commit/0d2ef68))
199* **ts:** fix ci script to also lint typescript ([992c7ff](https://github.com/dynamoose/dynamoose/commit/992c7ff))
200* **ts:** fixing spelling ([e087570](https://github.com/dynamoose/dynamoose/commit/e087570))
201
202## [1.6.5](https://github.com/dynamoose/dynamoose/compare/v1.6.4...v1.6.5) (2019-03-03)
203
204
205### Bug Fixes
206
207* **comment:** fix comments in pr ([68d757b](https://github.com/dynamoose/dynamoose/commit/68d757b))
208* **index:** fixing styling and content ([75ea512](https://github.com/dynamoose/dynamoose/commit/75ea512))
209
210## [1.6.4](https://github.com/dynamoose/dynamoose/compare/v1.6.3...v1.6.4) (2019-02-19)
211
212
213### Bug Fixes
214
215* stop conditions being overwritten ([966d7bc](https://github.com/dynamoose/dynamoose/commit/966d7bc))
216* **lint:** increase limit for Model test file ([907b8a6](https://github.com/dynamoose/dynamoose/commit/907b8a6))
217
218## [1.6.3](https://github.com/dynamoose/dynamoose/compare/v1.6.2...v1.6.3) (2019-02-18)
219
220
221### Bug Fixes
222
223* **model:** fixing batchDelete syntax bug ([dfb448f](https://github.com/dynamoose/dynamoose/commit/dfb448f))
224* **model:** fixing update and condition check syntax bug ([74623bf](https://github.com/dynamoose/dynamoose/commit/74623bf))
225
226## [1.6.2](https://github.com/dynamoose/dynamoose/compare/v1.6.1...v1.6.2) (2019-02-13)
227
228
229### Bug Fixes
230
231* **saveunknown:** fixing saveunknown toDynamo for maps ([873a6ed](https://github.com/dynamoose/dynamoose/commit/873a6ed)), closes [#323](https://github.com/dynamoose/dynamoose/issues/323)
232
233## Version 1.5.2
234
235This is a minor bug fix for Plugins, and also adds some other improvements for plugins and other parts of the app.
236
237Please comment or [contact me](https://charlie.fish/contact) if you have any questions about this release.
238
239### General
240
241- **[Plugin shouldContinue Fix & Other Improvements](https://github.com/dynamoose/dynamoose/pull/564)** #564
242
243---
244
245## Version 1.5.1
246
247This is a minor release with documentation and project improvements.
248
249Please comment or [contact me](https://charlie.fish/contact) if you have any questions about this release.
250
251### Documentation
252
253- **[Add constructor for model schema types in TypeScript](https://github.com/dynamoose/dynamoose/pull/547)** #547
254- **[Defined dynamoose transaction in dynamoose.d.ts](https://github.com/dynamoose/dynamoose/pull/540)** #540
255- **[Documentation Improvements](https://github.com/dynamoose/dynamoose/pull/561)** #561
256
257### Other
258
259- **[ESLint](https://github.com/dynamoose/dynamoose/pull/557)** #557
260- **[Project Improvements](https://github.com/dynamoose/dynamoose/pull/558)** #558
261- **[Updating issue template with warning about not filling out fields](https://github.com/dynamoose/dynamoose/pull/538)** #538
262- **[Updating Dependencies](https://github.com/dynamoose/dynamoose/pull/562)** #562
263- **[Refactor transactions tests to use DynamoDB Local tests](https://github.com/dynamoose/dynamoose/pull/563)** #563
264
265---
266
267## Version 1.5.0
268
269This release adds support for `list_append` when adding elements to a list using the `Model.update` method.
270
271Please comment or [contact me](https://charlie.fish/contact) if you have any questions about this release.
272
273### General
274
275- **[Adding support for list_append](https://github.com/dynamoose/dynamoose/pull/544)** #544
276
277---
278
279## Version 1.4.0
280
281This version adds some more options to the model and schema options objects.
282
283Please comment or [contact me](https://charlie.fish/contact) if you have any questions about this release.
284
285### General
286
287- **[errorUnknown](https://github.com/dynamoose/dynamoose/pull/531)** #531
288- **[defaultReturnValues](https://github.com/dynamoose/dynamoose/pull/533)** #533
289
290---
291
292## Version 1.3.1
293
294Just a simple bug fix release!
295
296Please comment or [contact me](https://charlie.fish/contact) if you have any questions about this release.
297
298### Bug Fixes
299
300- **[Make saveUnknown work recursively](https://github.com/dynamoose/dynamoose/pull/522)** #522
301- **[Always use Array.isArray to check if array](https://github.com/dynamoose/dynamoose/pull/521)** #521
302- **[Fix error logging for data/schema mismatch](https://github.com/dynamoose/dynamoose/pull/518)** #518
303- **[Changing to not update timestamps when scaning or querying with filter](https://github.com/dynamoose/dynamoose/pull/510)** #510
304
305### Documentation
306
307- **[dynamoose.d.ts allow validate property on schema to return promise as well as raw boolean](https://github.com/dynamoose/dynamoose/pull/520)** #520
308- **[update typescript typings to allow `ON_DEMAND` throughput in SchemaOptions](https://github.com/dynamoose/dynamoose/pull/530)** #530
309
310### Other
311
312- **[Add error when not missing hash key for Model.get](https://github.com/dynamoose/dynamoose/pull/524)** #524
313
314---
315
316## Version 1.3.0
317
318Dynamoose 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.
319
320Please comment or contact me if you have any questions about this release.
321
322### General
323
324- **[RAW DynamoDB Transaction Item Support](https://github.com/dynamoose/dynamoose/pull/486)** #486
325- **[Model.transaction.conditionCheck](https://github.com/dynamoose/dynamoose/pull/485)** #485
326- **[Async Schema Methods](https://github.com/dynamoose/dynamoose/pull/492)** #492
327- **[Reducing Size of NPM Package](https://github.com/dynamoose/dynamoose/pull/484)** #484
328- **[Raise error if list or map not provided](https://github.com/dynamoose/dynamoose/pull/443)** #443
329
330### Bug Fixes
331
332- **[Fix support for PAY_PER_REQUEST BillingMode when Model includes Global Secondary Indexes](https://github.com/dynamoose/dynamoose/pull/504)** #504
333- **[Fixing problem where if primary key starts with underscore Model.create doesn’t work](https://github.com/dynamoose/dynamoose/pull/502)** #502
334
335### Other
336
337- **[Pin & Update Dependency Versions](https://github.com/dynamoose/dynamoose/pull/487)** #487
338- **[Creating release notes template](https://github.com/dynamoose/dynamoose/pull/482)** #482
339- **[Project Cleanup](https://github.com/dynamoose/dynamoose/pull/483)** #483
340
341### Documentation
342
343- **[Adding documentation for query.using method](https://github.com/dynamoose/dynamoose/pull/489)** #489
344- **[Adding documentation for populating an array of items](https://github.com/dynamoose/dynamoose/pull/493)** #493
345- **[Fixes a typo in Model.update documentation](https://github.com/dynamoose/dynamoose/pull/506)** #506
346
347---
348
349## Version 1.2.0
350
351AWS 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.
352
353Please comment or [contact me](https://charlie.fish/contact) if you have any questions about this release.
354
355### Major New Features
356
357- **[DynamoDB Transaction Support](https://github.com/dynamoose/dynamoose/pull/472)** #472
358- **[DynamoDB On-Demand Support](https://github.com/dynamoose/dynamoose/pull/471)** #471
359- **[Plugins - BETA](https://github.com/dynamoose/dynamoose/pull/325)** #325
360
361### General
362
363- **[ES6 Template Literals](https://github.com/dynamoose/dynamoose/pull/465)** #465
364
365### Bug Fixes
366
367- **[Return LastKey when using RAW Scan](https://github.com/dynamoose/dynamoose/pull/475)** #475
368- **[Sorting index project array before comparing](https://github.com/dynamoose/dynamoose/pull/455)** #455
369
370### Other
371
372- **[Adding Node.js version 11 to Travis CI test suite](https://github.com/dynamoose/dynamoose/pull/468)** #468
373- **[Adding more NPM Keywords](https://github.com/dynamoose/dynamoose/pull/469)** #469
374- **[Updating NPM Dependencies](https://github.com/dynamoose/dynamoose/pull/466)** #466 #473
375
376---
377
378## Version 1.1.0
379
380Dynamoose version 1.1.0 has a few improvements for debugging Dynamoose as well as a few new features.
381
382Please comment or [contact me](https://charlie.fish/contact) if you have any questions about this release.
383
384### General
385
386- **[Update batchPut to work with timestamps](https://github.com/automategreen/dynamoose/pull/449)** #449
387- **[Adding expires defaultExpires function](https://github.com/automategreen/dynamoose/pull/452)** #452
388- **[Make debugging index creation dramatically easier](https://github.com/automategreen/dynamoose/pull/440)** #440
389- **[Adding debug messages for setDDB and revertDDB](https://github.com/dynamoose/dynamoose/pull/451)** #451
390
391---
392
393## Version 1.0.1
394
395Dynamoose 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.
396
397### Bug Fixes
398
399- **[Fix saveUnknown throwing errors when value where falsy](https://github.com/automategreen/dynamoose/pull/442)** #442
400
401### Documentation
402
403- **[Fix model update add documentation](https://github.com/automategreen/dynamoose/pull/438)** #438
404
405---
406
407## Version 1.0.0
408
409Dynamoose 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.
410
411This 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.
412
413The 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.
414
415Please comment or [contact me](https://charlie.fish/contact) if you have any questions about this release.
416
417### 🚨 Breaking changes 🚨
418
419- **[Requiring Node.js version 8.0 and higher](https://github.com/automategreen/dynamoose/pull/366)** #366
420- **[Toggle useDocumentTypes and useNativeBooleans defaults to true](https://github.com/dynamoose/dynamoose/pull/376)** #376
421- **[Query.all and Scan.all Delay Seconds to Milliseconds](https://github.com/automategreen/dynamoose/pull/287)** #287
422- **[Fix data corruption when storing binary data](https://github.com/automategreen/dynamoose/pull/386)** #386
423
424### Major New Features
425
426- **[Adding updateTimestamps option to Model.save](https://github.com/automategreen/dynamoose/pull/317)** #317
427- **[Feature/add enum attribute](https://github.com/automategreen/dynamoose/pull/274)** #274
428- **[`model.originalItem() `](https://github.com/automategreen/dynamoose/pull/338)** #338
429
430### General
431
432- **[Adding support for saveUnknown being an array](https://github.com/automategreen/dynamoose/pull/333)** #333
433- **[DynamoDB Document Client/DAX Support](https://github.com/automategreen/dynamoose/pull/330)** #330
434- **[Adding better error handling for parsing invalid data from DynamoDB](https://github.com/automategreen/dynamoose/pull/331)** #331
435- **[Adding support for SSESpecification](https://github.com/automategreen/dynamoose/pull/306)** #306
436- **[Adding support for DynamoDB table streams](https://github.com/automategreen/dynamoose/pull/332)** #332
437- **[`Model.getTableReq()`](https://github.com/automategreen/dynamoose/pull/308)** #308 #151
438- **[Static methods are automatically bound with the context of their Model](https://github.com/automategreen/dynamoose/pull/361)** #361
439- **[Recreate dynamo db instance on .local()](https://github.com/automategreen/dynamoose/pull/354)** #354
440- **[added support for specifying the ReturnValues option in update](https://github.com/automategreen/dynamoose/pull/350)** #350
441- **[Expose Model classes to Schema methods](https://github.com/automategreen/dynamoose/pull/400)** #400 #397
442- **[Refactoring custom error code](https://github.com/automategreen/dynamoose/pull/414)** #414
443- **[Saying which table is effected by Error](https://github.com/automategreen/dynamoose/pull/356)** #356
444- **[Adding expires returnExpiredItems property](https://github.com/automategreen/dynamoose/pull/426)** #426
445- **[DDB Functions](https://github.com/automategreen/dynamoose/pull/429)** #429
446- **[Updates Expires attribute on Model Updates Option](https://github.com/automategreen/dynamoose/pull/420)** #420
447- ES6/Future Changes
448 - **[`let`/`const`](https://github.com/automategreen/dynamoose/pull/410)** #410
449 - **[Removing Lodash](https://github.com/automategreen/dynamoose/pull/411)** #411
450 - **[Removing self = this in favor of arrow functions](https://github.com/automategreen/dynamoose/pull/412)** #412
451
452### Bug Fixes
453
454- **[Fix saveUnknown throwing errors when value where falsy](https://github.com/automategreen/dynamoose/pull/336)** #336
455- **[Fix scanByRawFilter containing - Select: 'COUNT'](https://github.com/automategreen/dynamoose/pull/341)** #341
456- **[Fix loading document type attributes from DynamoDB when when saveUnknown=true](https://github.com/automategreen/dynamoose/pull/339)** #339
457- **[Fix the ModelError type](https://github.com/automategreen/dynamoose/pull/374)** #374
458- **[Fixes falsy key value for batch get](https://github.com/automategreen/dynamoose/pull/379)** #379
459- **[Fix serverSideEncryption option](https://github.com/automategreen/dynamoose/pull/383)** #383
460- **[Using Buffer.from instead of new Buffer](https://github.com/automategreen/dynamoose/pull/413)** #413
461- **[Fixing issue with query with multiple indexes](https://github.com/automategreen/dynamoose/pull/344)** #344 #343
462- **[Save unknown update](https://github.com/automategreen/dynamoose/pull/431)** #431 #403
463- **[Fixing typo related to stream options](https://github.com/automategreen/dynamoose/pull/432)** #432 #430
464
465### Documentation
466
467- **[Improving Model.delete documentation](https://github.com/automategreen/dynamoose/pull/309)** #309
468- **Updated TypeScript types** #358 #357
469- **[Updating typescript documentation for create vs put overwrite default](https://github.com/automategreen/dynamoose/pull/377)** #377 #359
470- **[GitHub issue and PR templates](https://github.com/automategreen/dynamoose/pull/394)** #394 #405
471- **[Updating metadata](https://github.com/automategreen/dynamoose/pull/369)** #369
472- **[Change QueryKey and ScanKey type to any](https://github.com/automategreen/dynamoose/pull/419)** #419
473
474### Other
475
476- **[General project work](https://github.com/automategreen/dynamoose/pull/409)** #409
477
478---
479
480## Version 0.8.7
481
482Version 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!!
483
484### Major New Features
485
486- **[Adding support for `Query.all()`](https://github.com/dynamoose/dynamoose/pull/223)** #223
487 - **[Adding `Query.all()` to documentation](https://github.com/dynamoose/dynamoose/pull/285)** #285
488 - **[Changing `Query.all()` timesScanned to timesQueried](https://github.com/dynamoose/dynamoose/pull/286)** #286
489- **[Suffix Option](https://github.com/dynamoose/dynamoose/pull/321)** #321
490
491### General
492
493- **[Catch corrupted JSON error](https://github.com/dynamoose/dynamoose/pull/243)** #243 #242
494- **[Pass model instance directly to schema::attributeFromDynamo](https://github.com/dynamoose/dynamoose/pull/257)** #257
495- **[Fix range key on queries](https://github.com/dynamoose/dynamoose/pull/225)** #225
496- **[Provide model when converting keys .toDynamo](https://github.com/dynamoose/dynamoose/pull/217)** #217
497- **[Normalise Scan response shape when using "RawAWSFilter"](https://github.com/dynamoose/dynamoose/pull/320)** #320
498- **[Remove JSON.stringify for model in Debug message](https://github.com/dynamoose/dynamoose/pull/277)** #277
499- **[Set NewModel.name to include table name](https://github.com/dynamoose/dynamoose/pull/300)** #300
500- **[Allow unknown types to be populated as native dynamo types](https://github.com/dynamoose/dynamoose/pull/240)** #240
501- **[Competition of `.populate` method](https://github.com/dynamoose/dynamoose/pull/250)** #250
502
503
504### Documentation
505
506- **[Adding Model.queryOne to docs](https://github.com/dynamoose/dynamoose/pull/298)** #298
507- **[Schema Get Function Clarification](https://github.com/dynamoose/dynamoose/pull/291)** #291
508- **[Fixed Typo in README](https://github.com/dynamoose/dynamoose/pull/282)** #282
509- **[Better Static method example (`getAll`)](https://github.com/dynamoose/dynamoose/pull/284)** #284
510- **[Added Dynamoose Gitter chat badge to README](https://github.com/dynamoose/dynamoose/pull/247)** #247
511- **[Improving README badges on retina displays](https://github.com/dynamoose/dynamoose/pull/229)** #229
512- **[Moving ChangeLog and Roadmap to separate files](https://github.com/dynamoose/dynamoose/pull/305)** #305
513- **[Moving Examples to Website](https://github.com/dynamoose/dynamoose/pull/304)** #304
514- **[Adding AWS X-Ray Support documentation](https://github.com/dynamoose/dynamoose/pull/307)** #307 #144
515- **[Throughput is only respected on table creation](https://github.com/dynamoose/dynamoose/pull/316)** #316 #311
516
517
518### Testing
519
520- **[More Query tests](https://github.com/dynamoose/dynamoose/pull/290)** #290
521- **[Even more Query tests](https://github.com/dynamoose/dynamoose/pull/310)** #310
522- **[Fixing issue where some scan tests weren't being run correctly](https://github.com/dynamoose/dynamoose/pull/289)** #289
523- **[Switch to NYC (istanbul) for unit test coverage](https://github.com/dynamoose/dynamoose/pull/219)** #219
524- **[Enable unit test code coverage reporting](https://github.com/dynamoose/dynamoose/pull/215)** #215
525- **[Scan test to ensure all with delay and limit works correctly](https://github.com/dynamoose/dynamoose/pull/314)** #314
526
527
528### TypeScript Improvements
529
530- **[Nested Properties Schema Support](https://github.com/dynamoose/dynamoose/pull/258)** #258
531- **[Option fields optional, and added overloaded create function](https://github.com/dynamoose/dynamoose/pull/245)** #245
532- **[Improve the typing support for `.model()`](https://github.com/dynamoose/dynamoose/pull/234)** #234 #233
533- **[Allow update partial data](https://github.com/dynamoose/dynamoose/pull/319)** #319
534- **[Adds `ddb` interface](https://github.com/dynamoose/dynamoose/pull/280)** #280
535
536---
537
538## 0.8.0
539
540- useNativeBooleans [#55](//github.com/dynamoose/dynamoose/issues/55)
541- saveUnknown [#125](//github.com/dynamoose/dynamoose/issues/125)
542- Support for multiple indexes defined on the hashkey attribute of the table
543- scan.all() [#93](//github.com/dynamoose/dynamoose/issues/93) [#140](//github.com/dynamoose/dynamoose/issues/140)
544- scan.parallel [d7f7f77](//github.com/dynamoose/dynamoose/commit/d7f7f77)
545- TTL support [92994f1](//github.com/dynamoose/dynamoose/commit/92994f1)
546- added schema parsing overrides [#145](//github.com/dynamoose/dynamoose/issues/145)
547- populate [#137](//github.com/dynamoose/dynamoose/issues/137)
548- Added consistent() to scan. [#15](//github.com/dynamoose/dynamoose/issues/15) [#142](//github.com/dynamoose/dynamoose/issues/142)
549- Default function enhancements [#127](//github.com/dynamoose/dynamoose/issues/127)
550- Create required attributes on update [#96](//github.com/dynamoose/dynamoose/issues/96)
551- Add typescript typings [#123](//github.com/dynamoose/dynamoose/issues/123)
552- Added .count() for Query and Scan [#101](//github.com/dynamoose/dynamoose/issues/101)
553- Nested scans [#141](//github.com/dynamoose/dynamoose/issues/141) [#158](//github.com/dynamoose/dynamoose/issues/158)