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
package/lib/class/task.js CHANGED
@@ -11,7 +11,7 @@ const running = alchemy.shared('Task.running', 'Array'),
11
11
  /**
12
12
  * The base "Task" class
13
13
  *
14
- * @author Jelle De Loecker <jelle@elevenways.be>
14
+ * @author Jelle De Loecker <jelle@elevenways.be>
15
15
  * @since 0.3.0
16
16
  * @version 0.5.0
17
17
  */
@@ -56,11 +56,11 @@ const Task = Function.inherits('Alchemy.Base', 'Alchemy.Task', function Task() {
56
56
  * Add a forced cron schedule:
57
57
  * this task will always run at the given time
58
58
  *
59
- * @author Jelle De Loecker <jelle@elevenways.be>
59
+ * @author Jelle De Loecker <jelle@elevenways.be>
60
60
  * @since 1.3.17
61
61
  * @version 1.3.17
62
62
  *
63
- * @param {String} cron_schedule
63
+ * @param {string} cron_schedule
64
64
  * @param {Object} settings
65
65
  */
66
66
  Task.setStatic(function addForcedCronSchedule(cron_schedule, settings) {
@@ -78,11 +78,11 @@ Task.setStatic(function addForcedCronSchedule(cron_schedule, settings) {
78
78
  * Add a fallback cron schedule:
79
79
  * this task will run at the given time if no other schedule is found
80
80
  *
81
- * @author Jelle De Loecker <jelle@elevenways.be>
81
+ * @author Jelle De Loecker <jelle@elevenways.be>
82
82
  * @since 1.3.17
83
83
  * @version 1.3.17
84
84
  *
85
- * @param {String} cron_schedule
85
+ * @param {string} cron_schedule
86
86
  * @param {Object} settings
87
87
  */
88
88
  Task.setStatic(function addFallbackCronSchedule(cron_schedule, settings) {
@@ -99,7 +99,7 @@ Task.setStatic(function addFallbackCronSchedule(cron_schedule, settings) {
99
99
  /**
100
100
  * Each command has a configuration schema
101
101
  *
102
- * @author Jelle De Loecker <jelle@elevenways.be>
102
+ * @author Jelle De Loecker <jelle@elevenways.be>
103
103
  * @since 0.3.0
104
104
  * @version 0.5.0
105
105
  */
@@ -112,7 +112,7 @@ Task.constitute(function setSchema() {
112
112
  /**
113
113
  * Return the class-wide schema
114
114
  *
115
- * @type {Schema}
115
+ * @type {Schema}
116
116
  */
117
117
  Task.setProperty(function schema() {
118
118
  return this.constructor.schema;
@@ -131,14 +131,14 @@ Task.startNewGroup();
131
131
  /**
132
132
  * Indicate this command can be paused
133
133
  *
134
- * @type {Boolean}
134
+ * @type {boolean}
135
135
  */
136
136
  Task.setProperty('can_be_paused', true);
137
137
 
138
138
  /**
139
139
  * Indicate this command can be stopped
140
140
  *
141
- * @type {Schema}
141
+ * @type {Schema}
142
142
  */
143
143
  Task.setProperty('can_be_stopped', true);
144
144
 
@@ -147,7 +147,7 @@ Task.setProperty('can_be_stopped', true);
147
147
  * only set when command block should never use
148
148
  * `_getDescription`
149
149
  *
150
- * @type {Boolean}
150
+ * @type {boolean}
151
151
  */
152
152
  Task.setProperty('static_description', '');
153
153
 
@@ -155,7 +155,7 @@ Task.setProperty('static_description', '');
155
155
  * Always execute `_getDescription`, even when
156
156
  * there are no settings
157
157
  *
158
- * @type {Boolean}
158
+ * @type {boolean}
159
159
  */
160
160
  Task.setProperty('force_description_callback', false);
161
161
 
@@ -166,7 +166,7 @@ Task.setProperty('force_description_callback', false);
166
166
  * @since 1.3.17
167
167
  * @version 1.3.17
168
168
  *
169
- * @type {Boolean}
169
+ * @type {boolean}
170
170
  */
171
171
  Task.setProperty(function has_started() {
172
172
  return this[STATUS] > STARTING;
@@ -179,7 +179,7 @@ Task.setProperty(function has_started() {
179
179
  * @since 1.3.17
180
180
  * @version 1.3.17
181
181
  *
182
- * @type {Boolean}
182
+ * @type {boolean}
183
183
  */
184
184
  Task.setProperty(function is_paused() {
185
185
  return this[STATUS] == PAUSED;
@@ -192,7 +192,7 @@ Task.setProperty(function is_paused() {
192
192
  * @since 1.3.17
193
193
  * @version 1.3.17
194
194
  *
195
- * @type {Boolean}
195
+ * @type {boolean}
196
196
  */
197
197
  Task.setProperty(function has_stopped() {
198
198
  return this[STATUS] == STOPPED;
@@ -226,11 +226,11 @@ Task.setMethod(function toJSON() {
226
226
  /**
227
227
  * Callback with a nice description
228
228
  *
229
- * @author Jelle De Loecker <jelle@elevenways.be>
229
+ * @author Jelle De Loecker <jelle@elevenways.be>
230
230
  * @since 0.3.0
231
231
  * @version 1.3.17
232
232
  *
233
- * @return {Promise<String>}
233
+ * @return {Promise<string>}
234
234
  */
235
235
  Task.setMethod(async function getDescription() {
236
236
 
@@ -249,11 +249,11 @@ Task.setMethod(async function getDescription() {
249
249
  * Callback with a nice description,
250
250
  * should be modified upon extension
251
251
  *
252
- * @author Jelle De Loecker <jelle@elevenways.be>
252
+ * @author Jelle De Loecker <jelle@elevenways.be>
253
253
  * @since 0.3.0
254
254
  * @version 0.3.0
255
255
  *
256
- * @return {Promise<String>}
256
+ * @return {Promise<string>}
257
257
  */
258
258
  Task.setMethod(async function _getDescription() {
259
259
  return this.constructor.title || this.name;
@@ -263,7 +263,7 @@ Task.setMethod(async function _getDescription() {
263
263
  * The main function to execute. Should not be called directly.
264
264
  * Needs to be overridden by child classes.
265
265
  *
266
- * @author Jelle De Loecker <jelle@elevenways.be>
266
+ * @author Jelle De Loecker <jelle@elevenways.be>
267
267
  * @since 0.5.0
268
268
  * @version 1.3.17
269
269
  */
@@ -274,7 +274,7 @@ Task.setMethod(async function executor() {
274
274
  /**
275
275
  * Set the payload/settings
276
276
  *
277
- * @author Jelle De Loecker <jelle@elevenways.be>
277
+ * @author Jelle De Loecker <jelle@elevenways.be>
278
278
  * @since 1.3.17
279
279
  * @version 1.3.17
280
280
  *
@@ -287,7 +287,7 @@ Task.setMethod(function setPayload(payload) {
287
287
  /**
288
288
  * Set the original AlchemyTask document
289
289
  *
290
- * @author Jelle De Loecker <jelle@elevenways.be>
290
+ * @author Jelle De Loecker <jelle@elevenways.be>
291
291
  * @since 1.3.17
292
292
  * @version 1.3.17
293
293
  *
@@ -300,7 +300,7 @@ Task.setMethod(function setAlchemyTaskDocument(doc) {
300
300
  /**
301
301
  * Set the AlchemyTaskHistory document
302
302
  *
303
- * @author Jelle De Loecker <jelle@elevenways.be>
303
+ * @author Jelle De Loecker <jelle@elevenways.be>
304
304
  * @since 1.3.17
305
305
  * @version 1.3.17
306
306
  *
@@ -313,7 +313,7 @@ Task.setMethod(function setAlchemyTaskHistoryDocument(doc) {
313
313
  /**
314
314
  * Start executing the command
315
315
  *
316
- * @author Jelle De Loecker <jelle@elevenways.be>
316
+ * @author Jelle De Loecker <jelle@elevenways.be>
317
317
  * @since 0.3.0
318
318
  * @version 1.3.17
319
319
  *
@@ -329,7 +329,7 @@ Task.setMethod(async function start(payload) {
329
329
  this.setPayload(payload);
330
330
  }
331
331
 
332
- const History = Model.get('AlchemyTaskHistory');
332
+ const History = Model.get('System.TaskHistory');
333
333
 
334
334
  this[STATUS] = STARTED;
335
335
  this[RUNNING_PLEDGE] = new Pledge();
@@ -398,7 +398,7 @@ Task.setMethod(async function start(payload) {
398
398
  /**
399
399
  * Stop the running command
400
400
  *
401
- * @author Jelle De Loecker <jelle@elevenways.be>
401
+ * @author Jelle De Loecker <jelle@elevenways.be>
402
402
  * @since 0.3.0
403
403
  * @version 1.3.17
404
404
  */
@@ -418,7 +418,7 @@ Task.setMethod(async function stop() {
418
418
  /**
419
419
  * Pause the running command
420
420
  *
421
- * @author Jelle De Loecker <jelle@elevenways.be>
421
+ * @author Jelle De Loecker <jelle@elevenways.be>
422
422
  * @since 0.3.0
423
423
  * @version 1.3.17
424
424
  */
@@ -445,7 +445,7 @@ Task.setMethod(function pause() {
445
445
  /**
446
446
  * Resume this task if it has been paused
447
447
  *
448
- * @author Jelle De Loecker <jelle@elevenways.be>
448
+ * @author Jelle De Loecker <jelle@elevenways.be>
449
449
  * @since 0.3.0
450
450
  * @version 1.3.17
451
451
  */
@@ -476,7 +476,7 @@ Task.setMethod(function resume() {
476
476
  /**
477
477
  * Get a parameter from the payload by the given name
478
478
  *
479
- * @author Jelle De Loecker <jelle@elevenways.be>
479
+ * @author Jelle De Loecker <jelle@elevenways.be>
480
480
  * @since 1.3.17
481
481
  * @version 1.3.17
482
482
  */
@@ -487,7 +487,7 @@ Task.setMethod(function getParam(name) {
487
487
  /**
488
488
  * Wait for the pause to resolve
489
489
  *
490
- * @author Jelle De Loecker <jelle@elevenways.be>
490
+ * @author Jelle De Loecker <jelle@elevenways.be>
491
491
  * @since 1.3.17
492
492
  * @version 1.3.21
493
493
  */
@@ -509,7 +509,7 @@ Task.setMethod(function waitUntilResumed() {
509
509
  /**
510
510
  * Wait if the system is too busy
511
511
  *
512
- * @author Jelle De Loecker <jelle@elevenways.be>
512
+ * @author Jelle De Loecker <jelle@elevenways.be>
513
513
  * @since 1.3.21
514
514
  * @version 1.3.21
515
515
  */
@@ -525,7 +525,7 @@ Task.setMethod(function waitIfTooBusy() {
525
525
  /**
526
526
  * Do a loop until the system is no longer busy
527
527
  *
528
- * @author Jelle De Loecker <jelle@elevenways.be>
528
+ * @author Jelle De Loecker <jelle@elevenways.be>
529
529
  * @since 1.3.21
530
530
  * @version 1.3.21
531
531
  */
@@ -549,12 +549,12 @@ async function doAsyncLoopUntilNotBusy(max_tries) {
549
549
  /**
550
550
  * Report command progress
551
551
  *
552
- * @author Jelle De Loecker <jelle@elevenways.be>
552
+ * @author Jelle De Loecker <jelle@elevenways.be>
553
553
  * @since 0.3.0
554
554
  * @version 1.3.17
555
555
  *
556
- * @param {Number} percentage Percentage that is done as a decimal (between 0 & 1)
557
- * @param {String} type The type of status
556
+ * @param {number} percentage Percentage that is done as a decimal (between 0 & 1)
557
+ * @param {string} type The type of status
558
558
  *
559
559
  * @return {Object}
560
560
  */
@@ -636,12 +636,12 @@ Task.setMethod(function report(percentage, type) {
636
636
  * Report progress, Janeway monkey-patches this method
637
637
  * and uses it to display the progress bar.
638
638
  *
639
- * @author Jelle De Loecker <jelle@elevenways.be>
639
+ * @author Jelle De Loecker <jelle@elevenways.be>
640
640
  * @since 0.5.0
641
641
  * @version 0.5.0
642
642
  *
643
- * @param {Number} value A value between 0-100
644
- * @param {String} label An optional label
643
+ * @param {number} value A value between 0-100
644
+ * @param {string} label An optional label
645
645
  */
646
646
  Task.setMethod(function reportProgress(value, label) {
647
647
  this.progress = value;
@@ -650,7 +650,7 @@ Task.setMethod(function reportProgress(value, label) {
650
650
  /**
651
651
  * Log command messages
652
652
  *
653
- * @author Jelle De Loecker <jelle@elevenways.be>
653
+ * @author Jelle De Loecker <jelle@elevenways.be>
654
654
  * @since 0.3.0
655
655
  * @version 0.3.0
656
656
  */
@@ -673,7 +673,7 @@ Task.setMethod(function log() {
673
673
  /**
674
674
  * Start executing a task
675
675
  *
676
- * @author Jelle De Loecker <jelle@elevenways.be>
676
+ * @author Jelle De Loecker <jelle@elevenways.be>
677
677
  * @since 0.3.0
678
678
  * @version 0.5.0
679
679
  *
@@ -8,9 +8,9 @@ let running_task_menu,
8
8
  /**
9
9
  * The TaskService class
10
10
  *
11
- * @author Jelle De Loecker <jelle@elevenways.be>
11
+ * @author Jelle De Loecker <jelle@elevenways.be>
12
12
  * @since 1.3.17
13
- * @version 1.3.17
13
+ * @version 1.4.0
14
14
  */
15
15
  const Service = Function.inherits('Alchemy.Base', 'Alchemy.Task', function TaskService() {
16
16
 
@@ -19,7 +19,7 @@ const Service = Function.inherits('Alchemy.Base', 'Alchemy.Task', function TaskS
19
19
  }
20
20
 
21
21
  // Get the AlchemyTask model
22
- this.AlchemyTask = Model.get('AlchemyTask');
22
+ this.AlchemyTask = Model.get('System.Task');
23
23
 
24
24
  // Keep track of all running tasks
25
25
  this.running_tasks = [];
@@ -33,20 +33,16 @@ const Service = Function.inherits('Alchemy.Base', 'Alchemy.Task', function TaskS
33
33
  this.initSchedules();
34
34
 
35
35
  singleton = this;
36
-
37
- if (alchemy.settings.janeway_task_menu) {
38
- this.createJanewayTaskMenu();
39
- }
40
36
  });
41
37
 
42
38
  /**
43
39
  * Get a TaskSchedule instance for the given taks
44
40
  *
45
- * @author Jelle De Loecker <jelle@elevenways.be>
41
+ * @author Jelle De Loecker <jelle@elevenways.be>
46
42
  * @since 1.3.17
47
43
  * @version 1.3.17
48
44
  *
49
- * @return {TaskSchedules|String}
45
+ * @return {TaskSchedules|string}
50
46
  */
51
47
  Service.setMethod(function getTaskSchedules(constructor) {
52
48
 
@@ -75,15 +71,15 @@ Service.setMethod(function getTaskSchedules(constructor) {
75
71
  /**
76
72
  * Checksum the given cron schedule & settings
77
73
  *
78
- * @author Jelle De Loecker <jelle@elevenways.be>
74
+ * @author Jelle De Loecker <jelle@elevenways.be>
79
75
  * @since 1.3.17
80
76
  * @version 1.3.17
81
77
  *
82
- * @param {String} type_path
78
+ * @param {string} type_path
83
79
  * @param {Cron} cron
84
80
  * @param {Object} settings
85
81
  *
86
- * @return {String}
82
+ * @return {string}
87
83
  */
88
84
  Service.setMethod(function checksumSystemSchedule(type_path, cron, settings) {
89
85
 
@@ -103,9 +99,9 @@ Service.setMethod(function checksumSystemSchedule(type_path, cron, settings) {
103
99
  /**
104
100
  * Initialize the schedules on boot
105
101
  *
106
- * @author Jelle De Loecker <jelle@elevenways.be>
102
+ * @author Jelle De Loecker <jelle@elevenways.be>
107
103
  * @since 1.3.17
108
- * @version 1.3.20
104
+ * @version 1.4.0
109
105
  */
110
106
  Service.setMethod(async function initSchedules() {
111
107
 
@@ -172,7 +168,7 @@ Service.setMethod(async function initSchedules() {
172
168
  let entry = required_system_schedules.get(checksum);
173
169
 
174
170
  // If the checksum is not in the required system schedules, remove it
175
- if (!entry) {
171
+ if (!entry || !entry.cron) {
176
172
  await record.remove();
177
173
  }
178
174
 
@@ -231,7 +227,7 @@ Service.setMethod(async function initSchedules() {
231
227
  /**
232
228
  * Create the Janeway task menu
233
229
  *
234
- * @author Jelle De Loecker <jelle@elevenways.be>
230
+ * @author Jelle De Loecker <jelle@elevenways.be>
235
231
  * @since 1.3.17
236
232
  * @version 1.3.21
237
233
  */
@@ -303,7 +299,7 @@ Service.setMethod(function createJanewayTaskMenu() {
303
299
  /**
304
300
  * Update all the schedule `setTimeout` calls that need it
305
301
  *
306
- * @author Jelle De Loecker <jelle@elevenways.be>
302
+ * @author Jelle De Loecker <jelle@elevenways.be>
307
303
  * @since 1.3.17
308
304
  * @version 1.3.17
309
305
  */
@@ -316,7 +312,7 @@ Service.setMethod(function updateTimeoutCalls() {
316
312
  /**
317
313
  * Schedule forced tasks
318
314
  *
319
- * @author Jelle De Loecker <jelle@elevenways.be>
315
+ * @author Jelle De Loecker <jelle@elevenways.be>
320
316
  * @since 1.3.17
321
317
  * @version 1.3.17
322
318
  */
@@ -336,13 +332,13 @@ Service.setMethod(async function rescheduleAllTasks() {
336
332
  /**
337
333
  * Get the constructor of the given task type
338
334
  *
339
- * @author Jelle De Loecker <jelle@elevenways.be>
335
+ * @author Jelle De Loecker <jelle@elevenways.be>
340
336
  * @since 1.3.17
341
337
  * @version 1.3.17
342
338
  *
343
- * @param {String|Function} task_type_path
339
+ * @param {string|Function} task_type_path
344
340
  *
345
- * @return {Function|Boolean}
341
+ * @return {Function|boolean}
346
342
  */
347
343
  Service.setMethod(function getTaskConstructor(task_type_path) {
348
344
 
@@ -367,11 +363,11 @@ Service.setMethod(function getTaskConstructor(task_type_path) {
367
363
  /**
368
364
  * Reschedule all tasks of the given type
369
365
  *
370
- * @author Jelle De Loecker <jelle@elevenways.be>
366
+ * @author Jelle De Loecker <jelle@elevenways.be>
371
367
  * @since 1.3.17
372
368
  * @version 1.3.17
373
369
  *
374
- * @param {String|Function} task_class
370
+ * @param {string|Function} task_class
375
371
  */
376
372
  Service.setMethod(async function rescheduleTasksOfType(task_class) {
377
373
 
@@ -389,7 +385,7 @@ Service.setMethod(async function rescheduleTasksOfType(task_class) {
389
385
 
390
386
  schedules.clearAll();
391
387
 
392
- const Task = Model.get('AlchemyTask');
388
+ const Task = Model.get('System.Task');
393
389
  const crit = Task.find();
394
390
  crit.where('type').equals(task_class.type_path);
395
391
  const records = await Task.find('all', crit);
@@ -445,7 +441,7 @@ Service.setMethod(async function rescheduleTasksOfType(task_class) {
445
441
  /**
446
442
  * Simple class to keep track of a task's schedule
447
443
  *
448
- * @author Jelle De Loecker <jelle@elevenways.be>
444
+ * @author Jelle De Loecker <jelle@elevenways.be>
449
445
  * @since 1.3.17
450
446
  * @version 1.3.17
451
447
  */
@@ -457,7 +453,7 @@ class TaskSchedules {
457
453
  /**
458
454
  * Initialize the instance
459
455
  *
460
- * @author Jelle De Loecker <jelle@elevenways.be>
456
+ * @author Jelle De Loecker <jelle@elevenways.be>
461
457
  * @since 1.3.17
462
458
  * @version 1.3.17
463
459
  */
@@ -468,7 +464,7 @@ class TaskSchedules {
468
464
  /**
469
465
  * Getter for the amount of schedules
470
466
  *
471
- * @author Jelle De Loecker <jelle@elevenways.be>
467
+ * @author Jelle De Loecker <jelle@elevenways.be>
472
468
  * @since 1.3.17
473
469
  * @version 1.3.17
474
470
  */
@@ -479,7 +475,7 @@ class TaskSchedules {
479
475
  /**
480
476
  * Add a schedule (with the given settings)
481
477
  *
482
- * @author Jelle De Loecker <jelle@elevenways.be>
478
+ * @author Jelle De Loecker <jelle@elevenways.be>
483
479
  * @since 1.3.17
484
480
  * @version 1.3.17
485
481
  *
@@ -496,7 +492,7 @@ class TaskSchedules {
496
492
  /**
497
493
  * Update all the timeout calls that need it.
498
494
  *
499
- * @author Jelle De Loecker <jelle@elevenways.be>
495
+ * @author Jelle De Loecker <jelle@elevenways.be>
500
496
  * @since 1.3.17
501
497
  * @version 1.3.17
502
498
  */
@@ -509,7 +505,7 @@ class TaskSchedules {
509
505
  /**
510
506
  * Create a start menu entry for the given record
511
507
  *
512
- * @author Jelle De Loecker <jelle@elevenways.be>
508
+ * @author Jelle De Loecker <jelle@elevenways.be>
513
509
  * @since 1.3.17
514
510
  * @version 1.3.17
515
511
  */
@@ -531,7 +527,7 @@ class TaskSchedules {
531
527
  /**
532
528
  * Start a task from the menu
533
529
  *
534
- * @author Jelle De Loecker <jelle@elevenways.be>
530
+ * @author Jelle De Loecker <jelle@elevenways.be>
535
531
  * @since 1.3.17
536
532
  * @version 1.3.20
537
533
  */
@@ -547,7 +543,7 @@ class TaskSchedules {
547
543
  /**
548
544
  * Clear all the schedules
549
545
  *
550
- * @author Jelle De Loecker <jelle@elevenways.be>
546
+ * @author Jelle De Loecker <jelle@elevenways.be>
551
547
  * @since 1.3.17
552
548
  * @version 1.3.17
553
549
  */
@@ -570,7 +566,7 @@ class TaskSchedules {
570
566
  /**
571
567
  * Simple class to keep track of a task's schedule
572
568
  *
573
- * @author Jelle De Loecker <jelle@elevenways.be>
569
+ * @author Jelle De Loecker <jelle@elevenways.be>
574
570
  * @since 1.3.17
575
571
  * @version 1.3.17
576
572
  */
@@ -594,7 +590,7 @@ class TaskSchedule {
594
590
  /**
595
591
  * Initialize the instance
596
592
  *
597
- * @author Jelle De Loecker <jelle@elevenways.be>
593
+ * @author Jelle De Loecker <jelle@elevenways.be>
598
594
  * @since 1.3.17
599
595
  * @version 1.3.17
600
596
  *
@@ -613,7 +609,7 @@ class TaskSchedule {
613
609
  /**
614
610
  * Create a new instance with the current settings
615
611
  *
616
- * @author Jelle De Loecker <jelle@elevenways.be>
612
+ * @author Jelle De Loecker <jelle@elevenways.be>
617
613
  * @since 1.3.17
618
614
  * @version 1.3.17
619
615
  */
@@ -629,7 +625,7 @@ class TaskSchedule {
629
625
  /**
630
626
  * Calculate the next scheduled date
631
627
  *
632
- * @author Jelle De Loecker <jelle@elevenways.be>
628
+ * @author Jelle De Loecker <jelle@elevenways.be>
633
629
  * @since 1.3.17
634
630
  * @version 1.3.17
635
631
  */
@@ -642,7 +638,7 @@ class TaskSchedule {
642
638
  * With the current scheduled date,
643
639
  * check if the timeout call needs to be updated.
644
640
  *
645
- * @author Jelle De Loecker <jelle@elevenways.be>
641
+ * @author Jelle De Loecker <jelle@elevenways.be>
646
642
  * @since 1.3.17
647
643
  * @version 1.3.17
648
644
  */
@@ -668,7 +664,7 @@ class TaskSchedule {
668
664
  * Propose a new scheduled date.
669
665
  * If another date is already set, the closest one will be used.
670
666
  *
671
- * @author Jelle De Loecker <jelle@elevenways.be>
667
+ * @author Jelle De Loecker <jelle@elevenways.be>
672
668
  * @since 1.3.17
673
669
  * @version 1.3.17
674
670
  */
@@ -691,13 +687,13 @@ class TaskSchedule {
691
687
  * Get the AlchemyTaskHistory document for the given date.
692
688
  * If it does not exist yet, it will be created.
693
689
  *
694
- * @author Jelle De Loecker <jelle@elevenways.be>
690
+ * @author Jelle De Loecker <jelle@elevenways.be>
695
691
  * @since 1.3.17
696
692
  * @version 1.3.17
697
693
  */
698
694
  async getHistoryDocumentForDate(date) {
699
695
 
700
- const TaskHistory = Model.get('AlchemyTaskHistory');
696
+ const TaskHistory = Model.get('System.TaskHistory');
701
697
  const crit = TaskHistory.find();
702
698
 
703
699
  crit.where('scheduled_at').equals(date);
@@ -738,7 +734,7 @@ class TaskSchedule {
738
734
  * Set the next scheduled date.
739
735
  * Current date will be overridden no matter what.
740
736
  *
741
- * @author Jelle De Loecker <jelle@elevenways.be>
737
+ * @author Jelle De Loecker <jelle@elevenways.be>
742
738
  * @since 1.3.17
743
739
  * @version 1.3.17
744
740
  */
@@ -777,7 +773,7 @@ class TaskSchedule {
777
773
  /**
778
774
  * Do something when the Janeway menu item is clicked.
779
775
  *
780
- * @author Jelle De Loecker <jelle@elevenways.be>
776
+ * @author Jelle De Loecker <jelle@elevenways.be>
781
777
  * @since 1.3.17
782
778
  * @version 1.3.17
783
779
  */
@@ -788,7 +784,7 @@ class TaskSchedule {
788
784
  /**
789
785
  * Actually set the date & timeout (and history document)
790
786
  *
791
- * @author Jelle De Loecker <jelle@elevenways.be>
787
+ * @author Jelle De Loecker <jelle@elevenways.be>
792
788
  * @since 1.3.17
793
789
  * @version 1.3.17
794
790
  */
@@ -813,7 +809,7 @@ class TaskSchedule {
813
809
  /**
814
810
  * Does the current process own this task?
815
811
  *
816
- * @author Jelle De Loecker <jelle@elevenways.be>
812
+ * @author Jelle De Loecker <jelle@elevenways.be>
817
813
  * @since 1.3.17
818
814
  * @version 1.3.17
819
815
  */
@@ -854,7 +850,7 @@ class TaskSchedule {
854
850
  /**
855
851
  * Do a manual start
856
852
  *
857
- * @author Jelle De Loecker <jelle@elevenways.be>
853
+ * @author Jelle De Loecker <jelle@elevenways.be>
858
854
  * @since 1.3.17
859
855
  * @version 1.3.20
860
856
  *
@@ -877,7 +873,7 @@ class TaskSchedule {
877
873
  /**
878
874
  * Actually run the task
879
875
  *
880
- * @author Jelle De Loecker <jelle@elevenways.be>
876
+ * @author Jelle De Loecker <jelle@elevenways.be>
881
877
  * @since 1.3.17
882
878
  * @version 1.3.20
883
879
  */
@@ -944,7 +940,7 @@ class TaskSchedule {
944
940
  /**
945
941
  * Clear the timer
946
942
  *
947
- * @author Jelle De Loecker <jelle@elevenways.be>
943
+ * @author Jelle De Loecker <jelle@elevenways.be>
948
944
  * @since 1.3.17
949
945
  * @version 1.3.17
950
946
  */