@statezero/core 0.2.37 → 0.2.38

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 (307) hide show
  1. package/dist/adaptors/vue/components/LayoutRenderer.js +166 -0
  2. package/dist/adaptors/vue/components/defaults/AlertElement.js +31 -0
  3. package/dist/adaptors/vue/components/defaults/DisplayElement.js +44 -0
  4. package/dist/adaptors/vue/components/defaults/DividerElement.js +10 -0
  5. package/dist/adaptors/vue/components/defaults/ErrorBlock.js +24 -0
  6. package/dist/adaptors/vue/components/defaults/GroupElement.js +41 -0
  7. package/dist/adaptors/vue/components/defaults/LabelElement.js +21 -0
  8. package/dist/adaptors/vue/components/defaults/TabsElement.js +38 -0
  9. package/package.json +6 -4
  10. package/dist/actions/backend1/django_app/calculate-hash.d.ts +0 -57
  11. package/dist/actions/backend1/django_app/calculate-hash.js +0 -80
  12. package/dist/actions/backend1/django_app/calculate-hash.schema.json +0 -148
  13. package/dist/actions/backend1/django_app/get-current-username.d.ts +0 -29
  14. package/dist/actions/backend1/django_app/get-current-username.js +0 -65
  15. package/dist/actions/backend1/django_app/get-current-username.schema.json +0 -47
  16. package/dist/actions/backend1/django_app/get-server-status.d.ts +0 -38
  17. package/dist/actions/backend1/django_app/get-server-status.js +0 -68
  18. package/dist/actions/backend1/django_app/get-server-status.schema.json +0 -93
  19. package/dist/actions/backend1/django_app/get-user-info.d.ts +0 -44
  20. package/dist/actions/backend1/django_app/get-user-info.js +0 -70
  21. package/dist/actions/backend1/django_app/get-user-info.schema.json +0 -127
  22. package/dist/actions/backend1/django_app/index.d.ts +0 -1
  23. package/dist/actions/backend1/django_app/index.js +0 -6
  24. package/dist/actions/backend1/django_app/process-data.d.ts +0 -51
  25. package/dist/actions/backend1/django_app/process-data.js +0 -78
  26. package/dist/actions/backend1/django_app/process-data.schema.json +0 -117
  27. package/dist/actions/backend1/django_app/send-notification.d.ts +0 -55
  28. package/dist/actions/backend1/django_app/send-notification.js +0 -81
  29. package/dist/actions/backend1/django_app/send-notification.schema.json +0 -175
  30. package/dist/actions/backend1/index.d.ts +0 -1
  31. package/dist/actions/backend1/index.js +0 -1
  32. package/dist/actions/default/django_app/calculate-hash.d.ts +0 -57
  33. package/dist/actions/default/django_app/calculate-hash.js +0 -80
  34. package/dist/actions/default/django_app/calculate-hash.schema.json +0 -148
  35. package/dist/actions/default/django_app/get-current-username.d.ts +0 -29
  36. package/dist/actions/default/django_app/get-current-username.js +0 -65
  37. package/dist/actions/default/django_app/get-current-username.schema.json +0 -47
  38. package/dist/actions/default/django_app/get-server-status.d.ts +0 -38
  39. package/dist/actions/default/django_app/get-server-status.js +0 -68
  40. package/dist/actions/default/django_app/get-server-status.schema.json +0 -93
  41. package/dist/actions/default/django_app/get-user-info.d.ts +0 -44
  42. package/dist/actions/default/django_app/get-user-info.js +0 -70
  43. package/dist/actions/default/django_app/get-user-info.schema.json +0 -127
  44. package/dist/actions/default/django_app/index.d.ts +0 -1
  45. package/dist/actions/default/django_app/index.js +0 -6
  46. package/dist/actions/default/django_app/process-data.d.ts +0 -51
  47. package/dist/actions/default/django_app/process-data.js +0 -78
  48. package/dist/actions/default/django_app/process-data.schema.json +0 -117
  49. package/dist/actions/default/django_app/send-notification.d.ts +0 -55
  50. package/dist/actions/default/django_app/send-notification.js +0 -81
  51. package/dist/actions/default/django_app/send-notification.schema.json +0 -175
  52. package/dist/actions/default/index.d.ts +0 -1
  53. package/dist/actions/default/index.js +0 -1
  54. package/dist/actions/index.d.ts +0 -1
  55. package/dist/actions/index.js +0 -5
  56. package/dist/adaptors/react/composables.d.ts +0 -1
  57. package/dist/adaptors/react/composables.js +0 -4
  58. package/dist/adaptors/react/index.d.ts +0 -1
  59. package/dist/adaptors/react/index.js +0 -1
  60. package/dist/adaptors/vue/components/LayoutRenderer.vue +0 -361
  61. package/dist/adaptors/vue/components/defaults/AlertElement.vue +0 -38
  62. package/dist/adaptors/vue/components/defaults/DisplayElement.vue +0 -57
  63. package/dist/adaptors/vue/components/defaults/DividerElement.vue +0 -13
  64. package/dist/adaptors/vue/components/defaults/ErrorBlock.vue +0 -28
  65. package/dist/adaptors/vue/components/defaults/GroupElement.vue +0 -53
  66. package/dist/adaptors/vue/components/defaults/LabelElement.vue +0 -25
  67. package/dist/adaptors/vue/components/defaults/TabsElement.vue +0 -54
  68. package/dist/adaptors/vue/components/defaults/index.d.ts +0 -7
  69. package/dist/adaptors/vue/components/defaults/index.js +0 -31
  70. package/dist/adaptors/vue/components/index.d.ts +0 -1
  71. package/dist/adaptors/vue/components/index.js +0 -7
  72. package/dist/adaptors/vue/composables.d.ts +0 -2
  73. package/dist/adaptors/vue/composables.js +0 -44
  74. package/dist/adaptors/vue/index.d.ts +0 -3
  75. package/dist/adaptors/vue/index.js +0 -4
  76. package/dist/adaptors/vue/reactivity.d.ts +0 -18
  77. package/dist/adaptors/vue/reactivity.js +0 -132
  78. package/dist/cli/commands/sync.d.ts +0 -6
  79. package/dist/cli/commands/sync.js +0 -30
  80. package/dist/cli/commands/syncActions.d.ts +0 -46
  81. package/dist/cli/commands/syncActions.js +0 -717
  82. package/dist/cli/commands/syncModels.d.ts +0 -132
  83. package/dist/cli/commands/syncModels.js +0 -1120
  84. package/dist/cli/configFileLoader.d.ts +0 -10
  85. package/dist/cli/configFileLoader.js +0 -85
  86. package/dist/cli/index.d.ts +0 -2
  87. package/dist/cli/index.js +0 -22
  88. package/dist/config.d.ts +0 -57
  89. package/dist/config.js +0 -273
  90. package/dist/core/eventReceivers.d.ts +0 -185
  91. package/dist/core/eventReceivers.js +0 -266
  92. package/dist/core/utils.d.ts +0 -8
  93. package/dist/core/utils.js +0 -62
  94. package/dist/errorHandler.d.ts +0 -21
  95. package/dist/errorHandler.js +0 -27
  96. package/dist/filtering/localFiltering.d.ts +0 -110
  97. package/dist/filtering/localFiltering.js +0 -1080
  98. package/dist/flavours/django/dates.d.ts +0 -34
  99. package/dist/flavours/django/dates.js +0 -113
  100. package/dist/flavours/django/errors.d.ts +0 -138
  101. package/dist/flavours/django/errors.js +0 -195
  102. package/dist/flavours/django/f.d.ts +0 -6
  103. package/dist/flavours/django/f.js +0 -91
  104. package/dist/flavours/django/files.d.ts +0 -62
  105. package/dist/flavours/django/files.js +0 -355
  106. package/dist/flavours/django/makeApiCall.d.ts +0 -36
  107. package/dist/flavours/django/makeApiCall.js +0 -169
  108. package/dist/flavours/django/manager.d.ts +0 -204
  109. package/dist/flavours/django/manager.js +0 -222
  110. package/dist/flavours/django/model.d.ts +0 -137
  111. package/dist/flavours/django/model.js +0 -366
  112. package/dist/flavours/django/operationFactory.d.ts +0 -73
  113. package/dist/flavours/django/operationFactory.js +0 -248
  114. package/dist/flavours/django/q.d.ts +0 -70
  115. package/dist/flavours/django/q.js +0 -43
  116. package/dist/flavours/django/queryExecutor.d.ts +0 -149
  117. package/dist/flavours/django/queryExecutor.js +0 -590
  118. package/dist/flavours/django/querySet.d.ts +0 -301
  119. package/dist/flavours/django/querySet.js +0 -736
  120. package/dist/flavours/django/serializers.d.ts +0 -39
  121. package/dist/flavours/django/serializers.js +0 -296
  122. package/dist/flavours/django/tempPk.d.ts +0 -31
  123. package/dist/flavours/django/tempPk.js +0 -92
  124. package/dist/flavours/django/utils.d.ts +0 -19
  125. package/dist/flavours/django/utils.js +0 -29
  126. package/dist/index.d.ts +0 -46
  127. package/dist/index.js +0 -48
  128. package/dist/models/backend1/django_app/comprehensivemodel.d.ts +0 -894
  129. package/dist/models/backend1/django_app/comprehensivemodel.js +0 -71
  130. package/dist/models/backend1/django_app/comprehensivemodel.schema.json +0 -870
  131. package/dist/models/backend1/django_app/custompkmodel.d.ts +0 -92
  132. package/dist/models/backend1/django_app/custompkmodel.js +0 -69
  133. package/dist/models/backend1/django_app/custompkmodel.schema.json +0 -71
  134. package/dist/models/backend1/django_app/dailyrate.d.ts +0 -230
  135. package/dist/models/backend1/django_app/dailyrate.js +0 -71
  136. package/dist/models/backend1/django_app/dailyrate.schema.json +0 -212
  137. package/dist/models/backend1/django_app/deepmodellevel1.d.ts +0 -140
  138. package/dist/models/backend1/django_app/deepmodellevel1.js +0 -72
  139. package/dist/models/backend1/django_app/deepmodellevel1.schema.json +0 -114
  140. package/dist/models/backend1/django_app/deepmodellevel2.d.ts +0 -118
  141. package/dist/models/backend1/django_app/deepmodellevel2.js +0 -71
  142. package/dist/models/backend1/django_app/deepmodellevel2.schema.json +0 -92
  143. package/dist/models/backend1/django_app/deepmodellevel3.d.ts +0 -92
  144. package/dist/models/backend1/django_app/deepmodellevel3.js +0 -69
  145. package/dist/models/backend1/django_app/deepmodellevel3.schema.json +0 -69
  146. package/dist/models/backend1/django_app/dummymodel.d.ts +0 -134
  147. package/dist/models/backend1/django_app/dummymodel.js +0 -71
  148. package/dist/models/backend1/django_app/dummymodel.schema.json +0 -109
  149. package/dist/models/backend1/django_app/dummyrelatedmodel.d.ts +0 -92
  150. package/dist/models/backend1/django_app/dummyrelatedmodel.js +0 -69
  151. package/dist/models/backend1/django_app/dummyrelatedmodel.schema.json +0 -69
  152. package/dist/models/backend1/django_app/filetest.d.ts +0 -140
  153. package/dist/models/backend1/django_app/filetest.js +0 -69
  154. package/dist/models/backend1/django_app/filetest.schema.json +0 -111
  155. package/dist/models/backend1/django_app/index.d.ts +0 -1
  156. package/dist/models/backend1/django_app/index.js +0 -21
  157. package/dist/models/backend1/django_app/m2mdepthtestlevel1.d.ts +0 -118
  158. package/dist/models/backend1/django_app/m2mdepthtestlevel1.js +0 -71
  159. package/dist/models/backend1/django_app/m2mdepthtestlevel1.schema.json +0 -94
  160. package/dist/models/backend1/django_app/m2mdepthtestlevel2.d.ts +0 -118
  161. package/dist/models/backend1/django_app/m2mdepthtestlevel2.js +0 -71
  162. package/dist/models/backend1/django_app/m2mdepthtestlevel2.schema.json +0 -94
  163. package/dist/models/backend1/django_app/m2mdepthtestlevel3.d.ts +0 -134
  164. package/dist/models/backend1/django_app/m2mdepthtestlevel3.js +0 -71
  165. package/dist/models/backend1/django_app/m2mdepthtestlevel3.schema.json +0 -112
  166. package/dist/models/backend1/django_app/modelwithcustompkrelation.d.ts +0 -118
  167. package/dist/models/backend1/django_app/modelwithcustompkrelation.js +0 -71
  168. package/dist/models/backend1/django_app/modelwithcustompkrelation.schema.json +0 -93
  169. package/dist/models/backend1/django_app/modelwithrestrictedfields.d.ts +0 -134
  170. package/dist/models/backend1/django_app/modelwithrestrictedfields.js +0 -71
  171. package/dist/models/backend1/django_app/modelwithrestrictedfields.schema.json +0 -111
  172. package/dist/models/backend1/django_app/namefiltercustompkmodel.d.ts +0 -92
  173. package/dist/models/backend1/django_app/namefiltercustompkmodel.js +0 -69
  174. package/dist/models/backend1/django_app/namefiltercustompkmodel.schema.json +0 -71
  175. package/dist/models/backend1/django_app/order.d.ts +0 -220
  176. package/dist/models/backend1/django_app/order.js +0 -71
  177. package/dist/models/backend1/django_app/order.schema.json +0 -203
  178. package/dist/models/backend1/django_app/orderitem.d.ts +0 -172
  179. package/dist/models/backend1/django_app/orderitem.js +0 -72
  180. package/dist/models/backend1/django_app/orderitem.schema.json +0 -149
  181. package/dist/models/backend1/django_app/product.d.ts +0 -254
  182. package/dist/models/backend1/django_app/product.js +0 -71
  183. package/dist/models/backend1/django_app/product.schema.json +0 -277
  184. package/dist/models/backend1/django_app/productcategory.d.ts +0 -92
  185. package/dist/models/backend1/django_app/productcategory.js +0 -69
  186. package/dist/models/backend1/django_app/productcategory.schema.json +0 -70
  187. package/dist/models/backend1/django_app/rateplan.d.ts +0 -92
  188. package/dist/models/backend1/django_app/rateplan.js +0 -69
  189. package/dist/models/backend1/django_app/rateplan.schema.json +0 -70
  190. package/dist/models/backend1/django_app/restrictedfieldrelatedmodel.d.ts +0 -108
  191. package/dist/models/backend1/django_app/restrictedfieldrelatedmodel.js +0 -69
  192. package/dist/models/backend1/django_app/restrictedfieldrelatedmodel.schema.json +0 -87
  193. package/dist/models/backend1/fileobject.d.ts +0 -4
  194. package/dist/models/backend1/fileobject.js +0 -9
  195. package/dist/models/backend1/index.d.ts +0 -2
  196. package/dist/models/backend1/index.js +0 -2
  197. package/dist/models/default/django_app/comprehensivemodel.d.ts +0 -894
  198. package/dist/models/default/django_app/comprehensivemodel.js +0 -71
  199. package/dist/models/default/django_app/comprehensivemodel.schema.json +0 -870
  200. package/dist/models/default/django_app/custompkmodel.d.ts +0 -92
  201. package/dist/models/default/django_app/custompkmodel.js +0 -69
  202. package/dist/models/default/django_app/custompkmodel.schema.json +0 -71
  203. package/dist/models/default/django_app/dailyrate.d.ts +0 -230
  204. package/dist/models/default/django_app/dailyrate.js +0 -71
  205. package/dist/models/default/django_app/dailyrate.schema.json +0 -212
  206. package/dist/models/default/django_app/deepmodellevel1.d.ts +0 -128
  207. package/dist/models/default/django_app/deepmodellevel1.js +0 -72
  208. package/dist/models/default/django_app/deepmodellevel1.schema.json +0 -102
  209. package/dist/models/default/django_app/deepmodellevel2.d.ts +0 -106
  210. package/dist/models/default/django_app/deepmodellevel2.js +0 -71
  211. package/dist/models/default/django_app/deepmodellevel2.schema.json +0 -80
  212. package/dist/models/default/django_app/deepmodellevel3.d.ts +0 -80
  213. package/dist/models/default/django_app/deepmodellevel3.js +0 -69
  214. package/dist/models/default/django_app/deepmodellevel3.schema.json +0 -57
  215. package/dist/models/default/django_app/dummymodel.d.ts +0 -122
  216. package/dist/models/default/django_app/dummymodel.js +0 -71
  217. package/dist/models/default/django_app/dummymodel.schema.json +0 -97
  218. package/dist/models/default/django_app/dummyrelatedmodel.d.ts +0 -80
  219. package/dist/models/default/django_app/dummyrelatedmodel.js +0 -69
  220. package/dist/models/default/django_app/dummyrelatedmodel.schema.json +0 -57
  221. package/dist/models/default/django_app/filetest.d.ts +0 -128
  222. package/dist/models/default/django_app/filetest.js +0 -69
  223. package/dist/models/default/django_app/filetest.schema.json +0 -99
  224. package/dist/models/default/django_app/index.d.ts +0 -1
  225. package/dist/models/default/django_app/index.js +0 -21
  226. package/dist/models/default/django_app/m2mdepthtestlevel1.d.ts +0 -118
  227. package/dist/models/default/django_app/m2mdepthtestlevel1.js +0 -71
  228. package/dist/models/default/django_app/m2mdepthtestlevel1.schema.json +0 -94
  229. package/dist/models/default/django_app/m2mdepthtestlevel2.d.ts +0 -118
  230. package/dist/models/default/django_app/m2mdepthtestlevel2.js +0 -71
  231. package/dist/models/default/django_app/m2mdepthtestlevel2.schema.json +0 -94
  232. package/dist/models/default/django_app/m2mdepthtestlevel3.d.ts +0 -134
  233. package/dist/models/default/django_app/m2mdepthtestlevel3.js +0 -71
  234. package/dist/models/default/django_app/m2mdepthtestlevel3.schema.json +0 -112
  235. package/dist/models/default/django_app/modelwithcustompkrelation.d.ts +0 -118
  236. package/dist/models/default/django_app/modelwithcustompkrelation.js +0 -71
  237. package/dist/models/default/django_app/modelwithcustompkrelation.schema.json +0 -93
  238. package/dist/models/default/django_app/modelwithrestrictedfields.d.ts +0 -134
  239. package/dist/models/default/django_app/modelwithrestrictedfields.js +0 -71
  240. package/dist/models/default/django_app/modelwithrestrictedfields.schema.json +0 -111
  241. package/dist/models/default/django_app/namefiltercustompkmodel.d.ts +0 -92
  242. package/dist/models/default/django_app/namefiltercustompkmodel.js +0 -69
  243. package/dist/models/default/django_app/namefiltercustompkmodel.schema.json +0 -71
  244. package/dist/models/default/django_app/order.d.ts +0 -220
  245. package/dist/models/default/django_app/order.js +0 -71
  246. package/dist/models/default/django_app/order.schema.json +0 -203
  247. package/dist/models/default/django_app/orderitem.d.ts +0 -172
  248. package/dist/models/default/django_app/orderitem.js +0 -72
  249. package/dist/models/default/django_app/orderitem.schema.json +0 -149
  250. package/dist/models/default/django_app/product.d.ts +0 -254
  251. package/dist/models/default/django_app/product.js +0 -71
  252. package/dist/models/default/django_app/product.schema.json +0 -277
  253. package/dist/models/default/django_app/productcategory.d.ts +0 -92
  254. package/dist/models/default/django_app/productcategory.js +0 -69
  255. package/dist/models/default/django_app/productcategory.schema.json +0 -70
  256. package/dist/models/default/django_app/rateplan.d.ts +0 -92
  257. package/dist/models/default/django_app/rateplan.js +0 -69
  258. package/dist/models/default/django_app/rateplan.schema.json +0 -70
  259. package/dist/models/default/django_app/restrictedfieldrelatedmodel.d.ts +0 -108
  260. package/dist/models/default/django_app/restrictedfieldrelatedmodel.js +0 -69
  261. package/dist/models/default/django_app/restrictedfieldrelatedmodel.schema.json +0 -87
  262. package/dist/models/default/fileobject.d.ts +0 -4
  263. package/dist/models/default/fileobject.js +0 -9
  264. package/dist/models/default/index.d.ts +0 -2
  265. package/dist/models/default/index.js +0 -2
  266. package/dist/models/index.d.ts +0 -1
  267. package/dist/models/index.js +0 -5
  268. package/dist/react-entry.d.ts +0 -2
  269. package/dist/react-entry.js +0 -2
  270. package/dist/reactiveAdaptor.d.ts +0 -24
  271. package/dist/reactiveAdaptor.js +0 -38
  272. package/dist/reset.d.ts +0 -15
  273. package/dist/reset.js +0 -97
  274. package/dist/setup.d.ts +0 -15
  275. package/dist/setup.js +0 -33
  276. package/dist/syncEngine/cache/cache.d.ts +0 -75
  277. package/dist/syncEngine/cache/cache.js +0 -355
  278. package/dist/syncEngine/metrics/metricOptCalcs.d.ts +0 -79
  279. package/dist/syncEngine/metrics/metricOptCalcs.js +0 -284
  280. package/dist/syncEngine/registries/metricRegistry.d.ts +0 -58
  281. package/dist/syncEngine/registries/metricRegistry.js +0 -171
  282. package/dist/syncEngine/registries/modelStoreRegistry.d.ts +0 -11
  283. package/dist/syncEngine/registries/modelStoreRegistry.js +0 -63
  284. package/dist/syncEngine/registries/querysetStoreGraph.d.ts +0 -41
  285. package/dist/syncEngine/registries/querysetStoreGraph.js +0 -174
  286. package/dist/syncEngine/registries/querysetStoreRegistry.d.ts +0 -72
  287. package/dist/syncEngine/registries/querysetStoreRegistry.js +0 -335
  288. package/dist/syncEngine/stores/metricStore.d.ts +0 -55
  289. package/dist/syncEngine/stores/metricStore.js +0 -222
  290. package/dist/syncEngine/stores/modelStore.d.ts +0 -53
  291. package/dist/syncEngine/stores/modelStore.js +0 -565
  292. package/dist/syncEngine/stores/operation.d.ts +0 -139
  293. package/dist/syncEngine/stores/operation.js +0 -291
  294. package/dist/syncEngine/stores/operationEventHandlers.d.ts +0 -8
  295. package/dist/syncEngine/stores/operationEventHandlers.js +0 -322
  296. package/dist/syncEngine/stores/querysetStore.d.ts +0 -60
  297. package/dist/syncEngine/stores/querysetStore.js +0 -294
  298. package/dist/syncEngine/stores/reactivity.d.ts +0 -3
  299. package/dist/syncEngine/stores/reactivity.js +0 -4
  300. package/dist/syncEngine/stores/utils.d.ts +0 -14
  301. package/dist/syncEngine/stores/utils.js +0 -32
  302. package/dist/syncEngine/sync.d.ts +0 -46
  303. package/dist/syncEngine/sync.js +0 -389
  304. package/dist/testing.d.ts +0 -63
  305. package/dist/testing.js +0 -175
  306. package/dist/vue-entry.d.ts +0 -15
  307. package/dist/vue-entry.js +0 -7
@@ -1,10 +0,0 @@
1
- /**
2
- * Loads configuration from file using cosmiconfig and sets it into the global config singleton.
3
- *
4
- * The function searches for a configuration file (e.g. statezero.config.js, .modelsynrc, etc.)
5
- * and checks if an environment variable (STATEZERO_CONFIG_PATH) overrides the default search path.
6
- * If a configuration file is found, it is validated and set via configInstance.setConfig().
7
- *
8
- * @returns {void}
9
- */
10
- export function loadConfigFromFile(): void;
@@ -1,85 +0,0 @@
1
- import { cosmiconfigSync } from 'cosmiconfig';
2
- import { configInstance } from '../config.js';
3
- /**
4
- * Loads configuration from file using cosmiconfig and sets it into the global config singleton.
5
- *
6
- * The function searches for a configuration file (e.g. statezero.config.js, .modelsynrc, etc.)
7
- * and checks if an environment variable (STATEZERO_CONFIG_PATH) overrides the default search path.
8
- * If a configuration file is found, it is validated and set via configInstance.setConfig().
9
- *
10
- * @returns {void}
11
- */
12
- export function loadConfigFromFile() {
13
- const explorerSync = cosmiconfigSync('statezero', {
14
- searchPlaces: [
15
- 'statezero.config.js',
16
- 'src/statezero.config.js',
17
- ],
18
- transform: (result) => {
19
- if (!result) {
20
- console.log('No configuration file found.');
21
- return null;
22
- }
23
- console.log(`Successfully loaded config from: ${result.filepath}`);
24
- // Handle ESM modules with default export
25
- if (result.config && result.config.__esModule && result.config.default) {
26
- result.config = result.config.default;
27
- }
28
- // Parse any stringified values back to their original format
29
- const parseNestedValues = (obj) => {
30
- if (!obj || typeof obj !== 'object')
31
- return obj;
32
- Object.keys(obj).forEach(key => {
33
- const value = obj[key];
34
- // Don't try to parse functions
35
- if (typeof value === 'string' && !value.includes('Function')) {
36
- try {
37
- // Check if it's a stringified value
38
- if ((value.startsWith('"') && value.endsWith('"')) ||
39
- (value === 'true' || value === 'false')) {
40
- obj[key] = JSON.parse(value);
41
- }
42
- }
43
- catch (e) {
44
- // If parsing fails, keep the original value
45
- }
46
- }
47
- // Recursively parse nested objects
48
- if (value && typeof value === 'object') {
49
- parseNestedValues(value);
50
- }
51
- });
52
- return obj;
53
- };
54
- // Parse any stringified values in the config
55
- if (result.config && typeof result.config === 'object') {
56
- parseNestedValues(result.config);
57
- }
58
- return result;
59
- }
60
- });
61
- const envConfigPath = process.env.STATEZERO_CONFIG_PATH;
62
- let result = null;
63
- if (envConfigPath) {
64
- console.log(`Attempting to load config from environment path: ${envConfigPath}`);
65
- try {
66
- result = explorerSync.load(envConfigPath);
67
- }
68
- catch (error) {
69
- console.log(`Failed to load from environment path: ${error.message}`);
70
- }
71
- }
72
- if (!result) {
73
- console.log('Searching for statezero configuration files...');
74
- result = explorerSync.search();
75
- }
76
- if (result && result.config) {
77
- // Apply the configuration
78
- configInstance.setConfig(result.config);
79
- console.log(`Configuration set from ${result.filepath}`);
80
- }
81
- else {
82
- console.log('Could not find configuration, using default empty config');
83
- configInstance.setConfig({ backendConfigs: {} });
84
- }
85
- }
@@ -1,2 +0,0 @@
1
- #!/usr/bin/env node
2
- export {};
package/dist/cli/index.js DELETED
@@ -1,22 +0,0 @@
1
- #!/usr/bin/env node
2
- import dotenv from "dotenv";
3
- dotenv.config();
4
- import yargs from "yargs";
5
- import { hideBin } from "yargs/helpers";
6
- import { generateSchema } from "./commands/syncModels.js";
7
- import { generateActions } from "./commands/syncActions.js";
8
- import { sync } from "./commands/sync.js"; // Import the new combined sync function
9
- yargs(hideBin(process.argv))
10
- // The new 'sync' command
11
- .command("sync", "Synchronize both models and actions from the backend", {}, // Builder for command-specific options (if any)
12
- async (argv) => {
13
- await sync(argv);
14
- })
15
- .command("sync-models", "Generate model classes from the backend schema", {}, async (argv) => {
16
- await generateSchema(argv);
17
- })
18
- .command("sync-actions", "Generate action functions from the backend schema", {}, async (argv) => {
19
- await generateActions(); // This function does not take arguments
20
- })
21
- .demandCommand(1, "You must provide a command to run. Use --help to see available commands.")
22
- .help().argv;
package/dist/config.d.ts DELETED
@@ -1,57 +0,0 @@
1
- /**
2
- * Sets the entire configuration, validating it before storing.
3
- * If the configuration is invalid, it throws a ConfigError.
4
- */
5
- export function setConfig(newConfig: any): void;
6
- /**
7
- * Retrieves the validated configuration.
8
- * If no configuration has been set, it throws a ConfigError.
9
- */
10
- export function getConfig(): any;
11
- /**
12
- * Merges a partial override into an existing backend config.
13
- */
14
- export function setBackendConfig(backendKey: any, newConfig: any): void;
15
- /**
16
- * Initializes the event receiver based on the configuration.
17
- */
18
- export function initializeEventReceiver(backendKey?: string): PusherEventReceiver | null;
19
- /**
20
- * Initializes event receivers for all configured backends.
21
- *
22
- * @returns {Object} Map of backend keys to their initialized event receivers
23
- * @throws {ConfigError} If configuration is not set or if initialization fails
24
- */
25
- export function initializeAllEventReceivers(): Object;
26
- /**
27
- * Registers the function used to retrieve model classes.
28
- * This should be called once during application setup after setConfig.
29
- * @param {Function} getterFn - The getModelClass function imported from model-registry.js
30
- */
31
- export function registerModelGetter(getterFn: Function): void;
32
- /**
33
- * Helper function to build file URLs
34
- */
35
- export function buildFileUrl(fileUrl: any, backendKey?: string): any;
36
- /**
37
- * Get a model class by name using the registered getter.
38
- *
39
- * @param {string} modelName - The model name (e.g., 'app.MyModel')
40
- * @param {string} configKey - The config key (backend name)
41
- * @returns {Function|null} - The model class or null if not found
42
- */
43
- export function getModelClass(modelName: string, configKey: string): Function | null;
44
- export namespace liveConfig {
45
- let backendConfigs: {};
46
- }
47
- export namespace configInstance {
48
- export { setConfig };
49
- export { getConfig };
50
- export { setBackendConfig };
51
- export { initializeEventReceiver };
52
- export { registerModelGetter };
53
- export { getModelClass };
54
- export { buildFileUrl };
55
- }
56
- export default configInstance;
57
- import { PusherEventReceiver } from './core/eventReceivers.js';
package/dist/config.js DELETED
@@ -1,273 +0,0 @@
1
- import { z } from 'zod';
2
- import { ConfigError } from './flavours/django/errors.js';
3
- import { PusherEventReceiver, setEventReceiver } from './core/eventReceivers.js';
4
- // The live configuration object. By default it is empty.
5
- export let liveConfig = {
6
- backendConfigs: {}
7
- };
8
- // --- Zod Schemas ---
9
- const pusherSchema = z.object({
10
- clientOptions: z.object({
11
- appKey: z.string({ required_error: 'Pusher appKey is required' }),
12
- cluster: z.string({ required_error: 'Pusher cluster is required' }),
13
- forceTLS: z.boolean().optional(),
14
- authEndpoint: z.string()
15
- .url('Pusher authentication endpoint URL is required'),
16
- getAuthHeaders: z.function().optional()
17
- .refine((fn) => fn === undefined || typeof fn === 'function', 'getAuthHeaders must be a function if provided')
18
- })
19
- });
20
- const eventConfigSchema = z.object({
21
- type: z.enum(['websocket', 'pusher', 'none']),
22
- websocketUrl: z.string().url().optional(),
23
- pusher: pusherSchema.optional(),
24
- hotpaths: z.array(z.string()).default(['default'])
25
- }).superRefine((data, ctx) => {
26
- // Conditional validation based on type
27
- if (data.type === 'websocket') {
28
- if (!data.websocketUrl) {
29
- ctx.addIssue({
30
- code: z.ZodIssueCode.custom,
31
- path: ['websocketUrl'],
32
- message: 'WebSocket URL is required for WebSocket event receiver'
33
- });
34
- }
35
- }
36
- if (data.type === 'pusher') {
37
- if (!data.pusher) {
38
- ctx.addIssue({
39
- code: z.ZodIssueCode.custom,
40
- path: ['pusher'],
41
- message: 'Pusher configuration is required for Pusher event receiver'
42
- });
43
- }
44
- }
45
- });
46
- const backendSchema = z.object({
47
- API_URL: z.string().url("API_URL must be a valid URL"),
48
- GENERATED_TYPES_DIR: z.string({
49
- required_error: "GENERATED_TYPES_DIR is required",
50
- }),
51
- GENERATED_ACTIONS_DIR: z.string().optional(),
52
- BACKEND_TZ: z.string().optional(),
53
- SYNC_TOKEN: z.string().optional(),
54
- fileRootURL: z.string().url("fileRootURL must be a valid URL").optional(),
55
- fileUploadMode: z.enum(["server", "s3"]).default("server"),
56
- getAuthHeaders: z
57
- .function()
58
- .optional()
59
- .refine((fn) => fn === undefined || typeof fn === "function", "getAuthHeaders must be a function if provided"),
60
- eventInterceptor: z
61
- .function()
62
- .optional()
63
- .refine((fn) => fn === undefined || typeof fn === "function", "eventInterceptor must be a function if provided"),
64
- events: z.lazy(() => eventConfigSchema.optional()),
65
- });
66
- const configSchema = z.object({
67
- backendConfigs: z.record(z.string(), backendSchema)
68
- .refine((configs) => {
69
- // Validate each backend config
70
- for (const [key, backend] of Object.entries(configs)) {
71
- const result = backendSchema.safeParse(backend);
72
- if (!result.success) {
73
- return false;
74
- }
75
- }
76
- return true;
77
- }, (configs) => {
78
- // Generate detailed error message
79
- const errors = [];
80
- for (const [key, backend] of Object.entries(configs)) {
81
- const result = backendSchema.safeParse(backend);
82
- if (!result.success) {
83
- const errorMessages = result.error.errors.map(err => err.message);
84
- errors.push(`Backend "${key}" is invalid: ${errorMessages.join(', ')}`);
85
- }
86
- }
87
- return { message: errors.join('; ') };
88
- }),
89
- periodicSyncIntervalSeconds: z.number().min(5).nullable().optional().default(null),
90
- });
91
- // Internal variable to hold the validated configuration.
92
- let config = null;
93
- /**
94
- * Sets the entire configuration, validating it before storing.
95
- * If the configuration is invalid, it throws a ConfigError.
96
- */
97
- export function setConfig(newConfig) {
98
- liveConfig = newConfig;
99
- const result = configSchema.safeParse(liveConfig);
100
- if (!result.success) {
101
- const errorMessages = result.error.errors.map(err => err.message);
102
- throw new ConfigError(`Error setting configuration: ${errorMessages.join(', ')}`);
103
- }
104
- config = result.data;
105
- }
106
- /**
107
- * Retrieves the validated configuration.
108
- * If no configuration has been set, it throws a ConfigError.
109
- */
110
- export function getConfig() {
111
- if (!config) {
112
- throw new ConfigError('Configuration not set. Please call setConfig() with a valid configuration.');
113
- }
114
- return config;
115
- }
116
- /**
117
- * Merges a partial override into an existing backend config.
118
- */
119
- export function setBackendConfig(backendKey, newConfig) {
120
- try {
121
- const cfg = getConfig();
122
- if (!cfg.backendConfigs[backendKey]) {
123
- throw new ConfigError(`Backend "${backendKey}" not found in configuration.`);
124
- }
125
- const merged = { ...cfg.backendConfigs[backendKey], ...newConfig };
126
- const result = backendSchema.safeParse(merged);
127
- if (!result.success) {
128
- const errorMessages = result.error.errors.map(err => err.message);
129
- throw new ConfigError(`Invalid backend configuration: ${errorMessages.join(', ')}`);
130
- }
131
- cfg.backendConfigs[backendKey] = result.data;
132
- }
133
- catch (error) {
134
- if (error instanceof ConfigError) {
135
- throw error;
136
- }
137
- throw new ConfigError(error.message || 'Invalid backend configuration');
138
- }
139
- }
140
- /**
141
- * Initializes the event receiver based on the configuration.
142
- */
143
- export function initializeEventReceiver(backendKey = 'default') {
144
- try {
145
- const cfg = getConfig();
146
- if (!cfg.backendConfigs[backendKey]) {
147
- throw new ConfigError(`Backend "${backendKey}" not found in configuration.`);
148
- }
149
- const backendConfig = cfg.backendConfigs[backendKey];
150
- if (!backendConfig.events) {
151
- return null;
152
- }
153
- let receiver = null;
154
- switch (backendConfig.events.type) {
155
- case 'pusher':
156
- if (!backendConfig.events.pusher || !backendConfig.events.pusher.clientOptions) {
157
- throw new ConfigError('Pusher client options are required for Pusher event receiver.');
158
- }
159
- if (!backendConfig.events.pusher.clientOptions.authEndpoint) {
160
- throw new ConfigError('Pusher auth endpoint is required for Pusher event receiver.');
161
- }
162
- const clientOptions = {
163
- ...backendConfig.events.pusher.clientOptions,
164
- getAuthHeaders: backendConfig.events.pusher.clientOptions.getAuthHeaders || backendConfig.getAuthHeaders
165
- };
166
- // Pass the backendKey to the constructor
167
- receiver = new PusherEventReceiver({ clientOptions }, backendKey);
168
- break;
169
- case 'none':
170
- return null;
171
- default:
172
- throw new ConfigError(`Unknown event receiver type: ${backendConfig.events.type}`);
173
- }
174
- if (receiver) {
175
- // Pass the backendKey to associate the receiver with this backend
176
- setEventReceiver(backendKey, receiver);
177
- }
178
- return receiver;
179
- }
180
- catch (error) {
181
- if (error instanceof ConfigError) {
182
- throw error;
183
- }
184
- throw new ConfigError(`Failed to initialize event receiver: ${error.message}`);
185
- }
186
- }
187
- /**
188
- * Initializes event receivers for all configured backends.
189
- *
190
- * @returns {Object} Map of backend keys to their initialized event receivers
191
- * @throws {ConfigError} If configuration is not set or if initialization fails
192
- */
193
- export function initializeAllEventReceivers() {
194
- try {
195
- const cfg = getConfig();
196
- const receivers = {};
197
- // Initialize event receivers for each backend configuration
198
- Object.keys(cfg.backendConfigs).forEach(backendKey => {
199
- try {
200
- receivers[backendKey] = initializeEventReceiver(backendKey);
201
- }
202
- catch (error) {
203
- console.warn(`Failed to initialize event receiver for backend "${backendKey}": ${error.message}`);
204
- }
205
- });
206
- return receivers;
207
- }
208
- catch (error) {
209
- throw new ConfigError(`Failed to initialize event receivers: ${error.message}`);
210
- }
211
- }
212
- // --- Declare the variable to hold the registered model getter ---
213
- let modelGetter = null;
214
- /**
215
- * Registers the function used to retrieve model classes.
216
- * This should be called once during application setup after setConfig.
217
- * @param {Function} getterFn - The getModelClass function imported from model-registry.js
218
- */
219
- export function registerModelGetter(getterFn) {
220
- if (typeof getterFn !== 'function') {
221
- throw new ConfigError('Provided model getter must be a function.');
222
- }
223
- modelGetter = getterFn;
224
- }
225
- /**
226
- * Helper function to build file URLs
227
- */
228
- export function buildFileUrl(fileUrl, backendKey = 'default') {
229
- // If URL is already absolute (cloud storage), use it as-is
230
- if (fileUrl && fileUrl.startsWith('http')) {
231
- return fileUrl;
232
- }
233
- const cfg = getConfig();
234
- const backend = cfg.backendConfigs[backendKey];
235
- if (!backend) {
236
- throw new ConfigError(`Backend "${backendKey}" not found in configuration.`);
237
- }
238
- // If no fileRootURL provided, return relative URL as-is
239
- if (!backend.fileRootURL) {
240
- return fileUrl;
241
- }
242
- // Construct full URL
243
- return backend.fileRootURL.replace(/\/$/, '') + fileUrl;
244
- }
245
- /**
246
- * Get a model class by name using the registered getter.
247
- *
248
- * @param {string} modelName - The model name (e.g., 'app.MyModel')
249
- * @param {string} configKey - The config key (backend name)
250
- * @returns {Function|null} - The model class or null if not found
251
- */
252
- export function getModelClass(modelName, configKey) {
253
- if (!modelGetter) {
254
- // Optionally check if config is set first
255
- // getConfig(); // This will throw if config isn't set
256
- throw new ConfigError('Model registry not registered. Please call registerModelGetter() with the function from model-registry.js during app initialization.');
257
- }
258
- // Delegate to the function provided by the user from model-registry.js
259
- return modelGetter(modelName, configKey);
260
- }
261
- /**
262
- * Exposes a singleton object for configuration functionality.
263
- */
264
- export const configInstance = {
265
- setConfig,
266
- getConfig,
267
- setBackendConfig,
268
- initializeEventReceiver,
269
- registerModelGetter,
270
- getModelClass,
271
- buildFileUrl
272
- };
273
- export default configInstance;
@@ -1,185 +0,0 @@
1
- /**
2
- * Set an event receiver for a specific backend.
3
- * @param {string} configKey - The backend configuration key
4
- * @param {EventReceiver} receiver - The event receiver instance
5
- */
6
- export function setEventReceiver(configKey: string, receiver: EventReceiver): void;
7
- /**
8
- * Get the event receiver for a specific backend.
9
- * @param {string} configKey - The backend configuration key
10
- * @returns {EventReceiver|null}
11
- */
12
- export function getEventReceiver(configKey?: string): EventReceiver | null;
13
- /**
14
- * Get all registered event receivers.
15
- * @returns {Map<string, EventReceiver>}
16
- */
17
- export function getAllEventReceivers(): Map<string, EventReceiver>;
18
- /**
19
- * Set a custom namespace resolver function for a specific backend.
20
- * @param {string} configKey - The backend configuration key
21
- * @param {NamespaceResolver} resolver
22
- */
23
- export function setNamespaceResolver(configKey: string, resolver: NamespaceResolver): void;
24
- /**
25
- * Event types that can be received from the server.
26
- */
27
- export type EventType = string;
28
- export namespace EventType {
29
- let CREATE: string;
30
- let UPDATE: string;
31
- let DELETE: string;
32
- let BULK_CREATE: string;
33
- let BULK_UPDATE: string;
34
- let BULK_DELETE: string;
35
- }
36
- /**
37
- * Callback for handling model events.
38
- * @callback EventHandler
39
- * @param {ModelEvent} event - The event object.
40
- */
41
- /**
42
- * A namespace resolver function.
43
- * @callback NamespaceResolver
44
- * @param {string} modelName - The model name.
45
- * @returns {string} The namespace.
46
- */
47
- /**
48
- * Options for instantiating a Pusher client.
49
- * @typedef {Object} PusherClientOptions
50
- * @property {string} appKey
51
- * @property {string} cluster
52
- * @property {boolean} [forceTLS]
53
- * @property {string} authEndpoint
54
- * @property {function(): Object<string, string>} [getAuthHeaders]
55
- */
56
- /**
57
- * Configuration options for Pusher event receivers.
58
- * @typedef {Object} PusherReceiverOptions
59
- * @property {PusherClientOptions} clientOptions
60
- * @property {function(string): string} [formatChannelName] - Optional channel name formatter. Default: (namespace) => `private-${namespace}`
61
- * @property {NamespaceResolver} [namespaceResolver] - Optional namespace resolver. Default: (modelName) => modelName.
62
- */
63
- /**
64
- * Implementation of EventReceiver that uses Pusher.
65
- */
66
- export class PusherEventReceiver {
67
- /**
68
- * @param {PusherReceiverOptions} options
69
- * @param {string} configKey - The backend configuration key
70
- */
71
- constructor(options: PusherReceiverOptions, configKey: string);
72
- configKey: string;
73
- connectionTimeoutId: NodeJS.Timeout;
74
- pusherClient: any;
75
- formatChannelName: (arg0: string) => string;
76
- namespaceResolver: NamespaceResolver;
77
- channels: Map<any, any>;
78
- eventHandlers: Set<any>;
79
- /**
80
- * @private
81
- * @param {string} reason
82
- */
83
- private _logConnectionError;
84
- /**
85
- * Set the namespace resolver function.
86
- * @param {NamespaceResolver} resolver
87
- */
88
- setNamespaceResolver(resolver: NamespaceResolver): void;
89
- /**
90
- * Connect to Pusher (no-op since Pusher handles connection automatically).
91
- */
92
- connect(): void;
93
- /**
94
- * Subscribe to events for a specific namespace.
95
- * @param {string} namespace
96
- */
97
- subscribe(namespace: string): void;
98
- unsubscribe(namespace: any): void;
99
- /**
100
- * Disconnect from Pusher.
101
- */
102
- disconnect(): void;
103
- /**
104
- * Add handler for model events
105
- * @param {EventHandler} handler
106
- */
107
- addModelEventHandler(handler: EventHandler): void;
108
- /**
109
- * Legacy method - adds event handler for backwards compatibility
110
- * @param {EventHandler} handler
111
- */
112
- addEventHandler(handler: EventHandler): void;
113
- /**
114
- * Remove an event handler callback.
115
- * @param {EventHandler} handler
116
- */
117
- removeEventHandler(handler: EventHandler): void;
118
- /**
119
- * Get namespace from model name using the resolver.
120
- * @param {string} modelName
121
- * @returns {string}
122
- */
123
- getNamespace(modelName: string): string;
124
- }
125
- /**
126
- * Structure of events received from the server.
127
- */
128
- export type ModelEvent = {
129
- /**
130
- * - Support both frontend (type) and backend (event) naming conventions.
131
- */
132
- type?: string | undefined;
133
- event?: string | undefined;
134
- model: string;
135
- data?: any;
136
- operationId?: string | undefined;
137
- namespace?: string | undefined;
138
- /**
139
- * - For bulk events.
140
- */
141
- instances?: (string | number)[] | undefined;
142
- pk_field_name?: string | undefined;
143
- /**
144
- * - The backend configuration key this event is associated with.
145
- */
146
- configKey?: string | undefined;
147
- /**
148
- * - Additional open-ended keys.
149
- */
150
- key?: any;
151
- };
152
- /**
153
- * Callback for handling model events.
154
- */
155
- export type EventHandler = (event: ModelEvent) => any;
156
- /**
157
- * A namespace resolver function.
158
- */
159
- export type NamespaceResolver = (modelName: string) => string;
160
- /**
161
- * Options for instantiating a Pusher client.
162
- */
163
- export type PusherClientOptions = {
164
- appKey: string;
165
- cluster: string;
166
- forceTLS?: boolean | undefined;
167
- authEndpoint: string;
168
- getAuthHeaders?: (() => {
169
- [x: string]: string;
170
- }) | undefined;
171
- };
172
- /**
173
- * Configuration options for Pusher event receivers.
174
- */
175
- export type PusherReceiverOptions = {
176
- clientOptions: PusherClientOptions;
177
- /**
178
- * - Optional channel name formatter. Default: (namespace) => `private-${namespace}`
179
- */
180
- formatChannelName?: ((arg0: string) => string) | undefined;
181
- /**
182
- * - Optional namespace resolver. Default: (modelName) => modelName.
183
- */
184
- namespaceResolver?: NamespaceResolver | undefined;
185
- };