1 |
|
2 |
|
3 | <a name="0.6.0"></a>
|
4 | ## [0.6.0](https://github.com/miter-framework/miter/compare/0.5.0...HEAD) (_Future_)
|
5 |
|
6 | Big things planned! More unit tests! Less ORM quirks! More awesomeness!
|
7 |
|
8 | ### Features
|
9 |
|
10 | * **server:** print Miter's package version when starting a server
|
11 | * **jwt:** allow the JWT policies to specify where to find the authorization token
|
12 | * **crud-controller:** allow custom implementations of performDestroy
|
13 | * **router:** add transformRoute hook to allow controllers to programmatically modify or skip routes
|
14 | * **crud-controller:** allow CrudController.performQuery to return .total instead of .count
|
15 | * **crud-controller:** allow query, include, and order to be objects
|
16 | * **services:** add .listen service lifecycle hook
|
17 | * **injector:** allow the server to provide metadata defaults programmatically
|
18 | * **server-metadata:** invert control of server metadata objects
|
19 |
|
20 | ### Bug Fixes
|
21 |
|
22 | * **dependencies:** add express as both a peer dependency and a dev dependency to fix CI
|
23 | * **db:** transform association clauses as $in if they are arrays
|
24 | * **db:** correct invalid composition of 3 or more $and clauses
|
25 | * **miter:** remove dependency on root-require
|
26 | * **miter:** ensure the server is started up or shutdown entirely before resolving the init promise
|
27 | * **orm:** prevent controller routes from crashing when the ORM is disabled
|
28 | * **injector:** ensure unresolved dependencies are listed even if they are undefined
|
29 | * **miter:** leave JwtMetadata in the launch config for tasks
|
30 |
|
31 | ### Breaking Changes
|
32 |
|
33 | * Services are now required to have a `.start()` method
|
34 |
|
35 |
|
36 |
|
37 | <a name="0.5.10"></a>
|
38 | ## [0.5.10](https://github.com/miter-framework/miter/compare/0.5.9...0.5.10) (2018-01-06)
|
39 |
|
40 | ### Bug Fixes
|
41 |
|
42 | * **miter:** leave JwtMetadata in the launch config for tasks
|
43 |
|
44 |
|
45 |
|
46 | <a name="0.5.9"></a>
|
47 | ## [0.5.9](https://github.com/miter-framework/miter/compare/0.5.8...0.5.9) (2017-11-30)
|
48 |
|
49 | ### Features
|
50 |
|
51 | * **injector:** allow the server to provide metadata defaults programmatically
|
52 | * **server-metadata:** invert control of server metadata objects
|
53 |
|
54 | ### Bug Fixes
|
55 |
|
56 | * **orm:** prevent controller routes from crashing when the ORM is disabled
|
57 | * **injector:** ensure unresolved dependencies are listed even if they are undefined
|
58 |
|
59 |
|
60 |
|
61 | <a name="0.5.8"></a>
|
62 | ## [0.5.8](https://github.com/miter-framework/miter/compare/0.5.7...0.5.8) (2017-11-30)
|
63 |
|
64 | ### Features
|
65 |
|
66 | * **services:** add .listen service lifecycle hook
|
67 |
|
68 | ### Breaking Changes
|
69 |
|
70 | * Services are now required to have a `.start()` method
|
71 |
|
72 |
|
73 |
|
74 | <a name="0.5.7"></a>
|
75 | ## [0.5.7](https://github.com/miter-framework/miter/compare/0.5.6...0.5.7) (2017-11-25)
|
76 |
|
77 | ### Features
|
78 |
|
79 | * **crud-controller:** allow query, include, and order to be objects
|
80 |
|
81 |
|
82 |
|
83 | <a name="0.5.6"></a>
|
84 | ## [0.5.6](https://github.com/miter-framework/miter/compare/0.5.5...0.5.6) (2017-11-23)
|
85 |
|
86 | ### Bug Fixes
|
87 |
|
88 | * **miter:** ensure the server is started up or shutdown entirely before resolving the init promise
|
89 |
|
90 |
|
91 |
|
92 | <a name="0.5.5"></a>
|
93 | ## [0.5.5](https://github.com/miter-framework/miter/compare/0.5.4...0.5.5) (2017-11-10)
|
94 |
|
95 | ### Bug Fixes
|
96 |
|
97 | * **miter:** remove dependency on root-require
|
98 |
|
99 |
|
100 |
|
101 | <a name="0.5.4"></a>
|
102 | ## [0.5.4](https://github.com/miter-framework/miter/compare/0.5.2...0.5.4) (2017-10-27)
|
103 |
|
104 | ### Features
|
105 |
|
106 | * **crud-controller:** allow CrudController.performQuery to return .total instead of .count
|
107 |
|
108 |
|
109 |
|
110 | <a name="0.5.2"></a>
|
111 | ## [0.5.2](https://github.com/miter-framework/miter/compare/0.5.1...0.5.2) (2017-10-20)
|
112 |
|
113 | ### Features
|
114 |
|
115 | * **jwt:** allow the JWT policies to specify where to find the authorization token
|
116 | * **crud-controller:** allow custom implementations of performDestroy
|
117 | * **router:** add transformRoute hook to allow controllers to programmatically modify or skip routes
|
118 |
|
119 | ### Bug Fixes
|
120 |
|
121 | * **db:** transform association clauses as $in if they are arrays
|
122 | * **db:** correct invalid composition of 3 or more $and clauses
|
123 |
|
124 |
|
125 |
|
126 | <a name="0.5.1"></a>
|
127 | ## [0.5.1](https://github.com/miter-framework/miter/compare/0.5.0...0.5.1) (2017-10-16)
|
128 |
|
129 | ### Features
|
130 |
|
131 | * **server:** print Miter's package version when starting a server
|
132 |
|
133 | ### Bug Fixes
|
134 |
|
135 | * **dependencies:** add express as both a peer dependency and a dev dependency to fix CI
|
136 |
|
137 |
|
138 |
|
139 | <a name="0.5.0"></a>
|
140 | ## [0.5.0](https://github.com/miter-framework/miter/compare/0.4.0...0.5.0) (2017-09-15)
|
141 |
|
142 | ### Features
|
143 |
|
144 | * **crud-controller:** add transformInclude hook as a temporary replacement for scopes
|
145 | * **crud-controller:** add unit tests for CRUD operations and lifecycle hooks
|
146 | * **logger:** ensure logger methods write over progress bars in the console
|
147 | * **services:** add ErrorHandler service
|
148 | * **router:** allow ErrorHandler to attempt to handle errors before they propogate
|
149 | * **router:** allow ErrorHandler to attempt to handle routes that did not send a response
|
150 | * **crud-controller:** add policies returned from getDestroyPolicies to the destroy route
|
151 | * **crud-controller:** add policies returned from getCreatePolicies to the create route
|
152 | * **crud-controller:** add policies returned from getQueryPolicies to the find and count routes
|
153 | * **crud-controller:** transformResult is called on the result of the update route if returning = true
|
154 | * **router:** allow policies to have their own policies; flatten duplicate policies
|
155 | * **router:** log router reflector overview rather than listing all controllers by default
|
156 | * **server:** add startTime to the Server
|
157 | * **decorators:** esnure the Sanitize decorator drops the prototype when cloning the model
|
158 | * **services:** add TemplateService and add views metadata to server metadata
|
159 | * **dependencies:** change express to be a peer dependency
|
160 |
|
161 | ### Bug Fixes
|
162 |
|
163 | * **orm:** fix Db.sum typings
|
164 | * **router:** account for routes completed when they complete without an error
|
165 | * **router:** only account for routes completing once even when they complete with an error
|
166 | * **orm:** ensure Db.create always saves changes, not just findOrCreate
|
167 |
|
168 | ### Breaking Changes
|
169 |
|
170 | * Policies returned from `CrudController.getReadPolicies` are not added to the `find` or `count` routes.
|
171 | If you need to add a policy to both of these routes, override `CrudController.getQueryPolicies`.
|
172 | * Additionally, CrudController read policies are not added to mutate, create or destroy routes;
|
173 | and mutate policies are not added to destroy routes.
|
174 | If you need to add a policy to any of these, override `CrudController.getMutatePolicies`,
|
175 | `CrudController.getCreatePolicies` or `CrudController.getDestroyPolicies`.
|
176 | * `express` is now a peer dependency, so you need to explicitly add it to your servers' package.json files.
|
177 |
|
178 |
|
179 |
|
180 | <a name="0.4.0"></a>
|
181 | ## [0.4.0](https://github.com/miter-framework/miter/compare/0.3.0...0.4.0) (2017-07-26)
|
182 |
|
183 | ### Features
|
184 |
|
185 | * **orm:** allow update queries to have includes if returning = true
|
186 | * **orm:** allow deeply-nested associations to be implicitly included in where query
|
187 | * **orm:** extract performCreate and performUpdate hooks in CrudController
|
188 | * **orm:** allow TransactionService.run to create detached transactions
|
189 | * **orm:** allow the Transaction decorator to create detached transactions
|
190 | * **test:** add unit tests for JwtBasePolicy
|
191 | * **injector:** add cache and deps options to providers that use factory functions
|
192 | * **injector:** allow metadata to be defined and injected into provide factory functions
|
193 | * **logger:** infer subsystem based on the name of the injectable the logger is injected into
|
194 | * **injector:** allow injectables to define custom factory function providers
|
195 |
|
196 | ### Bug Fixes
|
197 |
|
198 | * **orm:** add implicit include only if the value is non-null and has no id
|
199 |
|
200 | ### Breaking Changes
|
201 |
|
202 | * Server.logger is now private.
|
203 | If you need an instance of a logger, you can dependency inject Logger or LoggerCore.
|
204 | If you need to do this through code, you can manually grab the logger like this:
|
205 | ```typescript
|
206 | import { Miter, LoggerCore, Logger } from 'miter';
|
207 | let server = await Miter.launch({ ... });
|
208 | let logger: Logger = server.injector.resolveInjectable(LoggerCore).getSubsystem('my-subsystem');
|
209 | ```
|
210 | * The Logger methods no longer accept a subsystem. This includes `log`, `trace`, `error`, `info`, `warn`, and `verbose`.
|
211 | Instead of requiring the subsystem every time you need to log a message, the logger will use the name of the class the logger is injected into.
|
212 | If you want to provide a specific subsystem, you can use the new Name decorator to override the default behavior.
|
213 | In this example, the class is 'TransactionService' but the subsystem is 'transactions':
|
214 | ```
|
215 | @Injectable()
|
216 | @Name('transactions')
|
217 | export class TransactionService {
|
218 | constructor(private logger: Logger) {
|
219 | logger.info('This message will use my overridden subsystem name');
|
220 | }
|
221 | }
|
222 | ```
|
223 | * The constructors for JwtBasePolicy, JwtPolicy, and RequiredJwtPolicy now require a LoggerCore instead of a logger.
|
224 | If you provide your own implementation of one of these classes, make sure you update them to the correct type.
|
225 | * Injector.resolveDependency throws more errors.
|
226 | Previously it silently swallowed some circular dependency errors, and it only logged falsey injections.
|
227 | Now it will fail fast when one of these errors occur.
|
228 |
|
229 |
|
230 |
|
231 | <a name="0.3.0"></a>
|
232 | ## [0.3.0](https://github.com/miter-framework/miter/compare/0.2.0...0.3.0) (2017-06-05)
|
233 |
|
234 | ### Features
|
235 |
|
236 | * **build:** remove pre-commit hook that sometimes broke development pipeline
|
237 | * **build:** upgrade to typescript@2.3.0
|
238 | * **router:** add res.sendFiles as a replacement for express.static
|
239 | * **orm:** allow where queries to filter by details on associated tabled
|
240 | * **orm:** allow has-many associations in where queries
|
241 | * **orm:** allow nested includes using dot-notation
|
242 | * **tests:** add lots, lots more unit tests
|
243 |
|
244 | ### Bug Fixes
|
245 |
|
246 | * **services:** only shut down services if they started successfully
|
247 | * **router:** add multiple routes on the same method in the order they are listed as decorators
|
248 | * **orm:** only attempt to connect to a sql server if the orm is not disabled
|
249 | * **orm:** transform included association results instead of simply copying the values
|
250 | * **tests:** add double quotes around the mocha test path to ensure all tests are included
|
251 |
|
252 |
|
253 |
|
254 | <a name="0.2.0"></a>
|
255 | ## [0.2.0](https://github.com/miter-framework/miter/compare/0.1.4...0.2.0) (2017-05-05)
|
256 |
|
257 | ### Features
|
258 |
|
259 | * **repository:** add README.md sample controller and project information
|
260 | * **repository:** add CHANGELOG.md to record changes between versions
|
261 | * **ci:** add .travis.yml and enable TravisCI builds
|
262 | * **tests:** add a unit testing framework and test the built-in services and utility functions
|
263 | * **middleware:** gracefully handle an empty array of middleware functions
|
264 | * **orm:** add the Sanitize decorator to ensure private data is removed before serializing it
|
265 | * **orm:** add Flag decorator as a shorthand for a non-null boolean column with "false" as the default value
|
266 | * **router:** allow users to mount controllers on other controllers
|
267 | * **router:** allow routes to await res.sendFile
|
268 | * **router:** allow controllers to dynamically change route policies at runtime
|
269 | * **crud-controller:** add findOne route to the CrudController
|
270 |
|
271 | ### Bug Fixes
|
272 |
|
273 | * **repl-service:** only create the ReadLine interface if you inject the ReplService
|
274 | * **orm:** allow SQL and and or queries to be objects or arrays
|
275 |
|
276 |
|
277 |
|
278 | <a name="0.1.4"></a>
|
279 | ## [0.1.4](https://github.com/miter-framework/miter/tree/0.1.4) (2017-04-05)
|
280 |
|
281 | Changes before this point in time have not been recorded here.
|