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
@@ -4,7 +4,7 @@
4
4
  *
5
5
  * @constructor
6
6
  *
7
- * @author Jelle De Loecker <jelle@develry.be>
7
+ * @author Jelle De Loecker <jelle@elevenways.be>
8
8
  * @since 1.0.0
9
9
  * @version 1.1.3
10
10
  *
@@ -18,11 +18,11 @@ var DocumentList = Function.inherits(['Alchemy.Client.Base', 'Array'], 'Alchemy.
18
18
  /**
19
19
  * Get the length
20
20
  *
21
- * @author Jelle De Loecker <jelle@develry.be>
21
+ * @author Jelle De Loecker <jelle@elevenways.be>
22
22
  * @since 1.1.0
23
23
  * @version 1.1.0
24
24
  *
25
- * @return {Number}
25
+ * @return {number}
26
26
  */
27
27
  DocumentList.setProperty(function length() {
28
28
  return this.records.length;
@@ -31,11 +31,11 @@ DocumentList.setProperty(function length() {
31
31
  /**
32
32
  * Get the page number
33
33
  *
34
- * @author Jelle De Loecker <jelle@develry.be>
34
+ * @author Jelle De Loecker <jelle@elevenways.be>
35
35
  * @since 1.1.3
36
36
  * @version 1.1.3
37
37
  *
38
- * @return {Number}
38
+ * @return {number}
39
39
  */
40
40
  DocumentList.setProperty(function page() {
41
41
  if (this.options && this.options.options) {
@@ -46,11 +46,11 @@ DocumentList.setProperty(function page() {
46
46
  /**
47
47
  * Get the page size
48
48
  *
49
- * @author Jelle De Loecker <jelle@develry.be>
49
+ * @author Jelle De Loecker <jelle@elevenways.be>
50
50
  * @since 1.1.3
51
51
  * @version 1.1.3
52
52
  *
53
- * @return {Number}
53
+ * @return {number}
54
54
  */
55
55
  DocumentList.setProperty(function page_size() {
56
56
  if (this.options && this.options.options) {
@@ -61,7 +61,7 @@ DocumentList.setProperty(function page_size() {
61
61
  /**
62
62
  * unDry an object
63
63
  *
64
- * @author Jelle De Loecker <jelle@develry.be>
64
+ * @author Jelle De Loecker <jelle@elevenways.be>
65
65
  * @since 1.0.0
66
66
  * @version 1.1.3
67
67
  *
@@ -82,7 +82,7 @@ DocumentList.setStatic(function unDry(obj) {
82
82
  /**
83
83
  * Init the data
84
84
  *
85
- * @author Jelle De Loecker <jelle@develry.be>
85
+ * @author Jelle De Loecker <jelle@elevenways.be>
86
86
  * @since 1.1.3
87
87
  * @version 1.1.3
88
88
  *
@@ -112,7 +112,7 @@ DocumentList.setMethod(function initData(records, options) {
112
112
  /**
113
113
  * Iterator method
114
114
  *
115
- * @author Jelle De Loecker <jelle@develry.be>
115
+ * @author Jelle De Loecker <jelle@elevenways.be>
116
116
  * @since 1.1.0
117
117
  * @version 1.1.0
118
118
  */
@@ -128,7 +128,7 @@ DocumentList.setMethod(Symbol.iterator, function* iterate() {
128
128
  /**
129
129
  * Create an old-style iterator
130
130
  *
131
- * @author Jelle De Loecker <jelle@develry.be>
131
+ * @author Jelle De Loecker <jelle@elevenways.be>
132
132
  * @since 1.1.0
133
133
  * @version 1.1.0
134
134
  *
@@ -141,7 +141,7 @@ DocumentList.setMethod(function createIterator() {
141
141
  /**
142
142
  * Return an object for json-drying this list
143
143
  *
144
- * @author Jelle De Loecker <jelle@develry.be>
144
+ * @author Jelle De Loecker <jelle@elevenways.be>
145
145
  * @since 1.0.0
146
146
  * @version 1.2.4
147
147
  *
@@ -209,7 +209,7 @@ DocumentList.setMethod(function toHawkejs(wm) {
209
209
  /**
210
210
  * Return a new array with the records
211
211
  *
212
- * @author Jelle De Loecker <jelle@develry.be>
212
+ * @author Jelle De Loecker <jelle@elevenways.be>
213
213
  * @since 1.0.0
214
214
  * @version 1.0.3
215
215
  *
@@ -229,7 +229,7 @@ DocumentList.setMethod(function toArray(options) {
229
229
  /**
230
230
  * Return a simple list of the main data
231
231
  *
232
- * @author Jelle De Loecker <jelle@develry.be>
232
+ * @author Jelle De Loecker <jelle@elevenways.be>
233
233
  * @since 1.0.3
234
234
  * @version 1.0.3
235
235
  *
@@ -42,7 +42,7 @@ const FieldConfig = Fn.inherits('Alchemy.Base', 'Alchemy.Criteria', function Fie
42
42
  /**
43
43
  * unDry an object
44
44
  *
45
- * @author Jelle De Loecker <jelle@elevenways.be>
45
+ * @author Jelle De Loecker <jelle@elevenways.be>
46
46
  * @since 1.1.3
47
47
  * @version 1.2.3
48
48
  *
@@ -88,11 +88,11 @@ FieldConfig.setProperty(function title() {
88
88
  * Set the main model context this field is used for
89
89
  * (Actual field can be in an association of this model)
90
90
  *
91
- * @author Jelle De Loecker <jelle@elevenways.be>
91
+ * @author Jelle De Loecker <jelle@elevenways.be>
92
92
  * @since 1.2.2
93
93
  * @version 1.2.2
94
94
  *
95
- * @param {String|Model} model
95
+ * @param {string|Model} model
96
96
  */
97
97
  FieldConfig.setMethod(function setContextModel(model) {
98
98
 
@@ -108,7 +108,7 @@ FieldConfig.setMethod(function setContextModel(model) {
108
108
  /**
109
109
  * Get the context model this field is used for
110
110
  *
111
- * @author Jelle De Loecker <jelle@elevenways.be>
111
+ * @author Jelle De Loecker <jelle@elevenways.be>
112
112
  * @since 1.2.2
113
113
  * @version 1.2.2
114
114
  */
@@ -129,7 +129,7 @@ FieldConfig.setMethod(function getContextModel() {
129
129
  /**
130
130
  * Get the actual model this field is in
131
131
  *
132
- * @author Jelle De Loecker <jelle@elevenways.be>
132
+ * @author Jelle De Loecker <jelle@elevenways.be>
133
133
  * @since 1.2.2
134
134
  * @version 1.2.5
135
135
  */
@@ -159,7 +159,7 @@ FieldConfig.setMethod(function getModel() {
159
159
  /**
160
160
  * Get the field definition
161
161
  *
162
- * @author Jelle De Loecker <jelle@elevenways.be>
162
+ * @author Jelle De Loecker <jelle@elevenways.be>
163
163
  * @since 1.2.2
164
164
  * @version 1.2.7
165
165
  *
@@ -188,7 +188,7 @@ FieldConfig.setMethod(function getFieldDefinition() {
188
188
  /**
189
189
  * Return an object for json-drying this list
190
190
  *
191
- * @author Jelle De Loecker <jelle@elevenways.be>
191
+ * @author Jelle De Loecker <jelle@elevenways.be>
192
192
  * @since 1.1.3
193
193
  * @version 1.1.4
194
194
  *
@@ -203,7 +203,7 @@ FieldConfig.setMethod(function toDry() {
203
203
  /**
204
204
  * Get the JSON value
205
205
  *
206
- * @author Jelle De Loecker <jelle@elevenways.be>
206
+ * @author Jelle De Loecker <jelle@elevenways.be>
207
207
  * @since 1.1.3
208
208
  * @version 1.2.0
209
209
  *
@@ -223,7 +223,7 @@ FieldConfig.setMethod(function toJSON() {
223
223
  /**
224
224
  * Parse a path
225
225
  *
226
- * @author Jelle De Loecker <jelle@elevenways.be>
226
+ * @author Jelle De Loecker <jelle@elevenways.be>
227
227
  * @since 1.1.3
228
228
  * @version 1.2.0
229
229
  *
@@ -282,7 +282,7 @@ FieldConfig.setMethod(function parsePath(path) {
282
282
  /**
283
283
  * Look for a value in the given object
284
284
  *
285
- * @author Jelle De Loecker <jelle@elevenways.be>
285
+ * @author Jelle De Loecker <jelle@elevenways.be>
286
286
  * @since 1.1.4
287
287
  * @version 1.1.4
288
288
  *
@@ -300,7 +300,7 @@ FieldConfig.setMethod(function getValueIn(data) {
300
300
  /**
301
301
  * Get the display value for the value in the given object
302
302
  *
303
- * @author Jelle De Loecker <jelle@elevenways.be>
303
+ * @author Jelle De Loecker <jelle@elevenways.be>
304
304
  * @since 1.1.7
305
305
  * @version 1.1.7
306
306
  *
@@ -7,15 +7,15 @@
7
7
  * @since 1.1.3
8
8
  * @version 1.1.3
9
9
  *
10
- * @param {String} name The optional name of this fieldset
11
- * @param {String} model The optional model this is about
10
+ * @param {string} name The optional name of this fieldset
11
+ * @param {string} model The optional model this is about
12
12
  */
13
13
  const FieldSet = Fn.inherits('Alchemy.Base', 'Alchemy.Criteria', function FieldSet(name, model) {
14
14
 
15
15
  this.name = name;
16
16
 
17
17
  if (typeof model == 'function') {
18
- model = model.name;
18
+ model = model.model_name;
19
19
  }
20
20
 
21
21
  this.model = model;
@@ -26,7 +26,7 @@ const FieldSet = Fn.inherits('Alchemy.Base', 'Alchemy.Criteria', function FieldS
26
26
  /**
27
27
  * unDry an object
28
28
  *
29
- * @author Jelle De Loecker <jelle@elevenways.be>
29
+ * @author Jelle De Loecker <jelle@elevenways.be>
30
30
  * @since 1.1.3
31
31
  * @version 1.1.3
32
32
  *
@@ -43,7 +43,7 @@ FieldSet.setStatic(function unDry(obj) {
43
43
  /**
44
44
  * Create from array
45
45
  *
46
- * @author Jelle De Loecker <jelle@elevenways.be>
46
+ * @author Jelle De Loecker <jelle@elevenways.be>
47
47
  * @since 1.1.4
48
48
  * @version 1.1.4
49
49
  *
@@ -63,11 +63,11 @@ FieldSet.setStatic(function fromArray(fields) {
63
63
  /**
64
64
  * How many fields have been added to this set?
65
65
  *
66
- * @author Jelle De Loecker <jelle@elevenways.be>
66
+ * @author Jelle De Loecker <jelle@elevenways.be>
67
67
  * @since 1.3.16
68
68
  * @version 1.3.16
69
69
  *
70
- * @type {Number}
70
+ * @type {number}
71
71
  */
72
72
  FieldSet.setProperty(function size() {
73
73
  return this.fields.size;
@@ -76,11 +76,11 @@ FieldSet.setProperty(function size() {
76
76
  /**
77
77
  * Return an object for json-drying this list
78
78
  *
79
- * @author Jelle De Loecker <jelle@elevenways.be>
79
+ * @author Jelle De Loecker <jelle@elevenways.be>
80
80
  * @since 1.1.3
81
81
  * @version 1.2.5
82
82
  *
83
- * @type {Deck}
83
+ * @type {Deck}
84
84
  */
85
85
  FieldSet.enforceProperty(function fields(new_value, old_value) {
86
86
 
@@ -122,7 +122,7 @@ FieldSet.enforceProperty(function fields(new_value, old_value) {
122
122
  /**
123
123
  * Return an object for json-drying this list
124
124
  *
125
- * @author Jelle De Loecker <jelle@elevenways.be>
125
+ * @author Jelle De Loecker <jelle@elevenways.be>
126
126
  * @since 1.1.3
127
127
  * @version 1.1.3
128
128
  *
@@ -141,7 +141,7 @@ FieldSet.setMethod(function toDry() {
141
141
  /**
142
142
  * Gat the JSON value
143
143
  *
144
- * @author Jelle De Loecker <jelle@elevenways.be>
144
+ * @author Jelle De Loecker <jelle@elevenways.be>
145
145
  * @since 1.1.3
146
146
  * @version 1.1.3
147
147
  *
@@ -167,7 +167,7 @@ FieldSet.setMethod(function toJSON() {
167
167
  /**
168
168
  * Get an instance of the model
169
169
  *
170
- * @author Jelle De Loecker <jelle@elevenways.be>
170
+ * @author Jelle De Loecker <jelle@elevenways.be>
171
171
  * @since 1.2.2
172
172
  * @version 1.2.2
173
173
  *
@@ -189,7 +189,7 @@ FieldSet.setMethod(function getModel() {
189
189
  /**
190
190
  * Iterator method
191
191
  *
192
- * @author Jelle De Loecker <jelle@develry.be>
192
+ * @author Jelle De Loecker <jelle@elevenways.be>
193
193
  * @since 1.1.0
194
194
  * @version 1.1.0
195
195
  */
@@ -206,11 +206,11 @@ FieldSet.setMethod(Symbol.iterator, function* iterate() {
206
206
  /**
207
207
  * Add a field to this set
208
208
  *
209
- * @author Jelle De Loecker <jelle@elevenways.be>
209
+ * @author Jelle De Loecker <jelle@elevenways.be>
210
210
  * @since 1.1.3
211
211
  * @version 1.2.2
212
212
  *
213
- * @param {String} name The name of the field to add
213
+ * @param {string} name The name of the field to add
214
214
  * @param {Object} options
215
215
  *
216
216
  * @return {Alchemy.Form.FieldConfig}
@@ -231,7 +231,7 @@ FieldSet.setMethod(function addField(name, options) {
231
231
  /**
232
232
  * Remove all current fields
233
233
  *
234
- * @author Jelle De Loecker <jelle@elevenways.be>
234
+ * @author Jelle De Loecker <jelle@elevenways.be>
235
235
  * @since 1.3.0
236
236
  * @version 1.3.0
237
237
  */
@@ -242,7 +242,7 @@ FieldSet.setMethod(function clear() {
242
242
  /**
243
243
  * Get a fieldconfig by its field name
244
244
  *
245
- * @author Jelle De Loecker <jelle@elevenways.be>
245
+ * @author Jelle De Loecker <jelle@elevenways.be>
246
246
  * @since 1.2.5
247
247
  * @version 1.2.5
248
248
  *