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,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Fallback Datasource
|
|
3
3
|
*
|
|
4
|
-
* @author Jelle De Loecker
|
|
4
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
5
5
|
* @since 1.1.0
|
|
6
6
|
* @version 1.1.0
|
|
7
7
|
*/
|
|
@@ -13,7 +13,7 @@ var Fallback = Function.inherits('Alchemy.Datasource', function Fallback(name, o
|
|
|
13
13
|
/**
|
|
14
14
|
* Indicate this is part of the cache
|
|
15
15
|
*
|
|
16
|
-
* @author Jelle De Loecker
|
|
16
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
17
17
|
* @since 1.1.0
|
|
18
18
|
* @version 1.1.0
|
|
19
19
|
*/
|
|
@@ -22,7 +22,7 @@ Fallback.setProperty('has_offline_cache', true);
|
|
|
22
22
|
/**
|
|
23
23
|
* Create a connection to the 2 databases
|
|
24
24
|
*
|
|
25
|
-
* @author Jelle De Loecker
|
|
25
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
26
26
|
* @since 1.1.0
|
|
27
27
|
* @version 1.1.0
|
|
28
28
|
*/
|
|
@@ -58,7 +58,7 @@ Fallback.decorateMethod(Blast.Decorators.memoize({ignore_arguments: true}), func
|
|
|
58
58
|
/**
|
|
59
59
|
* Store the data in the local cache
|
|
60
60
|
*
|
|
61
|
-
* @author Jelle De Loecker
|
|
61
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
62
62
|
* @since 1.1.0
|
|
63
63
|
* @version 1.1.0
|
|
64
64
|
*
|
|
@@ -143,7 +143,7 @@ Fallback.setMethod(function storeInUpperDatasource(model, data, options) {
|
|
|
143
143
|
/**
|
|
144
144
|
* Query the databases
|
|
145
145
|
*
|
|
146
|
-
* @author Jelle De Loecker
|
|
146
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
147
147
|
* @since 1.1.0
|
|
148
148
|
* @version 1.1.0
|
|
149
149
|
*/
|
|
@@ -207,7 +207,7 @@ Fallback.setMethod(function read(model, criteria, callback) {
|
|
|
207
207
|
/**
|
|
208
208
|
* Get data that needs to be synced
|
|
209
209
|
*
|
|
210
|
-
* @author Jelle De Loecker
|
|
210
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
211
211
|
* @since 1.1.0
|
|
212
212
|
* @version 1.1.0
|
|
213
213
|
*
|
|
@@ -238,7 +238,7 @@ Fallback.setMethod(function getRecordsToSync(model) {
|
|
|
238
238
|
/**
|
|
239
239
|
* Insert new data into the database
|
|
240
240
|
*
|
|
241
|
-
* @author Jelle De Loecker
|
|
241
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
242
242
|
* @since 1.1.0
|
|
243
243
|
* @version 1.1.0
|
|
244
244
|
*
|
|
@@ -256,7 +256,7 @@ Fallback.setMethod(function create(model, data, options, callback) {
|
|
|
256
256
|
/**
|
|
257
257
|
* Update new data into the database
|
|
258
258
|
*
|
|
259
|
-
* @author Jelle De Loecker
|
|
259
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
260
260
|
* @since 1.1.0
|
|
261
261
|
* @version 1.1.0
|
|
262
262
|
*
|
|
@@ -274,7 +274,7 @@ Fallback.setMethod(function update(model, data, options, callback) {
|
|
|
274
274
|
/**
|
|
275
275
|
* Insert new data into the database
|
|
276
276
|
*
|
|
277
|
-
* @author Jelle De Loecker
|
|
277
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
278
278
|
* @since 1.1.0
|
|
279
279
|
* @version 1.1.0
|
|
280
280
|
*
|
|
@@ -371,7 +371,7 @@ Fallback.setMethod(function createOrUpdate(method, model, data, options, callbac
|
|
|
371
371
|
/**
|
|
372
372
|
* Ensure an index in the database
|
|
373
373
|
*
|
|
374
|
-
* @author Jelle De Loecker
|
|
374
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
375
375
|
* @since 1.1.0
|
|
376
376
|
* @version 1.1.0
|
|
377
377
|
*/
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* IndexedDb Datasource
|
|
3
3
|
*
|
|
4
|
-
* @author Jelle De Loecker
|
|
4
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
5
5
|
* @since 1.1.0
|
|
6
6
|
* @version 1.1.0
|
|
7
7
|
*/
|
|
@@ -12,7 +12,7 @@ var Idb = Function.inherits('Alchemy.Datasource.Nosql', function IndexedDb(name,
|
|
|
12
12
|
/**
|
|
13
13
|
* Get a connection to the database
|
|
14
14
|
*
|
|
15
|
-
* @author Jelle De Loecker
|
|
15
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
16
16
|
* @since 1.1.0
|
|
17
17
|
* @version 1.1.0
|
|
18
18
|
*/
|
|
@@ -52,7 +52,7 @@ Idb.decorateMethod(Blast.Decorators.memoize(), function collection(name) {
|
|
|
52
52
|
/**
|
|
53
53
|
* Create an item in the datasource
|
|
54
54
|
*
|
|
55
|
-
* @author Jelle De Loecker
|
|
55
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
56
56
|
* @since 1.1.0
|
|
57
57
|
* @version 1.1.0
|
|
58
58
|
*/
|
|
@@ -80,7 +80,7 @@ Idb.setMethod(function _create(model, data, options, callback) {
|
|
|
80
80
|
/**
|
|
81
81
|
* Update an item in the datasource
|
|
82
82
|
*
|
|
83
|
-
* @author Jelle De Loecker
|
|
83
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
84
84
|
* @since 1.1.0
|
|
85
85
|
* @version 1.1.0
|
|
86
86
|
*/
|
|
@@ -108,7 +108,7 @@ Idb.setMethod(function _update(model, data, options, callback) {
|
|
|
108
108
|
/**
|
|
109
109
|
* Query the database
|
|
110
110
|
*
|
|
111
|
-
* @author Jelle De Loecker
|
|
111
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
112
112
|
* @since 1.1.0
|
|
113
113
|
* @version 1.1.0
|
|
114
114
|
*/
|
|
@@ -137,7 +137,7 @@ Idb.setMethod(function _read(model, criteria, callback) {
|
|
|
137
137
|
/**
|
|
138
138
|
* Ensure an index in the database
|
|
139
139
|
*
|
|
140
|
-
* @author Jelle De Loecker
|
|
140
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
141
141
|
* @since 1.1.0
|
|
142
142
|
* @version 1.1.0
|
|
143
143
|
*/
|
|
@@ -10,12 +10,12 @@ indexedDB = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB ||
|
|
|
10
10
|
/**
|
|
11
11
|
* The IndexedDb class
|
|
12
12
|
*
|
|
13
|
-
* @author Jelle De Loecker
|
|
13
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
14
14
|
* @since 1.0.0
|
|
15
15
|
* @version 1.1.0
|
|
16
16
|
*
|
|
17
|
-
* @param {
|
|
18
|
-
* @param {
|
|
17
|
+
* @param {string} name
|
|
18
|
+
* @param {number} version
|
|
19
19
|
*/
|
|
20
20
|
var IndexedDb = Blast.Bound.Function.inherits('Informer', function IndexedDb(name) {
|
|
21
21
|
|
|
@@ -35,7 +35,7 @@ var IndexedDb = Blast.Bound.Function.inherits('Informer', function IndexedDb(nam
|
|
|
35
35
|
/**
|
|
36
36
|
* Symbol to use for seeing when something is from cache
|
|
37
37
|
*
|
|
38
|
-
* @author Jelle De Loecker <jelle@
|
|
38
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
39
39
|
* @since 1.0.6
|
|
40
40
|
* @version 1.0.6
|
|
41
41
|
*/
|
|
@@ -44,7 +44,7 @@ IndexedDb.setStatic('from_cache_symbol', Symbol('from_cache'));
|
|
|
44
44
|
/**
|
|
45
45
|
* Initialize the connection
|
|
46
46
|
*
|
|
47
|
-
* @author Jelle De Loecker <jelle@
|
|
47
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
48
48
|
* @since 1.0.0
|
|
49
49
|
* @version 1.1.0
|
|
50
50
|
*/
|
|
@@ -96,11 +96,11 @@ IndexedDb.setMethod(function init(version) {
|
|
|
96
96
|
* Only runs after the first `ready` event,
|
|
97
97
|
* because we need the database's version
|
|
98
98
|
*
|
|
99
|
-
* @author Jelle De Loecker <jelle@
|
|
99
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
100
100
|
* @since 1.0.0
|
|
101
101
|
* @version 1.0.6
|
|
102
102
|
*
|
|
103
|
-
* @param {
|
|
103
|
+
* @param {string} name
|
|
104
104
|
* @param {Function} callback
|
|
105
105
|
*/
|
|
106
106
|
IndexedDb.setAfterMethod('ready', function modifyObjectStore(name, callback) {
|
|
@@ -146,7 +146,7 @@ IndexedDb.setAfterMethod('ready', function modifyObjectStore(name, callback) {
|
|
|
146
146
|
/**
|
|
147
147
|
* See if this store exists
|
|
148
148
|
*
|
|
149
|
-
* @author Jelle De Loecker <jelle@
|
|
149
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
150
150
|
* @since 1.0.0
|
|
151
151
|
* @version 1.0.0
|
|
152
152
|
*/
|
|
@@ -162,7 +162,7 @@ IndexedDb.setAfterMethod('ready', function hasStore(name, callback) {
|
|
|
162
162
|
/**
|
|
163
163
|
* See if this store has an index exists
|
|
164
164
|
*
|
|
165
|
-
* @author Jelle De Loecker <jelle@
|
|
165
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
166
166
|
* @since 1.1.0
|
|
167
167
|
* @version 1.1.0
|
|
168
168
|
*/
|
|
@@ -188,7 +188,7 @@ IndexedDb.setAfterMethod('ready', function hasIndex(collection_name, index_name,
|
|
|
188
188
|
/**
|
|
189
189
|
* Create the given index
|
|
190
190
|
*
|
|
191
|
-
* @author Jelle De Loecker <jelle@
|
|
191
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
192
192
|
* @since 1.1.0
|
|
193
193
|
* @version 1.1.0
|
|
194
194
|
*/
|
|
@@ -222,11 +222,11 @@ IndexedDb.setAfterMethod('ready', function createIndex(collection_name, index_na
|
|
|
222
222
|
/**
|
|
223
223
|
* Create something in a collection
|
|
224
224
|
*
|
|
225
|
-
* @author Jelle De Loecker <jelle@
|
|
225
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
226
226
|
* @since 1.0.0
|
|
227
227
|
* @version 1.1.0
|
|
228
228
|
*
|
|
229
|
-
* @param {
|
|
229
|
+
* @param {string} collection The name of the collection
|
|
230
230
|
* @param {Object} object
|
|
231
231
|
* @param {Function} callback
|
|
232
232
|
*/
|
|
@@ -249,11 +249,11 @@ IndexedDb.setAfterMethod('ready', function create(collection, object, callback)
|
|
|
249
249
|
/**
|
|
250
250
|
* Create or update something in a collection
|
|
251
251
|
*
|
|
252
|
-
* @author Jelle De Loecker <jelle@
|
|
252
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
253
253
|
* @since 1.0.0
|
|
254
254
|
* @version 1.1.0
|
|
255
255
|
*
|
|
256
|
-
* @param {
|
|
256
|
+
* @param {string} collection The name of the collection
|
|
257
257
|
* @param {Object} object
|
|
258
258
|
* @param {Function} callback
|
|
259
259
|
*/
|
|
@@ -276,11 +276,11 @@ IndexedDb.setAfterMethod('ready', function put(collection, object, callback) {
|
|
|
276
276
|
/**
|
|
277
277
|
* Read from the collection
|
|
278
278
|
*
|
|
279
|
-
* @author Jelle De Loecker <jelle@
|
|
279
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
280
280
|
* @since 1.0.0
|
|
281
281
|
* @version 1.1.0
|
|
282
282
|
*
|
|
283
|
-
* @param {
|
|
283
|
+
* @param {string} collection The name of the collection
|
|
284
284
|
* @param {Object} query Query conditions (NOT DbQuery instance)
|
|
285
285
|
* @param {Object} options
|
|
286
286
|
* @param {Function} callback
|
|
@@ -330,7 +330,7 @@ IndexedDb.setAfterMethod('ready', function read(collection, query, options, call
|
|
|
330
330
|
/**
|
|
331
331
|
* IDB On success read function
|
|
332
332
|
*
|
|
333
|
-
* @author Jelle De Loecker <jelle@
|
|
333
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
334
334
|
* @since 1.1.0
|
|
335
335
|
* @version 1.1.0
|
|
336
336
|
*/
|
|
@@ -394,12 +394,12 @@ function idbOnSuccess(event, config) {
|
|
|
394
394
|
/**
|
|
395
395
|
* Create a transaction
|
|
396
396
|
*
|
|
397
|
-
* @author Jelle De Loecker <jelle@
|
|
397
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
398
398
|
* @since 1.0.0
|
|
399
399
|
* @version 1.0.0
|
|
400
400
|
*
|
|
401
401
|
* @param {Array} stores
|
|
402
|
-
* @param {
|
|
402
|
+
* @param {string} type
|
|
403
403
|
*
|
|
404
404
|
* @return {}
|
|
405
405
|
*/
|
|
@@ -415,12 +415,12 @@ IndexedDb.setMethod(function createTransaction(stores, type) {
|
|
|
415
415
|
/**
|
|
416
416
|
* Handle a transaction
|
|
417
417
|
*
|
|
418
|
-
* @author Jelle De Loecker <jelle@
|
|
418
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
419
419
|
* @since 1.0.0
|
|
420
420
|
* @version 1.0.0
|
|
421
421
|
*
|
|
422
|
-
* @param {
|
|
423
|
-
* @param {
|
|
422
|
+
* @param {string} collection The name of the collection
|
|
423
|
+
* @param {string} method The name of the method to apply
|
|
424
424
|
* @param {Array} args The arguments to pass to the method
|
|
425
425
|
* @param {Function} callback
|
|
426
426
|
*/
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Remote Datasource
|
|
3
3
|
*
|
|
4
|
-
* @author Jelle De Loecker
|
|
4
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
5
5
|
* @since 1.1.0
|
|
6
6
|
* @version 1.1.0
|
|
7
7
|
*/
|
|
@@ -13,7 +13,7 @@ var Remote = Function.inherits('Alchemy.Datasource', function Remote(name, optio
|
|
|
13
13
|
/**
|
|
14
14
|
* Do a remote action
|
|
15
15
|
*
|
|
16
|
-
* @author Jelle De Loecker
|
|
16
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
17
17
|
* @since 1.1.0
|
|
18
18
|
* @version 1.1.7
|
|
19
19
|
*/
|
|
@@ -102,7 +102,7 @@ Remote.setMethod(async function doServerCommand(action, model, data, callback) {
|
|
|
102
102
|
/**
|
|
103
103
|
* Query the remote database
|
|
104
104
|
*
|
|
105
|
-
* @author Jelle De Loecker
|
|
105
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
106
106
|
* @since 1.1.0
|
|
107
107
|
* @version 1.1.0
|
|
108
108
|
*/
|
|
@@ -137,7 +137,7 @@ Remote.setMethod(function read(model, criteria, callback) {
|
|
|
137
137
|
/**
|
|
138
138
|
* Create something in the remote database
|
|
139
139
|
*
|
|
140
|
-
* @author Jelle De Loecker
|
|
140
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
141
141
|
* @since 1.1.0
|
|
142
142
|
* @version 1.1.0
|
|
143
143
|
*/
|
|
@@ -168,7 +168,7 @@ Remote.setMethod(function create(model, data, options, callback) {
|
|
|
168
168
|
/**
|
|
169
169
|
* Update something in the remote database
|
|
170
170
|
*
|
|
171
|
-
* @author Jelle De Loecker
|
|
171
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
172
172
|
* @since 1.1.0
|
|
173
173
|
* @version 1.1.0
|
|
174
174
|
*/
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* @constructor
|
|
5
5
|
*
|
|
6
|
-
* @author Jelle De Loecker
|
|
6
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
7
7
|
* @since 1.1.0
|
|
8
8
|
* @version 1.1.0
|
|
9
9
|
*/
|
|
@@ -15,7 +15,7 @@ const HTTP = Function.inherits('Alchemy.Error', function HTTP(status, message) {
|
|
|
15
15
|
/**
|
|
16
16
|
* Get the properties to serialize
|
|
17
17
|
*
|
|
18
|
-
* @author Jelle De Loecker
|
|
18
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
19
19
|
* @since 0.7.1
|
|
20
20
|
* @version 0.7.1
|
|
21
21
|
*
|
|
@@ -28,11 +28,11 @@ HTTP.setProperty(function properties_to_serialize() {
|
|
|
28
28
|
/**
|
|
29
29
|
* Return string interpretation of this error
|
|
30
30
|
*
|
|
31
|
-
* @author Jelle De Loecker
|
|
31
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
32
32
|
* @since 1.1.0
|
|
33
33
|
* @version 1.1.0
|
|
34
34
|
*
|
|
35
|
-
* @return {
|
|
35
|
+
* @return {string}
|
|
36
36
|
*/
|
|
37
37
|
HTTP.setMethod(function toString() {
|
|
38
38
|
let result = this.name + ' Error';
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* The base model error
|
|
3
3
|
*
|
|
4
|
-
* @author Jelle De Loecker
|
|
4
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
5
5
|
* @since 1.1.0
|
|
6
6
|
* @version 1.1.0
|
|
7
7
|
*
|
|
8
|
-
* @param {
|
|
8
|
+
* @param {string} message
|
|
9
9
|
*/
|
|
10
10
|
const ModelError = Function.inherits('Alchemy.Error', 'Alchemy.Error.Model', function Model(message) {
|
|
11
11
|
Model.super.call(this, message);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Parent class of all errors regarding Validation
|
|
3
3
|
*
|
|
4
|
-
* @author Jelle De Loecker
|
|
4
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
5
5
|
* @since 1.1.0
|
|
6
6
|
* @version 1.1.0
|
|
7
7
|
*/
|
|
@@ -12,7 +12,7 @@ const ValidationError = Function.inherits('Alchemy.Error.Model', 'Alchemy.Error.
|
|
|
12
12
|
/**
|
|
13
13
|
* Parent class of all validation violations
|
|
14
14
|
*
|
|
15
|
-
* @author Jelle De Loecker
|
|
15
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
16
16
|
* @since 1.1.0
|
|
17
17
|
* @version 1.1.0
|
|
18
18
|
*/
|
|
@@ -21,7 +21,7 @@ const Violation = Function.inherits('Alchemy.Error.Validation', function Violati
|
|
|
21
21
|
/**
|
|
22
22
|
* Validation Violations do not need a stack
|
|
23
23
|
*
|
|
24
|
-
* @author Jelle De Loecker
|
|
24
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
25
25
|
* @since 1.1.0
|
|
26
26
|
* @version 1.1.0
|
|
27
27
|
*/
|
|
@@ -30,7 +30,7 @@ Violation.setProperty('capture_stack', false);
|
|
|
30
30
|
/**
|
|
31
31
|
* A grouping of violations
|
|
32
32
|
*
|
|
33
|
-
* @author Jelle De Loecker
|
|
33
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
34
34
|
* @since 1.1.0
|
|
35
35
|
* @version 1.1.0
|
|
36
36
|
*/
|
|
@@ -41,7 +41,7 @@ const Violations = Function.inherits('Alchemy.Error.Validation.Violation', funct
|
|
|
41
41
|
/**
|
|
42
42
|
* Get the amount of violations
|
|
43
43
|
*
|
|
44
|
-
* @author Jelle De Loecker
|
|
44
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
45
45
|
* @since 1.1.0
|
|
46
46
|
* @version 1.1.0
|
|
47
47
|
*/
|
|
@@ -52,7 +52,7 @@ Violations.setProperty(function length() {
|
|
|
52
52
|
/**
|
|
53
53
|
* Set the properties to serialize for this error
|
|
54
54
|
*
|
|
55
|
-
* @author Jelle De Loecker
|
|
55
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
56
56
|
* @since 1.1.0
|
|
57
57
|
* @version 1.1.0
|
|
58
58
|
*/
|
|
@@ -61,7 +61,7 @@ Violations.setProperty('properties_to_serialize', ['violations']);
|
|
|
61
61
|
/**
|
|
62
62
|
* Iterator method
|
|
63
63
|
*
|
|
64
|
-
* @author Jelle De Loecker
|
|
64
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
65
65
|
* @since 1.1.0
|
|
66
66
|
* @version 1.1.0
|
|
67
67
|
*/
|
|
@@ -77,7 +77,7 @@ Violations.setMethod(Symbol.iterator, function* iterate() {
|
|
|
77
77
|
/**
|
|
78
78
|
* Add more violations
|
|
79
79
|
*
|
|
80
|
-
* @author Jelle De Loecker
|
|
80
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
81
81
|
* @since 1.1.0
|
|
82
82
|
* @version 1.1.0
|
|
83
83
|
*
|
|
@@ -101,11 +101,11 @@ Violations.setMethod(function add(violation) {
|
|
|
101
101
|
/**
|
|
102
102
|
* Return a string representation of all violations
|
|
103
103
|
*
|
|
104
|
-
* @author Jelle De Loecker
|
|
104
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
105
105
|
* @since 1.1.0
|
|
106
106
|
* @version 1.1.0
|
|
107
107
|
*
|
|
108
|
-
* @return {
|
|
108
|
+
* @return {string}
|
|
109
109
|
*/
|
|
110
110
|
Violations.setMethod(function toString() {
|
|
111
111
|
|
|
@@ -122,7 +122,7 @@ Violations.setMethod(function toString() {
|
|
|
122
122
|
/**
|
|
123
123
|
* Violation of a specific field
|
|
124
124
|
*
|
|
125
|
-
* @author Jelle De Loecker
|
|
125
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
126
126
|
* @since 1.1.0
|
|
127
127
|
* @version 1.1.0
|
|
128
128
|
*/
|
|
@@ -149,7 +149,7 @@ const FieldError = Function.inherits('Alchemy.Error.Validation.Violation', funct
|
|
|
149
149
|
/**
|
|
150
150
|
* Set the properties to serialize for this error
|
|
151
151
|
*
|
|
152
|
-
* @author Jelle De Loecker
|
|
152
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
153
153
|
* @since 1.1.0
|
|
154
154
|
* @version 1.1.4
|
|
155
155
|
*/
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* @constructor
|
|
5
5
|
*
|
|
6
|
-
* @author Jelle De Loecker
|
|
6
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
7
7
|
* @since 0.2.0
|
|
8
8
|
* @version 1.1.0
|
|
9
9
|
*/
|
|
@@ -14,7 +14,7 @@ var ObjectId = Function.inherits('Alchemy.Field', function ObjectId(schema, name
|
|
|
14
14
|
/**
|
|
15
15
|
* Set the datatype name
|
|
16
16
|
*
|
|
17
|
-
* @author Jelle De Loecker
|
|
17
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
18
18
|
* @since 0.2.0
|
|
19
19
|
* @version 1.1.0
|
|
20
20
|
*/
|
|
@@ -23,7 +23,7 @@ ObjectId.setDatatype('objectid');
|
|
|
23
23
|
/**
|
|
24
24
|
* ObjectIDs are self-contained objects
|
|
25
25
|
*
|
|
26
|
-
* @author Jelle De Loecker
|
|
26
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
27
27
|
* @since 1.1.0
|
|
28
28
|
* @version 1.1.0
|
|
29
29
|
*/
|
|
@@ -32,17 +32,17 @@ ObjectId.setSelfContained(true);
|
|
|
32
32
|
/**
|
|
33
33
|
* Cast the given value to this field's type
|
|
34
34
|
*
|
|
35
|
-
* @author Jelle De Loecker
|
|
35
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
36
36
|
* @since 0.2.0
|
|
37
37
|
* @version 0.2.0
|
|
38
38
|
*
|
|
39
|
-
* @param {
|
|
39
|
+
* @param {*} value
|
|
40
40
|
*
|
|
41
41
|
* @return {ObjectId}
|
|
42
42
|
*/
|
|
43
|
-
ObjectId.
|
|
43
|
+
ObjectId.setCastFunction(function cast(value, to_datasource) {
|
|
44
44
|
|
|
45
|
-
|
|
45
|
+
let result,
|
|
46
46
|
ds;
|
|
47
47
|
|
|
48
48
|
if (to_datasource && (ds = this.datasource)) {
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* @constructor
|
|
5
5
|
*
|
|
6
|
-
* @author Jelle De Loecker
|
|
6
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
7
7
|
* @since 0.2.0
|
|
8
8
|
* @version 1.1.0
|
|
9
9
|
*/
|
|
@@ -12,7 +12,7 @@ var StringField = Function.inherits('Alchemy.Field', 'String');
|
|
|
12
12
|
/**
|
|
13
13
|
* Set the datatype name
|
|
14
14
|
*
|
|
15
|
-
* @author Jelle De Loecker
|
|
15
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
16
16
|
* @since 0.2.0
|
|
17
17
|
* @version 1.1.0
|
|
18
18
|
*/
|
|
@@ -21,17 +21,21 @@ StringField.setDatatype('string');
|
|
|
21
21
|
/**
|
|
22
22
|
* Cast the given value to this field's type for search in a db
|
|
23
23
|
*
|
|
24
|
-
* @author Jelle De Loecker
|
|
24
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
25
25
|
* @since 1.1.7
|
|
26
|
-
* @version 1.
|
|
26
|
+
* @version 1.4.0
|
|
27
27
|
*
|
|
28
|
-
* @param {
|
|
28
|
+
* @param {*} value
|
|
29
29
|
* @param {Array} field_paths The path to the field
|
|
30
30
|
*
|
|
31
|
-
* @return {
|
|
31
|
+
* @return {*}
|
|
32
32
|
*/
|
|
33
33
|
StringField.setMethod(function _castCondition(value, field_paths) {
|
|
34
34
|
|
|
35
|
+
if (value == null) {
|
|
36
|
+
return value;
|
|
37
|
+
}
|
|
38
|
+
|
|
35
39
|
if (typeof value == 'object' && RegExp.isRegExp(value)) {
|
|
36
40
|
return value;
|
|
37
41
|
}
|
|
@@ -42,18 +46,18 @@ StringField.setMethod(function _castCondition(value, field_paths) {
|
|
|
42
46
|
/**
|
|
43
47
|
* Cast the given value to this field's type
|
|
44
48
|
*
|
|
45
|
-
* @author Jelle De Loecker
|
|
49
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
46
50
|
* @since 0.2.0
|
|
47
|
-
* @version 1.
|
|
51
|
+
* @version 1.4.0
|
|
48
52
|
*
|
|
49
|
-
* @param {
|
|
53
|
+
* @param {*} value
|
|
50
54
|
*
|
|
51
|
-
* @return {
|
|
55
|
+
* @return {string}
|
|
52
56
|
*/
|
|
53
|
-
StringField.
|
|
57
|
+
StringField.setCastFunction(function castToString(value) {
|
|
54
58
|
|
|
55
59
|
if (value == null) {
|
|
56
|
-
return
|
|
60
|
+
return '';
|
|
57
61
|
}
|
|
58
62
|
|
|
59
63
|
if (typeof value == 'object') {
|
|
@@ -3,10 +3,8 @@
|
|
|
3
3
|
*
|
|
4
4
|
* @constructor
|
|
5
5
|
*
|
|
6
|
-
* @author Jelle De Loecker
|
|
6
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
7
7
|
* @since 0.2.0
|
|
8
8
|
* @version 1.1.0
|
|
9
9
|
*/
|
|
10
|
-
|
|
11
|
-
Text.super.call(this, schema, name, options);
|
|
12
|
-
});
|
|
10
|
+
const Text = Function.inherits('Alchemy.Field.String', 'Text');
|
|
@@ -3,18 +3,16 @@
|
|
|
3
3
|
*
|
|
4
4
|
* @constructor
|
|
5
5
|
*
|
|
6
|
-
* @author Jelle De Loecker
|
|
6
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
7
7
|
* @since 0.2.0
|
|
8
8
|
* @version 1.1.0
|
|
9
9
|
*/
|
|
10
|
-
|
|
11
|
-
Number.super.call(this, schema, name, options);
|
|
12
|
-
});
|
|
10
|
+
const NumberField = Function.inherits('Alchemy.Field', 'Number');
|
|
13
11
|
|
|
14
12
|
/**
|
|
15
13
|
* Set the datatype name
|
|
16
14
|
*
|
|
17
|
-
* @author Jelle De Loecker
|
|
15
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
18
16
|
* @since 0.2.0
|
|
19
17
|
* @version 1.1.0
|
|
20
18
|
*/
|
|
@@ -23,19 +21,18 @@ NumberField.setDatatype('number');
|
|
|
23
21
|
/**
|
|
24
22
|
* Cast the given value to this field's type
|
|
25
23
|
*
|
|
26
|
-
* @author Jelle De Loecker
|
|
24
|
+
* @author Jelle De Loecker <jelle@elevenways.be>
|
|
27
25
|
* @since 0.2.0
|
|
28
|
-
* @version
|
|
26
|
+
* @version 1.4.0
|
|
29
27
|
*
|
|
30
|
-
* @param {
|
|
28
|
+
* @param {*} value
|
|
31
29
|
*
|
|
32
|
-
* @return {
|
|
30
|
+
* @return {number}
|
|
33
31
|
*/
|
|
34
|
-
NumberField.
|
|
32
|
+
NumberField.setCastFunction(function cast(value) {
|
|
35
33
|
|
|
36
|
-
// Allow null
|
|
37
34
|
if (value == null) {
|
|
38
|
-
return
|
|
35
|
+
return 0;
|
|
39
36
|
}
|
|
40
37
|
|
|
41
38
|
return Number(value);
|