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.
- package/LICENSE +1 -1
- package/README.md +3 -3
- package/lib/app/behaviour/publishable_behaviour.js +5 -5
- package/lib/app/behaviour/revision_behaviour.js +10 -10
- package/lib/app/behaviour/sluggable_behaviour.js +14 -14
- package/lib/app/conduit/electron_conduit.js +9 -9
- package/lib/app/conduit/http_conduit.js +13 -13
- package/lib/app/conduit/loopback_conduit.js +15 -15
- package/lib/app/conduit/socket_conduit.js +43 -43
- package/lib/app/config/routes.js +26 -0
- package/lib/app/controller/00-default_app_controller.js +21 -0
- package/lib/app/controller/alchemy_info_controller.js +12 -12
- package/lib/app/datasource/mongo_datasource.js +16 -16
- package/lib/app/element/00-default_app_element.js +19 -0
- package/lib/app/element/time_ago.js +5 -5
- package/lib/app/helper/00-default_app_helper.js +11 -0
- package/lib/app/helper/alchemy_helper.js +22 -22
- package/lib/app/helper/backed_map.js +1 -1
- package/lib/app/helper/breadcrumb.js +10 -10
- package/lib/app/helper/client_collection.js +3 -3
- package/lib/app/helper/cron.js +29 -29
- package/lib/app/helper/enum_values.js +6 -6
- package/lib/app/helper/pagination_helper.js +36 -36
- package/lib/app/helper/router_helper.js +35 -35
- package/lib/app/helper/socket_helper.js +57 -57
- package/lib/app/helper/syncable.js +84 -59
- package/lib/app/helper_component/paginate_component.js +9 -9
- package/lib/app/helper_controller/component.js +1 -1
- package/lib/app/helper_controller/conduit.js +31 -31
- package/lib/app/helper_controller/controller.js +54 -39
- package/lib/app/helper_datasource/00-nosql_datasource.js +624 -70
- package/lib/app/helper_datasource/05-fallback_datasource.js +10 -10
- package/lib/app/helper_datasource/idb_datasource.js +6 -6
- package/lib/app/helper_datasource/indexed_db.js +22 -22
- package/lib/app/helper_datasource/remote_datasource.js +5 -5
- package/lib/app/helper_error/http_error.js +4 -4
- package/lib/app/helper_error/model_error.js +2 -2
- package/lib/app/helper_error/validation_error.js +12 -12
- package/lib/app/helper_field/00-objectid_field.js +7 -7
- package/lib/app/helper_field/05-string_field.js +16 -12
- package/lib/app/helper_field/06-text_field.js +2 -4
- package/lib/app/helper_field/10-number_field.js +9 -12
- package/lib/app/helper_field/11-date_field.js +15 -15
- package/lib/app/helper_field/15-local_temporal_field.js +10 -10
- package/lib/app/helper_field/20-decimal_field.js +8 -9
- package/lib/app/helper_field/belongsto_field.js +1 -1
- package/lib/app/helper_field/big_int_field.js +8 -8
- package/lib/app/helper_field/boolean_field.js +9 -11
- package/lib/app/helper_field/datetime_field.js +3 -3
- package/lib/app/helper_field/enum_field.js +13 -8
- package/lib/app/helper_field/fixed_decimal_field.js +6 -7
- package/lib/app/helper_field/geopoint_field.js +9 -10
- package/lib/app/helper_field/habtm_field.js +3 -3
- package/lib/app/helper_field/hasoneparent_field.js +1 -1
- package/lib/app/helper_field/html_field.js +2 -4
- package/lib/app/helper_field/integer_field.js +8 -11
- package/lib/app/helper_field/local_date_field.js +5 -5
- package/lib/app/helper_field/local_date_time_field.js +5 -5
- package/lib/app/helper_field/local_time_field.js +5 -5
- package/lib/app/helper_field/mixed_field.js +5 -5
- package/lib/app/helper_field/object_field.js +8 -8
- package/lib/app/helper_field/password_field.js +3 -3
- package/lib/app/helper_field/regexp_field.js +7 -9
- package/lib/app/helper_field/schema_field.js +91 -88
- package/lib/app/helper_field/settings_field.js +92 -0
- package/lib/app/helper_field/time_field.js +6 -6
- package/lib/app/helper_field/url_field.js +2 -4
- package/lib/app/helper_model/00-base_criteria.js +662 -0
- package/lib/app/helper_model/05-criteria_expressions.js +605 -0
- package/lib/app/helper_model/10-model_criteria.js +1182 -0
- package/lib/app/helper_model/data_provider.js +2 -2
- package/lib/app/helper_model/document.js +103 -92
- package/lib/app/helper_model/document_list.js +14 -14
- package/lib/app/helper_model/field_config.js +11 -11
- package/lib/app/helper_model/field_set.js +17 -17
- package/lib/app/helper_model/model.js +203 -124
- package/lib/app/helper_model/remote_data_provider.js +2 -2
- package/lib/app/helper_validator/00_validator.js +16 -16
- package/lib/app/helper_validator/not_empty_validator.js +9 -9
- package/lib/app/model/00-default_app_model.js +18 -0
- package/lib/app/model/05-system_model.js +27 -0
- package/lib/app/model/{alchemy_migration_model.js → system_migration_model.js} +4 -4
- package/lib/app/model/system_setting_model.js +154 -0
- package/lib/app/model/{alchemy_task_history_model.js → system_task_history_model.js} +7 -7
- package/lib/app/model/{alchemy_task_model.js → system_task_model.js} +11 -11
- package/lib/bootstrap.js +22 -312
- package/lib/class/accumulator.js +5 -5
- package/lib/class/behaviour.js +5 -5
- package/lib/class/component.js +3 -3
- package/lib/class/conduit.js +203 -163
- package/lib/class/controller.js +42 -42
- package/lib/class/datasource.js +74 -79
- package/lib/class/document.js +74 -95
- package/lib/class/document_list.js +5 -5
- package/lib/class/element.js +17 -17
- package/lib/class/error.js +3 -3
- package/lib/class/field.js +169 -91
- package/lib/class/field_value.js +6 -6
- package/lib/class/helper.js +3 -3
- package/lib/class/inode.js +17 -17
- package/lib/class/inode_dir.js +12 -12
- package/lib/class/inode_file.js +50 -25
- package/lib/class/inode_list.js +4 -4
- package/lib/class/migration.js +4 -4
- package/lib/class/model.js +182 -168
- package/lib/class/path_definition.js +22 -22
- package/lib/class/path_evaluator.js +5 -5
- package/lib/class/path_param_definition.js +7 -7
- package/lib/class/plugin.js +312 -0
- package/lib/class/postponement.js +29 -29
- package/lib/class/reciprocal.js +8 -8
- package/lib/class/route.js +33 -33
- package/lib/class/router.js +73 -73
- package/lib/class/schema.js +21 -21
- package/lib/class/schema_client.js +73 -67
- package/lib/class/session.js +63 -29
- package/lib/class/session_scene.js +4 -4
- package/lib/class/sitemap.js +16 -16
- package/lib/class/task.js +39 -39
- package/lib/class/task_service.js +43 -47
- package/lib/{init → core}/alchemy.js +413 -374
- package/lib/{init/functions.js → core/alchemy_functions.js} +171 -108
- package/lib/core/alchemy_load_functions.js +715 -0
- package/lib/core/base.js +50 -62
- package/lib/core/client_alchemy.js +144 -152
- package/lib/core/client_base.js +39 -52
- package/lib/core/discovery.js +16 -18
- package/lib/core/middleware.js +54 -43
- package/lib/core/{routing.js → prefix.js} +14 -16
- package/lib/core/setting.js +1684 -0
- package/lib/core/stage.js +758 -0
- package/lib/scripts/create_constants.js +119 -0
- package/lib/{init/languages.js → scripts/create_languages.js} +5 -5
- package/lib/scripts/create_settings.js +449 -0
- package/lib/scripts/create_shared_constants.js +95 -0
- package/lib/scripts/create_stages.js +55 -0
- package/lib/scripts/init_alchemy.js +51 -0
- package/lib/{init/requirements.js → scripts/preload_modules.js} +15 -2
- package/lib/scripts/setup_devwatch.js +238 -0
- package/lib/stages/00-load_core.js +342 -0
- package/lib/stages/05-load_app.js +57 -0
- package/lib/stages/10-datasource.js +61 -0
- package/lib/stages/15-tasks.js +27 -0
- package/lib/stages/20-settings.js +68 -0
- package/lib/stages/50-routes.js +218 -0
- package/lib/stages/90-server.js +347 -0
- package/package.json +5 -7
- package/lib/app/helper_model/criteria.js +0 -2294
- package/lib/app/helper_model/db_query.js +0 -1488
- package/lib/app/routes.js +0 -11
- package/lib/core/socket.js +0 -171
- package/lib/init/constants.js +0 -158
- package/lib/init/devwatch.js +0 -238
- package/lib/init/load_functions.js +0 -973
- package/lib/stages.js +0 -513
|
@@ -9,11 +9,11 @@ const SESSION_KEY = 'Syncables',
|
|
|
9
9
|
*
|
|
10
10
|
* @constructor
|
|
11
11
|
*
|
|
12
|
-
* @author Jelle De Loecker
|
|
12
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
13
13
|
* @since 1.3.10
|
|
14
14
|
* @version 1.3.10
|
|
15
15
|
*
|
|
16
|
-
* @param {
|
|
16
|
+
* @param {string} type
|
|
17
17
|
*/
|
|
18
18
|
const Syncable = Function.inherits('Alchemy.Base', function Syncable(type) {
|
|
19
19
|
|
|
@@ -42,13 +42,13 @@ if (Blast.isNode) {
|
|
|
42
42
|
/**
|
|
43
43
|
* Handle an incoming linkup
|
|
44
44
|
*
|
|
45
|
-
* @author Jelle De Loecker
|
|
45
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
46
46
|
* @since 1.3.10
|
|
47
47
|
* @version 1.3.10
|
|
48
48
|
*
|
|
49
|
-
* @param
|
|
50
|
-
* @param
|
|
51
|
-
* @param
|
|
49
|
+
* @param {Conduit}
|
|
50
|
+
* @param {Linkup}
|
|
51
|
+
* @param {Object}
|
|
52
52
|
*/
|
|
53
53
|
Syncable.setStatic(function handleLink(conduit, linkup, config) {
|
|
54
54
|
|
|
@@ -87,7 +87,7 @@ if (Blast.isNode) {
|
|
|
87
87
|
/**
|
|
88
88
|
* Attach a client
|
|
89
89
|
*
|
|
90
|
-
* @author Jelle De Loecker
|
|
90
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
91
91
|
* @since 1.3.10
|
|
92
92
|
* @version 1.3.10
|
|
93
93
|
*/
|
|
@@ -142,12 +142,12 @@ if (Blast.isNode) {
|
|
|
142
142
|
/**
|
|
143
143
|
* Handle an upstream method request
|
|
144
144
|
*
|
|
145
|
-
* @author Jelle De Loecker
|
|
145
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
146
146
|
* @since 1.3.10
|
|
147
147
|
* @version 1.3.10
|
|
148
148
|
*
|
|
149
|
-
* @param
|
|
150
|
-
* @param
|
|
149
|
+
* @param {string} name
|
|
150
|
+
* @param {Array} args
|
|
151
151
|
*/
|
|
152
152
|
Syncable.setMethod(function handleUpstreamMethodRequest(name, args) {
|
|
153
153
|
|
|
@@ -168,7 +168,7 @@ if (Blast.isNode) {
|
|
|
168
168
|
* Register a client by one of their conduits.
|
|
169
169
|
* Only clients that are registered can be synced.
|
|
170
170
|
*
|
|
171
|
-
* @author Jelle De Loecker
|
|
171
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
172
172
|
* @since 1.3.10
|
|
173
173
|
* @version 1.3.10
|
|
174
174
|
*
|
|
@@ -203,7 +203,7 @@ if (Blast.isBrowser) {
|
|
|
203
203
|
/**
|
|
204
204
|
* Start the sync link from the browser to the server
|
|
205
205
|
*
|
|
206
|
-
* @author Jelle De Loecker
|
|
206
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
207
207
|
* @since 1.3.10
|
|
208
208
|
* @version 1.3.10
|
|
209
209
|
*/
|
|
@@ -241,13 +241,13 @@ if (Blast.isBrowser) {
|
|
|
241
241
|
* Add a syncable method.
|
|
242
242
|
* The method itself should probably NOT trigger changes
|
|
243
243
|
*
|
|
244
|
-
* @author Jelle De Loecker
|
|
244
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
245
245
|
* @since 1.3.10
|
|
246
246
|
* @version 1.3.10
|
|
247
247
|
*
|
|
248
|
-
* @param
|
|
248
|
+
* @param {Object} data
|
|
249
249
|
*
|
|
250
|
-
* @return
|
|
250
|
+
* @return {Syncable}
|
|
251
251
|
*/
|
|
252
252
|
Syncable.setStatic(function setSyncMethod(types, method) {
|
|
253
253
|
return this.setHandledMethod(types, method, function handler(method, args) {
|
|
@@ -262,17 +262,42 @@ Syncable.setStatic(function setSyncMethod(types, method) {
|
|
|
262
262
|
});
|
|
263
263
|
});
|
|
264
264
|
|
|
265
|
+
/**
|
|
266
|
+
* Add a method that will only be called on the client.
|
|
267
|
+
* No response will be returned, since it is sent to multiple clients.
|
|
268
|
+
*
|
|
269
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
270
|
+
* @since 1.3.22
|
|
271
|
+
* @version 1.3.22
|
|
272
|
+
*
|
|
273
|
+
* @param {Object} data
|
|
274
|
+
*
|
|
275
|
+
* @return {Syncable}
|
|
276
|
+
*/
|
|
277
|
+
Syncable.setStatic(function setClientMethod(types, method) {
|
|
278
|
+
return this.setHandledMethod(types, method, function handler(method, args) {
|
|
279
|
+
|
|
280
|
+
if (this.is_server) {
|
|
281
|
+
this.addLog('call', [method.name, args]);
|
|
282
|
+
return;
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
let result = method.apply(this, args);
|
|
286
|
+
return result;
|
|
287
|
+
});
|
|
288
|
+
});
|
|
289
|
+
|
|
265
290
|
/**
|
|
266
291
|
* Add a method that fetches info from the server.
|
|
267
292
|
* The response is always a promise.
|
|
268
293
|
*
|
|
269
|
-
* @author Jelle De Loecker
|
|
294
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
270
295
|
* @since 1.3.10
|
|
271
296
|
* @version 1.3.10
|
|
272
297
|
*
|
|
273
|
-
* @param
|
|
298
|
+
* @param {Object} data
|
|
274
299
|
*
|
|
275
|
-
* @return
|
|
300
|
+
* @return {Syncable}
|
|
276
301
|
*/
|
|
277
302
|
Syncable.setStatic(function setUpstreamMethod(types, method) {
|
|
278
303
|
let result = this.setHandledMethod(types, method, function handler(method, args) {
|
|
@@ -314,15 +339,15 @@ Syncable.setStatic(function setUpstreamMethod(types, method) {
|
|
|
314
339
|
/**
|
|
315
340
|
* Add a method that may or may not use types
|
|
316
341
|
*
|
|
317
|
-
* @author Jelle De Loecker
|
|
342
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
318
343
|
* @since 1.3.10
|
|
319
344
|
* @version 1.3.10
|
|
320
345
|
*
|
|
321
|
-
* @param
|
|
322
|
-
* @param
|
|
323
|
-
* @param
|
|
346
|
+
* @param {Array} types The optional types of the method
|
|
347
|
+
* @param {Function} method The main method implementation
|
|
348
|
+
* @param {Function} handler The handler
|
|
324
349
|
*
|
|
325
|
-
* @return
|
|
350
|
+
* @return {Syncable}
|
|
326
351
|
*/
|
|
327
352
|
Syncable.setStatic(function setHandledMethod(types, method, handler) {
|
|
328
353
|
|
|
@@ -349,12 +374,12 @@ Syncable.setStatic(function setHandledMethod(types, method, handler) {
|
|
|
349
374
|
/**
|
|
350
375
|
* Add a property
|
|
351
376
|
*
|
|
352
|
-
* @author Jelle De Loecker
|
|
377
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
353
378
|
* @since 1.3.10
|
|
354
379
|
* @version 1.3.10
|
|
355
380
|
*
|
|
356
|
-
* @param
|
|
357
|
-
* @param
|
|
381
|
+
* @param {string} name
|
|
382
|
+
* @param {Object} options
|
|
358
383
|
*/
|
|
359
384
|
Syncable.setStatic(function setStateProperty(name, options) {
|
|
360
385
|
|
|
@@ -422,13 +447,13 @@ Syncable.setStatic(function setStateProperty(name, options) {
|
|
|
422
447
|
/**
|
|
423
448
|
* Undry this value
|
|
424
449
|
*
|
|
425
|
-
* @author Jelle De Loecker
|
|
450
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
426
451
|
* @since 1.3.10
|
|
427
452
|
* @version 1.3.10
|
|
428
453
|
*
|
|
429
|
-
* @param
|
|
454
|
+
* @param {Object} data
|
|
430
455
|
*
|
|
431
|
-
* @return
|
|
456
|
+
* @return {Syncable}
|
|
432
457
|
*/
|
|
433
458
|
Syncable.setStatic(function unDry(data) {
|
|
434
459
|
|
|
@@ -462,7 +487,7 @@ Syncable.setStatic(function unDry(data) {
|
|
|
462
487
|
/**
|
|
463
488
|
* Is this the server instance?
|
|
464
489
|
*
|
|
465
|
-
* @author Jelle De Loecker
|
|
490
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
466
491
|
* @since 1.3.10
|
|
467
492
|
* @version 1.3.10
|
|
468
493
|
*
|
|
@@ -475,11 +500,11 @@ Syncable.setProperty(function is_server() {
|
|
|
475
500
|
/**
|
|
476
501
|
* Enforce the ID property
|
|
477
502
|
*
|
|
478
|
-
* @author Jelle De Loecker
|
|
503
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
479
504
|
* @since 1.3.10
|
|
480
505
|
* @version 1.3.10
|
|
481
506
|
*
|
|
482
|
-
* @type {
|
|
507
|
+
* @type {string}
|
|
483
508
|
*/
|
|
484
509
|
Syncable.enforceProperty(function id(new_value) {
|
|
485
510
|
|
|
@@ -498,7 +523,7 @@ Syncable.enforceProperty(function id(new_value) {
|
|
|
498
523
|
/**
|
|
499
524
|
* Enforce the queues property
|
|
500
525
|
*
|
|
501
|
-
* @author Jelle De Loecker
|
|
526
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
502
527
|
* @since 1.3.10
|
|
503
528
|
* @version 1.3.10
|
|
504
529
|
*
|
|
@@ -533,11 +558,11 @@ Syncable.enforceProperty(function queues(new_value) {
|
|
|
533
558
|
/**
|
|
534
559
|
* Enforce the state property
|
|
535
560
|
*
|
|
536
|
-
* @author Jelle De Loecker
|
|
561
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
537
562
|
* @since 1.3.10
|
|
538
563
|
* @version 1.3.10
|
|
539
564
|
*
|
|
540
|
-
* @type {
|
|
565
|
+
* @type {string}
|
|
541
566
|
*/
|
|
542
567
|
Syncable.enforceProperty(function state(new_value) {
|
|
543
568
|
|
|
@@ -551,11 +576,11 @@ Syncable.enforceProperty(function state(new_value) {
|
|
|
551
576
|
/**
|
|
552
577
|
* Enforce the version property
|
|
553
578
|
*
|
|
554
|
-
* @author Jelle De Loecker
|
|
579
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
555
580
|
* @since 1.3.10
|
|
556
581
|
* @version 1.3.10
|
|
557
582
|
*
|
|
558
|
-
* @type {
|
|
583
|
+
* @type {string}
|
|
559
584
|
*/
|
|
560
585
|
Syncable.enforceProperty(function version(new_value) {
|
|
561
586
|
|
|
@@ -569,7 +594,7 @@ Syncable.enforceProperty(function version(new_value) {
|
|
|
569
594
|
/**
|
|
570
595
|
* Clone for hawkejs
|
|
571
596
|
*
|
|
572
|
-
* @author Jelle De Loecker
|
|
597
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
573
598
|
* @since 1.3.10
|
|
574
599
|
* @version 1.3.10
|
|
575
600
|
*/
|
|
@@ -580,7 +605,7 @@ Syncable.setMethod(function toHawkejs() {
|
|
|
580
605
|
/**
|
|
581
606
|
* Serialize this syncable
|
|
582
607
|
*
|
|
583
|
-
* @author Jelle De Loecker
|
|
608
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
584
609
|
* @since 1.3.10
|
|
585
610
|
* @version 1.3.10
|
|
586
611
|
*/
|
|
@@ -614,7 +639,7 @@ Syncable.setMethod(function toDry() {
|
|
|
614
639
|
/**
|
|
615
640
|
* Process an update
|
|
616
641
|
*
|
|
617
|
-
* @author Jelle De Loecker
|
|
642
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
618
643
|
* @since 1.3.10
|
|
619
644
|
* @version 1.3.10
|
|
620
645
|
*/
|
|
@@ -646,7 +671,7 @@ Syncable.setMethod(function processUpdate(update) {
|
|
|
646
671
|
/**
|
|
647
672
|
* Send the actual update
|
|
648
673
|
*
|
|
649
|
-
* @author Jelle De Loecker
|
|
674
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
650
675
|
* @since 1.3.10
|
|
651
676
|
* @version 1.3.10
|
|
652
677
|
*/
|
|
@@ -665,11 +690,11 @@ Syncable.setMethod(function sendUpdates() {
|
|
|
665
690
|
/**
|
|
666
691
|
* Emit a change event for a certain property
|
|
667
692
|
*
|
|
668
|
-
* @author Jelle De Loecker
|
|
693
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
669
694
|
* @since 1.3.10
|
|
670
695
|
* @version 1.3.10
|
|
671
696
|
*
|
|
672
|
-
* @param {
|
|
697
|
+
* @param {string} property
|
|
673
698
|
*/
|
|
674
699
|
Syncable.setMethod(function emitPropertyChange(property) {
|
|
675
700
|
let value = this[property];
|
|
@@ -679,11 +704,11 @@ Syncable.setMethod(function emitPropertyChange(property) {
|
|
|
679
704
|
/**
|
|
680
705
|
* Listen for a change event for a certain property
|
|
681
706
|
*
|
|
682
|
-
* @author Jelle De Loecker
|
|
707
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
683
708
|
* @since 1.3.10
|
|
684
709
|
* @version 1.3.10
|
|
685
710
|
*
|
|
686
|
-
* @param {
|
|
711
|
+
* @param {string} property
|
|
687
712
|
* @param {Function} callback
|
|
688
713
|
*/
|
|
689
714
|
Syncable.setMethod(function watchProperty(property, callback) {
|
|
@@ -695,11 +720,11 @@ Syncable.setMethod(function watchProperty(property, callback) {
|
|
|
695
720
|
/**
|
|
696
721
|
* Watch a queue for changes
|
|
697
722
|
*
|
|
698
|
-
* @author Jelle De Loecker
|
|
723
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
699
724
|
* @since 1.3.10
|
|
700
725
|
* @version 1.3.10
|
|
701
726
|
*
|
|
702
|
-
* @param {
|
|
727
|
+
* @param {string} name
|
|
703
728
|
* @param {Function} callback
|
|
704
729
|
*/
|
|
705
730
|
Syncable.setMethod(function watchQueue(name, callback) {
|
|
@@ -727,11 +752,11 @@ Syncable.setMethod(function watchQueue(name, callback) {
|
|
|
727
752
|
/**
|
|
728
753
|
* Clear all the entries in a queue
|
|
729
754
|
*
|
|
730
|
-
* @author Jelle De Loecker
|
|
755
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
731
756
|
* @since 1.3.10
|
|
732
757
|
* @version 1.3.10
|
|
733
758
|
*
|
|
734
|
-
* @param {
|
|
759
|
+
* @param {string} name
|
|
735
760
|
*/
|
|
736
761
|
Syncable.setAfterMethod('ready', function clearQueue(name) {
|
|
737
762
|
|
|
@@ -750,7 +775,7 @@ Syncable.setAfterMethod('ready', function clearQueue(name) {
|
|
|
750
775
|
* Schedule a queue callback
|
|
751
776
|
* (This tries to keep events in different queues still use the same order)
|
|
752
777
|
*
|
|
753
|
-
* @author Jelle De Loecker
|
|
778
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
754
779
|
* @since 1.3.10
|
|
755
780
|
* @version 1.3.10
|
|
756
781
|
*/
|
|
@@ -778,7 +803,7 @@ Syncable.setAfterMethod('ready', function scheduleQueueCallback(config, callback
|
|
|
778
803
|
/**
|
|
779
804
|
* Actually do the queued callbacks
|
|
780
805
|
*
|
|
781
|
-
* @author Jelle De Loecker
|
|
806
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
782
807
|
* @since 1.3.10
|
|
783
808
|
* @version 1.3.10
|
|
784
809
|
*/
|
|
@@ -805,11 +830,11 @@ Syncable.setAfterMethod('ready', function processQueueCallbacks() {
|
|
|
805
830
|
* Push something to a queue.
|
|
806
831
|
* If there are listeners, they will be called immediately.
|
|
807
832
|
*
|
|
808
|
-
* @author Jelle De Loecker
|
|
833
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
809
834
|
* @since 1.3.10
|
|
810
835
|
* @version 1.3.10
|
|
811
836
|
*
|
|
812
|
-
* @param {
|
|
837
|
+
* @param {string} name
|
|
813
838
|
*/
|
|
814
839
|
Syncable.setAfterMethod('ready', function pushQueue(name, ...args) {
|
|
815
840
|
|
|
@@ -844,7 +869,7 @@ Syncable.setAfterMethod('ready', function pushQueue(name, ...args) {
|
|
|
844
869
|
/**
|
|
845
870
|
* Send an update to the given link
|
|
846
871
|
*
|
|
847
|
-
* @author Jelle De Loecker
|
|
872
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
848
873
|
* @since 1.3.10
|
|
849
874
|
* @version 1.3.10
|
|
850
875
|
*/
|
|
@@ -879,7 +904,7 @@ Syncable.setMethod(function sendUpdateToLink(link) {
|
|
|
879
904
|
/**
|
|
880
905
|
* Queue an update to all the listeners
|
|
881
906
|
*
|
|
882
|
-
* @author Jelle De Loecker
|
|
907
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
883
908
|
* @since 1.3.10
|
|
884
909
|
* @version 1.3.10
|
|
885
910
|
*/
|
|
@@ -897,7 +922,7 @@ Syncable.setMethod(function queueUpdate() {
|
|
|
897
922
|
/**
|
|
898
923
|
* Add something to the log
|
|
899
924
|
*
|
|
900
|
-
* @author Jelle De Loecker
|
|
925
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
901
926
|
* @since 1.3.10
|
|
902
927
|
* @version 1.3.10
|
|
903
928
|
*/
|
|
@@ -916,7 +941,7 @@ Syncable.setMethod(function _addLog(type, args) {
|
|
|
916
941
|
/**
|
|
917
942
|
* Add something to the log and increase the version
|
|
918
943
|
*
|
|
919
|
-
* @author Jelle De Loecker
|
|
944
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
920
945
|
* @since 1.3.10
|
|
921
946
|
* @version 1.3.10
|
|
922
947
|
*/
|
|
@@ -928,7 +953,7 @@ Syncable.setMethod(function addLog(type, args) {
|
|
|
928
953
|
/**
|
|
929
954
|
* Set a property to a specific value
|
|
930
955
|
*
|
|
931
|
-
* @author Jelle De Loecker
|
|
956
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
932
957
|
* @since 1.3.10
|
|
933
958
|
* @version 1.3.10
|
|
934
959
|
*/
|
|
@@ -948,7 +973,7 @@ Syncable.setMethod(function setProperty(key, value) {
|
|
|
948
973
|
* Release the syncable
|
|
949
974
|
* (On your own side)
|
|
950
975
|
*
|
|
951
|
-
* @author Jelle De Loecker
|
|
976
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
952
977
|
* @since 1.3.10
|
|
953
978
|
* @version 1.3.10
|
|
954
979
|
*/
|
|
@@ -4,23 +4,23 @@
|
|
|
4
4
|
* @constructor
|
|
5
5
|
* @extends Alchemy.Component
|
|
6
6
|
*
|
|
7
|
-
* @author
|
|
8
|
-
* @since
|
|
9
|
-
* @version
|
|
7
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
8
|
+
* @since 0.0.1
|
|
9
|
+
* @version 1.0.0
|
|
10
10
|
*/
|
|
11
11
|
const Paginate = Function.inherits('Alchemy.Client.Component', 'Paginate');
|
|
12
12
|
|
|
13
13
|
/**
|
|
14
14
|
* Perform a query
|
|
15
15
|
*
|
|
16
|
-
* @author Jelle De Loecker
|
|
16
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
17
17
|
* @since 0.0.1
|
|
18
|
-
* @version 1.
|
|
18
|
+
* @version 1.4.0
|
|
19
19
|
*
|
|
20
|
-
* @param
|
|
21
|
-
* @param
|
|
20
|
+
* @param {Model} model
|
|
21
|
+
* @param {Criteria} criteria
|
|
22
22
|
*
|
|
23
|
-
* @return
|
|
23
|
+
* @return {Pledge}
|
|
24
24
|
*/
|
|
25
25
|
Paginate.setMethod(function find(model, criteria) {
|
|
26
26
|
|
|
@@ -31,7 +31,7 @@ Paginate.setMethod(function find(model, criteria) {
|
|
|
31
31
|
model = this.getModel(model);
|
|
32
32
|
}
|
|
33
33
|
|
|
34
|
-
criteria =
|
|
34
|
+
criteria = Classes.Alchemy.Criteria.Model.cast(criteria, model);
|
|
35
35
|
|
|
36
36
|
let page_size = criteria.options.page_size || 10,
|
|
37
37
|
skipless = criteria.options.skipless,
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*
|
|
5
5
|
* @constructor
|
|
6
6
|
*
|
|
7
|
-
* @author Jelle De Loecker
|
|
7
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
8
8
|
* @since 1.0.0
|
|
9
9
|
* @version 1.1.3
|
|
10
10
|
*/
|
|
@@ -32,7 +32,7 @@ var Conduit = Function.inherits('Alchemy.Client.Base', 'Alchemy.Client.Conduit',
|
|
|
32
32
|
/**
|
|
33
33
|
* Handle a local url
|
|
34
34
|
*
|
|
35
|
-
* @author Jelle De Loecker
|
|
35
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
36
36
|
* @since 1.1.0
|
|
37
37
|
* @version 1.2.2
|
|
38
38
|
*
|
|
@@ -202,7 +202,7 @@ Conduit.setStatic(function handleUrlLocal(url, options) {
|
|
|
202
202
|
/**
|
|
203
203
|
* When this response was sent
|
|
204
204
|
*
|
|
205
|
-
* @author Jelle De Loecker
|
|
205
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
206
206
|
* @since 1.1.0
|
|
207
207
|
* @version 1.1.0
|
|
208
208
|
*/
|
|
@@ -211,7 +211,7 @@ Conduit.setProperty('ended', false);
|
|
|
211
211
|
/**
|
|
212
212
|
* The "body" property
|
|
213
213
|
*
|
|
214
|
-
* @author Jelle De Loecker
|
|
214
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
215
215
|
* @since 1.0.0
|
|
216
216
|
* @version 1.0.0
|
|
217
217
|
*/
|
|
@@ -230,7 +230,7 @@ Conduit.setProperty(function body() {
|
|
|
230
230
|
/**
|
|
231
231
|
* The "view_render" property
|
|
232
232
|
*
|
|
233
|
-
* @author Jelle De Loecker
|
|
233
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
234
234
|
* @since 1.0.0
|
|
235
235
|
* @version 1.1.0
|
|
236
236
|
*/
|
|
@@ -241,7 +241,7 @@ Conduit.setProperty(function view_render() {
|
|
|
241
241
|
/**
|
|
242
242
|
* The "renderer" property
|
|
243
243
|
*
|
|
244
|
-
* @author Jelle De Loecker
|
|
244
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
245
245
|
* @since 1.1.0
|
|
246
246
|
* @version 1.1.5
|
|
247
247
|
*/
|
|
@@ -269,7 +269,7 @@ Conduit.setProperty(function renderer() {
|
|
|
269
269
|
/**
|
|
270
270
|
* Throw an error when a conduit is checksummed
|
|
271
271
|
*
|
|
272
|
-
* @author Jelle De Loecker
|
|
272
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
273
273
|
* @since 1.1.0
|
|
274
274
|
* @version 1.1.0
|
|
275
275
|
*/
|
|
@@ -280,11 +280,11 @@ Conduit.setMethod(Blast.checksumSymbol, function toChecksum() {
|
|
|
280
280
|
/**
|
|
281
281
|
* Get a parameter from the route, post or get query or cookie
|
|
282
282
|
*
|
|
283
|
-
* @author Jelle De Loecker
|
|
283
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
284
284
|
* @since 0.2.0
|
|
285
285
|
* @version 1.0.0
|
|
286
286
|
*
|
|
287
|
-
* @param {
|
|
287
|
+
* @param {string} name
|
|
288
288
|
* @param {Mixed} value Overrides the value if set
|
|
289
289
|
*/
|
|
290
290
|
Conduit.setMethod(function param(name, value) {
|
|
@@ -325,11 +325,11 @@ Conduit.setMethod(function param(name, value) {
|
|
|
325
325
|
/**
|
|
326
326
|
* Set a variable for ViewRender
|
|
327
327
|
*
|
|
328
|
-
* @author Jelle De Loecker
|
|
328
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
329
329
|
* @since 0.2.0
|
|
330
330
|
* @version 0.2.0
|
|
331
331
|
*
|
|
332
|
-
* @param {
|
|
332
|
+
* @param {string} name
|
|
333
333
|
* @param {Mixed} value
|
|
334
334
|
*/
|
|
335
335
|
Conduit.setMethod(function set(name, value) {
|
|
@@ -344,11 +344,11 @@ Conduit.setMethod(function set(name, value) {
|
|
|
344
344
|
/**
|
|
345
345
|
* Set an internal variable for ViewRender
|
|
346
346
|
*
|
|
347
|
-
* @author Jelle De Loecker
|
|
347
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
348
348
|
* @since 0.2.0
|
|
349
349
|
* @version 0.2.0
|
|
350
350
|
*
|
|
351
|
-
* @param {
|
|
351
|
+
* @param {string} name
|
|
352
352
|
* @param {Mixed} value
|
|
353
353
|
*/
|
|
354
354
|
Conduit.setMethod(function internal(name, value) {
|
|
@@ -363,11 +363,11 @@ Conduit.setMethod(function internal(name, value) {
|
|
|
363
363
|
/**
|
|
364
364
|
* Expose a variable for ViewRender
|
|
365
365
|
*
|
|
366
|
-
* @author Jelle De Loecker
|
|
366
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
367
367
|
* @since 0.2.0
|
|
368
368
|
* @version 0.2.0
|
|
369
369
|
*
|
|
370
|
-
* @param {
|
|
370
|
+
* @param {string} name
|
|
371
371
|
* @param {Mixed} value
|
|
372
372
|
*/
|
|
373
373
|
Conduit.setMethod(function expose(name, value) {
|
|
@@ -382,13 +382,13 @@ Conduit.setMethod(function expose(name, value) {
|
|
|
382
382
|
/**
|
|
383
383
|
* Get the best locale to use for this connection
|
|
384
384
|
*
|
|
385
|
-
* @author Jelle De Loecker
|
|
385
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
386
386
|
* @since 1.0.0
|
|
387
387
|
* @version 1.0.0
|
|
388
388
|
*
|
|
389
389
|
* @param {Array} locales Locales to choose from
|
|
390
390
|
*
|
|
391
|
-
* @return {
|
|
391
|
+
* @return {string}
|
|
392
392
|
*/
|
|
393
393
|
Conduit.setMethod(function chooseBestLocale(locales) {
|
|
394
394
|
|
|
@@ -408,13 +408,13 @@ Conduit.setMethod(function chooseBestLocale(locales) {
|
|
|
408
408
|
/**
|
|
409
409
|
* Check if this request has a permission
|
|
410
410
|
*
|
|
411
|
-
* @author Jelle De Loecker
|
|
411
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
412
412
|
* @since 1.2.5
|
|
413
413
|
* @version 1.2.5
|
|
414
414
|
*
|
|
415
|
-
* @param {
|
|
415
|
+
* @param {string} permission
|
|
416
416
|
*
|
|
417
|
-
* @return {
|
|
417
|
+
* @return {boolean} True if the user has the permission, false otherwise
|
|
418
418
|
*/
|
|
419
419
|
Conduit.setMethod(function hasPermission(permission) {
|
|
420
420
|
|
|
@@ -432,11 +432,11 @@ if (Blast.isNode) {
|
|
|
432
432
|
/**
|
|
433
433
|
* End the call
|
|
434
434
|
*
|
|
435
|
-
* @author Jelle De Loecker
|
|
435
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
436
436
|
* @since 1.0.0
|
|
437
437
|
* @version 1.1.0
|
|
438
438
|
*
|
|
439
|
-
* @param {
|
|
439
|
+
* @param {string} name
|
|
440
440
|
* @param {Mixed} value Overrides the value if set
|
|
441
441
|
*/
|
|
442
442
|
Conduit.setMethod(function end(message) {
|
|
@@ -451,11 +451,11 @@ Conduit.setMethod(function end(message) {
|
|
|
451
451
|
/**
|
|
452
452
|
* Get/set cookies
|
|
453
453
|
*
|
|
454
|
-
* @author Jelle De Loecker
|
|
454
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
455
455
|
* @since 1.0.0
|
|
456
456
|
* @version 1.0.0
|
|
457
457
|
*
|
|
458
|
-
* @param {
|
|
458
|
+
* @param {string} name
|
|
459
459
|
* @param {Mixed} value Overrides the value if set
|
|
460
460
|
*/
|
|
461
461
|
Conduit.setMethod(function cookie(name, value) {
|
|
@@ -465,11 +465,11 @@ Conduit.setMethod(function cookie(name, value) {
|
|
|
465
465
|
/**
|
|
466
466
|
* Throw an error
|
|
467
467
|
*
|
|
468
|
-
* @author Jelle De Loecker
|
|
468
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
469
469
|
* @since 1.0.0
|
|
470
470
|
* @version 1.0.0
|
|
471
471
|
*
|
|
472
|
-
* @param {
|
|
472
|
+
* @param {number} status Response statuscode
|
|
473
473
|
* @param {Error} message Optional error to send
|
|
474
474
|
*/
|
|
475
475
|
Conduit.setMethod(function error(status, message) {
|
|
@@ -484,12 +484,12 @@ Conduit.setMethod(function error(status, message) {
|
|
|
484
484
|
/**
|
|
485
485
|
* Local redirect
|
|
486
486
|
*
|
|
487
|
-
* @author Jelle De Loecker
|
|
487
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
488
488
|
* @since 1.1.0
|
|
489
489
|
* @version 1.1.0
|
|
490
490
|
*
|
|
491
|
-
* @param {
|
|
492
|
-
* @param {
|
|
491
|
+
* @param {number} status 3xx redirection codes. 302 (temporary redirect) by default
|
|
492
|
+
* @param {string|Object} options Options or url
|
|
493
493
|
*/
|
|
494
494
|
Conduit.setMethod(async function redirect(status, options) {
|
|
495
495
|
|
|
@@ -515,7 +515,7 @@ Conduit.setMethod(async function redirect(status, options) {
|
|
|
515
515
|
/**
|
|
516
516
|
* Get the alchemy routes, compile paths
|
|
517
517
|
*
|
|
518
|
-
* @author Jelle De Loecker
|
|
518
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
519
519
|
* @since 1.0.0
|
|
520
520
|
* @version 1.0.0
|
|
521
521
|
*
|
|
@@ -554,7 +554,7 @@ Hawkejs.Scene.setMethod(function getAlchemyRoutes() {
|
|
|
554
554
|
/**
|
|
555
555
|
* Intercept Scene#openUrl calls
|
|
556
556
|
*
|
|
557
|
-
* @author Jelle De Loecker
|
|
557
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
558
558
|
* @since 1.0.0
|
|
559
559
|
* @version 1.1.0
|
|
560
560
|
*
|