UNPKG

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