alchemymvc 1.3.21 → 1.4.0-alpha.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.
Files changed (155) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +3 -3
  3. package/lib/app/behaviour/publishable_behaviour.js +5 -5
  4. package/lib/app/behaviour/revision_behaviour.js +10 -10
  5. package/lib/app/behaviour/sluggable_behaviour.js +14 -14
  6. package/lib/app/conduit/electron_conduit.js +9 -9
  7. package/lib/app/conduit/http_conduit.js +13 -13
  8. package/lib/app/conduit/loopback_conduit.js +15 -15
  9. package/lib/app/conduit/socket_conduit.js +43 -43
  10. package/lib/app/config/routes.js +26 -0
  11. package/lib/app/controller/00-default_app_controller.js +21 -0
  12. package/lib/app/controller/alchemy_info_controller.js +12 -12
  13. package/lib/app/datasource/mongo_datasource.js +16 -16
  14. package/lib/app/element/00-default_app_element.js +19 -0
  15. package/lib/app/element/time_ago.js +5 -5
  16. package/lib/app/helper/00-default_app_helper.js +11 -0
  17. package/lib/app/helper/alchemy_helper.js +22 -22
  18. package/lib/app/helper/backed_map.js +1 -1
  19. package/lib/app/helper/breadcrumb.js +10 -10
  20. package/lib/app/helper/client_collection.js +3 -3
  21. package/lib/app/helper/cron.js +29 -29
  22. package/lib/app/helper/enum_values.js +6 -6
  23. package/lib/app/helper/pagination_helper.js +36 -36
  24. package/lib/app/helper/router_helper.js +35 -35
  25. package/lib/app/helper/socket_helper.js +57 -57
  26. package/lib/app/helper/syncable.js +84 -59
  27. package/lib/app/helper_component/paginate_component.js +9 -9
  28. package/lib/app/helper_controller/component.js +1 -1
  29. package/lib/app/helper_controller/conduit.js +31 -31
  30. package/lib/app/helper_controller/controller.js +54 -39
  31. package/lib/app/helper_datasource/00-nosql_datasource.js +624 -70
  32. package/lib/app/helper_datasource/05-fallback_datasource.js +10 -10
  33. package/lib/app/helper_datasource/idb_datasource.js +6 -6
  34. package/lib/app/helper_datasource/indexed_db.js +22 -22
  35. package/lib/app/helper_datasource/remote_datasource.js +5 -5
  36. package/lib/app/helper_error/http_error.js +4 -4
  37. package/lib/app/helper_error/model_error.js +2 -2
  38. package/lib/app/helper_error/validation_error.js +12 -12
  39. package/lib/app/helper_field/00-objectid_field.js +7 -7
  40. package/lib/app/helper_field/05-string_field.js +16 -12
  41. package/lib/app/helper_field/06-text_field.js +2 -4
  42. package/lib/app/helper_field/10-number_field.js +9 -12
  43. package/lib/app/helper_field/11-date_field.js +15 -15
  44. package/lib/app/helper_field/15-local_temporal_field.js +10 -10
  45. package/lib/app/helper_field/20-decimal_field.js +8 -9
  46. package/lib/app/helper_field/belongsto_field.js +1 -1
  47. package/lib/app/helper_field/big_int_field.js +8 -8
  48. package/lib/app/helper_field/boolean_field.js +9 -11
  49. package/lib/app/helper_field/datetime_field.js +3 -3
  50. package/lib/app/helper_field/enum_field.js +13 -8
  51. package/lib/app/helper_field/fixed_decimal_field.js +6 -7
  52. package/lib/app/helper_field/geopoint_field.js +9 -10
  53. package/lib/app/helper_field/habtm_field.js +3 -3
  54. package/lib/app/helper_field/hasoneparent_field.js +1 -1
  55. package/lib/app/helper_field/html_field.js +2 -4
  56. package/lib/app/helper_field/integer_field.js +8 -11
  57. package/lib/app/helper_field/local_date_field.js +5 -5
  58. package/lib/app/helper_field/local_date_time_field.js +5 -5
  59. package/lib/app/helper_field/local_time_field.js +5 -5
  60. package/lib/app/helper_field/mixed_field.js +5 -5
  61. package/lib/app/helper_field/object_field.js +8 -8
  62. package/lib/app/helper_field/password_field.js +3 -3
  63. package/lib/app/helper_field/regexp_field.js +7 -9
  64. package/lib/app/helper_field/schema_field.js +91 -88
  65. package/lib/app/helper_field/settings_field.js +92 -0
  66. package/lib/app/helper_field/time_field.js +6 -6
  67. package/lib/app/helper_field/url_field.js +2 -4
  68. package/lib/app/helper_model/00-base_criteria.js +662 -0
  69. package/lib/app/helper_model/05-criteria_expressions.js +605 -0
  70. package/lib/app/helper_model/10-model_criteria.js +1182 -0
  71. package/lib/app/helper_model/data_provider.js +2 -2
  72. package/lib/app/helper_model/document.js +103 -92
  73. package/lib/app/helper_model/document_list.js +14 -14
  74. package/lib/app/helper_model/field_config.js +11 -11
  75. package/lib/app/helper_model/field_set.js +17 -17
  76. package/lib/app/helper_model/model.js +203 -124
  77. package/lib/app/helper_model/remote_data_provider.js +2 -2
  78. package/lib/app/helper_validator/00_validator.js +16 -16
  79. package/lib/app/helper_validator/not_empty_validator.js +9 -9
  80. package/lib/app/model/00-default_app_model.js +18 -0
  81. package/lib/app/model/05-system_model.js +27 -0
  82. package/lib/app/model/{alchemy_migration_model.js → system_migration_model.js} +4 -4
  83. package/lib/app/model/system_setting_model.js +154 -0
  84. package/lib/app/model/{alchemy_task_history_model.js → system_task_history_model.js} +7 -7
  85. package/lib/app/model/{alchemy_task_model.js → system_task_model.js} +11 -11
  86. package/lib/bootstrap.js +22 -312
  87. package/lib/class/accumulator.js +5 -5
  88. package/lib/class/behaviour.js +5 -5
  89. package/lib/class/component.js +3 -3
  90. package/lib/class/conduit.js +203 -163
  91. package/lib/class/controller.js +42 -42
  92. package/lib/class/datasource.js +74 -79
  93. package/lib/class/document.js +74 -95
  94. package/lib/class/document_list.js +5 -5
  95. package/lib/class/element.js +17 -17
  96. package/lib/class/error.js +3 -3
  97. package/lib/class/field.js +169 -91
  98. package/lib/class/field_value.js +6 -6
  99. package/lib/class/helper.js +3 -3
  100. package/lib/class/inode.js +17 -17
  101. package/lib/class/inode_dir.js +12 -12
  102. package/lib/class/inode_file.js +50 -25
  103. package/lib/class/inode_list.js +4 -4
  104. package/lib/class/migration.js +4 -4
  105. package/lib/class/model.js +182 -168
  106. package/lib/class/path_definition.js +22 -22
  107. package/lib/class/path_evaluator.js +5 -5
  108. package/lib/class/path_param_definition.js +7 -7
  109. package/lib/class/plugin.js +312 -0
  110. package/lib/class/postponement.js +29 -29
  111. package/lib/class/reciprocal.js +8 -8
  112. package/lib/class/route.js +33 -33
  113. package/lib/class/router.js +73 -73
  114. package/lib/class/schema.js +21 -21
  115. package/lib/class/schema_client.js +73 -67
  116. package/lib/class/session.js +63 -29
  117. package/lib/class/session_scene.js +4 -4
  118. package/lib/class/sitemap.js +16 -16
  119. package/lib/class/task.js +39 -39
  120. package/lib/class/task_service.js +43 -47
  121. package/lib/{init → core}/alchemy.js +413 -374
  122. package/lib/{init/functions.js → core/alchemy_functions.js} +171 -108
  123. package/lib/core/alchemy_load_functions.js +715 -0
  124. package/lib/core/base.js +50 -62
  125. package/lib/core/client_alchemy.js +144 -152
  126. package/lib/core/client_base.js +39 -52
  127. package/lib/core/discovery.js +16 -18
  128. package/lib/core/middleware.js +54 -43
  129. package/lib/core/{routing.js → prefix.js} +14 -16
  130. package/lib/core/setting.js +1684 -0
  131. package/lib/core/stage.js +758 -0
  132. package/lib/scripts/create_constants.js +119 -0
  133. package/lib/{init/languages.js → scripts/create_languages.js} +5 -5
  134. package/lib/scripts/create_settings.js +449 -0
  135. package/lib/scripts/create_shared_constants.js +95 -0
  136. package/lib/scripts/create_stages.js +55 -0
  137. package/lib/scripts/init_alchemy.js +51 -0
  138. package/lib/{init/requirements.js → scripts/preload_modules.js} +15 -2
  139. package/lib/scripts/setup_devwatch.js +238 -0
  140. package/lib/stages/00-load_core.js +342 -0
  141. package/lib/stages/05-load_app.js +57 -0
  142. package/lib/stages/10-datasource.js +61 -0
  143. package/lib/stages/15-tasks.js +27 -0
  144. package/lib/stages/20-settings.js +68 -0
  145. package/lib/stages/50-routes.js +218 -0
  146. package/lib/stages/90-server.js +347 -0
  147. package/package.json +5 -7
  148. package/lib/app/helper_model/criteria.js +0 -2294
  149. package/lib/app/helper_model/db_query.js +0 -1488
  150. package/lib/app/routes.js +0 -11
  151. package/lib/core/socket.js +0 -171
  152. package/lib/init/constants.js +0 -158
  153. package/lib/init/devwatch.js +0 -238
  154. package/lib/init/load_functions.js +0 -973
  155. package/lib/stages.js +0 -513
@@ -3,7 +3,7 @@ var instances = {};
3
3
  /**
4
4
  * Datasource
5
5
  *
6
- * @author Jelle De Loecker <jelle@develry.be>
6
+ * @author Jelle De Loecker <jelle@elevenways.be>
7
7
  * @since 0.2.0
8
8
  * @version 1.1.0
9
9
  */
@@ -27,21 +27,23 @@ Datasource.startNewGroup();
27
27
  /**
28
28
  * Enable query caching according to settings
29
29
  *
30
- * @author Jelle De Loecker <jelle@develry.be>
30
+ * @author Jelle De Loecker <jelle@elevenways.be>
31
31
  * @since 0.2.0
32
- * @version 0.2.0
32
+ * @version 1.4.0
33
33
  */
34
- Datasource.setProperty('queryCache', !!alchemy.settings.model_query_cache_duration);
34
+ Datasource.setProperty(function queryCache() {
35
+ return !!alchemy.settings.data_management.model_query_cache_duration;
36
+ });
35
37
 
36
38
  /**
37
39
  * Set support flag for something
38
40
  *
39
- * @author Jelle De Loecker <jelle@develry.be>
41
+ * @author Jelle De Loecker <jelle@elevenways.be>
40
42
  * @since 1.0.7
41
43
  * @version 1.0.7
42
44
  *
43
- * @param {String} name
44
- * @param {Boolean} value
45
+ * @param {string} name
46
+ * @param {boolean} value
45
47
  */
46
48
  Datasource.setStatic(function setSupport(name, value) {
47
49
  this.constitute(function doSetSupport() {
@@ -57,13 +59,13 @@ Datasource.setStatic(function setSupport(name, value) {
57
59
  /**
58
60
  * See if this supports the given flag
59
61
  *
60
- * @author Jelle De Loecker <jelle@develry.be>
62
+ * @author Jelle De Loecker <jelle@elevenways.be>
61
63
  * @since 1.0.7
62
64
  * @version 1.0.7
63
65
  *
64
- * @param {String} name
66
+ * @param {string} name
65
67
  *
66
- * @return {Boolean}
68
+ * @return {boolean}
67
69
  */
68
70
  Datasource.setStatic(function supports(name) {
69
71
 
@@ -77,13 +79,13 @@ Datasource.setStatic(function supports(name) {
77
79
  /**
78
80
  * Instance method alias for support flags
79
81
  *
80
- * @author Jelle De Loecker <jelle@develry.be>
82
+ * @author Jelle De Loecker <jelle@elevenways.be>
81
83
  * @since 1.0.7
82
84
  * @version 1.0.7
83
85
  *
84
- * @param {String} name
86
+ * @param {string} name
85
87
  *
86
- * @return {Boolean}
88
+ * @return {boolean}
87
89
  */
88
90
  Datasource.setMethod(function supports(name) {
89
91
  return this.constructor.supports(name);
@@ -92,13 +94,13 @@ Datasource.setMethod(function supports(name) {
92
94
  /**
93
95
  * Allow a specific action?
94
96
  *
95
- * @author Jelle De Loecker <jelle@develry.be>
97
+ * @author Jelle De Loecker <jelle@elevenways.be>
96
98
  * @since 1.1.0
97
99
  * @version 1.1.0
98
100
  *
99
- * @param {String} name
101
+ * @param {string} name
100
102
  *
101
- * @return {Boolean}
103
+ * @return {boolean}
102
104
  */
103
105
  Datasource.setMethod(function allows(name) {
104
106
 
@@ -119,7 +121,7 @@ Datasource.setMethod(function allows(name) {
119
121
  /**
120
122
  * Convert the given value to a BigInt (for use in JS)
121
123
  *
122
- * @author Jelle De Loecker <jelle@elevenways.be>
124
+ * @author Jelle De Loecker <jelle@elevenways.be>
123
125
  * @since 1.3.20
124
126
  * @version 1.3.20
125
127
  *
@@ -139,7 +141,7 @@ Datasource.setMethod(function castToBigInt(value) {
139
141
  /**
140
142
  * Convert the given value from a BigInt (for use in DB)
141
143
  *
142
- * @author Jelle De Loecker <jelle@elevenways.be>
144
+ * @author Jelle De Loecker <jelle@elevenways.be>
143
145
  * @since 1.3.20
144
146
  * @version 1.3.20
145
147
  *
@@ -159,7 +161,7 @@ Datasource.setMethod(function convertBigIntForDatasource(value) {
159
161
  /**
160
162
  * Convert the given value to a Decimal (for use in JS)
161
163
  *
162
- * @author Jelle De Loecker <jelle@elevenways.be>
164
+ * @author Jelle De Loecker <jelle@elevenways.be>
163
165
  * @since 1.3.20
164
166
  * @version 1.3.20
165
167
  *
@@ -179,11 +181,11 @@ Datasource.setMethod(function castToDecimal(value) {
179
181
  /**
180
182
  * Convert the given decimal for use in DB
181
183
  *
182
- * @author Jelle De Loecker <jelle@elevenways.be>
184
+ * @author Jelle De Loecker <jelle@elevenways.be>
183
185
  * @since 1.3.20
184
186
  * @version 1.3.20
185
187
  *
186
- * @param {Decimal|String} value
188
+ * @param {Decimal|string} value
187
189
  *
188
190
  * @return {Decimal}
189
191
  */
@@ -199,13 +201,13 @@ Datasource.setMethod(function convertDecimalForDatasource(value) {
199
201
  /**
200
202
  * Hash a string synchronously
201
203
  *
202
- * @author Jelle De Loecker <jelle@develry.be>
204
+ * @author Jelle De Loecker <jelle@elevenways.be>
203
205
  * @since 0.2.0
204
206
  * @version 1.1.5
205
207
  *
206
- * @param {String} str
208
+ * @param {string} str
207
209
  *
208
- * @return {String}
210
+ * @return {string}
209
211
  */
210
212
  Datasource.setMethod(function hashString(str) {
211
213
  return alchemy.checksum(str);
@@ -214,7 +216,7 @@ Datasource.setMethod(function hashString(str) {
214
216
  /**
215
217
  * Get a schema
216
218
  *
217
- * @author Jelle De Loecker <jelle@develry.be>
219
+ * @author Jelle De Loecker <jelle@elevenways.be>
218
220
  * @since 1.1.0
219
221
  * @version 1.1.0
220
222
  *
@@ -243,7 +245,7 @@ Datasource.setMethod(function getSchema(schema) {
243
245
  /**
244
246
  * Prepare record to be stored in the database
245
247
  *
246
- * @author Jelle De Loecker <jelle@develry.be>
248
+ * @author Jelle De Loecker <jelle@elevenways.be>
247
249
  * @since 0.2.0
248
250
  * @version 1.3.0
249
251
  *
@@ -268,7 +270,7 @@ Datasource.setMethod(function toDatasource(schema, data, callback) {
268
270
 
269
271
  if (!schema) {
270
272
 
271
- if (alchemy.settings.debug) {
273
+ if (alchemy.settings.debugging.debug) {
272
274
  alchemy.distinctProblem('schema-not-found', 'Schema not found: not normalizing data');
273
275
  }
274
276
 
@@ -334,9 +336,9 @@ Datasource.setMethod(function toDatasource(schema, data, callback) {
334
336
  /**
335
337
  * Prepare to return the record from the database to the app
336
338
  *
337
- * @author Jelle De Loecker <jelle@develry.be>
339
+ * @author Jelle De Loecker <jelle@elevenways.be>
338
340
  * @since 0.2.0
339
- * @version 1.3.1
341
+ * @version 1.4.0
340
342
  *
341
343
  * @param {Schema|Model} schema
342
344
  * @param {Object} query
@@ -347,16 +349,13 @@ Datasource.setMethod(function toDatasource(schema, data, callback) {
347
349
  */
348
350
  Datasource.setMethod(function toApp(schema, query, options, data, callback) {
349
351
 
350
- var pledge;
351
-
352
352
  if (!data) {
353
- pledge = Pledge.reject(new Error('Unable to convert data: no data given'));
353
+ let pledge = Pledge.reject(new Error('Unable to convert data: no data given'));
354
354
  pledge.done(callback);
355
355
  return pledge;
356
356
  }
357
357
 
358
- let that = this,
359
- tasks;
358
+ let that = this;
360
359
 
361
360
  schema = this.getSchema(schema);
362
361
 
@@ -375,6 +374,8 @@ Datasource.setMethod(function toApp(schema, query, options, data, callback) {
375
374
  options._root_data = data;
376
375
  }
377
376
 
377
+ let tasks;
378
+
378
379
  if (data[schema.name]) {
379
380
  tasks = {};
380
381
 
@@ -428,34 +429,32 @@ Datasource.setMethod(function toApp(schema, query, options, data, callback) {
428
429
  data = Object.assign({}, data);
429
430
  tasks = {};
430
431
 
431
- Object.each(data, function eachField(value, fieldName) {
432
+ for (let entry of schema.getSortedItems()) {
432
433
 
433
- var field = schema.get(fieldName);
434
+ let field_name = entry.key,
435
+ field = entry.value,
436
+ value = data[field_name];
434
437
 
435
438
  if (field != null) {
436
- tasks[fieldName] = function doToDatasource(next) {
439
+ tasks[field_name] = function doToDatasource(next) {
437
440
  that.valueToApp(field, query, options, value, next);
438
441
  };
439
- } else {
440
- let allow_field = false;
442
+ }
443
+ }
441
444
 
442
- if (options.extraneous) {
443
- allow_field = true;
444
- } else if (Blast.isBrowser && fieldName[0] == '_' && fieldName[1] == '$') {
445
+ if (Blast.isBrowser) {
446
+ for (let key in data) {
447
+ if (key[0] == '_' && key[1] == '$') {
445
448
  // Certain extra data is stored on the browser as
446
449
  // properties starting with "_$"
447
- allow_field = true;
448
- }
449
-
450
- if (allow_field) {
451
- tasks[fieldName] = function addExtraneous(next) {
452
- next(null, value);
450
+ tasks[key] = function addExtraneous(next) {
451
+ next(null, data[key]);
453
452
  };
454
453
  }
455
454
  }
456
- });
455
+ }
457
456
 
458
- pledge = Function.parallel(tasks, callback);
457
+ let pledge = Function.parallel(tasks, callback);
459
458
 
460
459
  return pledge;
461
460
  });
@@ -463,7 +462,7 @@ Datasource.setMethod(function toApp(schema, query, options, data, callback) {
463
462
  /**
464
463
  * Prepare value to be stored in the database
465
464
  *
466
- * @author Jelle De Loecker <jelle@develry.be>
465
+ * @author Jelle De Loecker <jelle@elevenways.be>
467
466
  * @since 0.2.0
468
467
  * @version 0.2.0
469
468
  */
@@ -484,7 +483,7 @@ Datasource.setMethod(function valueToDatasource(field, value, data, callback) {
484
483
  /**
485
484
  * Prepare value to be returned to the app
486
485
  *
487
- * @author Jelle De Loecker <jelle@develry.be>
486
+ * @author Jelle De Loecker <jelle@elevenways.be>
488
487
  * @since 0.2.0
489
488
  * @version 0.2.0
490
489
  */
@@ -506,34 +505,30 @@ Datasource.setMethod(function valueToApp(field, query, options, value, callback)
506
505
  * Prepare value to be stored in the database.
507
506
  * Should be overridden by extended datasources.
508
507
  *
509
- * @author Jelle De Loecker <jelle@develry.be>
508
+ * @author Jelle De Loecker <jelle@elevenways.be>
510
509
  * @since 0.2.0
511
510
  * @version 1.1.0
512
511
  */
513
512
  Datasource.setMethod(function _valueToDatasource(field, value, data, callback) {
514
- Blast.setImmediate(function immediateDelay() {
515
- callback(null, value);
516
- });
513
+ callback(null, value);
517
514
  });
518
515
 
519
516
  /**
520
517
  * Prepare value to be returned to the app.
521
518
  * Should be overridden by extended datasources.
522
519
  *
523
- * @author Jelle De Loecker <jelle@develry.be>
520
+ * @author Jelle De Loecker <jelle@elevenways.be>
524
521
  * @since 0.2.0
525
522
  * @version 1.1.0
526
523
  */
527
524
  Datasource.setMethod(function _valueToApp(field, query, options, value, callback) {
528
- Blast.setImmediate(function immediateDelay() {
529
- callback(null, value);
530
- });
525
+ callback(null, value);
531
526
  });
532
527
 
533
528
  /**
534
529
  * Query the database
535
530
  *
536
- * @author Jelle De Loecker <jelle@develry.be>
531
+ * @author Jelle De Loecker <jelle@elevenways.be>
537
532
  * @since 0.2.0
538
533
  * @version 1.3.16
539
534
  *
@@ -657,7 +652,7 @@ Datasource.setMethod(function read(model, criteria, callback) {
657
652
  /**
658
653
  * Insert new data into the database
659
654
  *
660
- * @author Jelle De Loecker <jelle@develry.be>
655
+ * @author Jelle De Loecker <jelle@elevenways.be>
661
656
  * @since 0.2.0
662
657
  * @version 1.0.6
663
658
  *
@@ -701,7 +696,7 @@ Datasource.setMethod(function create(model, data, options, callback) {
701
696
  /**
702
697
  * Update data
703
698
  *
704
- * @author Jelle De Loecker <jelle@develry.be>
699
+ * @author Jelle De Loecker <jelle@elevenways.be>
705
700
  * @since 0.2.0
706
701
  * @version 1.1.0
707
702
  *
@@ -755,7 +750,7 @@ Datasource.setMethod(function update(model, data, options, callback) {
755
750
  /**
756
751
  * Remove data from the database
757
752
  *
758
- * @author Jelle De Loecker <jelle@develry.be>
753
+ * @author Jelle De Loecker <jelle@elevenways.be>
759
754
  * @since 0.2.0
760
755
  * @version 0.2.0
761
756
  */
@@ -766,7 +761,7 @@ Datasource.setMethod(function remove(model, query, options, callback) {
766
761
  /**
767
762
  * Ensure an index in the database
768
763
  *
769
- * @author Jelle De Loecker <jelle@develry.be>
764
+ * @author Jelle De Loecker <jelle@elevenways.be>
770
765
  * @since 0.2.0
771
766
  * @version 0.3.0
772
767
  */
@@ -782,7 +777,7 @@ Datasource.setMethod(function ensureIndex(model, index, callback) {
782
777
  /**
783
778
  * Insert new data into the database
784
779
  *
785
- * @author Jelle De Loecker <jelle@develry.be>
780
+ * @author Jelle De Loecker <jelle@elevenways.be>
786
781
  * @since 0.2.0
787
782
  * @version 0.2.0
788
783
  *
@@ -800,7 +795,7 @@ Datasource.setMethod(function _create(model, data, options, callback) {
800
795
  /**
801
796
  * Query the database
802
797
  *
803
- * @author Jelle De Loecker <jelle@develry.be>
798
+ * @author Jelle De Loecker <jelle@elevenways.be>
804
799
  * @since 0.2.0
805
800
  * @version 0.2.0
806
801
  */
@@ -811,7 +806,7 @@ Datasource.setMethod(function _read(model, query, options, callback) {
811
806
  /**
812
807
  * Update data
813
808
  *
814
- * @author Jelle De Loecker <jelle@develry.be>
809
+ * @author Jelle De Loecker <jelle@elevenways.be>
815
810
  * @since 0.2.0
816
811
  * @version 0.2.0
817
812
  */
@@ -822,7 +817,7 @@ Datasource.setMethod(function _update(model, data, options, callback) {
822
817
  /**
823
818
  * Remove data from the database
824
819
  *
825
- * @author Jelle De Loecker <jelle@develry.be>
820
+ * @author Jelle De Loecker <jelle@elevenways.be>
826
821
  * @since 0.2.0
827
822
  * @version 0.2.0
828
823
  */
@@ -833,7 +828,7 @@ Datasource.setMethod(function _remove(model, query, options, callback) {
833
828
  /**
834
829
  * Ensure an index in the database
835
830
  *
836
- * @author Jelle De Loecker <jelle@develry.be>
831
+ * @author Jelle De Loecker <jelle@elevenways.be>
837
832
  * @since 0.2.0
838
833
  * @version 0.2.0
839
834
  */
@@ -844,7 +839,7 @@ Datasource.setMethod(function _ensureIndex(model, index, callback) {
844
839
  /**
845
840
  * Return a rejected pledge
846
841
  *
847
- * @author Jelle De Loecker <jelle@develry.be>
842
+ * @author Jelle De Loecker <jelle@elevenways.be>
848
843
  * @since 1.1.0
849
844
  * @version 1.1.0
850
845
  */
@@ -857,7 +852,7 @@ Datasource.setMethod(function createRejectedPledge(method, callback) {
857
852
  /**
858
853
  * Setup the datasource
859
854
  *
860
- * @author Jelle De Loecker <jelle@develry.be>
855
+ * @author Jelle De Loecker <jelle@elevenways.be>
861
856
  * @since 1.1.0
862
857
  * @version 1.1.0
863
858
  */
@@ -904,7 +899,7 @@ Datasource.setMethod(function setup(callback) {
904
899
  /**
905
900
  * Get all model classes that connect through this datasource
906
901
  *
907
- * @author Jelle De Loecker <jelle@develry.be>
902
+ * @author Jelle De Loecker <jelle@elevenways.be>
908
903
  * @since 1.1.0
909
904
  * @version 1.1.0
910
905
  *
@@ -937,13 +932,13 @@ Datasource.setMethod(function getModels() {
937
932
  /**
938
933
  * Is the given model an abstract model?
939
934
  *
940
- * @author Jelle De Loecker <jelle@develry.be>
935
+ * @author Jelle De Loecker <jelle@elevenways.be>
941
936
  * @since 1.1.0
942
937
  * @version 1.1.0
943
938
  *
944
939
  * @param {Function} model
945
940
  *
946
- * @return {Boolean}
941
+ * @return {boolean}
947
942
  */
948
943
  Datasource.setMethod(function isAbstractModel(model) {
949
944
  return !!model.is_abstract;
@@ -952,12 +947,12 @@ Datasource.setMethod(function isAbstractModel(model) {
952
947
  /**
953
948
  * Create a new datasource
954
949
  *
955
- * @author Jelle De Loecker <jelle@develry.be>
950
+ * @author Jelle De Loecker <jelle@elevenways.be>
956
951
  * @since 0.2.0
957
952
  * @version 1.1.0
958
953
  *
959
- * @param {String} type The type of datasource to create
960
- * @param {String} name The internal name of the datasource
954
+ * @param {string} type The type of datasource to create
955
+ * @param {string} name The internal name of the datasource
961
956
  * @param {Object} options Configuration options for the datasource
962
957
  *
963
958
  * @return {Datasource}
@@ -979,7 +974,7 @@ Datasource.create = function create(type, name, options) {
979
974
  /**
980
975
  * Get a datasource instance
981
976
  *
982
- * @author Jelle De Loecker <jelle@develry.be>
977
+ * @author Jelle De Loecker <jelle@elevenways.be>
983
978
  * @since 0.2.0
984
979
  * @version 1.1.0
985
980
  *