UNPKG

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