@solidxai/core-ui 0.1.8-beta.9 → 0.1.9-beta.0

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 (430) hide show
  1. package/README.md +2 -2
  2. package/dist/adapters/auth/getSession.d.ts.map +1 -1
  3. package/dist/adapters/auth/getSession.js +1 -1
  4. package/dist/adapters/auth/getSession.js.map +1 -1
  5. package/dist/adapters/auth/getSession.ts +1 -0
  6. package/dist/adapters/auth/helper.d.ts.map +1 -1
  7. package/dist/adapters/auth/helper.js +1 -0
  8. package/dist/adapters/auth/helper.js.map +1 -1
  9. package/dist/adapters/auth/helper.ts +3 -1
  10. package/dist/adapters/auth/signIn.d.ts.map +1 -1
  11. package/dist/adapters/auth/signIn.js +1 -0
  12. package/dist/adapters/auth/signIn.js.map +1 -1
  13. package/dist/adapters/auth/signIn.ts +3 -1
  14. package/dist/adapters/auth/signInWithOAuthAccessCode.d.ts +1 -0
  15. package/dist/adapters/auth/signInWithOAuthAccessCode.d.ts.map +1 -1
  16. package/dist/adapters/auth/signInWithOAuthAccessCode.js +10 -9
  17. package/dist/adapters/auth/signInWithOAuthAccessCode.js.map +1 -1
  18. package/dist/adapters/auth/signInWithOAuthAccessCode.ts +6 -3
  19. package/dist/adapters/auth/signOut.d.ts.map +1 -1
  20. package/dist/adapters/auth/signOut.js +7 -1
  21. package/dist/adapters/auth/signOut.js.map +1 -1
  22. package/dist/adapters/auth/signOut.ts +7 -1
  23. package/dist/adapters/auth/types.d.ts +1 -0
  24. package/dist/adapters/auth/types.d.ts.map +1 -1
  25. package/dist/adapters/auth/types.js.map +1 -1
  26. package/dist/adapters/auth/types.ts +1 -0
  27. package/dist/components/auth/AuthLayout.d.ts +1 -1
  28. package/dist/components/auth/AuthLayout.d.ts.map +1 -1
  29. package/dist/components/auth/AuthLayout.js +87 -18
  30. package/dist/components/auth/AuthLayout.js.map +1 -1
  31. package/dist/components/auth/AuthLayout.tsx +35 -11
  32. package/dist/components/auth/AuthSettingsContext.d.ts +10 -0
  33. package/dist/components/auth/AuthSettingsContext.d.ts.map +1 -0
  34. package/dist/components/auth/AuthSettingsContext.js +49 -0
  35. package/dist/components/auth/AuthSettingsContext.js.map +1 -0
  36. package/dist/components/auth/AuthSettingsContext.tsx +19 -0
  37. package/dist/components/auth/FacebookAuthChecking.d.ts +2 -0
  38. package/dist/components/auth/FacebookAuthChecking.d.ts.map +1 -0
  39. package/dist/components/auth/FacebookAuthChecking.js +98 -0
  40. package/dist/components/auth/FacebookAuthChecking.js.map +1 -0
  41. package/dist/components/auth/FacebookAuthChecking.tsx +59 -0
  42. package/dist/components/auth/ForgotPasswordThankYou.d.ts.map +1 -1
  43. package/dist/components/auth/ForgotPasswordThankYou.js +2 -6
  44. package/dist/components/auth/ForgotPasswordThankYou.js.map +1 -1
  45. package/dist/components/auth/ForgotPasswordThankYou.tsx +2 -7
  46. package/dist/components/auth/GoogleAuthChecking.d.ts.map +1 -1
  47. package/dist/components/auth/GoogleAuthChecking.js +10 -16
  48. package/dist/components/auth/GoogleAuthChecking.js.map +1 -1
  49. package/dist/components/auth/GoogleAuthChecking.tsx +2 -7
  50. package/dist/components/auth/MicrosoftAuthChecking.d.ts +2 -0
  51. package/dist/components/auth/MicrosoftAuthChecking.d.ts.map +1 -0
  52. package/dist/components/auth/MicrosoftAuthChecking.js +98 -0
  53. package/dist/components/auth/MicrosoftAuthChecking.js.map +1 -0
  54. package/dist/components/auth/MicrosoftAuthChecking.tsx +59 -0
  55. package/dist/components/auth/SolidForgotPassword.d.ts.map +1 -1
  56. package/dist/components/auth/SolidForgotPassword.js +2 -6
  57. package/dist/components/auth/SolidForgotPassword.js.map +1 -1
  58. package/dist/components/auth/SolidForgotPassword.tsx +2 -7
  59. package/dist/components/auth/SolidInitialLoginOtp.d.ts.map +1 -1
  60. package/dist/components/auth/SolidInitialLoginOtp.js +13 -22
  61. package/dist/components/auth/SolidInitialLoginOtp.js.map +1 -1
  62. package/dist/components/auth/SolidInitialLoginOtp.tsx +4 -12
  63. package/dist/components/auth/SolidInitiateRegisterOtp.d.ts.map +1 -1
  64. package/dist/components/auth/SolidInitiateRegisterOtp.js +27 -14
  65. package/dist/components/auth/SolidInitiateRegisterOtp.js.map +1 -1
  66. package/dist/components/auth/SolidInitiateRegisterOtp.tsx +27 -15
  67. package/dist/components/auth/SolidLogin.d.ts.map +1 -1
  68. package/dist/components/auth/SolidLogin.js +18 -23
  69. package/dist/components/auth/SolidLogin.js.map +1 -1
  70. package/dist/components/auth/SolidLogin.tsx +18 -15
  71. package/dist/components/auth/SolidRegister.d.ts.map +1 -1
  72. package/dist/components/auth/SolidRegister.js +50 -22
  73. package/dist/components/auth/SolidRegister.js.map +1 -1
  74. package/dist/components/auth/SolidRegister.tsx +89 -36
  75. package/dist/components/auth/SolidResetPassword.d.ts.map +1 -1
  76. package/dist/components/auth/SolidResetPassword.js +2 -6
  77. package/dist/components/auth/SolidResetPassword.js.map +1 -1
  78. package/dist/components/auth/SolidResetPassword.tsx +2 -6
  79. package/dist/components/common/AuthBanner.js.map +1 -1
  80. package/dist/components/common/GeneralSettings.d.ts.map +1 -1
  81. package/dist/components/common/GeneralSettings.js +235 -151
  82. package/dist/components/common/GeneralSettings.js.map +1 -1
  83. package/dist/components/common/GeneralSettings.tsx +1109 -776
  84. package/dist/components/common/SettingsComponent.d.ts +2 -0
  85. package/dist/components/common/SettingsComponent.d.ts.map +1 -0
  86. package/dist/components/common/SettingsComponent.js +351 -0
  87. package/dist/components/common/SettingsComponent.js.map +1 -0
  88. package/dist/components/common/SettingsComponent.module.css +421 -0
  89. package/dist/components/common/SettingsComponent.tsx +582 -0
  90. package/dist/components/common/SocialMediaLogin.d.ts +8 -1
  91. package/dist/components/common/SocialMediaLogin.d.ts.map +1 -1
  92. package/dist/components/common/SocialMediaLogin.js +6 -13
  93. package/dist/components/common/SocialMediaLogin.js.map +1 -1
  94. package/dist/components/common/SocialMediaLogin.tsx +120 -58
  95. package/dist/components/common/SolidExport.d.ts.map +1 -1
  96. package/dist/components/common/SolidExport.js +1 -1
  97. package/dist/components/common/SolidExport.js.map +1 -1
  98. package/dist/components/common/SolidExport.tsx +2 -1
  99. package/dist/components/common/SolidFormStepper.d.ts.map +1 -1
  100. package/dist/components/common/SolidFormStepper.js +2 -1
  101. package/dist/components/common/SolidFormStepper.js.map +1 -1
  102. package/dist/components/common/SolidFormStepper.tsx +2 -1
  103. package/dist/components/common/solid-export.css +26 -0
  104. package/dist/components/core/card/SolidCardView.d.ts.map +1 -1
  105. package/dist/components/core/card/SolidCardView.js +24 -25
  106. package/dist/components/core/card/SolidCardView.js.map +1 -1
  107. package/dist/components/core/card/SolidCardView.tsx +22 -27
  108. package/dist/components/core/card/SolidCardViewConfigure.js +1 -1
  109. package/dist/components/core/card/SolidCardViewConfigure.js.map +1 -1
  110. package/dist/components/core/card/SolidCardViewConfigure.tsx +1 -1
  111. package/dist/components/core/chatter/SolidChatter.d.ts.map +1 -1
  112. package/dist/components/core/chatter/SolidChatter.js +39 -9
  113. package/dist/components/core/chatter/SolidChatter.js.map +1 -1
  114. package/dist/components/core/chatter/SolidChatter.tsx +42 -7
  115. package/dist/components/core/chatter/SolidChatterAuditMessage.d.ts.map +1 -1
  116. package/dist/components/core/chatter/SolidChatterAuditMessage.js +19 -1
  117. package/dist/components/core/chatter/SolidChatterAuditMessage.js.map +1 -1
  118. package/dist/components/core/chatter/SolidChatterAuditMessage.tsx +22 -1
  119. package/dist/components/core/chatter/SolidChatterMessageBox.d.ts +3 -0
  120. package/dist/components/core/chatter/SolidChatterMessageBox.d.ts.map +1 -1
  121. package/dist/components/core/chatter/SolidChatterMessageBox.js +68 -4
  122. package/dist/components/core/chatter/SolidChatterMessageBox.js.map +1 -1
  123. package/dist/components/core/chatter/SolidChatterMessageBox.tsx +45 -3
  124. package/dist/components/core/chatter/chatter.module.css +0 -3
  125. package/dist/components/core/common/SolidAccountSettings/SolidAccountSettings.d.ts.map +1 -1
  126. package/dist/components/core/common/SolidAccountSettings/SolidAccountSettings.js +3 -1
  127. package/dist/components/core/common/SolidAccountSettings/SolidAccountSettings.js.map +1 -1
  128. package/dist/components/core/common/SolidAccountSettings/SolidAccountSettings.module.css +149 -0
  129. package/dist/components/core/common/SolidAccountSettings/SolidAccountSettings.tsx +3 -1
  130. package/dist/components/core/common/SolidAccountSettings/SolidNotifications.d.ts.map +1 -1
  131. package/dist/components/core/common/SolidAccountSettings/SolidNotifications.js +9 -8
  132. package/dist/components/core/common/SolidAccountSettings/SolidNotifications.js.map +1 -1
  133. package/dist/components/core/common/SolidAccountSettings/SolidNotifications.tsx +4 -2
  134. package/dist/components/core/common/SolidAccountSettings/SolidVersionInfo.d.ts.map +1 -1
  135. package/dist/components/core/common/SolidAccountSettings/SolidVersionInfo.js +21 -4
  136. package/dist/components/core/common/SolidAccountSettings/SolidVersionInfo.js.map +1 -1
  137. package/dist/components/core/common/SolidAccountSettings/SolidVersionInfo.tsx +128 -1
  138. package/dist/components/core/common/SolidGlobalSearchElement.js +1 -1
  139. package/dist/components/core/common/SolidGlobalSearchElement.js.map +1 -1
  140. package/dist/components/core/common/SolidGlobalSearchElement.tsx +1 -1
  141. package/dist/components/core/extension/solid-core/scheduled-job/scheduleFrequencyOnFieldChangeHandler.d.ts +7 -0
  142. package/dist/components/core/extension/solid-core/scheduled-job/scheduleFrequencyOnFieldChangeHandler.d.ts.map +1 -0
  143. package/dist/components/core/extension/solid-core/scheduled-job/scheduleFrequencyOnFieldChangeHandler.js +75 -0
  144. package/dist/components/core/extension/solid-core/scheduled-job/scheduleFrequencyOnFieldChangeHandler.js.map +1 -0
  145. package/dist/components/core/extension/solid-core/scheduled-job/scheduleFrequencyOnFieldChangeHandler.ts +45 -0
  146. package/dist/components/core/extension/solid-core/settings/solidXGenAiCodeBuilderConfigWidget.d.ts +3 -0
  147. package/dist/components/core/extension/solid-core/settings/solidXGenAiCodeBuilderConfigWidget.d.ts.map +1 -0
  148. package/dist/components/core/extension/solid-core/settings/solidXGenAiCodeBuilderConfigWidget.js +81 -0
  149. package/dist/components/core/extension/solid-core/settings/solidXGenAiCodeBuilderConfigWidget.js.map +1 -0
  150. package/dist/components/core/extension/solid-core/settings/solidXGenAiCodeBuilderConfigWidget.tsx +114 -0
  151. package/dist/components/core/form/SolidFormActionHeader.d.ts +1 -1
  152. package/dist/components/core/form/SolidFormActionHeader.d.ts.map +1 -1
  153. package/dist/components/core/form/SolidFormActionHeader.js +5 -3
  154. package/dist/components/core/form/SolidFormActionHeader.js.map +1 -1
  155. package/dist/components/core/form/SolidFormActionHeader.tsx +27 -1
  156. package/dist/components/core/form/SolidFormLayouts.js +1 -1
  157. package/dist/components/core/form/SolidFormLayouts.js.map +1 -1
  158. package/dist/components/core/form/SolidFormLayouts.tsx +1 -1
  159. package/dist/components/core/form/SolidFormView.d.ts.map +1 -1
  160. package/dist/components/core/form/SolidFormView.js +117 -27
  161. package/dist/components/core/form/SolidFormView.js.map +1 -1
  162. package/dist/components/core/form/SolidFormView.tsx +107 -9
  163. package/dist/components/core/form/fields/SolidComputedField.d.ts +25 -0
  164. package/dist/components/core/form/fields/SolidComputedField.d.ts.map +1 -0
  165. package/dist/components/core/form/fields/SolidComputedField.js +128 -0
  166. package/dist/components/core/form/fields/SolidComputedField.js.map +1 -0
  167. package/dist/components/core/form/fields/SolidComputedField.tsx +134 -0
  168. package/dist/components/core/form/fields/SolidDateTimeField.js +1 -1
  169. package/dist/components/core/form/fields/SolidDateTimeField.js.map +1 -1
  170. package/dist/components/core/form/fields/SolidDateTimeField.tsx +1 -1
  171. package/dist/components/core/form/fields/SolidSelectionDynamicField.d.ts.map +1 -1
  172. package/dist/components/core/form/fields/SolidSelectionDynamicField.js +35 -24
  173. package/dist/components/core/form/fields/SolidSelectionDynamicField.js.map +1 -1
  174. package/dist/components/core/form/fields/SolidSelectionDynamicField.tsx +30 -14
  175. package/dist/components/core/form/fields/SolidSelectionStaticField.d.ts.map +1 -1
  176. package/dist/components/core/form/fields/SolidSelectionStaticField.js +29 -28
  177. package/dist/components/core/form/fields/SolidSelectionStaticField.js.map +1 -1
  178. package/dist/components/core/form/fields/SolidSelectionStaticField.tsx +17 -12
  179. package/dist/components/core/form/fields/SolidTimeField.js +1 -1
  180. package/dist/components/core/form/fields/SolidTimeField.js.map +1 -1
  181. package/dist/components/core/form/fields/SolidTimeField.tsx +1 -1
  182. package/dist/components/core/form/fields/relations/widgets/helpers/InlineRelationEntityDialog.d.ts.map +1 -1
  183. package/dist/components/core/form/fields/relations/widgets/helpers/InlineRelationEntityDialog.js +3 -3
  184. package/dist/components/core/form/fields/relations/widgets/helpers/InlineRelationEntityDialog.js.map +1 -1
  185. package/dist/components/core/form/fields/relations/widgets/helpers/InlineRelationEntityDialog.tsx +0 -5
  186. package/dist/components/core/kanban/KanbanBoard.js +1 -1
  187. package/dist/components/core/kanban/KanbanBoard.js.map +1 -1
  188. package/dist/components/core/kanban/KanbanBoard.tsx +1 -1
  189. package/dist/components/core/kanban/SolidKanbanView.d.ts.map +1 -1
  190. package/dist/components/core/kanban/SolidKanbanView.js +216 -102
  191. package/dist/components/core/kanban/SolidKanbanView.js.map +1 -1
  192. package/dist/components/core/kanban/SolidKanbanView.tsx +204 -72
  193. package/dist/components/core/kanban/SolidKanbanViewConfigure.js +1 -1
  194. package/dist/components/core/kanban/SolidKanbanViewConfigure.js.map +1 -1
  195. package/dist/components/core/kanban/SolidKanbanViewConfigure.tsx +1 -1
  196. package/dist/components/core/kanban/SolidManyToOneFilterElement.d.ts.map +1 -1
  197. package/dist/components/core/kanban/SolidManyToOneFilterElement.js.map +1 -1
  198. package/dist/components/core/kanban/SolidManyToOneFilterElement.tsx +1 -2
  199. package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.d.ts.map +1 -1
  200. package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.js +2 -2
  201. package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.js.map +1 -1
  202. package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.tsx +21 -10
  203. package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.d.ts.map +1 -1
  204. package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.js +2 -2
  205. package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.js.map +1 -1
  206. package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.tsx +18 -10
  207. package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.d.ts.map +1 -1
  208. package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.js +3 -6
  209. package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.js.map +1 -1
  210. package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.tsx +30 -24
  211. package/dist/components/core/kanban/kanban-fields/relations/SolidRelationManyToOneKanbanField.js.map +1 -1
  212. package/dist/components/core/kanban/kanban-fields/relations/SolidRelationManyToOneKanbanField.tsx +2 -2
  213. package/dist/components/core/list/SolidDataTable.d.ts.map +1 -1
  214. package/dist/components/core/list/SolidDataTable.js +6 -5
  215. package/dist/components/core/list/SolidDataTable.js.map +1 -1
  216. package/dist/components/core/list/SolidDataTable.tsx +6 -5
  217. package/dist/components/core/list/SolidDataTablePagination.d.ts +15 -0
  218. package/dist/components/core/list/SolidDataTablePagination.d.ts.map +1 -0
  219. package/dist/components/core/list/SolidDataTablePagination.js +22 -0
  220. package/dist/components/core/list/SolidDataTablePagination.js.map +1 -0
  221. package/dist/components/core/list/SolidDataTablePagination.tsx +71 -0
  222. package/dist/components/core/list/SolidEmptyListViewPlaceholder.d.ts.map +1 -1
  223. package/dist/components/core/list/SolidEmptyListViewPlaceholder.js +3 -3
  224. package/dist/components/core/list/SolidEmptyListViewPlaceholder.js.map +1 -1
  225. package/dist/components/core/list/SolidEmptyListViewPlaceholder.tsx +1 -0
  226. package/dist/components/core/list/SolidListView.d.ts.map +1 -1
  227. package/dist/components/core/list/SolidListView.js +60 -63
  228. package/dist/components/core/list/SolidListView.js.map +1 -1
  229. package/dist/components/core/list/SolidListView.tsx +43 -48
  230. package/dist/components/core/list/SolidListViewConfigure.js +1 -1
  231. package/dist/components/core/list/SolidListViewConfigure.js.map +1 -1
  232. package/dist/components/core/list/SolidListViewConfigure.tsx +1 -1
  233. package/dist/components/core/list/SolidListViewRowActionsMenu.js +2 -2
  234. package/dist/components/core/list/SolidListViewRowActionsMenu.js.map +1 -1
  235. package/dist/components/core/list/SolidListViewRowActionsMenu.tsx +2 -2
  236. package/dist/components/core/list/SolidListViewRowButtonContextMenu.d.ts +1 -1
  237. package/dist/components/core/list/SolidListViewRowButtonContextMenu.d.ts.map +1 -1
  238. package/dist/components/core/list/SolidListViewRowButtonContextMenu.js +6 -7
  239. package/dist/components/core/list/SolidListViewRowButtonContextMenu.js.map +1 -1
  240. package/dist/components/core/list/SolidListViewRowButtonContextMenu.tsx +9 -10
  241. package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.js +1 -1
  242. package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.js.map +1 -1
  243. package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.tsx +1 -1
  244. package/dist/components/layout/user-profile-menu.d.ts.map +1 -1
  245. package/dist/components/layout/user-profile-menu.js +15 -14
  246. package/dist/components/layout/user-profile-menu.js.map +1 -1
  247. package/dist/components/layout/user-profile-menu.tsx +8 -6
  248. package/dist/components/shad-cn-ui/SolidAutocomplete.d.ts.map +1 -1
  249. package/dist/components/shad-cn-ui/SolidAutocomplete.js +9 -1
  250. package/dist/components/shad-cn-ui/SolidAutocomplete.js.map +1 -1
  251. package/dist/components/shad-cn-ui/SolidAutocomplete.tsx +10 -1
  252. package/dist/components/shad-cn-ui/SolidButton.d.ts +14 -15
  253. package/dist/components/shad-cn-ui/SolidButton.d.ts.map +1 -1
  254. package/dist/components/shad-cn-ui/SolidButton.js +13 -3
  255. package/dist/components/shad-cn-ui/SolidButton.js.map +1 -1
  256. package/dist/components/shad-cn-ui/SolidButton.tsx +24 -4
  257. package/dist/components/shad-cn-ui/SolidDatePicker.d.ts.map +1 -1
  258. package/dist/components/shad-cn-ui/SolidDatePicker.js +1 -1
  259. package/dist/components/shad-cn-ui/SolidDatePicker.js.map +1 -1
  260. package/dist/components/shad-cn-ui/SolidDatePicker.tsx +2 -0
  261. package/dist/components/shad-cn-ui/SolidDialog.d.ts +1 -1
  262. package/dist/components/shad-cn-ui/SolidDialog.d.ts.map +1 -1
  263. package/dist/components/shad-cn-ui/SolidDialog.js.map +1 -1
  264. package/dist/components/shad-cn-ui/SolidDialog.tsx +1 -1
  265. package/dist/components/shad-cn-ui/SolidIcon.d.ts +2 -2
  266. package/dist/components/shad-cn-ui/SolidIcon.d.ts.map +1 -1
  267. package/dist/components/shad-cn-ui/SolidIcon.js +3 -4
  268. package/dist/components/shad-cn-ui/SolidIcon.js.map +1 -1
  269. package/dist/components/shad-cn-ui/SolidIcon.tsx +12 -15
  270. package/dist/components/shad-cn-ui/SolidRichTextEditor.d.ts.map +1 -1
  271. package/dist/components/shad-cn-ui/SolidRichTextEditor.js +9 -1
  272. package/dist/components/shad-cn-ui/SolidRichTextEditor.js.map +1 -1
  273. package/dist/components/shad-cn-ui/SolidRichTextEditor.tsx +8 -1
  274. package/dist/components/shad-cn-ui/SolidTabs.d.ts +2 -1
  275. package/dist/components/shad-cn-ui/SolidTabs.d.ts.map +1 -1
  276. package/dist/components/shad-cn-ui/SolidTabs.js +2 -2
  277. package/dist/components/shad-cn-ui/SolidTabs.js.map +1 -1
  278. package/dist/components/shad-cn-ui/SolidTabs.tsx +12 -1
  279. package/dist/components/solid-ui/SolidButton.d.ts +14 -0
  280. package/dist/components/solid-ui/SolidButton.d.ts.map +1 -0
  281. package/dist/components/solid-ui/SolidButton.js +36 -0
  282. package/dist/components/solid-ui/SolidButton.js.map +1 -0
  283. package/dist/components/solid-ui/SolidButton.tsx +54 -0
  284. package/dist/components/solid-ui/SolidTabs.d.ts +18 -0
  285. package/dist/components/solid-ui/SolidTabs.d.ts.map +1 -0
  286. package/dist/components/solid-ui/SolidTabs.js +22 -0
  287. package/dist/components/solid-ui/SolidTabs.js.map +1 -0
  288. package/dist/components/solid-ui/SolidTabs.tsx +73 -0
  289. package/dist/components/solid-ui/index.d.ts +3 -0
  290. package/dist/components/solid-ui/index.d.ts.map +1 -0
  291. package/dist/components/solid-ui/index.js +3 -0
  292. package/dist/components/solid-ui/index.js.map +1 -0
  293. package/dist/components/solid-ui/index.ts +2 -0
  294. package/dist/helpers/hydrateRelationRules.js +1 -1
  295. package/dist/helpers/hydrateRelationRules.js.map +1 -1
  296. package/dist/helpers/hydrateRelationRules.ts +1 -1
  297. package/dist/helpers/permissions.js +2 -2
  298. package/dist/helpers/permissions.js.map +1 -1
  299. package/dist/helpers/permissions.ts +2 -2
  300. package/dist/helpers/registry.d.ts +2 -2
  301. package/dist/helpers/registry.d.ts.map +1 -1
  302. package/dist/helpers/registry.js +6 -0
  303. package/dist/helpers/registry.js.map +1 -1
  304. package/dist/helpers/registry.ts +9 -2
  305. package/dist/helpers/settingsPayload.d.ts +32 -0
  306. package/dist/helpers/settingsPayload.d.ts.map +1 -0
  307. package/dist/helpers/settingsPayload.js +72 -0
  308. package/dist/helpers/settingsPayload.js.map +1 -0
  309. package/dist/helpers/settingsPayload.ts +125 -0
  310. package/dist/index.d.ts +5 -0
  311. package/dist/index.d.ts.map +1 -1
  312. package/dist/index.js +5 -0
  313. package/dist/index.js.map +1 -1
  314. package/dist/index.ts +5 -0
  315. package/dist/redux/api/solidChatterMessageApi.d.ts +2 -1
  316. package/dist/redux/api/solidChatterMessageApi.d.ts.map +1 -1
  317. package/dist/redux/api/solidChatterMessageApi.js +11 -1
  318. package/dist/redux/api/solidChatterMessageApi.js.map +1 -1
  319. package/dist/redux/api/solidChatterMessageApi.ts +10 -1
  320. package/dist/redux/api/solidEntityApi.d.ts.map +1 -1
  321. package/dist/redux/api/solidEntityApi.js +14 -1
  322. package/dist/redux/api/solidEntityApi.js.map +1 -1
  323. package/dist/redux/api/solidEntityApi.tsx +17 -1
  324. package/dist/redux/store/createSolidStore.d.ts +1 -1
  325. package/dist/redux/store/createSolidStore.d.ts.map +1 -1
  326. package/dist/redux/store/createSolidStore.js +20 -11
  327. package/dist/redux/store/createSolidStore.js.map +1 -1
  328. package/dist/redux/store/createSolidStore.ts +20 -11
  329. package/dist/redux/store/defaultStoreConfig.d.ts +1 -0
  330. package/dist/redux/store/defaultStoreConfig.d.ts.map +1 -1
  331. package/dist/redux/store/dynamicEntityApiMiddleware.d.ts +10 -0
  332. package/dist/redux/store/dynamicEntityApiMiddleware.d.ts.map +1 -0
  333. package/dist/redux/store/dynamicEntityApiMiddleware.js +44 -0
  334. package/dist/redux/store/dynamicEntityApiMiddleware.js.map +1 -0
  335. package/dist/redux/store/dynamicEntityApiMiddleware.ts +58 -0
  336. package/dist/redux/store/dynamicReducerManager.d.ts +10 -0
  337. package/dist/redux/store/dynamicReducerManager.d.ts.map +1 -0
  338. package/dist/redux/store/dynamicReducerManager.js +51 -0
  339. package/dist/redux/store/dynamicReducerManager.js.map +1 -0
  340. package/dist/redux/store/dynamicReducerManager.ts +51 -0
  341. package/dist/redux/store/solidEntityApiPool.d.ts +31 -0
  342. package/dist/redux/store/solidEntityApiPool.d.ts.map +1 -0
  343. package/dist/redux/store/solidEntityApiPool.js +123 -0
  344. package/dist/redux/store/solidEntityApiPool.js.map +1 -0
  345. package/dist/redux/store/solidEntityApiPool.ts +167 -0
  346. package/dist/resources/globals.css +20 -6
  347. package/dist/resources/shadcn-base.css +248 -87
  348. package/dist/resources/solid-responsive.css +22 -4
  349. package/dist/routes/AppEventListener.js +1 -1
  350. package/dist/routes/AppEventListener.js.map +1 -1
  351. package/dist/routes/AppEventListener.tsx +1 -1
  352. package/dist/routes/pages/admin/core/CardPage.js +1 -1
  353. package/dist/routes/pages/admin/core/CardPage.js.map +1 -1
  354. package/dist/routes/pages/admin/core/CardPage.tsx +1 -1
  355. package/dist/routes/pages/admin/core/DiagnosticsPage.d.ts +2 -0
  356. package/dist/routes/pages/admin/core/DiagnosticsPage.d.ts.map +1 -0
  357. package/dist/routes/pages/admin/core/DiagnosticsPage.js +48 -0
  358. package/dist/routes/pages/admin/core/DiagnosticsPage.js.map +1 -0
  359. package/dist/routes/pages/admin/core/DiagnosticsPage.tsx +167 -0
  360. package/dist/routes/pages/admin/core/FormPage.js +1 -1
  361. package/dist/routes/pages/admin/core/FormPage.js.map +1 -1
  362. package/dist/routes/pages/admin/core/FormPage.tsx +1 -1
  363. package/dist/routes/pages/admin/core/KanbanPage.js +1 -1
  364. package/dist/routes/pages/admin/core/KanbanPage.js.map +1 -1
  365. package/dist/routes/pages/admin/core/KanbanPage.tsx +1 -1
  366. package/dist/routes/pages/admin/core/ListPage.js +1 -1
  367. package/dist/routes/pages/admin/core/ListPage.js.map +1 -1
  368. package/dist/routes/pages/admin/core/ListPage.tsx +1 -1
  369. package/dist/routes/pages/admin/core/SettingsPage.js +2 -2
  370. package/dist/routes/pages/admin/core/SettingsPage.js.map +1 -1
  371. package/dist/routes/pages/admin/core/SettingsPage.tsx +2 -2
  372. package/dist/routes/pages/admin/core/TreePage.js +1 -1
  373. package/dist/routes/pages/admin/core/TreePage.js.map +1 -1
  374. package/dist/routes/pages/admin/core/TreePage.tsx +1 -1
  375. package/dist/routes/pages/auth/InitiateFacebookOauthPage.d.ts +2 -0
  376. package/dist/routes/pages/auth/InitiateFacebookOauthPage.d.ts.map +1 -0
  377. package/dist/routes/pages/auth/InitiateFacebookOauthPage.js +6 -0
  378. package/dist/routes/pages/auth/InitiateFacebookOauthPage.js.map +1 -0
  379. package/dist/routes/pages/auth/InitiateFacebookOauthPage.tsx +5 -0
  380. package/dist/routes/pages/auth/InitiateMicrosoftOauthPage.d.ts +2 -0
  381. package/dist/routes/pages/auth/InitiateMicrosoftOauthPage.d.ts.map +1 -0
  382. package/dist/routes/pages/auth/InitiateMicrosoftOauthPage.js +6 -0
  383. package/dist/routes/pages/auth/InitiateMicrosoftOauthPage.js.map +1 -0
  384. package/dist/routes/pages/auth/InitiateMicrosoftOauthPage.tsx +5 -0
  385. package/dist/routes/solidRoutes.d.ts.map +1 -1
  386. package/dist/routes/solidRoutes.js +5 -1
  387. package/dist/routes/solidRoutes.js.map +1 -1
  388. package/dist/routes/solidRoutes.tsx +5 -1
  389. package/dist/routes/types.d.ts +1 -1
  390. package/dist/routes/types.d.ts.map +1 -1
  391. package/dist/routes/types.js.map +1 -1
  392. package/dist/routes/types.ts +2 -0
  393. package/dist/types/extension-registry.d.ts +1 -0
  394. package/dist/types/extension-registry.d.ts.map +1 -1
  395. package/dist/types/extension-registry.js +1 -0
  396. package/dist/types/extension-registry.js.map +1 -1
  397. package/dist/types/extension-registry.ts +1 -0
  398. package/dist/types/index.d.ts +2 -0
  399. package/dist/types/solid-core.d.ts +11 -0
  400. package/package.json +1 -2
  401. package/dist/components/auth/SolidOTPVerify.d.ts +0 -3
  402. package/dist/components/auth/SolidOTPVerify.d.ts.map +0 -1
  403. package/dist/components/auth/SolidOTPVerify.js +0 -67
  404. package/dist/components/auth/SolidOTPVerify.js.map +0 -1
  405. package/dist/components/auth/SolidOTPVerify.tsx +0 -133
  406. package/dist/components/core/common/LoadDynamicJsxComponent.d.ts +0 -2
  407. package/dist/components/core/common/LoadDynamicJsxComponent.d.ts.map +0 -1
  408. package/dist/components/core/common/LoadDynamicJsxComponent.js +0 -50
  409. package/dist/components/core/common/LoadDynamicJsxComponent.js.map +0 -1
  410. package/dist/components/core/common/LoadDynamicJsxComponent.tsx +0 -70
  411. package/dist/nextAuth/authProviders.d.ts +0 -4
  412. package/dist/nextAuth/authProviders.d.ts.map +0 -1
  413. package/dist/nextAuth/authProviders.js +0 -198
  414. package/dist/nextAuth/authProviders.js.map +0 -1
  415. package/dist/nextAuth/authProviders.tsx +0 -232
  416. package/dist/nextAuth/handleLogout.d.ts +0 -2
  417. package/dist/nextAuth/handleLogout.d.ts.map +0 -1
  418. package/dist/nextAuth/handleLogout.js +0 -36
  419. package/dist/nextAuth/handleLogout.js.map +0 -1
  420. package/dist/nextAuth/handleLogout.tsx +0 -39
  421. package/dist/nextAuth/refreshAccessToken.d.ts +0 -2
  422. package/dist/nextAuth/refreshAccessToken.d.ts.map +0 -1
  423. package/dist/nextAuth/refreshAccessToken.js +0 -24
  424. package/dist/nextAuth/refreshAccessToken.js.map +0 -1
  425. package/dist/nextAuth/refreshAccessToken.tsx +0 -28
  426. package/dist/redux/features/settingsSlice.d.ts +0 -20
  427. package/dist/redux/features/settingsSlice.d.ts.map +0 -1
  428. package/dist/redux/features/settingsSlice.js +0 -39
  429. package/dist/redux/features/settingsSlice.js.map +0 -1
  430. package/dist/redux/features/settingsSlice.ts +0 -60
@@ -69,6 +69,7 @@ export declare const solidApiSlices: (import("@reduxjs/toolkit/query").Api<impor
69
69
  }, "importTransactionApi", never, typeof import("@reduxjs/toolkit/query").coreModuleName | typeof import("@reduxjs/toolkit/query/react").reactHooksModuleName> | import("@reduxjs/toolkit/query").Api<import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@reduxjs/toolkit/query").FetchArgs, unknown, import("@reduxjs/toolkit/query").FetchBaseQueryError, {}, import("@reduxjs/toolkit/query").FetchBaseQueryMeta>, {
70
70
  getchatterMessage: import("@reduxjs/toolkit/query").QueryDefinition<any, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@reduxjs/toolkit/query").FetchArgs, unknown, import("@reduxjs/toolkit/query").FetchBaseQueryError, {}, import("@reduxjs/toolkit/query").FetchBaseQueryMeta>, never, any, "solidChatterMessageApi">;
71
71
  createChatterMessage: import("@reduxjs/toolkit/query").MutationDefinition<any, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@reduxjs/toolkit/query").FetchArgs, unknown, import("@reduxjs/toolkit/query").FetchBaseQueryError, {}, import("@reduxjs/toolkit/query").FetchBaseQueryMeta>, never, any, "solidChatterMessageApi">;
72
+ patchChatterMessage: import("@reduxjs/toolkit/query").MutationDefinition<any, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@reduxjs/toolkit/query").FetchArgs, unknown, import("@reduxjs/toolkit/query").FetchBaseQueryError, {}, import("@reduxjs/toolkit/query").FetchBaseQueryMeta>, never, any, "solidChatterMessageApi">;
72
73
  }, "solidChatterMessageApi", never, typeof import("@reduxjs/toolkit/query").coreModuleName | typeof import("@reduxjs/toolkit/query/react").reactHooksModuleName> | import("@reduxjs/toolkit/query").Api<import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@reduxjs/toolkit/query").FetchArgs, unknown, import("@reduxjs/toolkit/query").FetchBaseQueryError, {}, import("@reduxjs/toolkit/query").FetchBaseQueryMeta>, {
73
74
  createSolidSettings: import("@reduxjs/toolkit/query").MutationDefinition<any, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@reduxjs/toolkit/query").FetchArgs, unknown, import("@reduxjs/toolkit/query").FetchBaseQueryError, {}, import("@reduxjs/toolkit/query").FetchBaseQueryMeta>, never, any, "solidSettingsApi">;
74
75
  getSolidSettings: import("@reduxjs/toolkit/query").QueryDefinition<any, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@reduxjs/toolkit/query").FetchArgs, unknown, import("@reduxjs/toolkit/query").FetchBaseQueryError, {}, import("@reduxjs/toolkit/query").FetchBaseQueryMeta>, never, any, "solidSettingsApi">;
@@ -1 +1 @@
1
- {"version":3,"file":"defaultStoreConfig.d.ts","sourceRoot":"","sources":["../../../src/redux/store/defaultStoreConfig.ts"],"names":[],"mappings":"AA+BA,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yJAsB1B,CAAC;AAGF,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;CASzB,CAAC"}
1
+ {"version":3,"file":"defaultStoreConfig.d.ts","sourceRoot":"","sources":["../../../src/redux/store/defaultStoreConfig.ts"],"names":[],"mappings":"AA+BA,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yJAsB1B,CAAC;AAGF,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;CASzB,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { Middleware } from "@reduxjs/toolkit";
2
+ export type DynamicEntityApiMiddlewareManager = {
3
+ middleware: Middleware;
4
+ add: (key: string, middleware: Middleware) => boolean;
5
+ remove: (key: string) => boolean;
6
+ has: (key: string) => boolean;
7
+ keys: () => string[];
8
+ };
9
+ export declare function createDynamicEntityApiMiddlewareManager(): DynamicEntityApiMiddlewareManager;
10
+ //# sourceMappingURL=dynamicEntityApiMiddleware.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dynamicEntityApiMiddleware.d.ts","sourceRoot":"","sources":["../../../src/redux/store/dynamicEntityApiMiddleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAiB,MAAM,kBAAkB,CAAC;AAIlE,MAAM,MAAM,iCAAiC,GAAG;IAC9C,UAAU,EAAE,UAAU,CAAC;IACvB,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,KAAK,OAAO,CAAC;IACtD,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;IACjC,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;IAC9B,IAAI,EAAE,MAAM,MAAM,EAAE,CAAC;CACtB,CAAC;AAEF,wBAAgB,uCAAuC,IAAI,iCAAiC,CA6C3F"}
@@ -0,0 +1,44 @@
1
+ export function createDynamicEntityApiMiddlewareManager() {
2
+ var middlewares = new Map();
3
+ var middlewareApi = null;
4
+ var handlers = new Map();
5
+ var manager = {
6
+ middleware: function (api) {
7
+ middlewareApi = api;
8
+ middlewares.forEach(function (middleware, key) {
9
+ if (!handlers.has(key)) {
10
+ handlers.set(key, middleware(api));
11
+ }
12
+ });
13
+ return function (next) { return function (action) {
14
+ var chain = Array.from(handlers.values());
15
+ var dynamicNext = chain.reduceRight(function (nextHandler, handler) { return handler(nextHandler); }, next);
16
+ return dynamicNext(action);
17
+ }; };
18
+ },
19
+ add: function (key, middleware) {
20
+ if (!key || middlewares.has(key))
21
+ return false;
22
+ middlewares.set(key, middleware);
23
+ if (middlewareApi) {
24
+ handlers.set(key, middleware(middlewareApi));
25
+ }
26
+ return true;
27
+ },
28
+ remove: function (key) {
29
+ if (!middlewares.has(key))
30
+ return false;
31
+ middlewares.delete(key);
32
+ handlers.delete(key);
33
+ return true;
34
+ },
35
+ has: function (key) {
36
+ return middlewares.has(key);
37
+ },
38
+ keys: function () {
39
+ return Array.from(middlewares.keys());
40
+ },
41
+ };
42
+ return manager;
43
+ }
44
+ //# sourceMappingURL=dynamicEntityApiMiddleware.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dynamicEntityApiMiddleware.js","sourceRoot":"","sources":["../../../src/redux/store/dynamicEntityApiMiddleware.ts"],"names":[],"mappings":"AAYA,MAAM,UAAU,uCAAuC;IACrD,IAAM,WAAW,GAAG,IAAI,GAAG,EAAsB,CAAC;IAClD,IAAI,aAAa,GAAyB,IAAI,CAAC;IAC/C,IAAM,QAAQ,GAAG,IAAI,GAAG,EAA6B,CAAC;IAEtD,IAAM,OAAO,GAAsC;QACjD,UAAU,EAAE,UAAC,GAAG;YACd,aAAa,GAAG,GAAG,CAAC;YACpB,WAAW,CAAC,OAAO,CAAC,UAAC,UAAU,EAAE,GAAG;gBAClC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;oBACtB,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;iBACpC;YACH,CAAC,CAAC,CAAC;YAEH,OAAO,UAAC,IAAI,IAAK,OAAA,UAAC,MAAM;gBACtB,IAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC5C,IAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,UAAC,WAAW,EAAE,OAAO,IAAK,OAAA,OAAO,CAAC,WAAW,CAAC,EAApB,CAAoB,EAAE,IAAI,CAAC,CAAC;gBAC5F,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC;YAC7B,CAAC,EAJgB,CAIhB,CAAC;QACJ,CAAC;QACD,GAAG,YAAC,GAAG,EAAE,UAAU;YACjB,IAAI,CAAC,GAAG,IAAI,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,OAAO,KAAK,CAAC;YAE/C,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;YACjC,IAAI,aAAa,EAAE;gBACjB,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC;aAC9C;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,YAAC,GAAG;YACR,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,OAAO,KAAK,CAAC;YAExC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACxB,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACrB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,GAAG,YAAC,GAAG;YACL,OAAO,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC9B,CAAC;QACD,IAAI;YACF,OAAO,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;QACxC,CAAC;KACF,CAAC;IAEF,OAAO,OAAO,CAAC;AACjB,CAAC","sourcesContent":["import type { Middleware, MiddlewareAPI } from \"@reduxjs/toolkit\";\n\ntype MiddlewareWithApi = ReturnType<Middleware>;\n\nexport type DynamicEntityApiMiddlewareManager = {\n middleware: Middleware;\n add: (key: string, middleware: Middleware) => boolean;\n remove: (key: string) => boolean;\n has: (key: string) => boolean;\n keys: () => string[];\n};\n\nexport function createDynamicEntityApiMiddlewareManager(): DynamicEntityApiMiddlewareManager {\n const middlewares = new Map<string, Middleware>();\n let middlewareApi: MiddlewareAPI | null = null;\n const handlers = new Map<string, MiddlewareWithApi>();\n\n const manager: DynamicEntityApiMiddlewareManager = {\n middleware: (api) => {\n middlewareApi = api;\n middlewares.forEach((middleware, key) => {\n if (!handlers.has(key)) {\n handlers.set(key, middleware(api));\n }\n });\n\n return (next) => (action) => {\n const chain = Array.from(handlers.values());\n const dynamicNext = chain.reduceRight((nextHandler, handler) => handler(nextHandler), next);\n return dynamicNext(action);\n };\n },\n add(key, middleware) {\n if (!key || middlewares.has(key)) return false;\n\n middlewares.set(key, middleware);\n if (middlewareApi) {\n handlers.set(key, middleware(middlewareApi));\n }\n return true;\n },\n remove(key) {\n if (!middlewares.has(key)) return false;\n\n middlewares.delete(key);\n handlers.delete(key);\n return true;\n },\n has(key) {\n return middlewares.has(key);\n },\n keys() {\n return Array.from(middlewares.keys());\n },\n };\n\n return manager;\n}\n"]}
@@ -0,0 +1,58 @@
1
+ import type { Middleware, MiddlewareAPI } from "@reduxjs/toolkit";
2
+
3
+ type MiddlewareWithApi = ReturnType<Middleware>;
4
+
5
+ export type DynamicEntityApiMiddlewareManager = {
6
+ middleware: Middleware;
7
+ add: (key: string, middleware: Middleware) => boolean;
8
+ remove: (key: string) => boolean;
9
+ has: (key: string) => boolean;
10
+ keys: () => string[];
11
+ };
12
+
13
+ export function createDynamicEntityApiMiddlewareManager(): DynamicEntityApiMiddlewareManager {
14
+ const middlewares = new Map<string, Middleware>();
15
+ let middlewareApi: MiddlewareAPI | null = null;
16
+ const handlers = new Map<string, MiddlewareWithApi>();
17
+
18
+ const manager: DynamicEntityApiMiddlewareManager = {
19
+ middleware: (api) => {
20
+ middlewareApi = api;
21
+ middlewares.forEach((middleware, key) => {
22
+ if (!handlers.has(key)) {
23
+ handlers.set(key, middleware(api));
24
+ }
25
+ });
26
+
27
+ return (next) => (action) => {
28
+ const chain = Array.from(handlers.values());
29
+ const dynamicNext = chain.reduceRight((nextHandler, handler) => handler(nextHandler), next);
30
+ return dynamicNext(action);
31
+ };
32
+ },
33
+ add(key, middleware) {
34
+ if (!key || middlewares.has(key)) return false;
35
+
36
+ middlewares.set(key, middleware);
37
+ if (middlewareApi) {
38
+ handlers.set(key, middleware(middlewareApi));
39
+ }
40
+ return true;
41
+ },
42
+ remove(key) {
43
+ if (!middlewares.has(key)) return false;
44
+
45
+ middlewares.delete(key);
46
+ handlers.delete(key);
47
+ return true;
48
+ },
49
+ has(key) {
50
+ return middlewares.has(key);
51
+ },
52
+ keys() {
53
+ return Array.from(middlewares.keys());
54
+ },
55
+ };
56
+
57
+ return manager;
58
+ }
@@ -0,0 +1,10 @@
1
+ import type { Reducer, ReducersMapObject } from "@reduxjs/toolkit";
2
+ export type DynamicReducerManager = {
3
+ reduce: Reducer;
4
+ add: (key: string, reducer: Reducer) => boolean;
5
+ remove: (key: string) => boolean;
6
+ has: (key: string) => boolean;
7
+ getReducerMap: () => ReducersMapObject;
8
+ };
9
+ export declare function createDynamicReducerManager(initialReducers: ReducersMapObject): DynamicReducerManager;
10
+ //# sourceMappingURL=dynamicReducerManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dynamicReducerManager.d.ts","sourceRoot":"","sources":["../../../src/redux/store/dynamicReducerManager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAa,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAE9E,MAAM,MAAM,qBAAqB,GAAG;IAClC,MAAM,EAAE,OAAO,CAAC;IAChB,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC;IAChD,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;IACjC,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;IAC9B,aAAa,EAAE,MAAM,iBAAiB,CAAC;CACxC,CAAC;AAEF,wBAAgB,2BAA2B,CAAC,eAAe,EAAE,iBAAiB,GAAG,qBAAqB,CAuCrG"}
@@ -0,0 +1,51 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ import { combineReducers } from "@reduxjs/toolkit";
13
+ export function createDynamicReducerManager(initialReducers) {
14
+ var reducers = __assign({}, initialReducers);
15
+ var combinedReducer = combineReducers(reducers);
16
+ var keysToRemove = [];
17
+ return {
18
+ reduce: function (state, action) {
19
+ if (keysToRemove.length > 0 && state) {
20
+ state = __assign({}, state);
21
+ keysToRemove.forEach(function (key) {
22
+ delete state[key];
23
+ });
24
+ keysToRemove = [];
25
+ }
26
+ return combinedReducer(state, action);
27
+ },
28
+ add: function (key, reducer) {
29
+ if (!key || reducers[key])
30
+ return false;
31
+ reducers[key] = reducer;
32
+ combinedReducer = combineReducers(reducers);
33
+ return true;
34
+ },
35
+ remove: function (key) {
36
+ if (!key || !reducers[key])
37
+ return false;
38
+ delete reducers[key];
39
+ keysToRemove.push(key);
40
+ combinedReducer = combineReducers(reducers);
41
+ return true;
42
+ },
43
+ has: function (key) {
44
+ return Boolean(reducers[key]);
45
+ },
46
+ getReducerMap: function () {
47
+ return __assign({}, reducers);
48
+ },
49
+ };
50
+ }
51
+ //# sourceMappingURL=dynamicReducerManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dynamicReducerManager.js","sourceRoot":"","sources":["../../../src/redux/store/dynamicReducerManager.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAWnD,MAAM,UAAU,2BAA2B,CAAC,eAAkC;IAC5E,IAAM,QAAQ,gBAA2B,eAAe,CAAE,CAAC;IAC3D,IAAI,eAAe,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;IAChD,IAAI,YAAY,GAAa,EAAE,CAAC;IAEhC,OAAO;QACL,MAAM,YAAC,KAAU,EAAE,MAAiB;YAClC,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,EAAE;gBACpC,KAAK,gBAAQ,KAAK,CAAE,CAAC;gBACrB,YAAY,CAAC,OAAO,CAAC,UAAC,GAAG;oBACvB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC;gBACpB,CAAC,CAAC,CAAC;gBACH,YAAY,GAAG,EAAE,CAAC;aACnB;YAED,OAAO,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACxC,CAAC;QACD,GAAG,YAAC,GAAW,EAAE,OAAgB;YAC/B,IAAI,CAAC,GAAG,IAAI,QAAQ,CAAC,GAAG,CAAC;gBAAE,OAAO,KAAK,CAAC;YAExC,QAAQ,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC;YACxB,eAAe,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;YAC5C,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,YAAC,GAAW;YAChB,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;gBAAE,OAAO,KAAK,CAAC;YAEzC,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC;YACrB,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACvB,eAAe,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;YAC5C,OAAO,IAAI,CAAC;QACd,CAAC;QACD,GAAG,YAAC,GAAW;YACb,OAAO,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;QAChC,CAAC;QACD,aAAa;YACX,oBAAY,QAAQ,EAAG;QACzB,CAAC;KACF,CAAC;AACJ,CAAC","sourcesContent":["import { combineReducers } from \"@reduxjs/toolkit\";\nimport type { AnyAction, Reducer, ReducersMapObject } from \"@reduxjs/toolkit\";\n\nexport type DynamicReducerManager = {\n reduce: Reducer;\n add: (key: string, reducer: Reducer) => boolean;\n remove: (key: string) => boolean;\n has: (key: string) => boolean;\n getReducerMap: () => ReducersMapObject;\n};\n\nexport function createDynamicReducerManager(initialReducers: ReducersMapObject): DynamicReducerManager {\n const reducers: ReducersMapObject = { ...initialReducers };\n let combinedReducer = combineReducers(reducers);\n let keysToRemove: string[] = [];\n\n return {\n reduce(state: any, action: AnyAction) {\n if (keysToRemove.length > 0 && state) {\n state = { ...state };\n keysToRemove.forEach((key) => {\n delete state[key];\n });\n keysToRemove = [];\n }\n\n return combinedReducer(state, action);\n },\n add(key: string, reducer: Reducer) {\n if (!key || reducers[key]) return false;\n\n reducers[key] = reducer;\n combinedReducer = combineReducers(reducers);\n return true;\n },\n remove(key: string) {\n if (!key || !reducers[key]) return false;\n\n delete reducers[key];\n keysToRemove.push(key);\n combinedReducer = combineReducers(reducers);\n return true;\n },\n has(key: string) {\n return Boolean(reducers[key]);\n },\n getReducerMap() {\n return { ...reducers };\n },\n };\n}\n"]}
@@ -0,0 +1,51 @@
1
+ import { combineReducers } from "@reduxjs/toolkit";
2
+ import type { AnyAction, Reducer, ReducersMapObject } from "@reduxjs/toolkit";
3
+
4
+ export type DynamicReducerManager = {
5
+ reduce: Reducer;
6
+ add: (key: string, reducer: Reducer) => boolean;
7
+ remove: (key: string) => boolean;
8
+ has: (key: string) => boolean;
9
+ getReducerMap: () => ReducersMapObject;
10
+ };
11
+
12
+ export function createDynamicReducerManager(initialReducers: ReducersMapObject): DynamicReducerManager {
13
+ const reducers: ReducersMapObject = { ...initialReducers };
14
+ let combinedReducer = combineReducers(reducers);
15
+ let keysToRemove: string[] = [];
16
+
17
+ return {
18
+ reduce(state: any, action: AnyAction) {
19
+ if (keysToRemove.length > 0 && state) {
20
+ state = { ...state };
21
+ keysToRemove.forEach((key) => {
22
+ delete state[key];
23
+ });
24
+ keysToRemove = [];
25
+ }
26
+
27
+ return combinedReducer(state, action);
28
+ },
29
+ add(key: string, reducer: Reducer) {
30
+ if (!key || reducers[key]) return false;
31
+
32
+ reducers[key] = reducer;
33
+ combinedReducer = combineReducers(reducers);
34
+ return true;
35
+ },
36
+ remove(key: string) {
37
+ if (!key || !reducers[key]) return false;
38
+
39
+ delete reducers[key];
40
+ keysToRemove.push(key);
41
+ combinedReducer = combineReducers(reducers);
42
+ return true;
43
+ },
44
+ has(key: string) {
45
+ return Boolean(reducers[key]);
46
+ },
47
+ getReducerMap() {
48
+ return { ...reducers };
49
+ },
50
+ };
51
+ }
@@ -0,0 +1,31 @@
1
+ import type { AnyAction, Dispatch, Middleware, Reducer } from "@reduxjs/toolkit";
2
+ import type { DynamicEntityApiMiddlewareManager } from "./dynamicEntityApiMiddleware";
3
+ import type { DynamicReducerManager } from "./dynamicReducerManager";
4
+ export declare const SOLID_ENTITY_API_POOL_LIMIT = 64;
5
+ type SolidEntityApi = {
6
+ reducerPath: string;
7
+ reducer: Reducer;
8
+ middleware: Middleware;
9
+ util?: {
10
+ resetApiState?: () => AnyAction;
11
+ };
12
+ };
13
+ type SolidEntityApiStore = {
14
+ dispatch: Dispatch;
15
+ getState: () => any;
16
+ replaceReducer: (nextReducer: Reducer) => void;
17
+ reducerManager: DynamicReducerManager;
18
+ middlewareManager: DynamicEntityApiMiddlewareManager;
19
+ };
20
+ export declare function setSolidEntityApiStore(store: SolidEntityApiStore): void;
21
+ export declare function ensureSolidEntityApiRegistered(entityName: string, api: SolidEntityApi): void;
22
+ export declare function getSolidEntityApiPoolSnapshot(): {
23
+ entityName: string;
24
+ reducerPath: string;
25
+ registeredAt: number;
26
+ lastAccessedAt: number;
27
+ active: boolean;
28
+ }[];
29
+ export declare function resetSolidEntityApiPoolForTests(): void;
30
+ export {};
31
+ //# sourceMappingURL=solidEntityApiPool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solidEntityApiPool.d.ts","sourceRoot":"","sources":["../../../src/redux/store/solidEntityApiPool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACjF,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,8BAA8B,CAAC;AACtF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAErE,eAAO,MAAM,2BAA2B,KAAK,CAAC;AAE9C,KAAK,cAAc,GAAG;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,UAAU,CAAC;IACvB,IAAI,CAAC,EAAE;QACL,aAAa,CAAC,EAAE,MAAM,SAAS,CAAC;KACjC,CAAC;CACH,CAAC;AASF,KAAK,mBAAmB,GAAG;IACzB,QAAQ,EAAE,QAAQ,CAAC;IACnB,QAAQ,EAAE,MAAM,GAAG,CAAC;IACpB,cAAc,EAAE,CAAC,WAAW,EAAE,OAAO,KAAK,IAAI,CAAC;IAC/C,cAAc,EAAE,qBAAqB,CAAC;IACtC,iBAAiB,EAAE,iCAAiC,CAAC;CACtD,CAAC;AA4FF,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,mBAAmB,QAEhE;AAED,wBAAgB,8BAA8B,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc,QAgCrF;AAED,wBAAgB,6BAA6B;;;;;;IAE5C;AAED,wBAAgB,+BAA+B,SAI9C"}
@@ -0,0 +1,123 @@
1
+ export var SOLID_ENTITY_API_POOL_LIMIT = 64;
2
+ var activeStore = null;
3
+ var clock = 0;
4
+ var pool = new Map();
5
+ function nextTimestamp() {
6
+ clock += 1;
7
+ return clock;
8
+ }
9
+ function log(message, data) {
10
+ // Centralized logs make pool behavior easy to trace in consuming apps.
11
+ console.info("[SolidEntityApiPool] ".concat(message), data !== null && data !== void 0 ? data : {});
12
+ }
13
+ function warn(message, data) {
14
+ console.warn("[SolidEntityApiPool] ".concat(message), data !== null && data !== void 0 ? data : {});
15
+ }
16
+ function getLiveSnapshot() {
17
+ return Array.from(pool.values()).map(function (entry) { return ({
18
+ entityName: entry.entityName,
19
+ reducerPath: entry.api.reducerPath,
20
+ registeredAt: entry.registeredAt,
21
+ lastAccessedAt: entry.lastAccessedAt,
22
+ active: Boolean(activeStore === null || activeStore === void 0 ? void 0 : activeStore.middlewareManager.has(entry.api.reducerPath)),
23
+ }); });
24
+ }
25
+ function getActiveEntries() {
26
+ return Array.from(pool.values()).filter(function (entry) { return activeStore === null || activeStore === void 0 ? void 0 : activeStore.middlewareManager.has(entry.api.reducerPath); });
27
+ }
28
+ function hasActiveUsage(entry) {
29
+ var _a, _b, _c, _d;
30
+ if (!activeStore)
31
+ return false;
32
+ var state = (_a = activeStore.getState()) === null || _a === void 0 ? void 0 : _a[entry.api.reducerPath];
33
+ if (!state)
34
+ return false;
35
+ var hasSubscriptions = Object.values((_b = state.subscriptions) !== null && _b !== void 0 ? _b : {}).some(function (subscription) {
36
+ return subscription && Object.keys(subscription).length > 0;
37
+ });
38
+ var hasPendingQueries = Object.values((_c = state.queries) !== null && _c !== void 0 ? _c : {}).some(function (query) { return (query === null || query === void 0 ? void 0 : query.status) === "pending"; });
39
+ var hasPendingMutations = Object.values((_d = state.mutations) !== null && _d !== void 0 ? _d : {}).some(function (mutation) { return (mutation === null || mutation === void 0 ? void 0 : mutation.status) === "pending"; });
40
+ return hasSubscriptions || hasPendingQueries || hasPendingMutations;
41
+ }
42
+ function findEvictionCandidate() {
43
+ var _a;
44
+ return (_a = getActiveEntries()
45
+ .filter(function (entry) { return !hasActiveUsage(entry); })
46
+ .sort(function (left, right) { return left.lastAccessedAt - right.lastAccessedAt; })[0]) !== null && _a !== void 0 ? _a : null;
47
+ }
48
+ function evictIfNeeded(nextEntityName) {
49
+ var _a;
50
+ if (!activeStore)
51
+ return;
52
+ var activeEntries = getActiveEntries();
53
+ if (activeEntries.length < SOLID_ENTITY_API_POOL_LIMIT)
54
+ return;
55
+ warn("Pool is full; attempting LRU eviction.", {
56
+ limit: SOLID_ENTITY_API_POOL_LIMIT,
57
+ requestedEntityName: nextEntityName,
58
+ activeCount: activeEntries.length,
59
+ });
60
+ var candidate = findEvictionCandidate();
61
+ if (!candidate) {
62
+ warn("Pool is full but all entries look active; allowing temporary overflow.", {
63
+ limit: SOLID_ENTITY_API_POOL_LIMIT,
64
+ requestedEntityName: nextEntityName,
65
+ activeCount: activeEntries.length,
66
+ });
67
+ return;
68
+ }
69
+ var resetApiState = (_a = candidate.api.util) === null || _a === void 0 ? void 0 : _a.resetApiState;
70
+ if (resetApiState) {
71
+ activeStore.dispatch(resetApiState());
72
+ }
73
+ activeStore.middlewareManager.remove(candidate.api.reducerPath);
74
+ activeStore.reducerManager.remove(candidate.api.reducerPath);
75
+ activeStore.replaceReducer(activeStore.reducerManager.reduce);
76
+ log("Evicted entity API from pool.", {
77
+ entityName: candidate.entityName,
78
+ reducerPath: candidate.api.reducerPath,
79
+ requestedEntityName: nextEntityName,
80
+ });
81
+ }
82
+ export function setSolidEntityApiStore(store) {
83
+ activeStore = store;
84
+ }
85
+ export function ensureSolidEntityApiRegistered(entityName, api) {
86
+ var timestamp = nextTimestamp();
87
+ var existingEntry = pool.get(entityName);
88
+ if (existingEntry) {
89
+ existingEntry.lastAccessedAt = timestamp;
90
+ }
91
+ else {
92
+ pool.set(entityName, {
93
+ entityName: entityName,
94
+ api: api,
95
+ registeredAt: timestamp,
96
+ lastAccessedAt: timestamp,
97
+ });
98
+ log("Created entity API cache entry.", {
99
+ entityName: entityName,
100
+ reducerPath: api.reducerPath,
101
+ });
102
+ }
103
+ if (!activeStore || activeStore.middlewareManager.has(api.reducerPath))
104
+ return;
105
+ evictIfNeeded(entityName);
106
+ activeStore.reducerManager.add(api.reducerPath, api.reducer);
107
+ activeStore.middlewareManager.add(api.reducerPath, api.middleware);
108
+ log("Dynamically registered entity API reducer and middleware.", {
109
+ entityName: entityName,
110
+ reducerPath: api.reducerPath,
111
+ activeCount: getActiveEntries().length,
112
+ limit: SOLID_ENTITY_API_POOL_LIMIT,
113
+ });
114
+ }
115
+ export function getSolidEntityApiPoolSnapshot() {
116
+ return getLiveSnapshot();
117
+ }
118
+ export function resetSolidEntityApiPoolForTests() {
119
+ activeStore = null;
120
+ clock = 0;
121
+ pool.clear();
122
+ }
123
+ //# sourceMappingURL=solidEntityApiPool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solidEntityApiPool.js","sourceRoot":"","sources":["../../../src/redux/store/solidEntityApiPool.ts"],"names":[],"mappings":"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","sourcesContent":["import type { AnyAction, Dispatch, Middleware, Reducer } from \"@reduxjs/toolkit\";\nimport type { DynamicEntityApiMiddlewareManager } from \"./dynamicEntityApiMiddleware\";\nimport type { DynamicReducerManager } from \"./dynamicReducerManager\";\n\nexport const SOLID_ENTITY_API_POOL_LIMIT = 64;\n\ntype SolidEntityApi = {\n reducerPath: string;\n reducer: Reducer;\n middleware: Middleware;\n util?: {\n resetApiState?: () => AnyAction;\n };\n};\n\ntype SolidEntityApiPoolEntry = {\n entityName: string;\n api: SolidEntityApi;\n registeredAt: number;\n lastAccessedAt: number;\n};\n\ntype SolidEntityApiStore = {\n dispatch: Dispatch;\n getState: () => any;\n replaceReducer: (nextReducer: Reducer) => void;\n reducerManager: DynamicReducerManager;\n middlewareManager: DynamicEntityApiMiddlewareManager;\n};\n\nlet activeStore: SolidEntityApiStore | null = null;\nlet clock = 0;\nconst pool = new Map<string, SolidEntityApiPoolEntry>();\n\nfunction nextTimestamp() {\n clock += 1;\n return clock;\n}\n\nfunction log(message: string, data?: Record<string, unknown>) {\n // Centralized logs make pool behavior easy to trace in consuming apps.\n console.info(`[SolidEntityApiPool] ${message}`, data ?? {});\n}\n\nfunction warn(message: string, data?: Record<string, unknown>) {\n console.warn(`[SolidEntityApiPool] ${message}`, data ?? {});\n}\n\nfunction getLiveSnapshot() {\n return Array.from(pool.values()).map((entry) => ({\n entityName: entry.entityName,\n reducerPath: entry.api.reducerPath,\n registeredAt: entry.registeredAt,\n lastAccessedAt: entry.lastAccessedAt,\n active: Boolean(activeStore?.middlewareManager.has(entry.api.reducerPath)),\n }));\n}\n\nfunction getActiveEntries() {\n return Array.from(pool.values()).filter((entry) => activeStore?.middlewareManager.has(entry.api.reducerPath));\n}\n\nfunction hasActiveUsage(entry: SolidEntityApiPoolEntry) {\n if (!activeStore) return false;\n\n const state = activeStore.getState()?.[entry.api.reducerPath];\n if (!state) return false;\n\n const hasSubscriptions = Object.values(state.subscriptions ?? {}).some((subscription: any) => {\n return subscription && Object.keys(subscription).length > 0;\n });\n const hasPendingQueries = Object.values(state.queries ?? {}).some((query: any) => query?.status === \"pending\");\n const hasPendingMutations = Object.values(state.mutations ?? {}).some((mutation: any) => mutation?.status === \"pending\");\n\n return hasSubscriptions || hasPendingQueries || hasPendingMutations;\n}\n\nfunction findEvictionCandidate() {\n return getActiveEntries()\n .filter((entry) => !hasActiveUsage(entry))\n .sort((left, right) => left.lastAccessedAt - right.lastAccessedAt)[0] ?? null;\n}\n\nfunction evictIfNeeded(nextEntityName: string) {\n if (!activeStore) return;\n\n const activeEntries = getActiveEntries();\n if (activeEntries.length < SOLID_ENTITY_API_POOL_LIMIT) return;\n\n warn(\"Pool is full; attempting LRU eviction.\", {\n limit: SOLID_ENTITY_API_POOL_LIMIT,\n requestedEntityName: nextEntityName,\n activeCount: activeEntries.length,\n });\n\n const candidate = findEvictionCandidate();\n if (!candidate) {\n warn(\"Pool is full but all entries look active; allowing temporary overflow.\", {\n limit: SOLID_ENTITY_API_POOL_LIMIT,\n requestedEntityName: nextEntityName,\n activeCount: activeEntries.length,\n });\n return;\n }\n\n const resetApiState = candidate.api.util?.resetApiState;\n if (resetApiState) {\n activeStore.dispatch(resetApiState());\n }\n activeStore.middlewareManager.remove(candidate.api.reducerPath);\n activeStore.reducerManager.remove(candidate.api.reducerPath);\n activeStore.replaceReducer(activeStore.reducerManager.reduce);\n\n log(\"Evicted entity API from pool.\", {\n entityName: candidate.entityName,\n reducerPath: candidate.api.reducerPath,\n requestedEntityName: nextEntityName,\n });\n}\n\nexport function setSolidEntityApiStore(store: SolidEntityApiStore) {\n activeStore = store;\n}\n\nexport function ensureSolidEntityApiRegistered(entityName: string, api: SolidEntityApi) {\n const timestamp = nextTimestamp();\n const existingEntry = pool.get(entityName);\n\n if (existingEntry) {\n existingEntry.lastAccessedAt = timestamp;\n } else {\n pool.set(entityName, {\n entityName,\n api,\n registeredAt: timestamp,\n lastAccessedAt: timestamp,\n });\n log(\"Created entity API cache entry.\", {\n entityName,\n reducerPath: api.reducerPath,\n });\n }\n\n if (!activeStore || activeStore.middlewareManager.has(api.reducerPath)) return;\n\n evictIfNeeded(entityName);\n\n activeStore.reducerManager.add(api.reducerPath, api.reducer);\n activeStore.middlewareManager.add(api.reducerPath, api.middleware);\n\n log(\"Dynamically registered entity API reducer and middleware.\", {\n entityName,\n reducerPath: api.reducerPath,\n activeCount: getActiveEntries().length,\n limit: SOLID_ENTITY_API_POOL_LIMIT,\n });\n}\n\nexport function getSolidEntityApiPoolSnapshot() {\n return getLiveSnapshot();\n}\n\nexport function resetSolidEntityApiPoolForTests() {\n activeStore = null;\n clock = 0;\n pool.clear();\n}\n"]}
@@ -0,0 +1,167 @@
1
+ import type { AnyAction, Dispatch, Middleware, Reducer } from "@reduxjs/toolkit";
2
+ import type { DynamicEntityApiMiddlewareManager } from "./dynamicEntityApiMiddleware";
3
+ import type { DynamicReducerManager } from "./dynamicReducerManager";
4
+
5
+ export const SOLID_ENTITY_API_POOL_LIMIT = 64;
6
+
7
+ type SolidEntityApi = {
8
+ reducerPath: string;
9
+ reducer: Reducer;
10
+ middleware: Middleware;
11
+ util?: {
12
+ resetApiState?: () => AnyAction;
13
+ };
14
+ };
15
+
16
+ type SolidEntityApiPoolEntry = {
17
+ entityName: string;
18
+ api: SolidEntityApi;
19
+ registeredAt: number;
20
+ lastAccessedAt: number;
21
+ };
22
+
23
+ type SolidEntityApiStore = {
24
+ dispatch: Dispatch;
25
+ getState: () => any;
26
+ replaceReducer: (nextReducer: Reducer) => void;
27
+ reducerManager: DynamicReducerManager;
28
+ middlewareManager: DynamicEntityApiMiddlewareManager;
29
+ };
30
+
31
+ let activeStore: SolidEntityApiStore | null = null;
32
+ let clock = 0;
33
+ const pool = new Map<string, SolidEntityApiPoolEntry>();
34
+
35
+ function nextTimestamp() {
36
+ clock += 1;
37
+ return clock;
38
+ }
39
+
40
+ function log(message: string, data?: Record<string, unknown>) {
41
+ // Centralized logs make pool behavior easy to trace in consuming apps.
42
+ console.info(`[SolidEntityApiPool] ${message}`, data ?? {});
43
+ }
44
+
45
+ function warn(message: string, data?: Record<string, unknown>) {
46
+ console.warn(`[SolidEntityApiPool] ${message}`, data ?? {});
47
+ }
48
+
49
+ function getLiveSnapshot() {
50
+ return Array.from(pool.values()).map((entry) => ({
51
+ entityName: entry.entityName,
52
+ reducerPath: entry.api.reducerPath,
53
+ registeredAt: entry.registeredAt,
54
+ lastAccessedAt: entry.lastAccessedAt,
55
+ active: Boolean(activeStore?.middlewareManager.has(entry.api.reducerPath)),
56
+ }));
57
+ }
58
+
59
+ function getActiveEntries() {
60
+ return Array.from(pool.values()).filter((entry) => activeStore?.middlewareManager.has(entry.api.reducerPath));
61
+ }
62
+
63
+ function hasActiveUsage(entry: SolidEntityApiPoolEntry) {
64
+ if (!activeStore) return false;
65
+
66
+ const state = activeStore.getState()?.[entry.api.reducerPath];
67
+ if (!state) return false;
68
+
69
+ const hasSubscriptions = Object.values(state.subscriptions ?? {}).some((subscription: any) => {
70
+ return subscription && Object.keys(subscription).length > 0;
71
+ });
72
+ const hasPendingQueries = Object.values(state.queries ?? {}).some((query: any) => query?.status === "pending");
73
+ const hasPendingMutations = Object.values(state.mutations ?? {}).some((mutation: any) => mutation?.status === "pending");
74
+
75
+ return hasSubscriptions || hasPendingQueries || hasPendingMutations;
76
+ }
77
+
78
+ function findEvictionCandidate() {
79
+ return getActiveEntries()
80
+ .filter((entry) => !hasActiveUsage(entry))
81
+ .sort((left, right) => left.lastAccessedAt - right.lastAccessedAt)[0] ?? null;
82
+ }
83
+
84
+ function evictIfNeeded(nextEntityName: string) {
85
+ if (!activeStore) return;
86
+
87
+ const activeEntries = getActiveEntries();
88
+ if (activeEntries.length < SOLID_ENTITY_API_POOL_LIMIT) return;
89
+
90
+ warn("Pool is full; attempting LRU eviction.", {
91
+ limit: SOLID_ENTITY_API_POOL_LIMIT,
92
+ requestedEntityName: nextEntityName,
93
+ activeCount: activeEntries.length,
94
+ });
95
+
96
+ const candidate = findEvictionCandidate();
97
+ if (!candidate) {
98
+ warn("Pool is full but all entries look active; allowing temporary overflow.", {
99
+ limit: SOLID_ENTITY_API_POOL_LIMIT,
100
+ requestedEntityName: nextEntityName,
101
+ activeCount: activeEntries.length,
102
+ });
103
+ return;
104
+ }
105
+
106
+ const resetApiState = candidate.api.util?.resetApiState;
107
+ if (resetApiState) {
108
+ activeStore.dispatch(resetApiState());
109
+ }
110
+ activeStore.middlewareManager.remove(candidate.api.reducerPath);
111
+ activeStore.reducerManager.remove(candidate.api.reducerPath);
112
+ activeStore.replaceReducer(activeStore.reducerManager.reduce);
113
+
114
+ log("Evicted entity API from pool.", {
115
+ entityName: candidate.entityName,
116
+ reducerPath: candidate.api.reducerPath,
117
+ requestedEntityName: nextEntityName,
118
+ });
119
+ }
120
+
121
+ export function setSolidEntityApiStore(store: SolidEntityApiStore) {
122
+ activeStore = store;
123
+ }
124
+
125
+ export function ensureSolidEntityApiRegistered(entityName: string, api: SolidEntityApi) {
126
+ const timestamp = nextTimestamp();
127
+ const existingEntry = pool.get(entityName);
128
+
129
+ if (existingEntry) {
130
+ existingEntry.lastAccessedAt = timestamp;
131
+ } else {
132
+ pool.set(entityName, {
133
+ entityName,
134
+ api,
135
+ registeredAt: timestamp,
136
+ lastAccessedAt: timestamp,
137
+ });
138
+ log("Created entity API cache entry.", {
139
+ entityName,
140
+ reducerPath: api.reducerPath,
141
+ });
142
+ }
143
+
144
+ if (!activeStore || activeStore.middlewareManager.has(api.reducerPath)) return;
145
+
146
+ evictIfNeeded(entityName);
147
+
148
+ activeStore.reducerManager.add(api.reducerPath, api.reducer);
149
+ activeStore.middlewareManager.add(api.reducerPath, api.middleware);
150
+
151
+ log("Dynamically registered entity API reducer and middleware.", {
152
+ entityName,
153
+ reducerPath: api.reducerPath,
154
+ activeCount: getActiveEntries().length,
155
+ limit: SOLID_ENTITY_API_POOL_LIMIT,
156
+ });
157
+ }
158
+
159
+ export function getSolidEntityApiPoolSnapshot() {
160
+ return getLiveSnapshot();
161
+ }
162
+
163
+ export function resetSolidEntityApiPoolForTests() {
164
+ activeStore = null;
165
+ clock = 0;
166
+ pool.clear();
167
+ }