@statezero/core 0.2.38 → 0.2.39

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 +322 -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 +46 -0
  287. package/dist/syncEngine/sync.js +389 -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,55 @@
1
+ /**
2
+ * Send notifications to multiple recipients
3
+ *
4
+ * @param string message - Notification message to send
5
+ * @param any[] recipients - List of email addresses to notify
6
+ * @param 'low' | 'high' priority - Notification priority level
7
+ * @param {Object} [axiosOverrides] - Allows overriding Axios request parameters.
8
+ * @returns {Promise<Object>} A promise that resolves with the action's result.
9
+ */
10
+ export function sendNotification(message: any, recipients: any, priority?: string, axiosOverrides?: Object): Promise<Object>;
11
+ export namespace sendNotification {
12
+ let actionName: string;
13
+ let title: string;
14
+ let app: string;
15
+ let permissions: string[];
16
+ let configKey: string;
17
+ }
18
+ /**
19
+ * Zod schema for the input of sendNotification.
20
+ * NOTE: This is an object schema for validating the data payload.
21
+ */
22
+ export const sendNotificationInputSchema: z.ZodObject<{
23
+ message: z.ZodString;
24
+ recipients: z.ZodArray<z.ZodAny, "many">;
25
+ priority: z.ZodDefault<z.ZodOptional<z.ZodEnum<["low", "high"]>>>;
26
+ }, "strip", z.ZodTypeAny, {
27
+ message: string;
28
+ priority: "low" | "high";
29
+ recipients: any[];
30
+ }, {
31
+ message: string;
32
+ recipients: any[];
33
+ priority?: "low" | "high" | undefined;
34
+ }>;
35
+ /**
36
+ * Zod schema for the response of sendNotification.
37
+ */
38
+ export const sendNotificationResponseSchema: z.ZodObject<{
39
+ success: z.ZodBoolean;
40
+ message_id: z.ZodString;
41
+ sent_to: z.ZodNumber;
42
+ queued_at: z.ZodString;
43
+ }, "strip", z.ZodTypeAny, {
44
+ success: boolean;
45
+ message_id: string;
46
+ sent_to: number;
47
+ queued_at: string;
48
+ }, {
49
+ success: boolean;
50
+ message_id: string;
51
+ sent_to: number;
52
+ queued_at: string;
53
+ }>;
54
+ export default sendNotification;
55
+ import { z } from 'zod';
@@ -0,0 +1,81 @@
1
+ /**
2
+ * This file was auto-generated. Do not make direct changes to the file.
3
+ * Action: Send Notification
4
+ * App: django_app
5
+ */
6
+ import axios from 'axios';
7
+ import { z } from 'zod';
8
+ import { configInstance, parseStateZeroError, serializeActionPayload } from '../../../../src';
9
+ import actionSchema from './send-notification.schema.json' assert { type: 'json' };
10
+ /**
11
+ * Zod schema for the input of sendNotification.
12
+ * NOTE: This is an object schema for validating the data payload.
13
+ */
14
+ export const sendNotificationInputSchema = z.object({ message: z.string().max(500),
15
+ recipients: z.array(z.any()),
16
+ priority: z.enum(["low", "high"]).optional().default("low") });
17
+ /**
18
+ * Zod schema for the response of sendNotification.
19
+ */
20
+ export const sendNotificationResponseSchema = z.object({ success: z.boolean(),
21
+ message_id: z.string(),
22
+ sent_to: z.number().int(),
23
+ queued_at: z.string().datetime({ message: "Invalid ISO 8601 datetime string" }) });
24
+ /**
25
+ * Send notifications to multiple recipients
26
+ *
27
+ * @param string message - Notification message to send
28
+ * @param any[] recipients - List of email addresses to notify
29
+ * @param 'low' | 'high' priority - Notification priority level
30
+ * @param {Object} [axiosOverrides] - Allows overriding Axios request parameters.
31
+ * @returns {Promise<Object>} A promise that resolves with the action's result.
32
+ */
33
+ export async function sendNotification(message, recipients, priority = "low", axiosOverrides = {}) {
34
+ // Construct the data payload from the function arguments
35
+ const rawPayload = {
36
+ message,
37
+ recipients,
38
+ priority
39
+ };
40
+ // Serialize payload - handles model instances (extracts PK), files, dates, etc.
41
+ const payload = serializeActionPayload(rawPayload, actionSchema.input_properties);
42
+ const config = configInstance.getConfig();
43
+ const backend = config.backendConfigs['default'];
44
+ if (!backend) {
45
+ throw new Error(`No backend configuration found for key: default`);
46
+ }
47
+ const baseUrl = backend.API_URL.replace(/\/+$/, '');
48
+ const actionUrl = `${baseUrl}/actions/send_notification/`;
49
+ const headers = backend.getAuthHeaders ? backend.getAuthHeaders() : {};
50
+ try {
51
+ const response = await axios.post(actionUrl, payload, {
52
+ headers: { 'Content-Type': 'application/json', ...headers },
53
+ ...axiosOverrides,
54
+ });
55
+ return sendNotificationResponseSchema.parse(response.data);
56
+ }
57
+ catch (error) {
58
+ if (error instanceof z.ZodError) {
59
+ throw new Error(`Send Notification failed: Invalid response from server. Details: ${error.message}`);
60
+ }
61
+ if (error.response && error.response.data) {
62
+ const parsedError = parseStateZeroError(error.response.data);
63
+ if (Error.captureStackTrace) {
64
+ Error.captureStackTrace(parsedError, sendNotification);
65
+ }
66
+ throw parsedError;
67
+ }
68
+ else if (error.request) {
69
+ throw new Error(`Send Notification failed: No response received from server.`);
70
+ }
71
+ else {
72
+ throw new Error(`Send Notification failed: ${error.message}`);
73
+ }
74
+ }
75
+ }
76
+ export default sendNotification;
77
+ sendNotification.actionName = 'send_notification';
78
+ sendNotification.title = 'Send Notification';
79
+ sendNotification.app = 'django_app';
80
+ sendNotification.permissions = ['ValidatedCanSendNotifications'];
81
+ sendNotification.configKey = 'default';
@@ -0,0 +1,175 @@
1
+ {
2
+ "action_name": "send_notification",
3
+ "app": "django_app",
4
+ "title": "Send Notification",
5
+ "docstring": "Send notifications to multiple recipients",
6
+ "class_name": "SendNotification",
7
+ "input_properties": {
8
+ "message": {
9
+ "type": "string",
10
+ "title": "Message",
11
+ "required": true,
12
+ "description": "Notification message to send",
13
+ "nullable": false,
14
+ "format": null,
15
+ "max_length": 500,
16
+ "choices": null,
17
+ "default": null,
18
+ "validators": [],
19
+ "max_digits": null,
20
+ "decimal_places": null,
21
+ "read_only": false,
22
+ "ref": null
23
+ },
24
+ "recipients": {
25
+ "type": "array",
26
+ "title": "Recipients",
27
+ "required": true,
28
+ "description": "List of email addresses to notify",
29
+ "nullable": false,
30
+ "format": null,
31
+ "max_length": null,
32
+ "choices": null,
33
+ "default": null,
34
+ "validators": [],
35
+ "max_digits": null,
36
+ "decimal_places": null,
37
+ "read_only": false,
38
+ "ref": null
39
+ },
40
+ "priority": {
41
+ "type": "string",
42
+ "title": "Priority",
43
+ "required": false,
44
+ "description": "Notification priority level",
45
+ "nullable": false,
46
+ "format": null,
47
+ "max_length": null,
48
+ "choices": {
49
+ "low": "Low",
50
+ "high": "High"
51
+ },
52
+ "default": "low",
53
+ "validators": [],
54
+ "max_digits": null,
55
+ "decimal_places": null,
56
+ "read_only": false,
57
+ "ref": null
58
+ }
59
+ },
60
+ "response_properties": {
61
+ "success": {
62
+ "type": "boolean",
63
+ "title": "Success",
64
+ "required": true,
65
+ "description": null,
66
+ "nullable": false,
67
+ "format": null,
68
+ "max_length": null,
69
+ "choices": null,
70
+ "default": null,
71
+ "validators": [],
72
+ "max_digits": null,
73
+ "decimal_places": null,
74
+ "read_only": false,
75
+ "ref": null
76
+ },
77
+ "message_id": {
78
+ "type": "string",
79
+ "title": "Message id",
80
+ "required": true,
81
+ "description": null,
82
+ "nullable": false,
83
+ "format": null,
84
+ "max_length": null,
85
+ "choices": null,
86
+ "default": null,
87
+ "validators": [],
88
+ "max_digits": null,
89
+ "decimal_places": null,
90
+ "read_only": false,
91
+ "ref": null
92
+ },
93
+ "sent_to": {
94
+ "type": "integer",
95
+ "title": "Sent to",
96
+ "required": true,
97
+ "description": null,
98
+ "nullable": false,
99
+ "format": null,
100
+ "max_length": null,
101
+ "choices": null,
102
+ "default": null,
103
+ "validators": [],
104
+ "max_digits": null,
105
+ "decimal_places": null,
106
+ "read_only": false,
107
+ "ref": null
108
+ },
109
+ "queued_at": {
110
+ "type": "string",
111
+ "title": "Queued at",
112
+ "required": true,
113
+ "description": null,
114
+ "nullable": false,
115
+ "format": "date-time",
116
+ "max_length": null,
117
+ "choices": null,
118
+ "default": null,
119
+ "validators": [],
120
+ "max_digits": null,
121
+ "decimal_places": null,
122
+ "read_only": false,
123
+ "ref": null
124
+ }
125
+ },
126
+ "relationships": {},
127
+ "permissions": [
128
+ "ValidatedCanSendNotifications"
129
+ ],
130
+ "display": {
131
+ "display_title": "Send Notifications",
132
+ "display_description": "Send notifications to multiple recipients with priority control",
133
+ "field_groups": [
134
+ {
135
+ "display_title": "Message Content",
136
+ "display_description": "The notification message and priority level",
137
+ "field_names": [
138
+ "message",
139
+ "priority"
140
+ ]
141
+ },
142
+ {
143
+ "display_title": "Recipients",
144
+ "display_description": "Email addresses to send notifications to",
145
+ "field_names": [
146
+ "recipients"
147
+ ]
148
+ }
149
+ ],
150
+ "field_display_configs": [
151
+ {
152
+ "field_name": "message",
153
+ "display_component": "TextArea",
154
+ "filter_queryset": null,
155
+ "display_help_text": "Enter your notification message here (max 500 characters)",
156
+ "extra": null
157
+ },
158
+ {
159
+ "field_name": "priority",
160
+ "display_component": "RadioGroup",
161
+ "filter_queryset": null,
162
+ "display_help_text": "High priority notifications are processed first",
163
+ "extra": null
164
+ },
165
+ {
166
+ "field_name": "recipients",
167
+ "display_component": "EmailListInput",
168
+ "filter_queryset": null,
169
+ "display_help_text": "Add one or more email addresses",
170
+ "extra": null
171
+ }
172
+ ],
173
+ "extra": null
174
+ }
175
+ }
@@ -0,0 +1 @@
1
+ export * from "./django_app/index.js";
@@ -0,0 +1 @@
1
+ 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 @@
1
+ export function useQueryset(querysetFactory: any): any;
@@ -0,0 +1,4 @@
1
+ export function useQueryset(querysetFactory) {
2
+ console.warn("React environments are not currently supported");
3
+ return querysetFactory;
4
+ }
@@ -0,0 +1 @@
1
+ export { useQueryset } from "./composables.js";
@@ -0,0 +1 @@
1
+ export { useQueryset } from './composables.js';
@@ -1,4 +1,4 @@
1
- import { computed as c, provide as q, unref as m, inject as G, onMounted as T, resolveComponent as U, createElementBlock as d, openBlock as r, Fragment as v, createBlock as y, createCommentVNode as g, resolveDynamicComponent as i, normalizeClass as F, renderList as b, withCtx as z, createVNode as H, toDisplayString as M } from "vue";
1
+ import { computed as y, provide as q, unref as m, inject as G, onMounted as T, resolveComponent as U, createElementBlock as d, openBlock as l, Fragment as v, createBlock as u, createCommentVNode as g, resolveDynamicComponent as i, normalizeClass as F, renderList as b, withCtx as z, createVNode as H, toDisplayString as M } from "vue";
2
2
  const N = {
3
3
  key: 11,
4
4
  class: "text-red-500 text-sm"
@@ -25,25 +25,24 @@ const N = {
25
25
  },
26
26
  emits: ["update:formData"],
27
27
  setup(e, { emit: E }) {
28
- const t = e, D = E, h = c(() => {
29
- var l, a;
28
+ const t = e, D = E, h = y(() => {
30
29
  if (t.nonFieldErrors !== null)
31
30
  return t.nonFieldErrors;
32
- const n = ((l = t.errors) == null ? void 0 : l.non_field_errors) || ((a = t.errors) == null ? void 0 : a.__all__);
33
- return n ? Array.isArray(n) ? n.map((o) => typeof o == "string" ? o : o != null && o.message ? o.message : String(o)) : [String(n)] : [];
34
- }), L = c(() => t.components), A = c(() => t.schema), R = c(() => t.formData), S = c(() => t.context), j = c(() => t.errors);
31
+ const n = t.errors?.non_field_errors || t.errors?.__all__;
32
+ return n ? Array.isArray(n) ? n.map((o) => typeof o == "string" ? o : o?.message ? o.message : String(o)) : [String(n)] : [];
33
+ }), L = y(() => t.components), j = y(() => t.schema), R = y(() => t.formData), A = y(() => t.context), S = y(() => t.errors);
35
34
  t.isRoot && q("layoutRenderer", {
36
35
  components: L,
37
- schema: A,
36
+ schema: j,
38
37
  formData: R,
39
- context: S,
40
- errors: j,
41
- updateField: (n, l) => {
38
+ context: A,
39
+ errors: S,
40
+ updateField: (n, o) => {
42
41
  const a = m(R) || {};
43
- D("update:formData", { ...a, [n]: l });
42
+ D("update:formData", { ...a, [n]: o });
44
43
  }
45
44
  });
46
- const s = t.isRoot ? null : G("layoutRenderer", null), u = c(() => t.isRoot ? t.components : s && m(s.components) || t.components), p = c(() => t.isRoot ? t.schema : s && m(s.schema) || t.schema), x = c(() => t.isRoot ? t.formData : s && m(s.formData) || t.formData), f = c(() => t.isRoot ? t.context : s && m(s.context) || t.context), B = c(() => t.isRoot ? t.errors : s && m(s.errors) || t.errors), O = t.isRoot ? (n, l) => D("update:formData", { ...t.formData, [n]: l }) : (s == null ? void 0 : s.updateField) || (() => {
45
+ const s = t.isRoot ? null : G("layoutRenderer", null), r = y(() => t.isRoot ? t.components : s && m(s.components) || t.components), p = y(() => t.isRoot ? t.schema : s && m(s.schema) || t.schema), x = y(() => t.isRoot ? t.formData : s && m(s.formData) || t.formData), f = y(() => t.isRoot ? t.context : s && m(s.context) || t.context), B = y(() => t.isRoot ? t.errors : s && m(s.errors) || t.errors), O = t.isRoot ? (n, o) => D("update:formData", { ...t.formData, [n]: o }) : s?.updateField || (() => {
47
46
  });
48
47
  T(() => {
49
48
  t.isRoot;
@@ -51,90 +50,88 @@ const N = {
51
50
  function w(n) {
52
51
  try {
53
52
  return new Function("formData", "context", `return ${n}`)(x.value, f.value);
54
- } catch (l) {
55
- return console.warn("[LayoutRenderer] Conditional eval failed:", n, l), !1;
53
+ } catch (o) {
54
+ return console.warn("[LayoutRenderer] Conditional eval failed:", n, o), !1;
56
55
  }
57
56
  }
58
57
  function V(n) {
59
- var a, o;
60
- return (((a = p.value) == null ? void 0 : a.properties) || ((o = p.value) == null ? void 0 : o.input_properties) || {})[n] || {};
58
+ return (p.value?.properties || p.value?.input_properties || {})[n] || {};
61
59
  }
62
60
  function $(n) {
63
- var a;
64
61
  if (n === "non_field_errors" || n === "__all__") return [];
65
- const l = (a = B.value) == null ? void 0 : a[n];
66
- return l ? Array.isArray(l) ? l.map((o) => typeof o == "string" ? o : o != null && o.message ? o.message : String(o)) : [String(l)] : [];
62
+ const o = B.value?.[n];
63
+ return o ? Array.isArray(o) ? o.map((a) => typeof a == "string" ? a : a?.message ? a.message : String(a)) : [String(o)] : [];
67
64
  }
68
65
  function C(n) {
69
66
  if (!n) return;
70
- const l = n.split(".");
67
+ const o = n.split(".");
71
68
  let a = f.value;
72
- for (const o of l) {
69
+ for (const c of o) {
73
70
  if (a == null) return;
74
- a = a[o];
71
+ a = a[c];
75
72
  }
76
73
  return a;
77
74
  }
78
- return (n, l) => {
75
+ return (n, o) => {
79
76
  const a = U("LayoutRenderer", !0);
80
- return r(), d(v, null, [
81
- e.isRoot && h.value.length > 0 && u.value.ErrorBlock ? (r(), y(i(u.value.ErrorBlock), {
77
+ return l(), d(v, null, [
78
+ e.isRoot && h.value.length > 0 && r.value.ErrorBlock ? (l(), u(i(r.value.ErrorBlock), {
82
79
  key: 0,
83
80
  errors: h.value
84
81
  }, null, 8, ["errors"])) : g("", !0),
85
- e.layout.type === "VerticalLayout" ? (r(), d("div", {
82
+ e.layout.type === "VerticalLayout" ? (l(), d("div", {
86
83
  key: 1,
87
84
  class: F(["sz-layout sz-layout-vertical", `sz-gap-${e.layout.gap || "md"}`])
88
85
  }, [
89
- (r(!0), d(v, null, b(e.layout.elements, (o, k) => (r(), y(a, {
86
+ (l(!0), d(v, null, b(e.layout.elements, (c, k) => (l(), u(a, {
90
87
  key: k,
91
- layout: o,
92
- components: u.value,
88
+ layout: c,
89
+ components: r.value,
93
90
  "is-root": !1
94
91
  }, null, 8, ["layout", "components"]))), 128))
95
- ], 2)) : e.layout.type === "HorizontalLayout" ? (r(), d("div", {
92
+ ], 2)) : e.layout.type === "HorizontalLayout" ? (l(), d("div", {
96
93
  key: 2,
97
94
  class: F(["sz-layout sz-layout-horizontal", [`sz-gap-${e.layout.gap || "md"}`, `sz-align-${e.layout.align || "start"}`]])
98
95
  }, [
99
- (r(!0), d(v, null, b(e.layout.elements, (o, k) => (r(), y(a, {
96
+ (l(!0), d(v, null, b(e.layout.elements, (c, k) => (l(), u(a, {
100
97
  key: k,
101
- layout: o,
102
- components: u.value,
98
+ layout: c,
99
+ components: r.value,
103
100
  "is-root": !1
104
101
  }, null, 8, ["layout", "components"]))), 128))
105
- ], 2)) : e.layout.type === "Group" ? (r(), y(i(u.value.Group), {
102
+ ], 2)) : e.layout.type === "Group" ? (l(), u(i(r.value.Group), {
106
103
  key: 3,
107
104
  element: e.layout
108
105
  }, {
109
106
  default: z(() => [
110
- e.layout.layout ? (r(), y(a, {
107
+ e.layout.layout ? (l(), u(a, {
111
108
  key: 0,
112
109
  layout: e.layout.layout,
113
- components: u.value,
110
+ components: r.value,
114
111
  "is-root": !1
115
112
  }, null, 8, ["layout", "components"])) : g("", !0)
116
113
  ]),
117
114
  _: 1
118
- }, 8, ["element"])) : e.layout.type === "Tabs" ? (r(), y(i(u.value.Tabs), {
115
+ }, 8, ["element"])) : e.layout.type === "Tabs" ? (l(), u(i(r.value.Tabs), {
119
116
  key: 4,
120
117
  element: e.layout
121
118
  }, {
122
- tab: z(({ tab: o }) => [
119
+ tab: z(({ tab: c }) => [
123
120
  H(a, {
124
- layout: o.layout,
125
- components: u.value,
121
+ layout: c.layout,
122
+ components: r.value,
126
123
  "is-root": !1
127
124
  }, null, 8, ["layout", "components"])
128
125
  ]),
129
126
  _: 1
130
- }, 8, ["element"])) : e.layout.type === "Conditional" ? (r(), d(v, { key: 5 }, [
131
- w(e.layout.when) ? (r(), y(a, {
127
+ }, 8, ["element"])) : e.layout.type === "Conditional" ? (l(), d(v, { key: 5 }, [
128
+ w(e.layout.when) ? (l(), u(a, {
132
129
  key: 0,
133
130
  layout: e.layout.layout,
134
- components: u.value,
131
+ components: r.value,
135
132
  "is-root": !1
136
133
  }, null, 8, ["layout", "components"])) : g("", !0)
137
- ], 64)) : e.layout.type === "Control" ? (r(), y(i(u.value.Control), {
134
+ ], 64)) : e.layout.type === "Control" ? (l(), u(i(r.value.Control), {
138
135
  key: 6,
139
136
  element: e.layout,
140
137
  "model-value": x.value[e.layout.field_name],
@@ -142,21 +139,21 @@ const N = {
142
139
  context: f.value,
143
140
  "form-data": x.value,
144
141
  schema: V(e.layout.field_name),
145
- "onUpdate:modelValue": l[0] || (l[0] = (o) => m(O)(e.layout.field_name, o))
146
- }, null, 8, ["element", "model-value", "errors", "context", "form-data", "schema"])) : e.layout.type === "Display" ? (r(), y(i(u.value.Display), {
142
+ "onUpdate:modelValue": o[0] || (o[0] = (c) => m(O)(e.layout.field_name, c))
143
+ }, null, 8, ["element", "model-value", "errors", "context", "form-data", "schema"])) : e.layout.type === "Display" ? (l(), u(i(r.value.Display), {
147
144
  key: 7,
148
145
  element: e.layout,
149
146
  context: f.value,
150
147
  value: C(e.layout.context_path)
151
- }, null, 8, ["element", "context", "value"])) : e.layout.type === "Alert" ? (r(), y(i(u.value.Alert), {
148
+ }, null, 8, ["element", "context", "value"])) : e.layout.type === "Alert" ? (l(), u(i(r.value.Alert), {
152
149
  key: 8,
153
150
  element: e.layout,
154
151
  context: f.value,
155
152
  text: e.layout.text || C(e.layout.context_path)
156
- }, null, 8, ["element", "context", "text"])) : e.layout.type === "Label" ? (r(), y(i(u.value.Label), {
153
+ }, null, 8, ["element", "context", "text"])) : e.layout.type === "Label" ? (l(), u(i(r.value.Label), {
157
154
  key: 9,
158
155
  element: e.layout
159
- }, null, 8, ["element"])) : e.layout.type === "Divider" ? (r(), y(i(u.value.Divider), { key: 10 })) : (r(), d("div", N, " [LayoutRenderer] Unknown element type: " + M(e.layout.type), 1))
156
+ }, null, 8, ["element"])) : e.layout.type === "Divider" ? (l(), u(i(r.value.Divider), { key: 10 })) : (l(), d("div", N, " [LayoutRenderer] Unknown element type: " + M(e.layout.type), 1))
160
157
  ], 64);
161
158
  };
162
159
  }
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Create a default components registry (without Control - user must provide)
3
+ *
4
+ * @param {Object} options - Override specific components
5
+ * @returns {Object} Components registry for LayoutRenderer
6
+ */
7
+ export function createDefaultComponents(options?: Object): Object;
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Default component implementations for LayoutRenderer
3
+ *
4
+ * These are minimal, unstyled implementations that follow the contracts.
5
+ * Users can use these as-is or as reference for custom implementations.
6
+ */
7
+ export { default as AlertElement } from './AlertElement.js';
8
+ export { default as LabelElement } from './LabelElement.js';
9
+ export { default as DividerElement } from './DividerElement.js';
10
+ export { default as DisplayElement } from './DisplayElement.js';
11
+ export { default as GroupElement } from './GroupElement.js';
12
+ export { default as TabsElement } from './TabsElement.js';
13
+ export { default as ErrorBlock } from './ErrorBlock.js';
14
+ /**
15
+ * Create a default components registry (without Control - user must provide)
16
+ *
17
+ * @param {Object} options - Override specific components
18
+ * @returns {Object} Components registry for LayoutRenderer
19
+ */
20
+ export function createDefaultComponents(options = {}) {
21
+ return {
22
+ Alert: AlertElement,
23
+ Label: LabelElement,
24
+ Divider: DividerElement,
25
+ Display: DisplayElement,
26
+ Group: GroupElement,
27
+ Tabs: TabsElement,
28
+ ErrorBlock: ErrorBlock,
29
+ ...options
30
+ };
31
+ }
@@ -0,0 +1 @@
1
+ export { AlertElement, LabelElement, DividerElement, DisplayElement, GroupElement, TabsElement, ErrorBlock, createDefaultComponents } from "./defaults/index.js";
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Vue components for StateZero
3
+ */
4
+ // Main layout renderer
5
+ export { default as LayoutRenderer } from './LayoutRenderer.js';
6
+ // Default component implementations
7
+ export { AlertElement, LabelElement, DividerElement, DisplayElement, GroupElement, TabsElement, ErrorBlock, createDefaultComponents } from './defaults/index.js';
@@ -0,0 +1,2 @@
1
+ export function useQueryset(querysetFactory: any): import("vue").ComputedRef<any>;
2
+ export const querysets: Map<any, any>;
@@ -0,0 +1,44 @@
1
+ import { computed, getCurrentInstance, onBeforeUnmount } from 'vue';
2
+ import { querysetStoreRegistry } from '../../syncEngine/registries/querysetStoreRegistry.js';
3
+ import { metricRegistry } from '../../syncEngine/registries/metricRegistry.js';
4
+ import { syncManager } from '../../syncEngine/sync.js';
5
+ import { registerAdapterReset } from '../../reset.js';
6
+ import { v7 } from 'uuid';
7
+ syncManager.followAllQuerysets = false;
8
+ export const querysets = new Map(); // Map of composableId -> queryset
9
+ function updateSyncManager() {
10
+ // Get unique querysets from all active composables
11
+ const uniqueQuerysets = new Set(querysets.values());
12
+ syncManager.followedQuerysets = uniqueQuerysets;
13
+ }
14
+ export function useQueryset(querysetFactory) {
15
+ const instance = getCurrentInstance();
16
+ if (!instance) {
17
+ throw new Error('useQueryset must be called within a component setup function');
18
+ }
19
+ const composableId = v7();
20
+ let lastQueryset = null;
21
+ onBeforeUnmount(() => {
22
+ querysets.delete(composableId);
23
+ updateSyncManager();
24
+ });
25
+ return computed(() => {
26
+ const result = querysetFactory();
27
+ const original = result?.original || result;
28
+ const queryset = original?.queryset || original;
29
+ // Only update if queryset actually changed
30
+ if (lastQueryset !== queryset) {
31
+ querysets.set(composableId, queryset);
32
+ updateSyncManager();
33
+ lastQueryset = queryset;
34
+ }
35
+ return result;
36
+ });
37
+ }
38
+ registerAdapterReset(() => {
39
+ querysets.clear();
40
+ // Reset syncManager back to following all querysets since no composables are active
41
+ syncManager.followAllQuerysets = true;
42
+ syncManager.followedQuerysets.clear();
43
+ console.log("Vue composables state cleared");
44
+ });
@@ -0,0 +1,3 @@
1
+ export { useQueryset, querysets } from "./composables.js";
2
+ export { ModelAdaptor, QuerySetAdaptor, MetricAdaptor } from "./reactivity.js";
3
+ export { LayoutRenderer, AlertElement, LabelElement, DividerElement, DisplayElement, GroupElement, TabsElement, ErrorBlock, createDefaultComponents } from "./components/index.js";
@@ -0,0 +1,4 @@
1
+ export { useQueryset, querysets } from './composables.js';
2
+ export { ModelAdaptor, QuerySetAdaptor, MetricAdaptor } from './reactivity.js';
3
+ // Layout components
4
+ export { LayoutRenderer, AlertElement, LabelElement, DividerElement, DisplayElement, GroupElement, TabsElement, ErrorBlock, createDefaultComponents } from './components/index.js';