@statezero/core 0.2.38 → 0.2.40
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/dist/actions/backend1/django_app/calculate-hash.d.ts +57 -0
- package/dist/actions/backend1/django_app/calculate-hash.js +80 -0
- package/dist/actions/backend1/django_app/calculate-hash.schema.json +148 -0
- package/dist/actions/backend1/django_app/get-current-username.d.ts +29 -0
- package/dist/actions/backend1/django_app/get-current-username.js +65 -0
- package/dist/actions/backend1/django_app/get-current-username.schema.json +47 -0
- package/dist/actions/backend1/django_app/get-server-status.d.ts +38 -0
- package/dist/actions/backend1/django_app/get-server-status.js +68 -0
- package/dist/actions/backend1/django_app/get-server-status.schema.json +93 -0
- package/dist/actions/backend1/django_app/get-user-info.d.ts +44 -0
- package/dist/actions/backend1/django_app/get-user-info.js +70 -0
- package/dist/actions/backend1/django_app/get-user-info.schema.json +127 -0
- package/dist/actions/backend1/django_app/index.d.ts +1 -0
- package/dist/actions/backend1/django_app/index.js +6 -0
- package/dist/actions/backend1/django_app/process-data.d.ts +51 -0
- package/dist/actions/backend1/django_app/process-data.js +78 -0
- package/dist/actions/backend1/django_app/process-data.schema.json +117 -0
- package/dist/actions/backend1/django_app/send-notification.d.ts +55 -0
- package/dist/actions/backend1/django_app/send-notification.js +81 -0
- package/dist/actions/backend1/django_app/send-notification.schema.json +175 -0
- package/dist/actions/backend1/index.d.ts +1 -0
- package/dist/actions/backend1/index.js +1 -0
- package/dist/actions/default/django_app/calculate-hash.d.ts +57 -0
- package/dist/actions/default/django_app/calculate-hash.js +80 -0
- package/dist/actions/default/django_app/calculate-hash.schema.json +148 -0
- package/dist/actions/default/django_app/get-current-username.d.ts +29 -0
- package/dist/actions/default/django_app/get-current-username.js +65 -0
- package/dist/actions/default/django_app/get-current-username.schema.json +47 -0
- package/dist/actions/default/django_app/get-server-status.d.ts +38 -0
- package/dist/actions/default/django_app/get-server-status.js +68 -0
- package/dist/actions/default/django_app/get-server-status.schema.json +93 -0
- package/dist/actions/default/django_app/get-user-info.d.ts +44 -0
- package/dist/actions/default/django_app/get-user-info.js +70 -0
- package/dist/actions/default/django_app/get-user-info.schema.json +127 -0
- package/dist/actions/default/django_app/index.d.ts +1 -0
- package/dist/actions/default/django_app/index.js +6 -0
- package/dist/actions/default/django_app/process-data.d.ts +51 -0
- package/dist/actions/default/django_app/process-data.js +78 -0
- package/dist/actions/default/django_app/process-data.schema.json +117 -0
- package/dist/actions/default/django_app/send-notification.d.ts +55 -0
- package/dist/actions/default/django_app/send-notification.js +81 -0
- package/dist/actions/default/django_app/send-notification.schema.json +175 -0
- package/dist/actions/default/index.d.ts +1 -0
- package/dist/actions/default/index.js +1 -0
- package/dist/actions/index.d.ts +1 -0
- package/dist/actions/index.js +5 -0
- package/dist/adaptors/react/composables.d.ts +1 -0
- package/dist/adaptors/react/composables.js +4 -0
- package/dist/adaptors/react/index.d.ts +1 -0
- package/dist/adaptors/react/index.js +1 -0
- package/dist/adaptors/vue/components/LayoutRenderer.js +46 -49
- package/dist/adaptors/vue/components/defaults/index.d.ts +7 -0
- package/dist/adaptors/vue/components/defaults/index.js +31 -0
- package/dist/adaptors/vue/components/index.d.ts +1 -0
- package/dist/adaptors/vue/components/index.js +7 -0
- package/dist/adaptors/vue/composables.d.ts +2 -0
- package/dist/adaptors/vue/composables.js +44 -0
- package/dist/adaptors/vue/index.d.ts +3 -0
- package/dist/adaptors/vue/index.js +4 -0
- package/dist/adaptors/vue/reactivity.d.ts +18 -0
- package/dist/adaptors/vue/reactivity.js +132 -0
- package/dist/cli/commands/sync.d.ts +6 -0
- package/dist/cli/commands/sync.js +30 -0
- package/dist/cli/commands/syncActions.d.ts +46 -0
- package/dist/cli/commands/syncActions.js +717 -0
- package/dist/cli/commands/syncModels.d.ts +132 -0
- package/dist/cli/commands/syncModels.js +1120 -0
- package/dist/cli/configFileLoader.d.ts +10 -0
- package/dist/cli/configFileLoader.js +85 -0
- package/dist/cli/index.d.ts +2 -0
- package/dist/cli/index.js +22 -0
- package/dist/config.d.ts +57 -0
- package/dist/config.js +273 -0
- package/dist/core/eventReceivers.d.ts +185 -0
- package/dist/core/eventReceivers.js +266 -0
- package/dist/core/utils.d.ts +8 -0
- package/dist/core/utils.js +62 -0
- package/dist/errorHandler.d.ts +21 -0
- package/dist/errorHandler.js +27 -0
- package/dist/filtering/localFiltering.d.ts +110 -0
- package/dist/filtering/localFiltering.js +1080 -0
- package/dist/flavours/django/dates.d.ts +34 -0
- package/dist/flavours/django/dates.js +113 -0
- package/dist/flavours/django/errors.d.ts +138 -0
- package/dist/flavours/django/errors.js +195 -0
- package/dist/flavours/django/f.d.ts +6 -0
- package/dist/flavours/django/f.js +91 -0
- package/dist/flavours/django/files.d.ts +62 -0
- package/dist/flavours/django/files.js +355 -0
- package/dist/flavours/django/makeApiCall.d.ts +36 -0
- package/dist/flavours/django/makeApiCall.js +169 -0
- package/dist/flavours/django/manager.d.ts +204 -0
- package/dist/flavours/django/manager.js +222 -0
- package/dist/flavours/django/model.d.ts +137 -0
- package/dist/flavours/django/model.js +366 -0
- package/dist/flavours/django/operationFactory.d.ts +73 -0
- package/dist/flavours/django/operationFactory.js +248 -0
- package/dist/flavours/django/q.d.ts +70 -0
- package/dist/flavours/django/q.js +43 -0
- package/dist/flavours/django/queryExecutor.d.ts +149 -0
- package/dist/flavours/django/queryExecutor.js +590 -0
- package/dist/flavours/django/querySet.d.ts +301 -0
- package/dist/flavours/django/querySet.js +736 -0
- package/dist/flavours/django/serializers.d.ts +39 -0
- package/dist/flavours/django/serializers.js +296 -0
- package/dist/flavours/django/tempPk.d.ts +31 -0
- package/dist/flavours/django/tempPk.js +92 -0
- package/dist/flavours/django/utils.d.ts +19 -0
- package/dist/flavours/django/utils.js +29 -0
- package/dist/index.d.ts +46 -0
- package/dist/index.js +48 -0
- package/dist/models/backend1/django_app/comprehensivemodel.d.ts +894 -0
- package/dist/models/backend1/django_app/comprehensivemodel.js +71 -0
- package/dist/models/backend1/django_app/comprehensivemodel.schema.json +870 -0
- package/dist/models/backend1/django_app/custompkmodel.d.ts +92 -0
- package/dist/models/backend1/django_app/custompkmodel.js +69 -0
- package/dist/models/backend1/django_app/custompkmodel.schema.json +71 -0
- package/dist/models/backend1/django_app/dailyrate.d.ts +230 -0
- package/dist/models/backend1/django_app/dailyrate.js +71 -0
- package/dist/models/backend1/django_app/dailyrate.schema.json +212 -0
- package/dist/models/backend1/django_app/deepmodellevel1.d.ts +140 -0
- package/dist/models/backend1/django_app/deepmodellevel1.js +72 -0
- package/dist/models/backend1/django_app/deepmodellevel1.schema.json +114 -0
- package/dist/models/backend1/django_app/deepmodellevel2.d.ts +118 -0
- package/dist/models/backend1/django_app/deepmodellevel2.js +71 -0
- package/dist/models/backend1/django_app/deepmodellevel2.schema.json +92 -0
- package/dist/models/backend1/django_app/deepmodellevel3.d.ts +92 -0
- package/dist/models/backend1/django_app/deepmodellevel3.js +69 -0
- package/dist/models/backend1/django_app/deepmodellevel3.schema.json +69 -0
- package/dist/models/backend1/django_app/dummymodel.d.ts +134 -0
- package/dist/models/backend1/django_app/dummymodel.js +71 -0
- package/dist/models/backend1/django_app/dummymodel.schema.json +109 -0
- package/dist/models/backend1/django_app/dummyrelatedmodel.d.ts +92 -0
- package/dist/models/backend1/django_app/dummyrelatedmodel.js +69 -0
- package/dist/models/backend1/django_app/dummyrelatedmodel.schema.json +69 -0
- package/dist/models/backend1/django_app/filetest.d.ts +140 -0
- package/dist/models/backend1/django_app/filetest.js +69 -0
- package/dist/models/backend1/django_app/filetest.schema.json +111 -0
- package/dist/models/backend1/django_app/index.d.ts +1 -0
- package/dist/models/backend1/django_app/index.js +21 -0
- package/dist/models/backend1/django_app/m2mdepthtestlevel1.d.ts +118 -0
- package/dist/models/backend1/django_app/m2mdepthtestlevel1.js +71 -0
- package/dist/models/backend1/django_app/m2mdepthtestlevel1.schema.json +94 -0
- package/dist/models/backend1/django_app/m2mdepthtestlevel2.d.ts +118 -0
- package/dist/models/backend1/django_app/m2mdepthtestlevel2.js +71 -0
- package/dist/models/backend1/django_app/m2mdepthtestlevel2.schema.json +94 -0
- package/dist/models/backend1/django_app/m2mdepthtestlevel3.d.ts +134 -0
- package/dist/models/backend1/django_app/m2mdepthtestlevel3.js +71 -0
- package/dist/models/backend1/django_app/m2mdepthtestlevel3.schema.json +112 -0
- package/dist/models/backend1/django_app/modelwithcustompkrelation.d.ts +118 -0
- package/dist/models/backend1/django_app/modelwithcustompkrelation.js +71 -0
- package/dist/models/backend1/django_app/modelwithcustompkrelation.schema.json +93 -0
- package/dist/models/backend1/django_app/modelwithrestrictedfields.d.ts +134 -0
- package/dist/models/backend1/django_app/modelwithrestrictedfields.js +71 -0
- package/dist/models/backend1/django_app/modelwithrestrictedfields.schema.json +111 -0
- package/dist/models/backend1/django_app/namefiltercustompkmodel.d.ts +92 -0
- package/dist/models/backend1/django_app/namefiltercustompkmodel.js +69 -0
- package/dist/models/backend1/django_app/namefiltercustompkmodel.schema.json +71 -0
- package/dist/models/backend1/django_app/order.d.ts +220 -0
- package/dist/models/backend1/django_app/order.js +71 -0
- package/dist/models/backend1/django_app/order.schema.json +203 -0
- package/dist/models/backend1/django_app/orderitem.d.ts +172 -0
- package/dist/models/backend1/django_app/orderitem.js +72 -0
- package/dist/models/backend1/django_app/orderitem.schema.json +149 -0
- package/dist/models/backend1/django_app/product.d.ts +254 -0
- package/dist/models/backend1/django_app/product.js +71 -0
- package/dist/models/backend1/django_app/product.schema.json +277 -0
- package/dist/models/backend1/django_app/productcategory.d.ts +92 -0
- package/dist/models/backend1/django_app/productcategory.js +69 -0
- package/dist/models/backend1/django_app/productcategory.schema.json +70 -0
- package/dist/models/backend1/django_app/rateplan.d.ts +92 -0
- package/dist/models/backend1/django_app/rateplan.js +69 -0
- package/dist/models/backend1/django_app/rateplan.schema.json +70 -0
- package/dist/models/backend1/django_app/restrictedfieldrelatedmodel.d.ts +108 -0
- package/dist/models/backend1/django_app/restrictedfieldrelatedmodel.js +69 -0
- package/dist/models/backend1/django_app/restrictedfieldrelatedmodel.schema.json +87 -0
- package/dist/models/backend1/fileobject.d.ts +4 -0
- package/dist/models/backend1/fileobject.js +9 -0
- package/dist/models/backend1/index.d.ts +2 -0
- package/dist/models/backend1/index.js +2 -0
- package/dist/models/default/django_app/comprehensivemodel.d.ts +894 -0
- package/dist/models/default/django_app/comprehensivemodel.js +71 -0
- package/dist/models/default/django_app/comprehensivemodel.schema.json +870 -0
- package/dist/models/default/django_app/custompkmodel.d.ts +92 -0
- package/dist/models/default/django_app/custompkmodel.js +69 -0
- package/dist/models/default/django_app/custompkmodel.schema.json +71 -0
- package/dist/models/default/django_app/dailyrate.d.ts +230 -0
- package/dist/models/default/django_app/dailyrate.js +71 -0
- package/dist/models/default/django_app/dailyrate.schema.json +212 -0
- package/dist/models/default/django_app/deepmodellevel1.d.ts +128 -0
- package/dist/models/default/django_app/deepmodellevel1.js +72 -0
- package/dist/models/default/django_app/deepmodellevel1.schema.json +102 -0
- package/dist/models/default/django_app/deepmodellevel2.d.ts +106 -0
- package/dist/models/default/django_app/deepmodellevel2.js +71 -0
- package/dist/models/default/django_app/deepmodellevel2.schema.json +80 -0
- package/dist/models/default/django_app/deepmodellevel3.d.ts +80 -0
- package/dist/models/default/django_app/deepmodellevel3.js +69 -0
- package/dist/models/default/django_app/deepmodellevel3.schema.json +57 -0
- package/dist/models/default/django_app/dummymodel.d.ts +122 -0
- package/dist/models/default/django_app/dummymodel.js +71 -0
- package/dist/models/default/django_app/dummymodel.schema.json +97 -0
- package/dist/models/default/django_app/dummyrelatedmodel.d.ts +80 -0
- package/dist/models/default/django_app/dummyrelatedmodel.js +69 -0
- package/dist/models/default/django_app/dummyrelatedmodel.schema.json +57 -0
- package/dist/models/default/django_app/filetest.d.ts +128 -0
- package/dist/models/default/django_app/filetest.js +69 -0
- package/dist/models/default/django_app/filetest.schema.json +99 -0
- package/dist/models/default/django_app/index.d.ts +1 -0
- package/dist/models/default/django_app/index.js +21 -0
- package/dist/models/default/django_app/m2mdepthtestlevel1.d.ts +118 -0
- package/dist/models/default/django_app/m2mdepthtestlevel1.js +71 -0
- package/dist/models/default/django_app/m2mdepthtestlevel1.schema.json +94 -0
- package/dist/models/default/django_app/m2mdepthtestlevel2.d.ts +118 -0
- package/dist/models/default/django_app/m2mdepthtestlevel2.js +71 -0
- package/dist/models/default/django_app/m2mdepthtestlevel2.schema.json +94 -0
- package/dist/models/default/django_app/m2mdepthtestlevel3.d.ts +134 -0
- package/dist/models/default/django_app/m2mdepthtestlevel3.js +71 -0
- package/dist/models/default/django_app/m2mdepthtestlevel3.schema.json +112 -0
- package/dist/models/default/django_app/modelwithcustompkrelation.d.ts +118 -0
- package/dist/models/default/django_app/modelwithcustompkrelation.js +71 -0
- package/dist/models/default/django_app/modelwithcustompkrelation.schema.json +93 -0
- package/dist/models/default/django_app/modelwithrestrictedfields.d.ts +134 -0
- package/dist/models/default/django_app/modelwithrestrictedfields.js +71 -0
- package/dist/models/default/django_app/modelwithrestrictedfields.schema.json +111 -0
- package/dist/models/default/django_app/namefiltercustompkmodel.d.ts +92 -0
- package/dist/models/default/django_app/namefiltercustompkmodel.js +69 -0
- package/dist/models/default/django_app/namefiltercustompkmodel.schema.json +71 -0
- package/dist/models/default/django_app/order.d.ts +220 -0
- package/dist/models/default/django_app/order.js +71 -0
- package/dist/models/default/django_app/order.schema.json +203 -0
- package/dist/models/default/django_app/orderitem.d.ts +172 -0
- package/dist/models/default/django_app/orderitem.js +72 -0
- package/dist/models/default/django_app/orderitem.schema.json +149 -0
- package/dist/models/default/django_app/product.d.ts +254 -0
- package/dist/models/default/django_app/product.js +71 -0
- package/dist/models/default/django_app/product.schema.json +277 -0
- package/dist/models/default/django_app/productcategory.d.ts +92 -0
- package/dist/models/default/django_app/productcategory.js +69 -0
- package/dist/models/default/django_app/productcategory.schema.json +70 -0
- package/dist/models/default/django_app/rateplan.d.ts +92 -0
- package/dist/models/default/django_app/rateplan.js +69 -0
- package/dist/models/default/django_app/rateplan.schema.json +70 -0
- package/dist/models/default/django_app/restrictedfieldrelatedmodel.d.ts +108 -0
- package/dist/models/default/django_app/restrictedfieldrelatedmodel.js +69 -0
- package/dist/models/default/django_app/restrictedfieldrelatedmodel.schema.json +87 -0
- package/dist/models/default/fileobject.d.ts +4 -0
- package/dist/models/default/fileobject.js +9 -0
- package/dist/models/default/index.d.ts +2 -0
- package/dist/models/default/index.js +2 -0
- package/dist/models/index.d.ts +1 -0
- package/dist/models/index.js +5 -0
- package/dist/react-entry.d.ts +2 -0
- package/dist/react-entry.js +2 -0
- package/dist/reactiveAdaptor.d.ts +24 -0
- package/dist/reactiveAdaptor.js +38 -0
- package/dist/reset.d.ts +15 -0
- package/dist/reset.js +97 -0
- package/dist/setup.d.ts +15 -0
- package/dist/setup.js +33 -0
- package/dist/syncEngine/cache/cache.d.ts +75 -0
- package/dist/syncEngine/cache/cache.js +355 -0
- package/dist/syncEngine/metrics/metricOptCalcs.d.ts +79 -0
- package/dist/syncEngine/metrics/metricOptCalcs.js +284 -0
- package/dist/syncEngine/registries/metricRegistry.d.ts +58 -0
- package/dist/syncEngine/registries/metricRegistry.js +171 -0
- package/dist/syncEngine/registries/modelStoreRegistry.d.ts +11 -0
- package/dist/syncEngine/registries/modelStoreRegistry.js +63 -0
- package/dist/syncEngine/registries/querysetStoreGraph.d.ts +41 -0
- package/dist/syncEngine/registries/querysetStoreGraph.js +174 -0
- package/dist/syncEngine/registries/querysetStoreRegistry.d.ts +72 -0
- package/dist/syncEngine/registries/querysetStoreRegistry.js +335 -0
- package/dist/syncEngine/stores/metricStore.d.ts +55 -0
- package/dist/syncEngine/stores/metricStore.js +222 -0
- package/dist/syncEngine/stores/modelStore.d.ts +53 -0
- package/dist/syncEngine/stores/modelStore.js +565 -0
- package/dist/syncEngine/stores/operation.d.ts +139 -0
- package/dist/syncEngine/stores/operation.js +291 -0
- package/dist/syncEngine/stores/operationEventHandlers.d.ts +8 -0
- package/dist/syncEngine/stores/operationEventHandlers.js +348 -0
- package/dist/syncEngine/stores/querysetStore.d.ts +60 -0
- package/dist/syncEngine/stores/querysetStore.js +294 -0
- package/dist/syncEngine/stores/reactivity.d.ts +3 -0
- package/dist/syncEngine/stores/reactivity.js +4 -0
- package/dist/syncEngine/stores/utils.d.ts +14 -0
- package/dist/syncEngine/stores/utils.js +32 -0
- package/dist/syncEngine/sync.d.ts +51 -0
- package/dist/syncEngine/sync.js +419 -0
- package/dist/testing.d.ts +63 -0
- package/dist/testing.js +175 -0
- package/dist/vue-entry.d.ts +15 -0
- package/dist/vue-entry.js +7 -0
- package/package.json +6 -7
- package/dist/adaptors/vue/components/layout.tailwind.css +0 -51
- /package/{dist → src}/adaptors/vue/components/layout.css +0 -0
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @typedef {Object} SerializerOptions
|
|
3
|
+
* @property {number} [depth] - How deep to serialize nested objects.
|
|
4
|
+
* @property {string[]} [fields] - List of fields to include.
|
|
5
|
+
* @property {number} [limit] - Maximum number of items to retrieve.
|
|
6
|
+
* @property {number} [offset] - Offset for pagination.
|
|
7
|
+
* @property {number} [overfetch] - Overfetch additional items.
|
|
8
|
+
* @property {string} [namespace] - Custom namespace for real-time updates.
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Manager class providing helper methods to work with QuerySets and models.
|
|
12
|
+
*
|
|
13
|
+
* @class Manager
|
|
14
|
+
*/
|
|
15
|
+
export class Manager {
|
|
16
|
+
/**
|
|
17
|
+
* Creates a new Manager.
|
|
18
|
+
*
|
|
19
|
+
* @param {Function} ModelClass - The model's constructor.
|
|
20
|
+
* @param {Function} [QuerySetClass=QuerySet] - The QuerySet class to use.
|
|
21
|
+
*/
|
|
22
|
+
constructor(ModelClass: Function, QuerySetClass?: Function);
|
|
23
|
+
ModelClass: Function;
|
|
24
|
+
QuerySetClass: Function;
|
|
25
|
+
/**
|
|
26
|
+
* Creates a new QuerySet instance.
|
|
27
|
+
*
|
|
28
|
+
* @returns {QuerySet} A new QuerySet instance for the model.
|
|
29
|
+
*/
|
|
30
|
+
newQuerySet(): QuerySet<any>;
|
|
31
|
+
/**
|
|
32
|
+
* Retrieves a single model instance matching the provided filters.
|
|
33
|
+
*
|
|
34
|
+
* @param {Object} [filters] - The filters to apply.
|
|
35
|
+
* @param {SerializerOptions} [serializerOptions] - Options for serialization.
|
|
36
|
+
* @returns {Promise<Model>} A promise that resolves to the model instance.
|
|
37
|
+
*/
|
|
38
|
+
get(filters?: Object, serializerOptions?: SerializerOptions): Promise<Model>;
|
|
39
|
+
/**
|
|
40
|
+
* Filters the QuerySet based on the provided conditions.
|
|
41
|
+
*
|
|
42
|
+
* @param {*} conditions - The filter conditions.
|
|
43
|
+
* @returns {QuerySet} A new QuerySet instance with the filters applied.
|
|
44
|
+
*/
|
|
45
|
+
filter(conditions: any): QuerySet<any>;
|
|
46
|
+
/**
|
|
47
|
+
* Excludes the specified conditions from the QuerySet.
|
|
48
|
+
*
|
|
49
|
+
* @param {*} conditions - The conditions to exclude.
|
|
50
|
+
* @returns {QuerySet} A new QuerySet instance with the conditions excluded.
|
|
51
|
+
*/
|
|
52
|
+
exclude(conditions: any): QuerySet<any>;
|
|
53
|
+
/**
|
|
54
|
+
* Returns a QuerySet representing all records.
|
|
55
|
+
*
|
|
56
|
+
* @returns {QuerySet} A new QuerySet instance.
|
|
57
|
+
*/
|
|
58
|
+
all(): QuerySet<any>;
|
|
59
|
+
/**
|
|
60
|
+
* Returns a QuerySet that executes remotely without updating local stores.
|
|
61
|
+
*
|
|
62
|
+
* @returns {QuerySet} A remote-only QuerySet instance.
|
|
63
|
+
*/
|
|
64
|
+
remote(): QuerySet<any>;
|
|
65
|
+
/**
|
|
66
|
+
* Deletes records in the QuerySet.
|
|
67
|
+
*
|
|
68
|
+
* @returns {Promise<[number, Object]>} A promise that resolves to an array where the first element is
|
|
69
|
+
* the number of records deleted and the second is an object with details.
|
|
70
|
+
*/
|
|
71
|
+
delete(): Promise<[number, Object]>;
|
|
72
|
+
/**
|
|
73
|
+
* Counts the number of records matching the current query.
|
|
74
|
+
*
|
|
75
|
+
* @param {string} [field] - Optional field to count (defaults to 'pk')
|
|
76
|
+
* @returns {Promise<number>} A promise that resolves to the count
|
|
77
|
+
*/
|
|
78
|
+
count(field?: string): Promise<number>;
|
|
79
|
+
/**
|
|
80
|
+
* Computes the sum of values for the specified field.
|
|
81
|
+
*
|
|
82
|
+
* @param {string} field - The field to sum
|
|
83
|
+
* @returns {Promise<number>} A promise that resolves to the sum
|
|
84
|
+
*/
|
|
85
|
+
sum(field: string): Promise<number>;
|
|
86
|
+
/**
|
|
87
|
+
* Computes the average value for the specified field.
|
|
88
|
+
*
|
|
89
|
+
* @param {string} field - The field to average
|
|
90
|
+
* @returns {Promise<number>} A promise that resolves to the average
|
|
91
|
+
*/
|
|
92
|
+
avg(field: string): Promise<number>;
|
|
93
|
+
/**
|
|
94
|
+
* Finds the minimum value for the specified field.
|
|
95
|
+
*
|
|
96
|
+
* @param {string} field - The field to find the minimum value for
|
|
97
|
+
* @returns {Promise<any>} A promise that resolves to the minimum value
|
|
98
|
+
*/
|
|
99
|
+
min(field: string): Promise<any>;
|
|
100
|
+
/**
|
|
101
|
+
* Finds the maximum value for the specified field.
|
|
102
|
+
*
|
|
103
|
+
* @param {string} field - The field to find the maximum value for
|
|
104
|
+
* @returns {Promise<any>} A promise that resolves to the maximum value
|
|
105
|
+
*/
|
|
106
|
+
max(field: string): Promise<any>;
|
|
107
|
+
/**
|
|
108
|
+
* Checks if any records exist that match the current query.
|
|
109
|
+
*
|
|
110
|
+
* @returns {Promise<boolean>} A promise that resolves to true if records exist, otherwise false
|
|
111
|
+
*/
|
|
112
|
+
exists(): Promise<boolean>;
|
|
113
|
+
/**
|
|
114
|
+
* Orders the QuerySet by the provided fields.
|
|
115
|
+
*
|
|
116
|
+
* @param {...(string|any)} fields - The fields to order by. Supports nested paths and descending order
|
|
117
|
+
* (prefix field with '-').
|
|
118
|
+
* @returns {QuerySet} A new QuerySet instance with the order applied.
|
|
119
|
+
*/
|
|
120
|
+
orderBy(...fields: (string | any)[]): QuerySet<any>;
|
|
121
|
+
/**
|
|
122
|
+
* Creates a new model instance using the provided data, then saves it.
|
|
123
|
+
*
|
|
124
|
+
* @param {*} data - The data to create the model instance.
|
|
125
|
+
* @returns {Promise<*>} A promise that resolves to the newly created model instance.
|
|
126
|
+
*/
|
|
127
|
+
create(data: any): Promise<any>;
|
|
128
|
+
/**
|
|
129
|
+
* Creates multiple model instances using the provided model instances.
|
|
130
|
+
*
|
|
131
|
+
* @param {Array<Model>} modelInstances - Array of unsaved model instances to create.
|
|
132
|
+
* @returns {Promise<Array<*>>} A promise that resolves to an array of newly created model instances.
|
|
133
|
+
*/
|
|
134
|
+
bulkCreate(modelInstances: Array<Model>): Promise<Array<any>>;
|
|
135
|
+
/**
|
|
136
|
+
* Fetches all records using the current QuerySet.
|
|
137
|
+
*
|
|
138
|
+
* @param {SerializerOptions} [serializerOptions] - Options for serialization.
|
|
139
|
+
* @returns {Promise<Array<*>>} A promise that resolves to an array of model instances.
|
|
140
|
+
*/
|
|
141
|
+
fetch(serializerOptions?: SerializerOptions): Promise<Array<any>>;
|
|
142
|
+
/**
|
|
143
|
+
* Retrieves or creates a model instance based on lookup fields and defaults.
|
|
144
|
+
*
|
|
145
|
+
* @param {*} lookupFields - The fields to lookup the model.
|
|
146
|
+
* @param {Object} [defaults={}] - Default values to use when creating a new instance.
|
|
147
|
+
* @returns {Promise<ResultTuple>} A promise that resolves to a ResultTuple containing the model instance
|
|
148
|
+
* and a boolean indicating whether it was created.
|
|
149
|
+
*/
|
|
150
|
+
getOrCreate(lookupFields: any, defaults?: Object): Promise<ResultTuple>;
|
|
151
|
+
/**
|
|
152
|
+
* Updates or creates a model instance based on lookup fields and defaults.
|
|
153
|
+
*
|
|
154
|
+
* @param {*} lookupFields - The fields to lookup the model.
|
|
155
|
+
* @param {Object} [defaults={}] - Default values to use when updating or creating the instance.
|
|
156
|
+
* @returns {Promise<ResultTuple>} A promise that resolves to a ResultTuple containing the model instance
|
|
157
|
+
* and a boolean indicating whether it was created.
|
|
158
|
+
*/
|
|
159
|
+
updateOrCreate(lookupFields: any, defaults?: Object): Promise<ResultTuple>;
|
|
160
|
+
/**
|
|
161
|
+
* Applies a search to the QuerySet using the specified search query and fields.
|
|
162
|
+
*
|
|
163
|
+
* @param {string} searchQuery - The search query.
|
|
164
|
+
* @param {string[]} [searchFields] - The fields to search in.
|
|
165
|
+
* @returns {QuerySet} A new QuerySet instance with the search applied.
|
|
166
|
+
*/
|
|
167
|
+
search(searchQuery: string, searchFields?: string[]): QuerySet<any>;
|
|
168
|
+
/**
|
|
169
|
+
* Returns a QuerySet marked as optimistic-only, meaning operations will only
|
|
170
|
+
* update local state without making backend API calls.
|
|
171
|
+
*
|
|
172
|
+
* @returns {QuerySet} A new QuerySet with optimistic-only mode enabled.
|
|
173
|
+
*/
|
|
174
|
+
get optimistic(): QuerySet<any>;
|
|
175
|
+
}
|
|
176
|
+
export type SerializerOptions = {
|
|
177
|
+
/**
|
|
178
|
+
* - How deep to serialize nested objects.
|
|
179
|
+
*/
|
|
180
|
+
depth?: number | undefined;
|
|
181
|
+
/**
|
|
182
|
+
* - List of fields to include.
|
|
183
|
+
*/
|
|
184
|
+
fields?: string[] | undefined;
|
|
185
|
+
/**
|
|
186
|
+
* - Maximum number of items to retrieve.
|
|
187
|
+
*/
|
|
188
|
+
limit?: number | undefined;
|
|
189
|
+
/**
|
|
190
|
+
* - Offset for pagination.
|
|
191
|
+
*/
|
|
192
|
+
offset?: number | undefined;
|
|
193
|
+
/**
|
|
194
|
+
* - Overfetch additional items.
|
|
195
|
+
*/
|
|
196
|
+
overfetch?: number | undefined;
|
|
197
|
+
/**
|
|
198
|
+
* - Custom namespace for real-time updates.
|
|
199
|
+
*/
|
|
200
|
+
namespace?: string | undefined;
|
|
201
|
+
};
|
|
202
|
+
import { QuerySet } from './querySet.js';
|
|
203
|
+
import { Model } from './model.js';
|
|
204
|
+
import { ResultTuple } from './queryExecutor.js';
|
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
import { QuerySet } from './querySet.js';
|
|
2
|
+
import { Model } from './model.js';
|
|
3
|
+
import { QueryExecutor, ResultTuple } from './queryExecutor.js';
|
|
4
|
+
import axios from 'axios';
|
|
5
|
+
/**
|
|
6
|
+
* @typedef {Object} SerializerOptions
|
|
7
|
+
* @property {number} [depth] - How deep to serialize nested objects.
|
|
8
|
+
* @property {string[]} [fields] - List of fields to include.
|
|
9
|
+
* @property {number} [limit] - Maximum number of items to retrieve.
|
|
10
|
+
* @property {number} [offset] - Offset for pagination.
|
|
11
|
+
* @property {number} [overfetch] - Overfetch additional items.
|
|
12
|
+
* @property {string} [namespace] - Custom namespace for real-time updates.
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* Manager class providing helper methods to work with QuerySets and models.
|
|
16
|
+
*
|
|
17
|
+
* @class Manager
|
|
18
|
+
*/
|
|
19
|
+
export class Manager {
|
|
20
|
+
/**
|
|
21
|
+
* Creates a new Manager.
|
|
22
|
+
*
|
|
23
|
+
* @param {Function} ModelClass - The model's constructor.
|
|
24
|
+
* @param {Function} [QuerySetClass=QuerySet] - The QuerySet class to use.
|
|
25
|
+
*/
|
|
26
|
+
constructor(ModelClass, QuerySetClass = QuerySet) {
|
|
27
|
+
this.ModelClass = ModelClass;
|
|
28
|
+
this.QuerySetClass = QuerySetClass;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Creates a new QuerySet instance.
|
|
32
|
+
*
|
|
33
|
+
* @returns {QuerySet} A new QuerySet instance for the model.
|
|
34
|
+
*/
|
|
35
|
+
newQuerySet() {
|
|
36
|
+
return new this.QuerySetClass(this.ModelClass);
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Retrieves a single model instance matching the provided filters.
|
|
40
|
+
*
|
|
41
|
+
* @param {Object} [filters] - The filters to apply.
|
|
42
|
+
* @param {SerializerOptions} [serializerOptions] - Options for serialization.
|
|
43
|
+
* @returns {Promise<Model>} A promise that resolves to the model instance.
|
|
44
|
+
*/
|
|
45
|
+
async get(filters, serializerOptions) {
|
|
46
|
+
return this.newQuerySet().get(filters, serializerOptions);
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Filters the QuerySet based on the provided conditions.
|
|
50
|
+
*
|
|
51
|
+
* @param {*} conditions - The filter conditions.
|
|
52
|
+
* @returns {QuerySet} A new QuerySet instance with the filters applied.
|
|
53
|
+
*/
|
|
54
|
+
filter(conditions) {
|
|
55
|
+
return this.newQuerySet().filter(conditions);
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Excludes the specified conditions from the QuerySet.
|
|
59
|
+
*
|
|
60
|
+
* @param {*} conditions - The conditions to exclude.
|
|
61
|
+
* @returns {QuerySet} A new QuerySet instance with the conditions excluded.
|
|
62
|
+
*/
|
|
63
|
+
exclude(conditions) {
|
|
64
|
+
return this.newQuerySet().exclude(conditions);
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Returns a QuerySet representing all records.
|
|
68
|
+
*
|
|
69
|
+
* @returns {QuerySet} A new QuerySet instance.
|
|
70
|
+
*/
|
|
71
|
+
all() {
|
|
72
|
+
return this.newQuerySet();
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Returns a QuerySet that executes remotely without updating local stores.
|
|
76
|
+
*
|
|
77
|
+
* @returns {QuerySet} A remote-only QuerySet instance.
|
|
78
|
+
*/
|
|
79
|
+
remote() {
|
|
80
|
+
return this.newQuerySet().remote();
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Deletes records in the QuerySet.
|
|
84
|
+
*
|
|
85
|
+
* @returns {Promise<[number, Object]>} A promise that resolves to an array where the first element is
|
|
86
|
+
* the number of records deleted and the second is an object with details.
|
|
87
|
+
*/
|
|
88
|
+
async delete() {
|
|
89
|
+
return await QueryExecutor.execute(this.newQuerySet(), 'delete');
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Counts the number of records matching the current query.
|
|
93
|
+
*
|
|
94
|
+
* @param {string} [field] - Optional field to count (defaults to 'pk')
|
|
95
|
+
* @returns {Promise<number>} A promise that resolves to the count
|
|
96
|
+
*/
|
|
97
|
+
async count(field) {
|
|
98
|
+
return await QueryExecutor.execute(this.newQuerySet(), 'count', { field });
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Computes the sum of values for the specified field.
|
|
102
|
+
*
|
|
103
|
+
* @param {string} field - The field to sum
|
|
104
|
+
* @returns {Promise<number>} A promise that resolves to the sum
|
|
105
|
+
*/
|
|
106
|
+
async sum(field) {
|
|
107
|
+
return await QueryExecutor.execute(this.newQuerySet(), 'sum', { field });
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Computes the average value for the specified field.
|
|
111
|
+
*
|
|
112
|
+
* @param {string} field - The field to average
|
|
113
|
+
* @returns {Promise<number>} A promise that resolves to the average
|
|
114
|
+
*/
|
|
115
|
+
async avg(field) {
|
|
116
|
+
return await QueryExecutor.execute(this.newQuerySet(), 'avg', { field });
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Finds the minimum value for the specified field.
|
|
120
|
+
*
|
|
121
|
+
* @param {string} field - The field to find the minimum value for
|
|
122
|
+
* @returns {Promise<any>} A promise that resolves to the minimum value
|
|
123
|
+
*/
|
|
124
|
+
async min(field) {
|
|
125
|
+
return await QueryExecutor.execute(this.newQuerySet(), 'min', { field });
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Finds the maximum value for the specified field.
|
|
129
|
+
*
|
|
130
|
+
* @param {string} field - The field to find the maximum value for
|
|
131
|
+
* @returns {Promise<any>} A promise that resolves to the maximum value
|
|
132
|
+
*/
|
|
133
|
+
async max(field) {
|
|
134
|
+
return await QueryExecutor.execute(this.newQuerySet(), 'max', { field });
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Checks if any records exist that match the current query.
|
|
138
|
+
*
|
|
139
|
+
* @returns {Promise<boolean>} A promise that resolves to true if records exist, otherwise false
|
|
140
|
+
*/
|
|
141
|
+
async exists() {
|
|
142
|
+
return await QueryExecutor.execute(this.newQuerySet(), 'exists');
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Orders the QuerySet by the provided fields.
|
|
146
|
+
*
|
|
147
|
+
* @param {...(string|any)} fields - The fields to order by. Supports nested paths and descending order
|
|
148
|
+
* (prefix field with '-').
|
|
149
|
+
* @returns {QuerySet} A new QuerySet instance with the order applied.
|
|
150
|
+
*/
|
|
151
|
+
orderBy(...fields) {
|
|
152
|
+
return this.newQuerySet().orderBy(...fields);
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Creates a new model instance using the provided data, then saves it.
|
|
156
|
+
*
|
|
157
|
+
* @param {*} data - The data to create the model instance.
|
|
158
|
+
* @returns {Promise<*>} A promise that resolves to the newly created model instance.
|
|
159
|
+
*/
|
|
160
|
+
async create(data) {
|
|
161
|
+
return this.newQuerySet().create(data);
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Creates multiple model instances using the provided model instances.
|
|
165
|
+
*
|
|
166
|
+
* @param {Array<Model>} modelInstances - Array of unsaved model instances to create.
|
|
167
|
+
* @returns {Promise<Array<*>>} A promise that resolves to an array of newly created model instances.
|
|
168
|
+
*/
|
|
169
|
+
async bulkCreate(modelInstances) {
|
|
170
|
+
return this.newQuerySet().bulkCreate(modelInstances);
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Fetches all records using the current QuerySet.
|
|
174
|
+
*
|
|
175
|
+
* @param {SerializerOptions} [serializerOptions] - Options for serialization.
|
|
176
|
+
* @returns {Promise<Array<*>>} A promise that resolves to an array of model instances.
|
|
177
|
+
*/
|
|
178
|
+
async fetch(serializerOptions) {
|
|
179
|
+
return this.newQuerySet().fetch(serializerOptions);
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Retrieves or creates a model instance based on lookup fields and defaults.
|
|
183
|
+
*
|
|
184
|
+
* @param {*} lookupFields - The fields to lookup the model.
|
|
185
|
+
* @param {Object} [defaults={}] - Default values to use when creating a new instance.
|
|
186
|
+
* @returns {Promise<ResultTuple>} A promise that resolves to a ResultTuple containing the model instance
|
|
187
|
+
* and a boolean indicating whether it was created.
|
|
188
|
+
*/
|
|
189
|
+
async getOrCreate(lookupFields, defaults = {}) {
|
|
190
|
+
return this.newQuerySet().getOrCreate(lookupFields, defaults);
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Updates or creates a model instance based on lookup fields and defaults.
|
|
194
|
+
*
|
|
195
|
+
* @param {*} lookupFields - The fields to lookup the model.
|
|
196
|
+
* @param {Object} [defaults={}] - Default values to use when updating or creating the instance.
|
|
197
|
+
* @returns {Promise<ResultTuple>} A promise that resolves to a ResultTuple containing the model instance
|
|
198
|
+
* and a boolean indicating whether it was created.
|
|
199
|
+
*/
|
|
200
|
+
async updateOrCreate(lookupFields, defaults = {}) {
|
|
201
|
+
return this.newQuerySet().updateOrCreate(lookupFields, defaults);
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Applies a search to the QuerySet using the specified search query and fields.
|
|
205
|
+
*
|
|
206
|
+
* @param {string} searchQuery - The search query.
|
|
207
|
+
* @param {string[]} [searchFields] - The fields to search in.
|
|
208
|
+
* @returns {QuerySet} A new QuerySet instance with the search applied.
|
|
209
|
+
*/
|
|
210
|
+
search(searchQuery, searchFields) {
|
|
211
|
+
return this.newQuerySet().search(searchQuery, searchFields);
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Returns a QuerySet marked as optimistic-only, meaning operations will only
|
|
215
|
+
* update local state without making backend API calls.
|
|
216
|
+
*
|
|
217
|
+
* @returns {QuerySet} A new QuerySet with optimistic-only mode enabled.
|
|
218
|
+
*/
|
|
219
|
+
get optimistic() {
|
|
220
|
+
return this.newQuerySet()._optimistic();
|
|
221
|
+
}
|
|
222
|
+
}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A constructor for a Model.
|
|
3
|
+
*
|
|
4
|
+
* @typedef {Function} ModelConstructor
|
|
5
|
+
* @param {any} data - Data to initialize the model.
|
|
6
|
+
* @returns {Model}
|
|
7
|
+
*
|
|
8
|
+
* @property {Manager} objects - The model's manager.
|
|
9
|
+
* @property {string} configKey - The configuration key.
|
|
10
|
+
* @property {string} modelName - The model name.
|
|
11
|
+
* @property {string} primaryKeyField - The primary key field (default 'id').
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* Base Model class with integrated API implementation.
|
|
15
|
+
*
|
|
16
|
+
* @abstract
|
|
17
|
+
*/
|
|
18
|
+
export class Model {
|
|
19
|
+
/**
|
|
20
|
+
* Creates a new Model instance.
|
|
21
|
+
*
|
|
22
|
+
* @param {any} [data={}] - The data for initialization.
|
|
23
|
+
*/
|
|
24
|
+
static instanceCache: Map<any, any>;
|
|
25
|
+
/**
|
|
26
|
+
* Remote-only manager that skips local store updates.
|
|
27
|
+
*/
|
|
28
|
+
static get remote(): any;
|
|
29
|
+
/**
|
|
30
|
+
* Instantiate from pk using queryset scoped singletons
|
|
31
|
+
*/
|
|
32
|
+
static fromPk(pk: any, querySet: any): any;
|
|
33
|
+
/**
|
|
34
|
+
* Validates that the provided data object only contains keys
|
|
35
|
+
* defined in the model's allowed fields. Supports nested fields
|
|
36
|
+
* using double underscore notation (e.g., author__name).
|
|
37
|
+
*
|
|
38
|
+
* @param {Object} data - The object to validate.
|
|
39
|
+
* @throws {ValidationError} If an unknown key is found.
|
|
40
|
+
*/
|
|
41
|
+
static validateFields(data: Object): void;
|
|
42
|
+
/**
|
|
43
|
+
* Static method to validate data without creating an instance
|
|
44
|
+
* @param {Object} data - Data to validate
|
|
45
|
+
* @param {string} validateType - 'create' or 'update'
|
|
46
|
+
* @param {boolean} partial - Whether to allow partial validation
|
|
47
|
+
* @returns {Promise<boolean>} Promise that resolves to true if valid, throws error if invalid
|
|
48
|
+
*/
|
|
49
|
+
static validate(data: Object, validateType?: string, partial?: boolean): Promise<boolean>;
|
|
50
|
+
/**
|
|
51
|
+
* Get field permissions for the current user (cached on the class)
|
|
52
|
+
* @param {boolean} refresh - Force refresh the cached permissions
|
|
53
|
+
* @returns {Promise<{visible_fields: string[], creatable_fields: string[], editable_fields: string[]}>}
|
|
54
|
+
*/
|
|
55
|
+
static getFieldPermissions(refresh?: boolean): Promise<{
|
|
56
|
+
visible_fields: string[];
|
|
57
|
+
creatable_fields: string[];
|
|
58
|
+
editable_fields: string[];
|
|
59
|
+
}>;
|
|
60
|
+
constructor(data?: {});
|
|
61
|
+
serializer: ModelSerializer;
|
|
62
|
+
_data: {};
|
|
63
|
+
_pk: any;
|
|
64
|
+
__version: number;
|
|
65
|
+
touch(): void;
|
|
66
|
+
/**
|
|
67
|
+
* Sets the primary key of the model instance.
|
|
68
|
+
*
|
|
69
|
+
* @param {number|undefined} value - The new primary key value.
|
|
70
|
+
*/
|
|
71
|
+
set pk(value: number | undefined);
|
|
72
|
+
/**
|
|
73
|
+
* Returns the primary key of the model instance.
|
|
74
|
+
*
|
|
75
|
+
* @returns {number|undefined} The primary key.
|
|
76
|
+
*/
|
|
77
|
+
get pk(): number | undefined;
|
|
78
|
+
/**
|
|
79
|
+
* Gets a field value from the internal data store
|
|
80
|
+
*
|
|
81
|
+
* @param {string} field - The field name
|
|
82
|
+
* @returns {any} The field value
|
|
83
|
+
*/
|
|
84
|
+
getField(field: string): any;
|
|
85
|
+
/**
|
|
86
|
+
* Sets a field value in the internal data store
|
|
87
|
+
*
|
|
88
|
+
* @param {string} field - The field name
|
|
89
|
+
* @param {any} value - The field value to set
|
|
90
|
+
*/
|
|
91
|
+
setField(field: string, value: any): void;
|
|
92
|
+
/**
|
|
93
|
+
* Serializes the model instance.
|
|
94
|
+
*
|
|
95
|
+
* By default, it returns all enumerable own properties.
|
|
96
|
+
* Subclasses should override this to return specific keys.
|
|
97
|
+
*
|
|
98
|
+
* @param {boolean} includeRepr - Whether to include the repr field (for caching). Default: false.
|
|
99
|
+
* @returns {Object} The serialized model data.
|
|
100
|
+
*/
|
|
101
|
+
serialize(includeRepr?: boolean): Object;
|
|
102
|
+
/**
|
|
103
|
+
* Saves the model instance by either creating a new record or updating an existing one.
|
|
104
|
+
*
|
|
105
|
+
* @returns {Promise<Model>} A promise that resolves to the updated model instance.
|
|
106
|
+
*/
|
|
107
|
+
save(): Promise<Model>;
|
|
108
|
+
/**
|
|
109
|
+
* Deletes the instance from the database.
|
|
110
|
+
*
|
|
111
|
+
* Returns a tuple with the number of objects deleted and an object mapping
|
|
112
|
+
* model names to the number of objects deleted, matching Django's behavior.
|
|
113
|
+
*
|
|
114
|
+
* @returns {Promise<[number, Object]>} A promise that resolves to the deletion result.
|
|
115
|
+
* @throws {Error} If the instance has not been saved (no primary key).
|
|
116
|
+
*/
|
|
117
|
+
delete(): Promise<[number, Object]>;
|
|
118
|
+
/**
|
|
119
|
+
* Refreshes the model instance with data from the database.
|
|
120
|
+
*
|
|
121
|
+
* @returns {Promise<void>} A promise that resolves when the instance has been refreshed.
|
|
122
|
+
* @throws {Error} If the instance has not been saved (no primary key).
|
|
123
|
+
*/
|
|
124
|
+
refreshFromDb(): Promise<void>;
|
|
125
|
+
/**
|
|
126
|
+
* Validates the model instance using the same serialize behavior as save()
|
|
127
|
+
* @param {string} validateType - 'create' or 'update' (defaults to auto-detect)
|
|
128
|
+
* @param {boolean} partial - Whether to allow partial validation
|
|
129
|
+
* @returns {Promise<boolean>} Promise that resolves to true if valid, throws error if invalid
|
|
130
|
+
*/
|
|
131
|
+
validate(validateType?: string, partial?: boolean): Promise<boolean>;
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* A constructor for a Model.
|
|
135
|
+
*/
|
|
136
|
+
export type ModelConstructor = Function;
|
|
137
|
+
import { ModelSerializer } from "./serializers.js";
|