UNPKG

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