alchemymvc 1.3.22 → 1.4.0-alpha.2
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 +96 -59
- 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 +27 -18
- 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 +62 -62
- 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 +6 -6
- 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 +201 -123
- 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 +152 -150
- 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 +26 -26
- package/lib/class/inode_list.js +4 -4
- package/lib/class/migration.js +4 -4
- package/lib/class/model.js +146 -165
- 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 +105 -82
- 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 +411 -373
- package/lib/{init/functions.js → core/alchemy_functions.js} +113 -91
- 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 +27 -50
- 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 -979
- package/lib/stages.js +0 -515
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* See if the given object is a stream
|
|
3
3
|
*
|
|
4
|
-
* @author Jelle De Loecker
|
|
4
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
5
5
|
* @since 0.2.0
|
|
6
6
|
* @version 1.0.5
|
|
7
7
|
*
|
|
8
|
-
* @return {
|
|
8
|
+
* @return {boolean}
|
|
9
9
|
*/
|
|
10
10
|
function isStream(obj) {
|
|
11
11
|
return obj && (typeof obj._read == 'function' || typeof obj._write == 'function') && typeof obj.on === 'function';
|
|
@@ -14,11 +14,11 @@ function isStream(obj) {
|
|
|
14
14
|
/**
|
|
15
15
|
* The Linkup class
|
|
16
16
|
*
|
|
17
|
-
* @author
|
|
18
|
-
* @since
|
|
19
|
-
* @version
|
|
17
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
18
|
+
* @since 0.2.0
|
|
19
|
+
* @version 1.3.10
|
|
20
20
|
*
|
|
21
|
-
* @param {
|
|
21
|
+
* @param {string} type
|
|
22
22
|
*/
|
|
23
23
|
var Linkup = Blast.Collection.Function.inherits('Informer', function ClientLinkup(client, type, data) {
|
|
24
24
|
|
|
@@ -69,9 +69,9 @@ var Linkup = Blast.Collection.Function.inherits('Informer', function ClientLinku
|
|
|
69
69
|
/**
|
|
70
70
|
* Add a reference to its scene_id
|
|
71
71
|
*
|
|
72
|
-
* @author
|
|
73
|
-
* @since
|
|
74
|
-
* @version
|
|
72
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
73
|
+
* @since 1.3.10
|
|
74
|
+
* @version 1.3.10
|
|
75
75
|
*/
|
|
76
76
|
Linkup.setProperty(function scene_id() {
|
|
77
77
|
|
|
@@ -85,11 +85,11 @@ Linkup.setProperty(function scene_id() {
|
|
|
85
85
|
/**
|
|
86
86
|
* Submit a message to the server on this link
|
|
87
87
|
*
|
|
88
|
-
* @author
|
|
89
|
-
* @since
|
|
90
|
-
* @version
|
|
88
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
89
|
+
* @since 0.2.0
|
|
90
|
+
* @version 1.3.10
|
|
91
91
|
*
|
|
92
|
-
* @param {
|
|
92
|
+
* @param {string} type
|
|
93
93
|
* @param {Object} data
|
|
94
94
|
* @param {Function} callback
|
|
95
95
|
*/
|
|
@@ -100,11 +100,11 @@ Linkup.setAfterMethod('ready', function submit(type, data, stream, callback) {
|
|
|
100
100
|
/**
|
|
101
101
|
* Submit a message to the server on this link and return a promise
|
|
102
102
|
*
|
|
103
|
-
* @author
|
|
104
|
-
* @since
|
|
105
|
-
* @version
|
|
103
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
104
|
+
* @since 1.1.2
|
|
105
|
+
* @version 1.1.2
|
|
106
106
|
*
|
|
107
|
-
* @param {
|
|
107
|
+
* @param {string} type
|
|
108
108
|
* @param {Object} data
|
|
109
109
|
*/
|
|
110
110
|
Linkup.setMethod(function demand(type, data, stream) {
|
|
@@ -133,9 +133,9 @@ Linkup.setMethod(function demand(type, data, stream) {
|
|
|
133
133
|
/**
|
|
134
134
|
* Create a stream
|
|
135
135
|
*
|
|
136
|
-
* @author
|
|
137
|
-
* @since
|
|
138
|
-
* @version
|
|
136
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
137
|
+
* @since 0.2.0
|
|
138
|
+
* @version 0.2.0
|
|
139
139
|
*/
|
|
140
140
|
Linkup.setMethod(function createStream() {
|
|
141
141
|
return this.client.createStream();
|
|
@@ -144,9 +144,9 @@ Linkup.setMethod(function createStream() {
|
|
|
144
144
|
/**
|
|
145
145
|
* Destroy this linkup (and tell the server)
|
|
146
146
|
*
|
|
147
|
-
* @author
|
|
148
|
-
* @since
|
|
149
|
-
* @version
|
|
147
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
148
|
+
* @since 0.2.0
|
|
149
|
+
* @version 1.3.10
|
|
150
150
|
*/
|
|
151
151
|
Linkup.setMethod(function destroy() {
|
|
152
152
|
this.submit('__destroy__');
|
|
@@ -157,9 +157,9 @@ Linkup.setMethod(function destroy() {
|
|
|
157
157
|
/**
|
|
158
158
|
* Make sure the linkup is removed
|
|
159
159
|
*
|
|
160
|
-
* @author
|
|
161
|
-
* @since
|
|
162
|
-
* @version
|
|
160
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
161
|
+
* @since 1.3.10
|
|
162
|
+
* @version 1.3.10
|
|
163
163
|
*/
|
|
164
164
|
Linkup.setMethod(function _destroy() {
|
|
165
165
|
delete this.client.linkups[this.id];
|
|
@@ -170,13 +170,13 @@ Linkup.setMethod(function _destroy() {
|
|
|
170
170
|
* Actually make the socket.io connection,
|
|
171
171
|
* this requires the socket.io js to be loaded
|
|
172
172
|
*
|
|
173
|
-
* @author
|
|
174
|
-
* @since
|
|
175
|
-
* @version
|
|
173
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
174
|
+
* @since 0.0.1
|
|
175
|
+
* @version 0.2.0
|
|
176
176
|
*
|
|
177
|
-
* @param
|
|
178
|
-
* @param
|
|
179
|
-
* @param
|
|
177
|
+
* @param {string} address Address to connect to
|
|
178
|
+
* @param {Object} data Announcement data
|
|
179
|
+
* @param {Function} callback
|
|
180
180
|
*/
|
|
181
181
|
var Client = Blast.Collection.Function.inherits('Informer', function ClientSocket() {
|
|
182
182
|
|
|
@@ -232,11 +232,11 @@ var Client = Blast.Collection.Function.inherits('Informer', function ClientSocke
|
|
|
232
232
|
/**
|
|
233
233
|
* Get an offset-corrected timestamp
|
|
234
234
|
*
|
|
235
|
-
* @author
|
|
236
|
-
* @since
|
|
237
|
-
* @version
|
|
235
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
236
|
+
* @since 0.2.1
|
|
237
|
+
* @version 0.2.1
|
|
238
238
|
*
|
|
239
|
-
* @return
|
|
239
|
+
* @return {number}
|
|
240
240
|
*/
|
|
241
241
|
Client.setMethod(function now() {
|
|
242
242
|
return Date.now() + (this.offset || 0);
|
|
@@ -245,9 +245,9 @@ Client.setMethod(function now() {
|
|
|
245
245
|
/**
|
|
246
246
|
* Low level socket emit
|
|
247
247
|
*
|
|
248
|
-
* @author
|
|
249
|
-
* @since
|
|
250
|
-
* @version
|
|
248
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
249
|
+
* @since 0.2.0
|
|
250
|
+
* @version 1.1.0
|
|
251
251
|
*/
|
|
252
252
|
Client.setMethod(function _submit() {
|
|
253
253
|
var that = this,
|
|
@@ -261,11 +261,11 @@ Client.setMethod(function _submit() {
|
|
|
261
261
|
/**
|
|
262
262
|
* Submit method
|
|
263
263
|
*
|
|
264
|
-
* @author
|
|
265
|
-
* @since
|
|
266
|
-
* @version
|
|
264
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
265
|
+
* @since 0.2.0
|
|
266
|
+
* @version 0.2.0
|
|
267
267
|
*
|
|
268
|
-
* @param {
|
|
268
|
+
* @param {string} type
|
|
269
269
|
* @param {Object} data
|
|
270
270
|
* @param {IOStream} stream
|
|
271
271
|
* @param {Function} callback
|
|
@@ -330,9 +330,9 @@ Client.setMethod(function submit(type, data, stream, callback) {
|
|
|
330
330
|
/**
|
|
331
331
|
* Create a stream we can send through a websocket connection
|
|
332
332
|
*
|
|
333
|
-
* @author
|
|
334
|
-
* @since
|
|
335
|
-
* @version
|
|
333
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
334
|
+
* @since 0.2.0
|
|
335
|
+
* @version 0.2.0
|
|
336
336
|
*/
|
|
337
337
|
Client.setMethod(function createStream() {
|
|
338
338
|
|
|
@@ -350,9 +350,9 @@ Client.setMethod(function createStream() {
|
|
|
350
350
|
/**
|
|
351
351
|
* Make the actual connection
|
|
352
352
|
*
|
|
353
|
-
* @author
|
|
354
|
-
* @since
|
|
355
|
-
* @version
|
|
353
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
354
|
+
* @since 0.2.0
|
|
355
|
+
* @version 1.3.12
|
|
356
356
|
*
|
|
357
357
|
* @param {Function} callback
|
|
358
358
|
*/
|
|
@@ -618,11 +618,11 @@ Client.setMethod(function connect(address, data, callback) {
|
|
|
618
618
|
/**
|
|
619
619
|
* Create a namespace and inform the server
|
|
620
620
|
*
|
|
621
|
-
* @author
|
|
622
|
-
* @since
|
|
623
|
-
* @version
|
|
621
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
622
|
+
* @since 0.2.0
|
|
623
|
+
* @version 0.2.0
|
|
624
624
|
*
|
|
625
|
-
* @param {
|
|
625
|
+
* @param {string} type The typename of link to create
|
|
626
626
|
* @param {Object} data The initial data to submit
|
|
627
627
|
* @param {Function} cb Called when link isready
|
|
628
628
|
*
|
|
@@ -649,11 +649,11 @@ Client.setMethod(function linkup(type, data, cb) {
|
|
|
649
649
|
/**
|
|
650
650
|
* Listen for specific server-initiated linkups
|
|
651
651
|
*
|
|
652
|
-
* @author
|
|
653
|
-
* @since
|
|
654
|
-
* @version
|
|
652
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
653
|
+
* @since 0.2.0
|
|
654
|
+
* @version 0.2.0
|
|
655
655
|
*
|
|
656
|
-
* @param {
|
|
656
|
+
* @param {string} type The typename of link to listen to
|
|
657
657
|
* @param {Function} callback
|
|
658
658
|
*/
|
|
659
659
|
Client.setMethod(function onLinkup(type, callback) {
|
|
@@ -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) {
|
|
@@ -266,13 +266,13 @@ Syncable.setStatic(function setSyncMethod(types, method) {
|
|
|
266
266
|
* Add a method that will only be called on the client.
|
|
267
267
|
* No response will be returned, since it is sent to multiple clients.
|
|
268
268
|
*
|
|
269
|
-
* @author Jelle De Loecker
|
|
269
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
270
270
|
* @since 1.3.22
|
|
271
271
|
* @version 1.3.22
|
|
272
272
|
*
|
|
273
|
-
* @param
|
|
273
|
+
* @param {Object} data
|
|
274
274
|
*
|
|
275
|
-
* @return
|
|
275
|
+
* @return {Syncable}
|
|
276
276
|
*/
|
|
277
277
|
Syncable.setStatic(function setClientMethod(types, method) {
|
|
278
278
|
return this.setHandledMethod(types, method, function handler(method, args) {
|
|
@@ -291,13 +291,13 @@ Syncable.setStatic(function setClientMethod(types, method) {
|
|
|
291
291
|
* Add a method that fetches info from the server.
|
|
292
292
|
* The response is always a promise.
|
|
293
293
|
*
|
|
294
|
-
* @author Jelle De Loecker
|
|
294
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
295
295
|
* @since 1.3.10
|
|
296
296
|
* @version 1.3.10
|
|
297
297
|
*
|
|
298
|
-
* @param
|
|
298
|
+
* @param {Object} data
|
|
299
299
|
*
|
|
300
|
-
* @return
|
|
300
|
+
* @return {Syncable}
|
|
301
301
|
*/
|
|
302
302
|
Syncable.setStatic(function setUpstreamMethod(types, method) {
|
|
303
303
|
let result = this.setHandledMethod(types, method, function handler(method, args) {
|
|
@@ -339,15 +339,15 @@ Syncable.setStatic(function setUpstreamMethod(types, method) {
|
|
|
339
339
|
/**
|
|
340
340
|
* Add a method that may or may not use types
|
|
341
341
|
*
|
|
342
|
-
* @author Jelle De Loecker
|
|
342
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
343
343
|
* @since 1.3.10
|
|
344
344
|
* @version 1.3.10
|
|
345
345
|
*
|
|
346
|
-
* @param
|
|
347
|
-
* @param
|
|
348
|
-
* @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
|
|
349
349
|
*
|
|
350
|
-
* @return
|
|
350
|
+
* @return {Syncable}
|
|
351
351
|
*/
|
|
352
352
|
Syncable.setStatic(function setHandledMethod(types, method, handler) {
|
|
353
353
|
|
|
@@ -374,12 +374,12 @@ Syncable.setStatic(function setHandledMethod(types, method, handler) {
|
|
|
374
374
|
/**
|
|
375
375
|
* Add a property
|
|
376
376
|
*
|
|
377
|
-
* @author Jelle De Loecker
|
|
377
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
378
378
|
* @since 1.3.10
|
|
379
379
|
* @version 1.3.10
|
|
380
380
|
*
|
|
381
|
-
* @param
|
|
382
|
-
* @param
|
|
381
|
+
* @param {string} name
|
|
382
|
+
* @param {Object} options
|
|
383
383
|
*/
|
|
384
384
|
Syncable.setStatic(function setStateProperty(name, options) {
|
|
385
385
|
|
|
@@ -447,13 +447,13 @@ Syncable.setStatic(function setStateProperty(name, options) {
|
|
|
447
447
|
/**
|
|
448
448
|
* Undry this value
|
|
449
449
|
*
|
|
450
|
-
* @author Jelle De Loecker
|
|
450
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
451
451
|
* @since 1.3.10
|
|
452
452
|
* @version 1.3.10
|
|
453
453
|
*
|
|
454
|
-
* @param
|
|
454
|
+
* @param {Object} data
|
|
455
455
|
*
|
|
456
|
-
* @return
|
|
456
|
+
* @return {Syncable}
|
|
457
457
|
*/
|
|
458
458
|
Syncable.setStatic(function unDry(data) {
|
|
459
459
|
|
|
@@ -487,7 +487,7 @@ Syncable.setStatic(function unDry(data) {
|
|
|
487
487
|
/**
|
|
488
488
|
* Is this the server instance?
|
|
489
489
|
*
|
|
490
|
-
* @author Jelle De Loecker
|
|
490
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
491
491
|
* @since 1.3.10
|
|
492
492
|
* @version 1.3.10
|
|
493
493
|
*
|
|
@@ -500,11 +500,11 @@ Syncable.setProperty(function is_server() {
|
|
|
500
500
|
/**
|
|
501
501
|
* Enforce the ID property
|
|
502
502
|
*
|
|
503
|
-
* @author Jelle De Loecker
|
|
503
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
504
504
|
* @since 1.3.10
|
|
505
505
|
* @version 1.3.10
|
|
506
506
|
*
|
|
507
|
-
* @type {
|
|
507
|
+
* @type {string}
|
|
508
508
|
*/
|
|
509
509
|
Syncable.enforceProperty(function id(new_value) {
|
|
510
510
|
|
|
@@ -523,7 +523,7 @@ Syncable.enforceProperty(function id(new_value) {
|
|
|
523
523
|
/**
|
|
524
524
|
* Enforce the queues property
|
|
525
525
|
*
|
|
526
|
-
* @author Jelle De Loecker
|
|
526
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
527
527
|
* @since 1.3.10
|
|
528
528
|
* @version 1.3.10
|
|
529
529
|
*
|
|
@@ -558,11 +558,11 @@ Syncable.enforceProperty(function queues(new_value) {
|
|
|
558
558
|
/**
|
|
559
559
|
* Enforce the state property
|
|
560
560
|
*
|
|
561
|
-
* @author Jelle De Loecker
|
|
561
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
562
562
|
* @since 1.3.10
|
|
563
563
|
* @version 1.3.10
|
|
564
564
|
*
|
|
565
|
-
* @type {
|
|
565
|
+
* @type {string}
|
|
566
566
|
*/
|
|
567
567
|
Syncable.enforceProperty(function state(new_value) {
|
|
568
568
|
|
|
@@ -576,11 +576,11 @@ Syncable.enforceProperty(function state(new_value) {
|
|
|
576
576
|
/**
|
|
577
577
|
* Enforce the version property
|
|
578
578
|
*
|
|
579
|
-
* @author Jelle De Loecker
|
|
579
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
580
580
|
* @since 1.3.10
|
|
581
581
|
* @version 1.3.10
|
|
582
582
|
*
|
|
583
|
-
* @type {
|
|
583
|
+
* @type {string}
|
|
584
584
|
*/
|
|
585
585
|
Syncable.enforceProperty(function version(new_value) {
|
|
586
586
|
|
|
@@ -594,7 +594,7 @@ Syncable.enforceProperty(function version(new_value) {
|
|
|
594
594
|
/**
|
|
595
595
|
* Clone for hawkejs
|
|
596
596
|
*
|
|
597
|
-
* @author Jelle De Loecker
|
|
597
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
598
598
|
* @since 1.3.10
|
|
599
599
|
* @version 1.3.10
|
|
600
600
|
*/
|
|
@@ -605,7 +605,7 @@ Syncable.setMethod(function toHawkejs() {
|
|
|
605
605
|
/**
|
|
606
606
|
* Serialize this syncable
|
|
607
607
|
*
|
|
608
|
-
* @author Jelle De Loecker
|
|
608
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
609
609
|
* @since 1.3.10
|
|
610
610
|
* @version 1.3.10
|
|
611
611
|
*/
|
|
@@ -639,7 +639,7 @@ Syncable.setMethod(function toDry() {
|
|
|
639
639
|
/**
|
|
640
640
|
* Process an update
|
|
641
641
|
*
|
|
642
|
-
* @author Jelle De Loecker
|
|
642
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
643
643
|
* @since 1.3.10
|
|
644
644
|
* @version 1.3.10
|
|
645
645
|
*/
|
|
@@ -671,7 +671,7 @@ Syncable.setMethod(function processUpdate(update) {
|
|
|
671
671
|
/**
|
|
672
672
|
* Send the actual update
|
|
673
673
|
*
|
|
674
|
-
* @author Jelle De Loecker
|
|
674
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
675
675
|
* @since 1.3.10
|
|
676
676
|
* @version 1.3.10
|
|
677
677
|
*/
|
|
@@ -690,11 +690,11 @@ Syncable.setMethod(function sendUpdates() {
|
|
|
690
690
|
/**
|
|
691
691
|
* Emit a change event for a certain property
|
|
692
692
|
*
|
|
693
|
-
* @author Jelle De Loecker
|
|
693
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
694
694
|
* @since 1.3.10
|
|
695
695
|
* @version 1.3.10
|
|
696
696
|
*
|
|
697
|
-
* @param {
|
|
697
|
+
* @param {string} property
|
|
698
698
|
*/
|
|
699
699
|
Syncable.setMethod(function emitPropertyChange(property) {
|
|
700
700
|
let value = this[property];
|
|
@@ -704,11 +704,11 @@ Syncable.setMethod(function emitPropertyChange(property) {
|
|
|
704
704
|
/**
|
|
705
705
|
* Listen for a change event for a certain property
|
|
706
706
|
*
|
|
707
|
-
* @author Jelle De Loecker
|
|
707
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
708
708
|
* @since 1.3.10
|
|
709
709
|
* @version 1.3.10
|
|
710
710
|
*
|
|
711
|
-
* @param {
|
|
711
|
+
* @param {string} property
|
|
712
712
|
* @param {Function} callback
|
|
713
713
|
*/
|
|
714
714
|
Syncable.setMethod(function watchProperty(property, callback) {
|
|
@@ -720,11 +720,11 @@ Syncable.setMethod(function watchProperty(property, callback) {
|
|
|
720
720
|
/**
|
|
721
721
|
* Watch a queue for changes
|
|
722
722
|
*
|
|
723
|
-
* @author Jelle De Loecker
|
|
723
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
724
724
|
* @since 1.3.10
|
|
725
725
|
* @version 1.3.10
|
|
726
726
|
*
|
|
727
|
-
* @param {
|
|
727
|
+
* @param {string} name
|
|
728
728
|
* @param {Function} callback
|
|
729
729
|
*/
|
|
730
730
|
Syncable.setMethod(function watchQueue(name, callback) {
|
|
@@ -752,11 +752,11 @@ Syncable.setMethod(function watchQueue(name, callback) {
|
|
|
752
752
|
/**
|
|
753
753
|
* Clear all the entries in a queue
|
|
754
754
|
*
|
|
755
|
-
* @author Jelle De Loecker
|
|
755
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
756
756
|
* @since 1.3.10
|
|
757
757
|
* @version 1.3.10
|
|
758
758
|
*
|
|
759
|
-
* @param {
|
|
759
|
+
* @param {string} name
|
|
760
760
|
*/
|
|
761
761
|
Syncable.setAfterMethod('ready', function clearQueue(name) {
|
|
762
762
|
|
|
@@ -775,7 +775,7 @@ Syncable.setAfterMethod('ready', function clearQueue(name) {
|
|
|
775
775
|
* Schedule a queue callback
|
|
776
776
|
* (This tries to keep events in different queues still use the same order)
|
|
777
777
|
*
|
|
778
|
-
* @author Jelle De Loecker
|
|
778
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
779
779
|
* @since 1.3.10
|
|
780
780
|
* @version 1.3.10
|
|
781
781
|
*/
|
|
@@ -803,7 +803,7 @@ Syncable.setAfterMethod('ready', function scheduleQueueCallback(config, callback
|
|
|
803
803
|
/**
|
|
804
804
|
* Actually do the queued callbacks
|
|
805
805
|
*
|
|
806
|
-
* @author Jelle De Loecker
|
|
806
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
807
807
|
* @since 1.3.10
|
|
808
808
|
* @version 1.3.10
|
|
809
809
|
*/
|
|
@@ -830,11 +830,11 @@ Syncable.setAfterMethod('ready', function processQueueCallbacks() {
|
|
|
830
830
|
* Push something to a queue.
|
|
831
831
|
* If there are listeners, they will be called immediately.
|
|
832
832
|
*
|
|
833
|
-
* @author Jelle De Loecker
|
|
833
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
834
834
|
* @since 1.3.10
|
|
835
835
|
* @version 1.3.10
|
|
836
836
|
*
|
|
837
|
-
* @param {
|
|
837
|
+
* @param {string} name
|
|
838
838
|
*/
|
|
839
839
|
Syncable.setAfterMethod('ready', function pushQueue(name, ...args) {
|
|
840
840
|
|
|
@@ -869,7 +869,7 @@ Syncable.setAfterMethod('ready', function pushQueue(name, ...args) {
|
|
|
869
869
|
/**
|
|
870
870
|
* Send an update to the given link
|
|
871
871
|
*
|
|
872
|
-
* @author Jelle De Loecker
|
|
872
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
873
873
|
* @since 1.3.10
|
|
874
874
|
* @version 1.3.10
|
|
875
875
|
*/
|
|
@@ -904,7 +904,7 @@ Syncable.setMethod(function sendUpdateToLink(link) {
|
|
|
904
904
|
/**
|
|
905
905
|
* Queue an update to all the listeners
|
|
906
906
|
*
|
|
907
|
-
* @author Jelle De Loecker
|
|
907
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
908
908
|
* @since 1.3.10
|
|
909
909
|
* @version 1.3.10
|
|
910
910
|
*/
|
|
@@ -922,7 +922,7 @@ Syncable.setMethod(function queueUpdate() {
|
|
|
922
922
|
/**
|
|
923
923
|
* Add something to the log
|
|
924
924
|
*
|
|
925
|
-
* @author Jelle De Loecker
|
|
925
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
926
926
|
* @since 1.3.10
|
|
927
927
|
* @version 1.3.10
|
|
928
928
|
*/
|
|
@@ -941,7 +941,7 @@ Syncable.setMethod(function _addLog(type, args) {
|
|
|
941
941
|
/**
|
|
942
942
|
* Add something to the log and increase the version
|
|
943
943
|
*
|
|
944
|
-
* @author Jelle De Loecker
|
|
944
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
945
945
|
* @since 1.3.10
|
|
946
946
|
* @version 1.3.10
|
|
947
947
|
*/
|
|
@@ -953,7 +953,7 @@ Syncable.setMethod(function addLog(type, args) {
|
|
|
953
953
|
/**
|
|
954
954
|
* Set a property to a specific value
|
|
955
955
|
*
|
|
956
|
-
* @author Jelle De Loecker
|
|
956
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
957
957
|
* @since 1.3.10
|
|
958
958
|
* @version 1.3.10
|
|
959
959
|
*/
|
|
@@ -973,7 +973,7 @@ Syncable.setMethod(function setProperty(key, value) {
|
|
|
973
973
|
* Release the syncable
|
|
974
974
|
* (On your own side)
|
|
975
975
|
*
|
|
976
|
-
* @author Jelle De Loecker
|
|
976
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
977
977
|
* @since 1.3.10
|
|
978
978
|
* @version 1.3.10
|
|
979
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,
|