alchemymvc 1.1.9 → 1.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md DELETED
@@ -1,458 +0,0 @@
1
- ## 1.1.9 (2021-12-06)
2
-
3
- * Fix request files not being set correctly when using a nested form path (Backport)
4
-
5
- ## 1.1.8 (2021-09-12)
6
-
7
- * Add `conduit` getter to the Base class
8
- * Use Protoblast's temp file methods instead of `temp`
9
- * Add `/hawkejs/static.js` middleware
10
- * Use `sass` instead of the deprecated `node-sass`
11
- * Use Protoblast's slug method instead of mollusc
12
- * Add some more Directory & File methods
13
-
14
- ## 1.1.7 (2021-06-11)
15
-
16
- * Add `Alchemy.Criteria.FieldConfig#getDisplayValueIn(data)` method to get a simple string representation of a value
17
- * Check field class constructor in `Schema#addField()`
18
- * Allow RegExp values for String fields during a query
19
- * Requesting a route with the wrong method will now return a 405 error (Method Not Allowed) instead of a 404
20
- * Fix client `Model` classes not being able to perform a query when running on the server in loopback mode
21
- * Fix `time-ago` element refreshing every second when counting down to a date
22
- * Fix the `Loopback` conduit sometimes setting the wrong route method
23
-
24
- ## 1.1.6 (2021-04-29)
25
-
26
- * Switch from `uglify-es` to `terser` for minifying JavaScript files
27
- * Allow overriding any setting from the command line
28
- * Use `Branch` class for clearing model cache
29
-
30
- ## 1.1.5 (2021-01-21)
31
-
32
- * Fallback to the `ENV` environment variable to set the environment
33
- * Fix rendering of segments
34
- * Fix Loopback conduits not setting the correct data when only provided with a route name
35
- * Set the `Hawkejs.Renderer` language once we have a prefix
36
- * Automatically add the `hreflang` attribute to links created with the Router helper
37
- * Fix `Conduit#url` property having the wrong path set
38
- * Load `helper_datasource` and `helper_field` folders before main `helper` folder
39
- * Add `Alchemy#checksum(value)` method
40
- * Throw an error when a class instance is used as a criteria condition
41
- * Fix breadcrumbs for routes that contain objects
42
- * Apply active-link breadcrumb classes while creating the anchors
43
-
44
- ## 1.1.4 (2020-12-10)
45
-
46
- * Fix certain socket linkup packets not being json-dry encodes
47
- * Make `Alchemy#findImagePath()` return a promise
48
- * Make `FieldConfig` class more aware of paths
49
- * Fix `Validator#validateFieldValue()` throwing an error when a field contains multiple violations
50
- * Fix Schema fields not translating translatable fields
51
- * Fix `Validations` errors always having only max 1 field error
52
-
53
- ## 1.1.3 (2020-11-12)
54
-
55
- * Add `Schema#clone()` method
56
- * Add `Schema#field_count` property
57
- * Fix `Schema#addField()` throwing an error when adding a schema field on the browser side
58
- * Added `Criteria#page(page, page_size)`
59
- * `Conduit` classes have been moved into the `Conduit` namespace
60
- * `Conduit.Loopback` now correctly sets the method & body
61
- * Added `Criteria.FieldSet` and `Criteria.FieldConfig` classes
62
- * Object responses via `Conduit.Loopback#end()` will now first be cloned with the `toHawkejs` clone option
63
- * `Model#find()` will now reject when no `datasource` property is set
64
- * Add support for `fonts` asset folders
65
- * Add `CustomElement#getCurrentUrl()` method
66
-
67
- ## 1.1.2 (2020-10-08)
68
-
69
- * Fix Client class methods not being set on the server-side for classes defined in a plugin
70
- * Add `Criteria#isEmpty()` field check
71
- * Add `Linkup#demand()` method
72
- * Add `--socket` startup argument support
73
- * When the given socket path is a directory, create a socket in that directory with the current project name
74
- * Add `--url` startup argument, which will print the url in the console
75
- * Add `--preload` startup argument, which will load the homepage & the client file on startup
76
- * Allow opening redirects in a popup window
77
-
78
- ## 1.1.1 (2020-07-24)
79
-
80
- * Add `Base.mapEventToMethod()` to register simple emitted events names to methods per class
81
- * Add `Base#issueEvent(name, args, callback)` which will use the mapped event-to-method map to execute the method first & then emit the events
82
- * Implement the new event-and-method flow in Controller & Models
83
- * Already set the Hawkejs Renderer `is_for_client_side` property before calling the middleware
84
- * All the properties of the `parameters` property will be used in the Router directive
85
-
86
- ## 1.1.0 (2020-07-21)
87
-
88
- * Add `Schema#getDatasource()` which returns a pledge that resolves to the datasource
89
- * `Alchemy#requirePlugin(name, attempt)` will now attempt to load the plugin if it hasn't been done yet
90
- * Add `Criteria` class, which replaces the messy `DbQuery` class and is a query builder to boot.
91
- * The `Datasource` & `Field` class is now also available on the client side
92
- * Typedefs in routes can now contain fields, like `/{[Model._id]custom_id_name}/`
93
- * Add `Models#load_external_schema` boolean property
94
- * Add `second_format` option to Date & Datetime fields, allowing you to save Date as a timestamp
95
- * Add `Datasource#allows(name)` to see if read/create/remove/update is allowed
96
- * Add `Inode` namespace & `File` & `Directory` classes, as our way of dealing with files
97
- * Also set the `method` property on the client-side `Conduit` instance
98
- * Replace `Document.$main` object with save result
99
- * Add `Model#findByValues` and `Model#findAllByValues`
100
- * Add `Router#serveDependencyFile()` for when you want to serve a file from within a dependency
101
- * Decode path parameters using `RURL.decodeUriSegment()`
102
- * Add `$hold` property to Document class, which are also sent to the client
103
- * `Conduit#redirect()` now has a `hard_refresh` option, to force a non-ajax redirection
104
- * `DocumentList` can now be iterated over
105
- * Removing the cached client file will no longer cause 404 errors
106
- * Conduit responses can now be ended with a buffer
107
- * Sessions will emit the `removed` event when they're being removed
108
- * Websocket messages will no longer be resent upon reconnect
109
- * Add `populate` method to `DocumentList`
110
- * When adding an association to a model, an index will automatically be made
111
- * Uploaded files now use Alchemy's `Inode.File` class
112
- * The `Criteria` class can now be asynchronously iterated over
113
- * The `Fallback` datasource will now use the `read` method instead of `_read`
114
- * Add `Schema.isSchema()` method
115
- * `Enum` values will now also be serialized for the client-side config
116
- * The `Router` helper directive will now look for a `url_attribute` property on the target element
117
- * Add custom Error classes under the Classes.Alchemy.Error namespace
118
- * Re-added validation support with the `Validator` & `Violation` classes
119
- * Use `Blast.fetch()` in the `Alchemy#request()` method
120
- * Rename `Model#findById()` to `Model#findByPk()`
121
- * Add `Document#refreshValues()` to re-query the data from the database
122
- * Allow individual associations to be resolved by the datasource itself
123
- * Throw an error when trying to set a Document's data record to an invalid value
124
- * Fix getting the path of fields in a subschema
125
- * Add `Schema#getFieldChain(path)` and `Field#getFieldChain()`
126
- * Add `FieldValue` class and use it for the new `Field#getDocumentValues(document)` method
127
- * Add `Alchemy#getPrefixes()` to get the prefixes object on the server & client
128
- * The `Alchemy#pickTranslation()` method now also accepts a conduit as prefix choices
129
- * Add source-map support
130
-
131
- ## 1.0.8 (2019-01-12)
132
-
133
- * Fix for package.json dependency version error
134
-
135
- ## 1.0.7 (2019-01-12)
136
-
137
- * Setting `prefer: "client"` and `layout` property on a Route will let the client render the action once the base layout is loaded
138
- * Add default `Conduit#notAuthorized()` and `Conduit#forbidden()` method
139
- * Add support for some basic `policy` property on a Route
140
- * Make the `Scene#interceptOpenUrl` method set the internal `breadcrumb` variable
141
- * Add appcache support
142
- * The `offline_clients` setting needs to be truthy in order to send an appcache manifest
143
- * Fix `Schema#getField()` not looking in the subschema of a SchemaFieldType
144
- * Fix `Model#find('count')` returning wrong value when result is 0
145
- * Add `Alchemy#getMedHash()` function to get a simple, non-verification hash of a file
146
- * The `Conduit#body` property can now be overwritten
147
- * Allow json-dry data from logged-in users during a readDataSource request
148
- * Add `FieldType#datasource` property
149
- * Add `Datasource.setSupport(name, value)` and `Datasource.supports(name)`
150
- * Use `Datasource.supports('objectid')` to see if it understands ObjectID instances
151
- * Add `Alchemy#statPath(path, options)` function
152
- * Allow `Model.addField()` to override already existing fields
153
- * Add pledge support to `Alchemy#openUrl()`
154
- * `Alchemy#findPathToBinarySync()` will now also look in the `/bin/` directory
155
- * Deprecate `Alchemy#List()`
156
- * Add more unit tests
157
-
158
- ## 1.0.6 (2018-12-06)
159
-
160
- * Add `Document#is_new_record` property
161
- * Fix `Document#[Symbol(alike)]` method
162
- * Fix bug in SluggableBehaviour always assuming an existing record will be found
163
- * Work around adding document methods before parent model is ready
164
- * Make client-side Document classes inherit from correct parent
165
- * Allow querying for extraneous, out-of-schema fields by passing the `extraneous` option
166
- * Fix renderings of client-side Controller actions
167
- * Use aggregate `sortByPath` in client-side IndexedDB search
168
- * Add `Alchemy.Client.Document.getClassForUndry()` method
169
- * `Model#saveRecord()` will now throw an error when a regular object is passed instead of a Document instance
170
- * Add HTML field type
171
- * Convert raw datasource data back to app-readable data after a create or update
172
- * Add `Document#getLocalVersion()` and `Document#getLocalVersionIfNewer()` for in the browser
173
- * Convert document data using `toServerSaveRecord` method before sending to server
174
- * Set a reference to the current controller on the `conduit` instance
175
-
176
- ## 1.0.5 (2018-10-18)
177
-
178
- * Submitting data over a socket will now also be JSON-DRY'd
179
- * Allow the server to use the client-side only controller if no server-side controller is found
180
- * Add validator classes
181
- * Add `Document.isDocument(obj)` static method
182
- * Make the save methods use a `Document` instance instead of a simple object
183
- * Add `Alchemy#findPathToBinarySync()` for finding a path to a binary
184
- * Fix copying & moving files on mac os
185
- * `Schema#addAssociation()` will no longer add a localKey if it already exists
186
- * Allow passing options to `Document#addAssociatedData()` and make it return a pledge
187
- * Also clear the client-side model cache when clearing the server-side class cache
188
- * Add export/import functionality
189
- * Clone object with `toHawkejs` method before stringifying when calling `Conduit#end()`
190
- * Add `undefined` "from" property to postcss options to prevent annoying warning
191
-
192
- ## 1.0.4 (2018-08-27)
193
-
194
- * Don't create a `db` instance when the MongoDatasource fails to connect
195
- * Add `Document#$attributes` property, where non-database values can be stored in
196
- * Add `Document#hasChanged(name)` method, to check if values have changed
197
- * Add `Document#resetFields()` to reset a document to its initial state
198
- * Fix SluggableBehaviour
199
- * Add `Document#needsToBeSaved()`
200
- * Make `Document#hasChanged()` detect changes in object values
201
- * Don't pass undefined `version` argument to `indexedDB.open()`
202
- * Add `Document#[Blast.alikeSymbol]` method to check for likeness
203
- * Add `Conduit#supports(feature)` to check for supported features (only async/await for now)
204
- * Add `nodent-compiler` optional dependency for compiling async/await code for IE11
205
- * The `PATH_ROOT` constant can now take its value from an environment variable
206
- * Make `loadHelpers` recursively load in a directory of helpers
207
- * Add `Alchemy#isObjectId(obj)` to see if a string or object is an object id
208
- * `Model#findById(id)` will throw an error when an invalid object id is given
209
- * Document constructor code is now moved to `setDataRecord` method, so it can be shared with the client-side instance
210
- * Add default `saveRecord` action to the Controller class, for client-side record saving
211
- * Add `getModel()` method to the custom Element class
212
- * Fix Paginate component interpreting empty filters as a regex
213
- * Fix Paginate filter inputs not showing the filtered value
214
- * Add `filtering` and `sorting` boolean property to `Pagination#getConfig()` method result
215
- * Check if manual slug values are actually valid
216
- * Add `time-ago` custom HTML element
217
-
218
- ## 1.0.3 (2018-07-12)
219
-
220
- * Update alchemy info page
221
- * `Schema#addField(name, type, options)` now allows you to directly pass a `Schema` instance as a type
222
- * Fix `DocumentList#findNextBatch` looking for the `_options` property, when it should be `options`
223
- * Also pass the `model` instance when creating a new `DocumentList` instance
224
- * Fix `Document#remove` not finding the $model property
225
- * `DocumentList` instances can now be created without any arguments
226
- * Add `DocumentList#toSimpleArray()` which returns an array of simple objects with only the wanted fields
227
- * Add `DocumentList.unDry` static method to the server-side class, because static methods don't get added by default yet
228
- * Fix `Document#conduit` causing an infinite loop
229
- * Change `Model.cacheDuration` to `Model.cache_duration`
230
- * Make `Model#save()` and `Model#findById()` also return Pledges
231
- * Make `Model#remove()`, `Document#remove()`, `Model#ensureIds()` return Pledges
232
- * Make MongoDataSource use `findOneAndDelete` to remove a record
233
- * Switched from `slug` dependency to `mollusc`, which is a fork with several fixes
234
- * When the `port` setting is `null`, a random port will be tried. All other falsy values will still not start the server.
235
- * `Alchemy#usePlugin(name, options)` now accepts a `path_to_plugin` option
236
- * `Alchemy#usePath()` will no longer load `test` folders
237
- * Fix paths equaling a prefix not working as you expect them to
238
- * Don't start socket.io when `settings.websockets` is false
239
- * Fix `Alchemy#broadcast(type, data)` not working
240
- * Add `Model#getBehaviour(name)`, which gets an existing instance on the current model
241
- * Add `Document#revert(revisions)` to revert to an earlier version of the document
242
-
243
- ## 1.0.2 (2018-07-07)
244
-
245
- * Fix `DocumentList#available` always defaulting to the length of the current set
246
- * Correctly parse `x-forwarded-for` in case there are multiple ip addresses
247
-
248
- ## 1.0.1 (2018-07-04)
249
-
250
- * Fix `mongodb` dependency version
251
-
252
- ## 1.0.0 (2018-07-04)
253
-
254
- * Split up old `Document` into `DocumentList` and `Document` class
255
- * Add client-side `Document`, `Model` and `DocumentList` classes
256
- * Class-specific `title` and `type_name` properties are now statics instead of protos
257
- * Add simple HTTP `HEAD` method support
258
- * `DbQuery` is now also available on the client side
259
- * Added query matching code from nedb to `DbQuery`
260
- * Removed nedb dependency
261
- * Model & Controller are now their own namespace
262
- * Added a Base class for the Client side + client conduit & controller
263
- * Custom elements should inherit from `Alchemy.Element` from now on
264
- * Add `Base#getClientPath` and `Base#getClientPathAfter`
265
- * Add `Conduit#chooseBestLocale(locales)` in order to get the best locale for the connection
266
- * Also check `data-breadcrumbs` when activating links
267
- * Starting the server with `--debug-requirements` will print info about which files are loaded using `alchemy.use`
268
-
269
- ## 0.5.0 (2018-01-05)
270
-
271
- * Wait for `Blast` to load before starting the `startServer` stage
272
- * `usePath` will now always first load in files and THEN directories
273
- * Renamed the `Alchemy.Command` class to `Alchemy.Task`
274
- * Added `applyButton` to `Pagination` helper
275
- * You can now set multiple `Pagination` filters
276
- * Helpers are now under the Hawkejs namespace
277
- * Added `Model#eachRecord(options, task, callback)`, which returns a `Pledge`
278
- * Setting `store_units` option on a Date field will store its unit info along with it
279
- * Parse useragents using the `useragent#lookup` method, which caches strings
280
- * Calls to `Conduit#error` will now also be emitted as a `conduit_error` event on the main `alchemy` instance
281
- * A `Route`'s options will now be stored in the `options` property
282
- * `Route#generateUrl` can now also accept a regular options object instead of a `Conduit`
283
- * Don't use `let` in the `Alchemy.Base` class, since it's also used in the browser
284
- * If a minified cached asset (stylesheet or script) gets deleted, re-minify it instead of blocking the request
285
- * The session store is now stored under `alchemy.sessions`
286
- * Request URLs ending with only a prefix, and no slash, will now also work
287
- * `Route#match` will now use `decodeURIComponent` when extracting url parameters
288
- * The helper `Router#printRoute` can now be used to only print an opening anchor when used in combination with `Router#closeRoute`
289
- * Added `PostCSS` and `autoprefixer` package
290
- * `Alchemy#pickTranslation` will give correct results when given prefix is falsy
291
- * The `StringFieldType` will now pick a translation in case the database value was an object
292
- * Add "segments", view blocks that have a specific route
293
- * Make `Model.find` return a `Pledge`
294
- * Mark the `Model` class as being an abstract class
295
- * Add UglifyJS global_defs for `Blast.isNode` and `Blast.isBrowser`
296
-
297
- ## 0.4.3 (2017-09-07)
298
-
299
- * Fix: don't set gutter on `Janeway#print` output when Janeway is not active
300
- * Fix: Client-side `Alchemy#switchLanguage` will now work when there are get queries
301
- * Add `use_found_prefix` to model search options. This used to be hard-coded yes, but now it is false by default
302
- * Calculate etag using `Object.checksum`, as fowler has too many collisions
303
- * Set the current active prefix using `internal` and `expose` as 'active_prefix' (`Conduit#prefix` will not be set, because that is only used when it's in the path!)
304
- * If header `x-alchemy-default-prefix` is set, use that as *default* prefix. This differs from `x-alchemy-prefix`, as that is a hard override.
305
- * Fix `useragent` not having the `satisfies` method
306
- * Fix `socket.io.js` not being served
307
- * Only create a dgram socket when it is needed
308
- * `getResource` of the `Alchemy` helper will now always add the data object as the second argument (it used to do 2 different things on loopback or client)
309
- * Upgrade `protoblast` dependency to 0.3.10
310
-
311
- ## 0.4.2 (2017-08-27)
312
-
313
- * Remove quotes from `content-type`'s UTF-8
314
- * Add `Controller#safeSet`, which uses `encodeHTML` to set strings
315
- * The session cookie has `httpOnly` enabled
316
- * Add `Conduit#is_secure` property
317
- * Enable the `secure` option by default when setting a cookie on a secure connection
318
- * Fix path traversal security bug in `findAssetPath`
319
- * The `scene_start_` cookie will only live for 15s in stead of 10 minutes
320
-
321
- ## 0.4.1 (2017-08-11)
322
-
323
- * Setting `sort` to false will now actually disable sorting
324
- * Fallback translations `__` will now be picked
325
- * Send hawkejs templates using regular JSON, not JSON-dry
326
- * Fix urls not being generated properly when using prefixes
327
- * Add `Controller#renderDialogIn` so dialogs can be rendered from the server side, too
328
- * Let the Mongo datasource retry to reconnect a near infinite amount of times
329
- * `Alchemy#downloadFile` now uses `Blast#fetch`
330
- * Alchemy will now exit when the parent process does
331
- * Add languageSwitcher
332
- * Number fields with value null won't be cast to 0 anymore
333
- * `Conduit#redirect` now uses temporary (301) redirects by default
334
- * Disabling a find's `recursive` will now also apply to a subschema
335
- * Hidden files (starting with ".") or the "empty" file will no longer be loaded
336
- * You can now set parameters using `Conduit#param(name, value)`
337
- * `Conduit#param(name)` will now also look in the cookies
338
- * Add support for `assume_https` config and `x-forwarded-proto` header
339
- * Alchemy won't listen to multicast address by default
340
-
341
- ## 0.4.0 (2017-04-17)
342
-
343
- * Fixed router issue in the Alchemy helper
344
- * `PATH_*` globals are now constants
345
- * Removed `APP_ROOT`, `PATH_APP` has been available for years
346
- * The version of your app and alchemy itself are added to `process.versions`
347
- * The global `alchemy` object is now an instance of the `Alchemy` class
348
- * Added `Alchemy#makeNextRequireStrict()` which adds `use strict` to the next required module
349
- * Fixed adding indexes to nested fields
350
- * Automatically add 2dsphere index to Geopoint fields
351
- * Added `qs` dependency so nested GET parameters can be decoded properly
352
- * Add cache method to client-side `alchemy#fetch` method
353
- * A model's Document class will now inherit from that model's parent's document class
354
- * Self-referencing Schema fields are no longer queried for now, this causes deadlocks to occur
355
- * Add `alchemy.__` to client-side javascript
356
- * Also emit the full linkup packets as a 'linkup_packet' event
357
- * Base class fixes
358
- * Add hawkejs multiple-template serving middleware
359
-
360
- ## 0.3.3 (2017-01-21)
361
-
362
- * Fix $or grouping during normalization of `Query` conditions
363
- * Further split up the `Conduit` class
364
- * Fix some `Resource` issues in the alchemy helper
365
- * Add a `Document#toArray()` method
366
- * Put non-translated, orphaned, strings in a '__' prefix when fetched from server
367
- * Optimize `Model#ensureIds`
368
- * Add router section identifiers (for in selects, ...)
369
- * Add `conduit` property getter to `Document`
370
- * Fix new cookies being ignored on a redirect
371
- * Set option `set_updated` to false during saving so the `updated` field won't be changed
372
- * Add `of_group_name` static property to classes
373
- * Add `count` as find option
374
- * Add `Model#beforeSave` callback support
375
- * Pass query options to `Document`
376
- * Set `x-history-url` on internal redirect (and expose to hawkejs)
377
- * Change cache-control to cache for max 1 hour (in stead of 1 year)
378
- * Add options to the `Document#save` method
379
- * Find next batch of limited find results using `Document#findNextBatch`
380
- * No longer die when trying to use a "priviliged" port
381
- * Upgrade protoblast to version 0.4.0
382
- * Upgrade hawkejs to version 1.1.2
383
-
384
- ## 0.3.2 (2016-10-19)
385
-
386
- * Forgot to upgrade the Janeway package
387
-
388
- ## 0.3.1 (2016-10-19)
389
-
390
- * Upgraded NPM packages
391
- * Set terminal title using Janeway
392
- * Fixed inheritance issues
393
- * Janeway can now also be disabled by setting the DISABLE_JANEWAY env to 1
394
- * Setting `alchemy.settings.silent` to true will disable the custom `log` calls
395
-
396
- ## 0.3.0 (2016-10-04)
397
-
398
- * Added Base class in Alchemy namespace
399
- * `alchemy.classes` has been removed in favor of `Classes`
400
- * Added Command class
401
- * Associated record data will now also be saved
402
- * Sluggable behaviour has been fixed
403
- * Add `file_path` property to `useOnce` require errors
404
- * Bugfixes in the Router helper
405
- * Allow registering modules as null
406
- * Load mmmagic on-the-fly, don't preload bcrypt and chokidar
407
- * Add `alchemy.broadcast` which broadcasts to every connected websocket scene
408
-
409
- ## 0.2.2 (2016-07-02)
410
-
411
- * Update socket.io dependencies, fixing reconnection issues
412
- * Added `log.once(id, ...)` to log a specific message only once
413
- * Added `log.less(id, ...)` to log messages only once per second
414
- * Added `log.setLessConfig` if you want to set specific limit for log.less
415
-
416
- ## 0.2.1 (2016-06-27)
417
-
418
- * ClientSocket now has an `offset` and `latency` property plus `now()` timestamp method
419
- * SocketConduit now has an `ip` property
420
- * `ModelDocument` now has an `init` method that gets called on creation
421
-
422
- ## 0.2.0 (2016-06-26)
423
-
424
- * Switched to Hawkejs v1.0.0
425
- * Removed cruft (continuation, ...)
426
- * Removed old Nuclei-way of defining classes
427
- * Added new classes:
428
- - Conduit
429
- - Schema
430
- - Router
431
- - Route
432
- - FieldType
433
- - Datasource
434
-
435
- ## 0.1.0 (2014-09-10)
436
-
437
- * Remove mongoose & MongoDB eval code (still need to add validation support)
438
- * Added sluggable behaviour
439
- * Added Object.isEmpty method
440
- * Array.cast converts array-like objects to regular arrays (but not Strings),
441
- if the variable is undefined an empty array is returned
442
- * Add 'score' method to String prototype, to determine how similar strings are
443
- * Add 'alchemy.after' method, which will do something after the given event has
444
- been emitted, even if it has been emitted in the past
445
- * Add hasValue and getValueKey to Object, also works on arrays
446
- * When saving data you can pass the 'allowedIndexes' option, which should be an
447
- array of indexes allowed to be looked through for existing records.
448
- If it's an empty array, only the _id will be used. If it's false, every index
449
- is used.
450
- * Add 'divide' method to Object, which creates a new array where every key-value
451
- pair is a new object
452
- * Spin off prototype & inflections to new module: protoblast
453
- * Added publishable behaviour
454
-
455
- ## 0.0.1 (2014-04-04)
456
-
457
- * Finalise version 0.0.1 after a year of initial development,
458
- now we can start removing mongoose.