@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.
Files changed (294) hide show
  1. package/dist/actions/backend1/django_app/calculate-hash.d.ts +57 -0
  2. package/dist/actions/backend1/django_app/calculate-hash.js +80 -0
  3. package/dist/actions/backend1/django_app/calculate-hash.schema.json +148 -0
  4. package/dist/actions/backend1/django_app/get-current-username.d.ts +29 -0
  5. package/dist/actions/backend1/django_app/get-current-username.js +65 -0
  6. package/dist/actions/backend1/django_app/get-current-username.schema.json +47 -0
  7. package/dist/actions/backend1/django_app/get-server-status.d.ts +38 -0
  8. package/dist/actions/backend1/django_app/get-server-status.js +68 -0
  9. package/dist/actions/backend1/django_app/get-server-status.schema.json +93 -0
  10. package/dist/actions/backend1/django_app/get-user-info.d.ts +44 -0
  11. package/dist/actions/backend1/django_app/get-user-info.js +70 -0
  12. package/dist/actions/backend1/django_app/get-user-info.schema.json +127 -0
  13. package/dist/actions/backend1/django_app/index.d.ts +1 -0
  14. package/dist/actions/backend1/django_app/index.js +6 -0
  15. package/dist/actions/backend1/django_app/process-data.d.ts +51 -0
  16. package/dist/actions/backend1/django_app/process-data.js +78 -0
  17. package/dist/actions/backend1/django_app/process-data.schema.json +117 -0
  18. package/dist/actions/backend1/django_app/send-notification.d.ts +55 -0
  19. package/dist/actions/backend1/django_app/send-notification.js +81 -0
  20. package/dist/actions/backend1/django_app/send-notification.schema.json +175 -0
  21. package/dist/actions/backend1/index.d.ts +1 -0
  22. package/dist/actions/backend1/index.js +1 -0
  23. package/dist/actions/default/django_app/calculate-hash.d.ts +57 -0
  24. package/dist/actions/default/django_app/calculate-hash.js +80 -0
  25. package/dist/actions/default/django_app/calculate-hash.schema.json +148 -0
  26. package/dist/actions/default/django_app/get-current-username.d.ts +29 -0
  27. package/dist/actions/default/django_app/get-current-username.js +65 -0
  28. package/dist/actions/default/django_app/get-current-username.schema.json +47 -0
  29. package/dist/actions/default/django_app/get-server-status.d.ts +38 -0
  30. package/dist/actions/default/django_app/get-server-status.js +68 -0
  31. package/dist/actions/default/django_app/get-server-status.schema.json +93 -0
  32. package/dist/actions/default/django_app/get-user-info.d.ts +44 -0
  33. package/dist/actions/default/django_app/get-user-info.js +70 -0
  34. package/dist/actions/default/django_app/get-user-info.schema.json +127 -0
  35. package/dist/actions/default/django_app/index.d.ts +1 -0
  36. package/dist/actions/default/django_app/index.js +6 -0
  37. package/dist/actions/default/django_app/process-data.d.ts +51 -0
  38. package/dist/actions/default/django_app/process-data.js +78 -0
  39. package/dist/actions/default/django_app/process-data.schema.json +117 -0
  40. package/dist/actions/default/django_app/send-notification.d.ts +55 -0
  41. package/dist/actions/default/django_app/send-notification.js +81 -0
  42. package/dist/actions/default/django_app/send-notification.schema.json +175 -0
  43. package/dist/actions/default/index.d.ts +1 -0
  44. package/dist/actions/default/index.js +1 -0
  45. package/dist/actions/index.d.ts +1 -0
  46. package/dist/actions/index.js +5 -0
  47. package/dist/adaptors/react/composables.d.ts +1 -0
  48. package/dist/adaptors/react/composables.js +4 -0
  49. package/dist/adaptors/react/index.d.ts +1 -0
  50. package/dist/adaptors/react/index.js +1 -0
  51. package/dist/adaptors/vue/components/LayoutRenderer.js +46 -49
  52. package/dist/adaptors/vue/components/defaults/index.d.ts +7 -0
  53. package/dist/adaptors/vue/components/defaults/index.js +31 -0
  54. package/dist/adaptors/vue/components/index.d.ts +1 -0
  55. package/dist/adaptors/vue/components/index.js +7 -0
  56. package/dist/adaptors/vue/composables.d.ts +2 -0
  57. package/dist/adaptors/vue/composables.js +44 -0
  58. package/dist/adaptors/vue/index.d.ts +3 -0
  59. package/dist/adaptors/vue/index.js +4 -0
  60. package/dist/adaptors/vue/reactivity.d.ts +18 -0
  61. package/dist/adaptors/vue/reactivity.js +132 -0
  62. package/dist/cli/commands/sync.d.ts +6 -0
  63. package/dist/cli/commands/sync.js +30 -0
  64. package/dist/cli/commands/syncActions.d.ts +46 -0
  65. package/dist/cli/commands/syncActions.js +717 -0
  66. package/dist/cli/commands/syncModels.d.ts +132 -0
  67. package/dist/cli/commands/syncModels.js +1120 -0
  68. package/dist/cli/configFileLoader.d.ts +10 -0
  69. package/dist/cli/configFileLoader.js +85 -0
  70. package/dist/cli/index.d.ts +2 -0
  71. package/dist/cli/index.js +22 -0
  72. package/dist/config.d.ts +57 -0
  73. package/dist/config.js +273 -0
  74. package/dist/core/eventReceivers.d.ts +185 -0
  75. package/dist/core/eventReceivers.js +266 -0
  76. package/dist/core/utils.d.ts +8 -0
  77. package/dist/core/utils.js +62 -0
  78. package/dist/errorHandler.d.ts +21 -0
  79. package/dist/errorHandler.js +27 -0
  80. package/dist/filtering/localFiltering.d.ts +110 -0
  81. package/dist/filtering/localFiltering.js +1080 -0
  82. package/dist/flavours/django/dates.d.ts +34 -0
  83. package/dist/flavours/django/dates.js +113 -0
  84. package/dist/flavours/django/errors.d.ts +138 -0
  85. package/dist/flavours/django/errors.js +195 -0
  86. package/dist/flavours/django/f.d.ts +6 -0
  87. package/dist/flavours/django/f.js +91 -0
  88. package/dist/flavours/django/files.d.ts +62 -0
  89. package/dist/flavours/django/files.js +355 -0
  90. package/dist/flavours/django/makeApiCall.d.ts +36 -0
  91. package/dist/flavours/django/makeApiCall.js +169 -0
  92. package/dist/flavours/django/manager.d.ts +204 -0
  93. package/dist/flavours/django/manager.js +222 -0
  94. package/dist/flavours/django/model.d.ts +137 -0
  95. package/dist/flavours/django/model.js +366 -0
  96. package/dist/flavours/django/operationFactory.d.ts +73 -0
  97. package/dist/flavours/django/operationFactory.js +248 -0
  98. package/dist/flavours/django/q.d.ts +70 -0
  99. package/dist/flavours/django/q.js +43 -0
  100. package/dist/flavours/django/queryExecutor.d.ts +149 -0
  101. package/dist/flavours/django/queryExecutor.js +590 -0
  102. package/dist/flavours/django/querySet.d.ts +301 -0
  103. package/dist/flavours/django/querySet.js +736 -0
  104. package/dist/flavours/django/serializers.d.ts +39 -0
  105. package/dist/flavours/django/serializers.js +296 -0
  106. package/dist/flavours/django/tempPk.d.ts +31 -0
  107. package/dist/flavours/django/tempPk.js +92 -0
  108. package/dist/flavours/django/utils.d.ts +19 -0
  109. package/dist/flavours/django/utils.js +29 -0
  110. package/dist/index.d.ts +46 -0
  111. package/dist/index.js +48 -0
  112. package/dist/models/backend1/django_app/comprehensivemodel.d.ts +894 -0
  113. package/dist/models/backend1/django_app/comprehensivemodel.js +71 -0
  114. package/dist/models/backend1/django_app/comprehensivemodel.schema.json +870 -0
  115. package/dist/models/backend1/django_app/custompkmodel.d.ts +92 -0
  116. package/dist/models/backend1/django_app/custompkmodel.js +69 -0
  117. package/dist/models/backend1/django_app/custompkmodel.schema.json +71 -0
  118. package/dist/models/backend1/django_app/dailyrate.d.ts +230 -0
  119. package/dist/models/backend1/django_app/dailyrate.js +71 -0
  120. package/dist/models/backend1/django_app/dailyrate.schema.json +212 -0
  121. package/dist/models/backend1/django_app/deepmodellevel1.d.ts +140 -0
  122. package/dist/models/backend1/django_app/deepmodellevel1.js +72 -0
  123. package/dist/models/backend1/django_app/deepmodellevel1.schema.json +114 -0
  124. package/dist/models/backend1/django_app/deepmodellevel2.d.ts +118 -0
  125. package/dist/models/backend1/django_app/deepmodellevel2.js +71 -0
  126. package/dist/models/backend1/django_app/deepmodellevel2.schema.json +92 -0
  127. package/dist/models/backend1/django_app/deepmodellevel3.d.ts +92 -0
  128. package/dist/models/backend1/django_app/deepmodellevel3.js +69 -0
  129. package/dist/models/backend1/django_app/deepmodellevel3.schema.json +69 -0
  130. package/dist/models/backend1/django_app/dummymodel.d.ts +134 -0
  131. package/dist/models/backend1/django_app/dummymodel.js +71 -0
  132. package/dist/models/backend1/django_app/dummymodel.schema.json +109 -0
  133. package/dist/models/backend1/django_app/dummyrelatedmodel.d.ts +92 -0
  134. package/dist/models/backend1/django_app/dummyrelatedmodel.js +69 -0
  135. package/dist/models/backend1/django_app/dummyrelatedmodel.schema.json +69 -0
  136. package/dist/models/backend1/django_app/filetest.d.ts +140 -0
  137. package/dist/models/backend1/django_app/filetest.js +69 -0
  138. package/dist/models/backend1/django_app/filetest.schema.json +111 -0
  139. package/dist/models/backend1/django_app/index.d.ts +1 -0
  140. package/dist/models/backend1/django_app/index.js +21 -0
  141. package/dist/models/backend1/django_app/m2mdepthtestlevel1.d.ts +118 -0
  142. package/dist/models/backend1/django_app/m2mdepthtestlevel1.js +71 -0
  143. package/dist/models/backend1/django_app/m2mdepthtestlevel1.schema.json +94 -0
  144. package/dist/models/backend1/django_app/m2mdepthtestlevel2.d.ts +118 -0
  145. package/dist/models/backend1/django_app/m2mdepthtestlevel2.js +71 -0
  146. package/dist/models/backend1/django_app/m2mdepthtestlevel2.schema.json +94 -0
  147. package/dist/models/backend1/django_app/m2mdepthtestlevel3.d.ts +134 -0
  148. package/dist/models/backend1/django_app/m2mdepthtestlevel3.js +71 -0
  149. package/dist/models/backend1/django_app/m2mdepthtestlevel3.schema.json +112 -0
  150. package/dist/models/backend1/django_app/modelwithcustompkrelation.d.ts +118 -0
  151. package/dist/models/backend1/django_app/modelwithcustompkrelation.js +71 -0
  152. package/dist/models/backend1/django_app/modelwithcustompkrelation.schema.json +93 -0
  153. package/dist/models/backend1/django_app/modelwithrestrictedfields.d.ts +134 -0
  154. package/dist/models/backend1/django_app/modelwithrestrictedfields.js +71 -0
  155. package/dist/models/backend1/django_app/modelwithrestrictedfields.schema.json +111 -0
  156. package/dist/models/backend1/django_app/namefiltercustompkmodel.d.ts +92 -0
  157. package/dist/models/backend1/django_app/namefiltercustompkmodel.js +69 -0
  158. package/dist/models/backend1/django_app/namefiltercustompkmodel.schema.json +71 -0
  159. package/dist/models/backend1/django_app/order.d.ts +220 -0
  160. package/dist/models/backend1/django_app/order.js +71 -0
  161. package/dist/models/backend1/django_app/order.schema.json +203 -0
  162. package/dist/models/backend1/django_app/orderitem.d.ts +172 -0
  163. package/dist/models/backend1/django_app/orderitem.js +72 -0
  164. package/dist/models/backend1/django_app/orderitem.schema.json +149 -0
  165. package/dist/models/backend1/django_app/product.d.ts +254 -0
  166. package/dist/models/backend1/django_app/product.js +71 -0
  167. package/dist/models/backend1/django_app/product.schema.json +277 -0
  168. package/dist/models/backend1/django_app/productcategory.d.ts +92 -0
  169. package/dist/models/backend1/django_app/productcategory.js +69 -0
  170. package/dist/models/backend1/django_app/productcategory.schema.json +70 -0
  171. package/dist/models/backend1/django_app/rateplan.d.ts +92 -0
  172. package/dist/models/backend1/django_app/rateplan.js +69 -0
  173. package/dist/models/backend1/django_app/rateplan.schema.json +70 -0
  174. package/dist/models/backend1/django_app/restrictedfieldrelatedmodel.d.ts +108 -0
  175. package/dist/models/backend1/django_app/restrictedfieldrelatedmodel.js +69 -0
  176. package/dist/models/backend1/django_app/restrictedfieldrelatedmodel.schema.json +87 -0
  177. package/dist/models/backend1/fileobject.d.ts +4 -0
  178. package/dist/models/backend1/fileobject.js +9 -0
  179. package/dist/models/backend1/index.d.ts +2 -0
  180. package/dist/models/backend1/index.js +2 -0
  181. package/dist/models/default/django_app/comprehensivemodel.d.ts +894 -0
  182. package/dist/models/default/django_app/comprehensivemodel.js +71 -0
  183. package/dist/models/default/django_app/comprehensivemodel.schema.json +870 -0
  184. package/dist/models/default/django_app/custompkmodel.d.ts +92 -0
  185. package/dist/models/default/django_app/custompkmodel.js +69 -0
  186. package/dist/models/default/django_app/custompkmodel.schema.json +71 -0
  187. package/dist/models/default/django_app/dailyrate.d.ts +230 -0
  188. package/dist/models/default/django_app/dailyrate.js +71 -0
  189. package/dist/models/default/django_app/dailyrate.schema.json +212 -0
  190. package/dist/models/default/django_app/deepmodellevel1.d.ts +128 -0
  191. package/dist/models/default/django_app/deepmodellevel1.js +72 -0
  192. package/dist/models/default/django_app/deepmodellevel1.schema.json +102 -0
  193. package/dist/models/default/django_app/deepmodellevel2.d.ts +106 -0
  194. package/dist/models/default/django_app/deepmodellevel2.js +71 -0
  195. package/dist/models/default/django_app/deepmodellevel2.schema.json +80 -0
  196. package/dist/models/default/django_app/deepmodellevel3.d.ts +80 -0
  197. package/dist/models/default/django_app/deepmodellevel3.js +69 -0
  198. package/dist/models/default/django_app/deepmodellevel3.schema.json +57 -0
  199. package/dist/models/default/django_app/dummymodel.d.ts +122 -0
  200. package/dist/models/default/django_app/dummymodel.js +71 -0
  201. package/dist/models/default/django_app/dummymodel.schema.json +97 -0
  202. package/dist/models/default/django_app/dummyrelatedmodel.d.ts +80 -0
  203. package/dist/models/default/django_app/dummyrelatedmodel.js +69 -0
  204. package/dist/models/default/django_app/dummyrelatedmodel.schema.json +57 -0
  205. package/dist/models/default/django_app/filetest.d.ts +128 -0
  206. package/dist/models/default/django_app/filetest.js +69 -0
  207. package/dist/models/default/django_app/filetest.schema.json +99 -0
  208. package/dist/models/default/django_app/index.d.ts +1 -0
  209. package/dist/models/default/django_app/index.js +21 -0
  210. package/dist/models/default/django_app/m2mdepthtestlevel1.d.ts +118 -0
  211. package/dist/models/default/django_app/m2mdepthtestlevel1.js +71 -0
  212. package/dist/models/default/django_app/m2mdepthtestlevel1.schema.json +94 -0
  213. package/dist/models/default/django_app/m2mdepthtestlevel2.d.ts +118 -0
  214. package/dist/models/default/django_app/m2mdepthtestlevel2.js +71 -0
  215. package/dist/models/default/django_app/m2mdepthtestlevel2.schema.json +94 -0
  216. package/dist/models/default/django_app/m2mdepthtestlevel3.d.ts +134 -0
  217. package/dist/models/default/django_app/m2mdepthtestlevel3.js +71 -0
  218. package/dist/models/default/django_app/m2mdepthtestlevel3.schema.json +112 -0
  219. package/dist/models/default/django_app/modelwithcustompkrelation.d.ts +118 -0
  220. package/dist/models/default/django_app/modelwithcustompkrelation.js +71 -0
  221. package/dist/models/default/django_app/modelwithcustompkrelation.schema.json +93 -0
  222. package/dist/models/default/django_app/modelwithrestrictedfields.d.ts +134 -0
  223. package/dist/models/default/django_app/modelwithrestrictedfields.js +71 -0
  224. package/dist/models/default/django_app/modelwithrestrictedfields.schema.json +111 -0
  225. package/dist/models/default/django_app/namefiltercustompkmodel.d.ts +92 -0
  226. package/dist/models/default/django_app/namefiltercustompkmodel.js +69 -0
  227. package/dist/models/default/django_app/namefiltercustompkmodel.schema.json +71 -0
  228. package/dist/models/default/django_app/order.d.ts +220 -0
  229. package/dist/models/default/django_app/order.js +71 -0
  230. package/dist/models/default/django_app/order.schema.json +203 -0
  231. package/dist/models/default/django_app/orderitem.d.ts +172 -0
  232. package/dist/models/default/django_app/orderitem.js +72 -0
  233. package/dist/models/default/django_app/orderitem.schema.json +149 -0
  234. package/dist/models/default/django_app/product.d.ts +254 -0
  235. package/dist/models/default/django_app/product.js +71 -0
  236. package/dist/models/default/django_app/product.schema.json +277 -0
  237. package/dist/models/default/django_app/productcategory.d.ts +92 -0
  238. package/dist/models/default/django_app/productcategory.js +69 -0
  239. package/dist/models/default/django_app/productcategory.schema.json +70 -0
  240. package/dist/models/default/django_app/rateplan.d.ts +92 -0
  241. package/dist/models/default/django_app/rateplan.js +69 -0
  242. package/dist/models/default/django_app/rateplan.schema.json +70 -0
  243. package/dist/models/default/django_app/restrictedfieldrelatedmodel.d.ts +108 -0
  244. package/dist/models/default/django_app/restrictedfieldrelatedmodel.js +69 -0
  245. package/dist/models/default/django_app/restrictedfieldrelatedmodel.schema.json +87 -0
  246. package/dist/models/default/fileobject.d.ts +4 -0
  247. package/dist/models/default/fileobject.js +9 -0
  248. package/dist/models/default/index.d.ts +2 -0
  249. package/dist/models/default/index.js +2 -0
  250. package/dist/models/index.d.ts +1 -0
  251. package/dist/models/index.js +5 -0
  252. package/dist/react-entry.d.ts +2 -0
  253. package/dist/react-entry.js +2 -0
  254. package/dist/reactiveAdaptor.d.ts +24 -0
  255. package/dist/reactiveAdaptor.js +38 -0
  256. package/dist/reset.d.ts +15 -0
  257. package/dist/reset.js +97 -0
  258. package/dist/setup.d.ts +15 -0
  259. package/dist/setup.js +33 -0
  260. package/dist/syncEngine/cache/cache.d.ts +75 -0
  261. package/dist/syncEngine/cache/cache.js +355 -0
  262. package/dist/syncEngine/metrics/metricOptCalcs.d.ts +79 -0
  263. package/dist/syncEngine/metrics/metricOptCalcs.js +284 -0
  264. package/dist/syncEngine/registries/metricRegistry.d.ts +58 -0
  265. package/dist/syncEngine/registries/metricRegistry.js +171 -0
  266. package/dist/syncEngine/registries/modelStoreRegistry.d.ts +11 -0
  267. package/dist/syncEngine/registries/modelStoreRegistry.js +63 -0
  268. package/dist/syncEngine/registries/querysetStoreGraph.d.ts +41 -0
  269. package/dist/syncEngine/registries/querysetStoreGraph.js +174 -0
  270. package/dist/syncEngine/registries/querysetStoreRegistry.d.ts +72 -0
  271. package/dist/syncEngine/registries/querysetStoreRegistry.js +335 -0
  272. package/dist/syncEngine/stores/metricStore.d.ts +55 -0
  273. package/dist/syncEngine/stores/metricStore.js +222 -0
  274. package/dist/syncEngine/stores/modelStore.d.ts +53 -0
  275. package/dist/syncEngine/stores/modelStore.js +565 -0
  276. package/dist/syncEngine/stores/operation.d.ts +139 -0
  277. package/dist/syncEngine/stores/operation.js +291 -0
  278. package/dist/syncEngine/stores/operationEventHandlers.d.ts +8 -0
  279. package/dist/syncEngine/stores/operationEventHandlers.js +348 -0
  280. package/dist/syncEngine/stores/querysetStore.d.ts +60 -0
  281. package/dist/syncEngine/stores/querysetStore.js +294 -0
  282. package/dist/syncEngine/stores/reactivity.d.ts +3 -0
  283. package/dist/syncEngine/stores/reactivity.js +4 -0
  284. package/dist/syncEngine/stores/utils.d.ts +14 -0
  285. package/dist/syncEngine/stores/utils.js +32 -0
  286. package/dist/syncEngine/sync.d.ts +51 -0
  287. package/dist/syncEngine/sync.js +419 -0
  288. package/dist/testing.d.ts +63 -0
  289. package/dist/testing.js +175 -0
  290. package/dist/vue-entry.d.ts +15 -0
  291. package/dist/vue-entry.js +7 -0
  292. package/package.json +6 -7
  293. package/dist/adaptors/vue/components/layout.tailwind.css +0 -51
  294. /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,4 @@
1
+ export class defaultFileObject {
2
+ static configKey: string;
3
+ }
4
+ export const FileObject: typeof defaultFileObject;
@@ -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,2 @@
1
+ export * from "./fileobject.js";
2
+ export * from "./django_app/index.js";
@@ -0,0 +1,2 @@
1
+ export * from './fileobject.js';
2
+ export * from './django_app/index.js';
@@ -0,0 +1 @@
1
+ export * from "./default/index.js";
@@ -0,0 +1,5 @@
1
+ /**
2
+ * This file was auto-generated. Do not make direct changes to the file.
3
+ * Re-exports from the 'default' backend for backwards compatibility.
4
+ */
5
+ export * from './default/index.js';
@@ -0,0 +1,2 @@
1
+ export { useQueryset };
2
+ import { useQueryset } from './adaptors/react/index.js';
@@ -0,0 +1,2 @@
1
+ import { useQueryset } from './adaptors/react/index.js';
2
+ export { useQueryset };
@@ -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
+ }
@@ -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
+ }
@@ -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
+ }