@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,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This file was auto-generated. Do not make direct changes to the file.
|
|
3
|
+
*/
|
|
4
|
+
import { Model, Manager, QuerySet, getModelClass } from '../../../../src';
|
|
5
|
+
import { wrapReactiveModel } from '../../../../src';
|
|
6
|
+
import schemaData from './rateplan.schema.json';
|
|
7
|
+
/**
|
|
8
|
+
* Model-specific QuerySet implementation
|
|
9
|
+
*/
|
|
10
|
+
export class RatePlanQuerySet extends QuerySet {
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Model-specific Manager implementation
|
|
14
|
+
*/
|
|
15
|
+
export class RatePlanManager extends Manager {
|
|
16
|
+
constructor(ModelClass) {
|
|
17
|
+
super(ModelClass, RatePlanQuerySet);
|
|
18
|
+
}
|
|
19
|
+
newQuerySet() {
|
|
20
|
+
return new RatePlanQuerySet(this.ModelClass);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Implementation of the RatePlan model
|
|
25
|
+
*/
|
|
26
|
+
export class RatePlan extends Model {
|
|
27
|
+
constructor(data) {
|
|
28
|
+
RatePlan.validateFields(data);
|
|
29
|
+
super(data);
|
|
30
|
+
// Define getters and setters for all fields
|
|
31
|
+
this._defineProperties();
|
|
32
|
+
return wrapReactiveModel(this);
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Define property getters and setters for all model fields
|
|
36
|
+
* @private
|
|
37
|
+
*/
|
|
38
|
+
_defineProperties() {
|
|
39
|
+
// For each field, define a property that gets/sets from internal storage
|
|
40
|
+
RatePlan.fields.forEach(field => {
|
|
41
|
+
Object.defineProperty(this, field, {
|
|
42
|
+
get: function () {
|
|
43
|
+
return this.getField(field);
|
|
44
|
+
},
|
|
45
|
+
set: function (value) {
|
|
46
|
+
this.setField(field, value);
|
|
47
|
+
},
|
|
48
|
+
enumerable: true, // Make sure fields are enumerable for serialization
|
|
49
|
+
configurable: true
|
|
50
|
+
});
|
|
51
|
+
});
|
|
52
|
+
// Add a special read-only getter for the repr field
|
|
53
|
+
Object.defineProperty(this, 'repr', {
|
|
54
|
+
get: function () {
|
|
55
|
+
return this.getField('repr');
|
|
56
|
+
},
|
|
57
|
+
enumerable: true, // Make sure repr is enumerable
|
|
58
|
+
configurable: true
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
// Bind this model to its backend
|
|
63
|
+
RatePlan.configKey = 'default';
|
|
64
|
+
RatePlan.modelName = 'django_app.rateplan';
|
|
65
|
+
RatePlan.primaryKeyField = 'id';
|
|
66
|
+
RatePlan.objects = new RatePlanManager(RatePlan);
|
|
67
|
+
RatePlan.fields = ['id', 'name'];
|
|
68
|
+
RatePlan.schema = schemaData;
|
|
69
|
+
RatePlan.relationshipFields = new Map([]);
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
{
|
|
2
|
+
"model_name": "django_app.rateplan",
|
|
3
|
+
"title": "Rate Plan",
|
|
4
|
+
"class_name": "RatePlan",
|
|
5
|
+
"plural_title": "Rate Plans",
|
|
6
|
+
"primary_key_field": "id",
|
|
7
|
+
"filterable_fields": [
|
|
8
|
+
"id",
|
|
9
|
+
"name"
|
|
10
|
+
],
|
|
11
|
+
"searchable_fields": [
|
|
12
|
+
"name"
|
|
13
|
+
],
|
|
14
|
+
"ordering_fields": [
|
|
15
|
+
"name"
|
|
16
|
+
],
|
|
17
|
+
"properties": {
|
|
18
|
+
"id": {
|
|
19
|
+
"type": "integer",
|
|
20
|
+
"title": "Id",
|
|
21
|
+
"required": true,
|
|
22
|
+
"description": null,
|
|
23
|
+
"nullable": false,
|
|
24
|
+
"format": "id",
|
|
25
|
+
"max_length": null,
|
|
26
|
+
"choices": null,
|
|
27
|
+
"default": null,
|
|
28
|
+
"validators": [],
|
|
29
|
+
"max_digits": null,
|
|
30
|
+
"decimal_places": null,
|
|
31
|
+
"read_only": true,
|
|
32
|
+
"ref": null
|
|
33
|
+
},
|
|
34
|
+
"name": {
|
|
35
|
+
"type": "string",
|
|
36
|
+
"title": "Name",
|
|
37
|
+
"required": true,
|
|
38
|
+
"description": null,
|
|
39
|
+
"nullable": false,
|
|
40
|
+
"format": null,
|
|
41
|
+
"max_length": 100,
|
|
42
|
+
"choices": null,
|
|
43
|
+
"default": null,
|
|
44
|
+
"validators": [],
|
|
45
|
+
"max_digits": null,
|
|
46
|
+
"decimal_places": null,
|
|
47
|
+
"read_only": false,
|
|
48
|
+
"ref": null
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
"relationships": {},
|
|
52
|
+
"default_ordering": null,
|
|
53
|
+
"definitions": {
|
|
54
|
+
"MoneyField": {
|
|
55
|
+
"type": "object",
|
|
56
|
+
"properties": {
|
|
57
|
+
"amount": {
|
|
58
|
+
"type": "number"
|
|
59
|
+
},
|
|
60
|
+
"currency": {
|
|
61
|
+
"type": "string"
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
},
|
|
66
|
+
"datetime_format": "iso-8601",
|
|
67
|
+
"date_format": "iso-8601",
|
|
68
|
+
"time_format": "iso-8601",
|
|
69
|
+
"display": null
|
|
70
|
+
}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Model-specific QuerySet implementation
|
|
3
|
+
*/
|
|
4
|
+
export class RestrictedFieldRelatedModelQuerySet {
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Model-specific Manager implementation
|
|
8
|
+
*/
|
|
9
|
+
export class RestrictedFieldRelatedModelManager {
|
|
10
|
+
constructor(ModelClass: any);
|
|
11
|
+
newQuerySet(): RestrictedFieldRelatedModelQuerySet;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Implementation of the RestrictedFieldRelatedModel model
|
|
15
|
+
*/
|
|
16
|
+
export class RestrictedFieldRelatedModel {
|
|
17
|
+
static configKey: string;
|
|
18
|
+
static modelName: string;
|
|
19
|
+
static primaryKeyField: string;
|
|
20
|
+
static objects: RestrictedFieldRelatedModelManager;
|
|
21
|
+
static fields: string[];
|
|
22
|
+
static schema: {
|
|
23
|
+
model_name: string;
|
|
24
|
+
title: string;
|
|
25
|
+
class_name: string;
|
|
26
|
+
plural_title: string;
|
|
27
|
+
primary_key_field: string;
|
|
28
|
+
filterable_fields: string[];
|
|
29
|
+
searchable_fields: string[];
|
|
30
|
+
ordering_fields: string[];
|
|
31
|
+
properties: {
|
|
32
|
+
id: {
|
|
33
|
+
type: string;
|
|
34
|
+
title: string;
|
|
35
|
+
required: boolean;
|
|
36
|
+
description: null;
|
|
37
|
+
nullable: boolean;
|
|
38
|
+
format: string;
|
|
39
|
+
max_length: null;
|
|
40
|
+
choices: null;
|
|
41
|
+
default: null;
|
|
42
|
+
validators: never[];
|
|
43
|
+
max_digits: null;
|
|
44
|
+
decimal_places: null;
|
|
45
|
+
read_only: boolean;
|
|
46
|
+
ref: null;
|
|
47
|
+
};
|
|
48
|
+
name: {
|
|
49
|
+
type: string;
|
|
50
|
+
title: string;
|
|
51
|
+
required: boolean;
|
|
52
|
+
description: null;
|
|
53
|
+
nullable: boolean;
|
|
54
|
+
format: null;
|
|
55
|
+
max_length: number;
|
|
56
|
+
choices: null;
|
|
57
|
+
default: null;
|
|
58
|
+
validators: never[];
|
|
59
|
+
max_digits: null;
|
|
60
|
+
decimal_places: null;
|
|
61
|
+
read_only: boolean;
|
|
62
|
+
ref: null;
|
|
63
|
+
};
|
|
64
|
+
admin_only_field: {
|
|
65
|
+
type: string;
|
|
66
|
+
title: string;
|
|
67
|
+
required: boolean;
|
|
68
|
+
description: null;
|
|
69
|
+
nullable: boolean;
|
|
70
|
+
format: null;
|
|
71
|
+
max_length: number;
|
|
72
|
+
choices: null;
|
|
73
|
+
default: string;
|
|
74
|
+
validators: never[];
|
|
75
|
+
max_digits: null;
|
|
76
|
+
decimal_places: null;
|
|
77
|
+
read_only: boolean;
|
|
78
|
+
ref: null;
|
|
79
|
+
};
|
|
80
|
+
};
|
|
81
|
+
relationships: {};
|
|
82
|
+
default_ordering: null;
|
|
83
|
+
definitions: {
|
|
84
|
+
MoneyField: {
|
|
85
|
+
type: string;
|
|
86
|
+
properties: {
|
|
87
|
+
amount: {
|
|
88
|
+
type: string;
|
|
89
|
+
};
|
|
90
|
+
currency: {
|
|
91
|
+
type: string;
|
|
92
|
+
};
|
|
93
|
+
};
|
|
94
|
+
};
|
|
95
|
+
};
|
|
96
|
+
datetime_format: string;
|
|
97
|
+
date_format: string;
|
|
98
|
+
time_format: string;
|
|
99
|
+
display: null;
|
|
100
|
+
};
|
|
101
|
+
static relationshipFields: Map<any, any>;
|
|
102
|
+
constructor(data: any);
|
|
103
|
+
/**
|
|
104
|
+
* Define property getters and setters for all model fields
|
|
105
|
+
* @private
|
|
106
|
+
*/
|
|
107
|
+
private _defineProperties;
|
|
108
|
+
}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This file was auto-generated. Do not make direct changes to the file.
|
|
3
|
+
*/
|
|
4
|
+
import { Model, Manager, QuerySet, getModelClass } from '../../../../src';
|
|
5
|
+
import { wrapReactiveModel } from '../../../../src';
|
|
6
|
+
import schemaData from './restrictedfieldrelatedmodel.schema.json';
|
|
7
|
+
/**
|
|
8
|
+
* Model-specific QuerySet implementation
|
|
9
|
+
*/
|
|
10
|
+
export class RestrictedFieldRelatedModelQuerySet extends QuerySet {
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Model-specific Manager implementation
|
|
14
|
+
*/
|
|
15
|
+
export class RestrictedFieldRelatedModelManager extends Manager {
|
|
16
|
+
constructor(ModelClass) {
|
|
17
|
+
super(ModelClass, RestrictedFieldRelatedModelQuerySet);
|
|
18
|
+
}
|
|
19
|
+
newQuerySet() {
|
|
20
|
+
return new RestrictedFieldRelatedModelQuerySet(this.ModelClass);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Implementation of the RestrictedFieldRelatedModel model
|
|
25
|
+
*/
|
|
26
|
+
export class RestrictedFieldRelatedModel extends Model {
|
|
27
|
+
constructor(data) {
|
|
28
|
+
RestrictedFieldRelatedModel.validateFields(data);
|
|
29
|
+
super(data);
|
|
30
|
+
// Define getters and setters for all fields
|
|
31
|
+
this._defineProperties();
|
|
32
|
+
return wrapReactiveModel(this);
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Define property getters and setters for all model fields
|
|
36
|
+
* @private
|
|
37
|
+
*/
|
|
38
|
+
_defineProperties() {
|
|
39
|
+
// For each field, define a property that gets/sets from internal storage
|
|
40
|
+
RestrictedFieldRelatedModel.fields.forEach(field => {
|
|
41
|
+
Object.defineProperty(this, field, {
|
|
42
|
+
get: function () {
|
|
43
|
+
return this.getField(field);
|
|
44
|
+
},
|
|
45
|
+
set: function (value) {
|
|
46
|
+
this.setField(field, value);
|
|
47
|
+
},
|
|
48
|
+
enumerable: true, // Make sure fields are enumerable for serialization
|
|
49
|
+
configurable: true
|
|
50
|
+
});
|
|
51
|
+
});
|
|
52
|
+
// Add a special read-only getter for the repr field
|
|
53
|
+
Object.defineProperty(this, 'repr', {
|
|
54
|
+
get: function () {
|
|
55
|
+
return this.getField('repr');
|
|
56
|
+
},
|
|
57
|
+
enumerable: true, // Make sure repr is enumerable
|
|
58
|
+
configurable: true
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
// Bind this model to its backend
|
|
63
|
+
RestrictedFieldRelatedModel.configKey = 'default';
|
|
64
|
+
RestrictedFieldRelatedModel.modelName = 'django_app.restrictedfieldrelatedmodel';
|
|
65
|
+
RestrictedFieldRelatedModel.primaryKeyField = 'id';
|
|
66
|
+
RestrictedFieldRelatedModel.objects = new RestrictedFieldRelatedModelManager(RestrictedFieldRelatedModel);
|
|
67
|
+
RestrictedFieldRelatedModel.fields = ['id', 'name', 'admin_only_field'];
|
|
68
|
+
RestrictedFieldRelatedModel.schema = schemaData;
|
|
69
|
+
RestrictedFieldRelatedModel.relationshipFields = new Map([]);
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
{
|
|
2
|
+
"model_name": "django_app.restrictedfieldrelatedmodel",
|
|
3
|
+
"title": "Restricted Field Related Model",
|
|
4
|
+
"class_name": "RestrictedFieldRelatedModel",
|
|
5
|
+
"plural_title": "Restricted Field Related Models",
|
|
6
|
+
"primary_key_field": "id",
|
|
7
|
+
"filterable_fields": [
|
|
8
|
+
"id",
|
|
9
|
+
"admin_only_field",
|
|
10
|
+
"name"
|
|
11
|
+
],
|
|
12
|
+
"searchable_fields": [
|
|
13
|
+
"name"
|
|
14
|
+
],
|
|
15
|
+
"ordering_fields": [
|
|
16
|
+
"name"
|
|
17
|
+
],
|
|
18
|
+
"properties": {
|
|
19
|
+
"id": {
|
|
20
|
+
"type": "integer",
|
|
21
|
+
"title": "Id",
|
|
22
|
+
"required": true,
|
|
23
|
+
"description": null,
|
|
24
|
+
"nullable": false,
|
|
25
|
+
"format": "id",
|
|
26
|
+
"max_length": null,
|
|
27
|
+
"choices": null,
|
|
28
|
+
"default": null,
|
|
29
|
+
"validators": [],
|
|
30
|
+
"max_digits": null,
|
|
31
|
+
"decimal_places": null,
|
|
32
|
+
"read_only": true,
|
|
33
|
+
"ref": null
|
|
34
|
+
},
|
|
35
|
+
"name": {
|
|
36
|
+
"type": "string",
|
|
37
|
+
"title": "Name",
|
|
38
|
+
"required": true,
|
|
39
|
+
"description": null,
|
|
40
|
+
"nullable": false,
|
|
41
|
+
"format": null,
|
|
42
|
+
"max_length": 100,
|
|
43
|
+
"choices": null,
|
|
44
|
+
"default": null,
|
|
45
|
+
"validators": [],
|
|
46
|
+
"max_digits": null,
|
|
47
|
+
"decimal_places": null,
|
|
48
|
+
"read_only": false,
|
|
49
|
+
"ref": null
|
|
50
|
+
},
|
|
51
|
+
"admin_only_field": {
|
|
52
|
+
"type": "string",
|
|
53
|
+
"title": "Admin only field",
|
|
54
|
+
"required": false,
|
|
55
|
+
"description": null,
|
|
56
|
+
"nullable": false,
|
|
57
|
+
"format": null,
|
|
58
|
+
"max_length": 100,
|
|
59
|
+
"choices": null,
|
|
60
|
+
"default": "",
|
|
61
|
+
"validators": [],
|
|
62
|
+
"max_digits": null,
|
|
63
|
+
"decimal_places": null,
|
|
64
|
+
"read_only": false,
|
|
65
|
+
"ref": null
|
|
66
|
+
}
|
|
67
|
+
},
|
|
68
|
+
"relationships": {},
|
|
69
|
+
"default_ordering": null,
|
|
70
|
+
"definitions": {
|
|
71
|
+
"MoneyField": {
|
|
72
|
+
"type": "object",
|
|
73
|
+
"properties": {
|
|
74
|
+
"amount": {
|
|
75
|
+
"type": "number"
|
|
76
|
+
},
|
|
77
|
+
"currency": {
|
|
78
|
+
"type": "string"
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
"datetime_format": "iso-8601",
|
|
84
|
+
"date_format": "iso-8601",
|
|
85
|
+
"time_format": "iso-8601",
|
|
86
|
+
"display": null
|
|
87
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This file was auto-generated. Do not make direct changes to the file.
|
|
3
|
+
* Backend-specific FileObject class for default
|
|
4
|
+
*/
|
|
5
|
+
import { FileObject as BaseFileObject } from '../../../src';
|
|
6
|
+
export class defaultFileObject extends BaseFileObject {
|
|
7
|
+
}
|
|
8
|
+
defaultFileObject.configKey = 'default';
|
|
9
|
+
export const FileObject = defaultFileObject;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./default/index.js";
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Set the global reactivity adapters.
|
|
3
|
+
* @param {Function} modelAdapterFn - A function that takes a model and returns its reactive version.
|
|
4
|
+
* @param {Function} querySetAdapterFn - A function that takes a queryset and returns its reactive version.
|
|
5
|
+
*/
|
|
6
|
+
export function setAdapters(modelAdapterFn: Function, querySetAdapterFn: Function, metricAdaptorFn: any): void;
|
|
7
|
+
/**
|
|
8
|
+
* Wrap a model with the configured reactivity adapter.
|
|
9
|
+
* @param {Object} model - The model to wrap.
|
|
10
|
+
* @returns {Object} The reactive model.
|
|
11
|
+
*/
|
|
12
|
+
export function wrapReactiveModel(model: Object): Object;
|
|
13
|
+
/**
|
|
14
|
+
* Wrap a queryset with the configured reactivity adapter.
|
|
15
|
+
* @param {Object} querySet - The queryset to wrap.
|
|
16
|
+
* @returns {Object} The reactive queryset.
|
|
17
|
+
*/
|
|
18
|
+
export function wrapReactiveQuerySet(querySet: Object): Object;
|
|
19
|
+
/**
|
|
20
|
+
* Wrap a metric with the configured reactivity adaptor.
|
|
21
|
+
* @param {Object} LiveMetric - the metric to wrap.
|
|
22
|
+
* @returns {Object} The reactive metric
|
|
23
|
+
*/
|
|
24
|
+
export function wrapReactiveMetric(liveMetric: any): Object;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
// Global singleton for reactivity adapters
|
|
2
|
+
let modelAdapter = null;
|
|
3
|
+
let querySetAdapter = null;
|
|
4
|
+
let metricAdaptor = null;
|
|
5
|
+
/**
|
|
6
|
+
* Set the global reactivity adapters.
|
|
7
|
+
* @param {Function} modelAdapterFn - A function that takes a model and returns its reactive version.
|
|
8
|
+
* @param {Function} querySetAdapterFn - A function that takes a queryset and returns its reactive version.
|
|
9
|
+
*/
|
|
10
|
+
export function setAdapters(modelAdapterFn, querySetAdapterFn, metricAdaptorFn) {
|
|
11
|
+
modelAdapter = modelAdapterFn;
|
|
12
|
+
querySetAdapter = querySetAdapterFn;
|
|
13
|
+
metricAdaptor = metricAdaptorFn;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Wrap a model with the configured reactivity adapter.
|
|
17
|
+
* @param {Object} model - The model to wrap.
|
|
18
|
+
* @returns {Object} The reactive model.
|
|
19
|
+
*/
|
|
20
|
+
export function wrapReactiveModel(model) {
|
|
21
|
+
return modelAdapter ? modelAdapter(model) : model;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Wrap a queryset with the configured reactivity adapter.
|
|
25
|
+
* @param {Object} querySet - The queryset to wrap.
|
|
26
|
+
* @returns {Object} The reactive queryset.
|
|
27
|
+
*/
|
|
28
|
+
export function wrapReactiveQuerySet(querySet) {
|
|
29
|
+
return querySetAdapter ? querySetAdapter(querySet) : querySet;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Wrap a metric with the configured reactivity adaptor.
|
|
33
|
+
* @param {Object} LiveMetric - the metric to wrap.
|
|
34
|
+
* @returns {Object} The reactive metric
|
|
35
|
+
*/
|
|
36
|
+
export function wrapReactiveMetric(liveMetric) {
|
|
37
|
+
return metricAdaptor ? metricAdaptor(liveMetric) : liveMetric;
|
|
38
|
+
}
|
package/dist/reset.d.ts
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Register an adapter's reset function
|
|
3
|
+
* @param {Function} resetFn - Function to call during StateZero reset
|
|
4
|
+
*/
|
|
5
|
+
export function registerAdapterReset(resetFn: Function): void;
|
|
6
|
+
/**
|
|
7
|
+
* Unregister an adapter's reset function
|
|
8
|
+
* @param {Function} resetFn - Function to remove
|
|
9
|
+
*/
|
|
10
|
+
export function unregisterAdapterReset(resetFn: Function): void;
|
|
11
|
+
/**
|
|
12
|
+
* Reset StateZero completely - clears all data and reconnects with fresh auth.
|
|
13
|
+
* Call this after login to ensure clean authenticated state.
|
|
14
|
+
*/
|
|
15
|
+
export function resetStateZero(): Promise<void>;
|
package/dist/reset.js
ADDED
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
// src/reset.js
|
|
2
|
+
import { getConfig, initializeEventReceiver } from "./config.js";
|
|
3
|
+
import { operationRegistry } from "./syncEngine/stores/operation.js";
|
|
4
|
+
import { querysetStoreRegistry } from "./syncEngine/registries/querysetStoreRegistry.js";
|
|
5
|
+
import { modelStoreRegistry } from "./syncEngine/registries/modelStoreRegistry.js";
|
|
6
|
+
import { metricRegistry } from "./syncEngine/registries/metricRegistry.js";
|
|
7
|
+
import { syncManager } from "./syncEngine/sync.js";
|
|
8
|
+
import { getEventReceiver } from "./core/eventReceivers.js";
|
|
9
|
+
import { modelEventEmitter, querysetEventEmitter, metricEventEmitter, } from "./syncEngine/stores/reactivity.js";
|
|
10
|
+
import { tempPkMap } from "./flavours/django/tempPk.js";
|
|
11
|
+
// Registry for adapter reset functions
|
|
12
|
+
const adapterResetFunctions = new Set();
|
|
13
|
+
/**
|
|
14
|
+
* Register an adapter's reset function
|
|
15
|
+
* @param {Function} resetFn - Function to call during StateZero reset
|
|
16
|
+
*/
|
|
17
|
+
export function registerAdapterReset(resetFn) {
|
|
18
|
+
if (typeof resetFn === "function") {
|
|
19
|
+
adapterResetFunctions.add(resetFn);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Unregister an adapter's reset function
|
|
24
|
+
* @param {Function} resetFn - Function to remove
|
|
25
|
+
*/
|
|
26
|
+
export function unregisterAdapterReset(resetFn) {
|
|
27
|
+
adapterResetFunctions.delete(resetFn);
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Reset StateZero completely - clears all data and reconnects with fresh auth.
|
|
31
|
+
* Call this after login to ensure clean authenticated state.
|
|
32
|
+
*/
|
|
33
|
+
export async function resetStateZero() {
|
|
34
|
+
console.log("🔄 StateZero: Resetting...");
|
|
35
|
+
try {
|
|
36
|
+
// 1. Clear ALL operations first
|
|
37
|
+
operationRegistry.clear();
|
|
38
|
+
// 2. Clear temporary PK mappings
|
|
39
|
+
tempPkMap.clear();
|
|
40
|
+
// 3. Clear all registries and their stores
|
|
41
|
+
querysetStoreRegistry.clear();
|
|
42
|
+
modelStoreRegistry.clear();
|
|
43
|
+
metricRegistry.clear();
|
|
44
|
+
// 4. Clear all event emitters (reactivity events)
|
|
45
|
+
modelEventEmitter.all.clear();
|
|
46
|
+
querysetEventEmitter.all.clear();
|
|
47
|
+
metricEventEmitter.all.clear();
|
|
48
|
+
// 5. Clear SyncManager's internal state
|
|
49
|
+
syncManager.followedModels.clear();
|
|
50
|
+
syncManager.followedQuerysets.clear();
|
|
51
|
+
if (syncManager.periodicSyncTimer) {
|
|
52
|
+
clearInterval(syncManager.periodicSyncTimer);
|
|
53
|
+
syncManager.periodicSyncTimer = null;
|
|
54
|
+
}
|
|
55
|
+
// 6. Call all registered adapter reset functions
|
|
56
|
+
adapterResetFunctions.forEach((resetFn) => {
|
|
57
|
+
try {
|
|
58
|
+
resetFn();
|
|
59
|
+
}
|
|
60
|
+
catch (error) {
|
|
61
|
+
console.warn("Adapter reset function failed:", error);
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
// 7. Disconnect and reconnect all event receivers with fresh auth
|
|
65
|
+
const cfg = getConfig();
|
|
66
|
+
const reconnectPromises = Object.keys(cfg.backendConfigs).map(async (backendKey) => {
|
|
67
|
+
const currentReceiver = getEventReceiver(backendKey);
|
|
68
|
+
if (currentReceiver) {
|
|
69
|
+
// Store subscriptions before disconnecting
|
|
70
|
+
const existingSubscriptions = Array.from(currentReceiver.channels.keys());
|
|
71
|
+
// Completely disconnect
|
|
72
|
+
currentReceiver.disconnect();
|
|
73
|
+
// Create fresh receiver with updated auth headers
|
|
74
|
+
const newReceiver = initializeEventReceiver(backendKey);
|
|
75
|
+
if (newReceiver) {
|
|
76
|
+
// Restore subscriptions
|
|
77
|
+
existingSubscriptions.forEach((ns) => newReceiver.subscribe(ns));
|
|
78
|
+
// Reconnect to sync manager
|
|
79
|
+
newReceiver.addModelEventHandler(syncManager.handleEvent.bind(syncManager));
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
// Wait for all reconnections to complete
|
|
84
|
+
await Promise.all(reconnectPromises);
|
|
85
|
+
// 8. Reinitialize the sync manager completely
|
|
86
|
+
syncManager.initialize();
|
|
87
|
+
// 9. Reset the registries' internal sync manager references
|
|
88
|
+
querysetStoreRegistry.setSyncManager(syncManager);
|
|
89
|
+
modelStoreRegistry.setSyncManager(syncManager);
|
|
90
|
+
metricRegistry.setSyncManager(syncManager);
|
|
91
|
+
console.log("✅ StateZero reset complete - everything cleared");
|
|
92
|
+
}
|
|
93
|
+
catch (error) {
|
|
94
|
+
console.error("❌ StateZero reset failed:", error);
|
|
95
|
+
throw error; // Re-throw so caller knows reset failed
|
|
96
|
+
}
|
|
97
|
+
}
|
package/dist/setup.d.ts
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Initialize StateZero with the provided configuration
|
|
3
|
+
*
|
|
4
|
+
* @param {Object} config - StateZero configuration object
|
|
5
|
+
* @param {Function} getModelClass - Model class getter function from model-registry.js
|
|
6
|
+
* @param {Object} adapters - Adapter objects for the framework
|
|
7
|
+
* @param {Function} adapters.ModelAdaptor - Model adapter
|
|
8
|
+
* @param {Function} adapters.QuerySetAdaptor - QuerySet adapter
|
|
9
|
+
* @param {Function} adapters.MetricAdaptor - Metric adapter
|
|
10
|
+
*/
|
|
11
|
+
export function setupStateZero(config: Object, getModelClass: Function, adapters: {
|
|
12
|
+
ModelAdaptor: Function;
|
|
13
|
+
QuerySetAdaptor: Function;
|
|
14
|
+
MetricAdaptor: Function;
|
|
15
|
+
}): void;
|
package/dist/setup.js
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { configInstance } from "./config.js";
|
|
2
|
+
import { setAdapters } from "./reactiveAdaptor.js";
|
|
3
|
+
import { syncManager } from "./syncEngine/sync.js";
|
|
4
|
+
import { initEventHandler } from "./syncEngine/stores/operationEventHandlers.js";
|
|
5
|
+
import { querysetStoreRegistry } from "./syncEngine/registries/querysetStoreRegistry.js";
|
|
6
|
+
import { modelStoreRegistry } from "./syncEngine/registries/modelStoreRegistry.js";
|
|
7
|
+
import { metricRegistry } from "./syncEngine/registries/metricRegistry.js";
|
|
8
|
+
/**
|
|
9
|
+
* Initialize StateZero with the provided configuration
|
|
10
|
+
*
|
|
11
|
+
* @param {Object} config - StateZero configuration object
|
|
12
|
+
* @param {Function} getModelClass - Model class getter function from model-registry.js
|
|
13
|
+
* @param {Object} adapters - Adapter objects for the framework
|
|
14
|
+
* @param {Function} adapters.ModelAdaptor - Model adapter
|
|
15
|
+
* @param {Function} adapters.QuerySetAdaptor - QuerySet adapter
|
|
16
|
+
* @param {Function} adapters.MetricAdaptor - Metric adapter
|
|
17
|
+
*/
|
|
18
|
+
export function setupStateZero(config, getModelClass, adapters) {
|
|
19
|
+
// Initialize StateZero configuration
|
|
20
|
+
configInstance.setConfig(config);
|
|
21
|
+
configInstance.registerModelGetter(getModelClass);
|
|
22
|
+
setAdapters(adapters.ModelAdaptor, adapters.QuerySetAdaptor, adapters.MetricAdaptor);
|
|
23
|
+
initEventHandler();
|
|
24
|
+
syncManager.initialize();
|
|
25
|
+
// Expose registries and sync manager for devtools de
|
|
26
|
+
if (typeof window !== "undefined") {
|
|
27
|
+
window.__STATEZERO_DEVTOOLS__ = {
|
|
28
|
+
querysetStoreRegistry,
|
|
29
|
+
modelStoreRegistry,
|
|
30
|
+
metricRegistry,
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
}
|