@taon-dev/session 21.0.240 → 21.0.241

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 (200) hide show
  1. package/VERIFIED-BUILD-DATA.jsonc +3 -3
  2. package/browser/fesm2022/session-browser.mjs +1 -1
  3. package/browser/fesm2022/session-browser.mjs.map +1 -1
  4. package/browser/package.json +1 -1
  5. package/browser/types/session-browser.d.ts +1 -1
  6. package/browser-prod/fesm2022/session-browser-prod.mjs +1 -1
  7. package/browser-prod/fesm2022/session-browser-prod.mjs.map +1 -1
  8. package/browser-prod/package.json +1 -1
  9. package/browser-prod/types/session-browser-prod.d.ts +1 -1
  10. package/full-dts/build-info._auto-generated_.d.ts +1 -1
  11. package/full-dts/taon-audit-events/taon-audit-events-api.service.d.ts +8 -0
  12. package/full-dts/taon-audit-events/taon-audit-events.abstract.context.d.ts +7 -7
  13. package/full-dts/taon-auth-context/taon-auth-context.abstract.context.d.ts +7 -7
  14. package/full-dts/taon-authorization-backoffice/taon-authorization-backoffice.component.d.ts +5 -0
  15. package/full-dts/taon-authorization-backoffice/taon-authorization-backoffice.routes.d.ts +7 -0
  16. package/full-dts/taon-group/taon-group-api.service.d.ts +16 -0
  17. package/full-dts/taon-group/taon-group-backoffice/taon-group-backoffice.component.d.ts +10 -0
  18. package/full-dts/taon-group/taon-group-backoffice/taon-group-backoffice.routes.d.ts +7 -0
  19. package/full-dts/taon-group/taon-group-backoffice/taon-group-details.component.d.ts +29 -0
  20. package/full-dts/taon-group/taon-group-chooser/taon-group-chooser.component.d.ts +18 -0
  21. package/full-dts/taon-group/taon-group.abstract.context.d.ts +7 -7
  22. package/full-dts/taon-notification/taon-notification-api.service.d.ts +8 -0
  23. package/full-dts/taon-notification/taon-notification.abstract.context.d.ts +7 -7
  24. package/full-dts/taon-permission/taon-permission-api.service.d.ts +10 -0
  25. package/full-dts/taon-permission/taon-permission-backoffice/taon-permission-backoffice.component.d.ts +10 -0
  26. package/full-dts/taon-permission/taon-permission-backoffice/taon-permission-backoffice.routes.d.ts +7 -0
  27. package/full-dts/taon-permission/taon-permission-backoffice/taon-permission-details.component.d.ts +6 -0
  28. package/full-dts/taon-permission/taon-permission-chooser/taon-permission-chooser.component.d.ts +19 -0
  29. package/full-dts/taon-permission/taon-permission-view-edit/taon-permission-view-edit.component.d.ts +16 -0
  30. package/full-dts/taon-permission/taon-permission.abstract.context.d.ts +7 -7
  31. package/full-dts/taon-role/taon-role-api.service.d.ts +13 -0
  32. package/full-dts/taon-role/taon-role-backoffice/taon-role-backoffice.component.d.ts +10 -0
  33. package/full-dts/taon-role/taon-role-backoffice/taon-role-backoffice.routes.d.ts +7 -0
  34. package/full-dts/taon-role/taon-role-backoffice/taon-role-details.component.d.ts +29 -0
  35. package/full-dts/taon-role/taon-role-chooser/taon-role-chooser.component.d.ts +19 -0
  36. package/full-dts/taon-role/taon-role.abstract.context.d.ts +7 -7
  37. package/full-dts/taon-session/taon-profile/taon-profile-picture/taon-profile-picture.component.d.ts +24 -0
  38. package/full-dts/taon-session/taon-profile/taon-profile-picture/taon-profile-picture.routes.d.ts +7 -0
  39. package/full-dts/taon-session/taon-profile/taon-profile.abstract.context.d.ts +7 -7
  40. package/full-dts/taon-session/taon-profile/taon-profile.api.service.d.ts +9 -0
  41. package/full-dts/taon-session/taon-profile/taon-profile.config.service.d.ts +6 -0
  42. package/full-dts/taon-session/taon-session/social-buttons/google-login-register-button.component.d.ts +7 -0
  43. package/full-dts/taon-session/taon-session/taon-session-profile/taon-session-profile.component.d.ts +67 -0
  44. package/full-dts/taon-session/taon-session/taon-session.component.d.ts +61 -0
  45. package/full-dts/taon-session/taon-session-backoffice/taon-backoffice-details-page.component.d.ts +4 -0
  46. package/full-dts/taon-session/taon-session-backoffice/taon-backoffice-details.resolver.d.ts +23 -0
  47. package/full-dts/taon-session/taon-session-backoffice/taon-backoffice-navigation.service.d.ts +8 -0
  48. package/full-dts/taon-session/taon-session-backoffice/taon-session-backoffice.api.service.d.ts +7 -0
  49. package/full-dts/taon-session/taon-session-backoffice/taon-session-backoffice.component.d.ts +11 -0
  50. package/full-dts/taon-session/taon-session-backoffice/taon-session-backoffice.routes.d.ts +7 -0
  51. package/full-dts/taon-session/taon-session-backoffice/taon-session-details.component.d.ts +17 -0
  52. package/full-dts/taon-session/taon-session-button/taon-session-button.component.d.ts +16 -0
  53. package/full-dts/taon-session/taon-session.abstract.context.d.ts +7 -7
  54. package/full-dts/taon-session/taon-session.api.service.d.ts +24 -0
  55. package/full-dts/taon-session/taon-session.config.service.d.ts +6 -0
  56. package/full-dts/taon-session/taon-session.state.service.d.ts +74 -0
  57. package/full-dts/taon-session-user/taon-session-backoffice-users/taon-session-backoffice-users.component.d.ts +10 -0
  58. package/full-dts/taon-session-user/taon-session-backoffice-users/taon-session-backoffice-users.routes.d.ts +7 -0
  59. package/full-dts/taon-session-user/taon-session-backoffice-users/taon-session-user-details.component.d.ts +37 -0
  60. package/full-dts/taon-session-user/taon-session-user-api.service.d.ts +5 -0
  61. package/full-dts/taon-session-user/taon-session-user.abstract.context.d.ts +7 -7
  62. package/lib/build-info._auto-generated_.d.ts +1 -1
  63. package/lib/build-info._auto-generated_.js +1 -1
  64. package/lib/index._auto-generated_.d.ts +43 -1
  65. package/lib/migrations/1790328479283_initial.d.ts +4 -4
  66. package/lib/package.json +1 -1
  67. package/lib/taon-audit-events/index.d.ts +2 -1
  68. package/lib/taon-audit-events/taon-audit-events.abstract.context.d.ts +8 -8
  69. package/lib/taon-auth-context/taon-auth-context.abstract.context.d.ts +8 -8
  70. package/lib/taon-authorization-backoffice/index.d.ts +1 -1
  71. package/lib/taon-authorization-backoffice/index.js +2 -2
  72. package/lib/taon-group/index.d.ts +2 -1
  73. package/lib/taon-group/taon-group-backoffice/index.d.ts +1 -1
  74. package/lib/taon-group/taon-group-backoffice/index.js +2 -2
  75. package/lib/taon-group/taon-group-chooser/index.d.ts +1 -1
  76. package/lib/taon-group/taon-group-chooser/index.js +2 -2
  77. package/lib/taon-group/taon-group.abstract.context.d.ts +8 -8
  78. package/lib/taon-notification/index.d.ts +2 -1
  79. package/lib/taon-notification/taon-notification.abstract.context.d.ts +8 -8
  80. package/lib/taon-permission/index.d.ts +2 -1
  81. package/lib/taon-permission/taon-permission-backoffice/index.d.ts +1 -1
  82. package/lib/taon-permission/taon-permission-backoffice/index.js +2 -2
  83. package/lib/taon-permission/taon-permission-chooser/index.d.ts +1 -1
  84. package/lib/taon-permission/taon-permission-chooser/index.js +2 -2
  85. package/lib/taon-permission/taon-permission-view-edit/index.d.ts +1 -1
  86. package/lib/taon-permission/taon-permission-view-edit/index.js +2 -2
  87. package/lib/taon-permission/taon-permission.abstract.context.d.ts +8 -8
  88. package/lib/taon-role/index.d.ts +2 -1
  89. package/lib/taon-role/taon-role-backoffice/index.d.ts +1 -1
  90. package/lib/taon-role/taon-role-backoffice/index.js +2 -2
  91. package/lib/taon-role/taon-role-chooser/index.d.ts +1 -1
  92. package/lib/taon-role/taon-role-chooser/index.js +2 -2
  93. package/lib/taon-role/taon-role.abstract.context.d.ts +8 -8
  94. package/lib/taon-session/index.d.ts +4 -1
  95. package/lib/taon-session/taon-profile/index.d.ts +3 -1
  96. package/lib/taon-session/taon-profile/taon-profile-picture/index.d.ts +1 -1
  97. package/lib/taon-session/taon-profile/taon-profile-picture/index.js +2 -2
  98. package/lib/taon-session/taon-profile/taon-profile.abstract.context.d.ts +8 -8
  99. package/lib/taon-session/taon-session/index.d.ts +1 -1
  100. package/lib/taon-session/taon-session/index.js +2 -2
  101. package/lib/taon-session/taon-session/taon-session-profile/index.d.ts +1 -1
  102. package/lib/taon-session/taon-session/taon-session-profile/index.js +2 -2
  103. package/lib/taon-session/taon-session-backoffice/index.d.ts +5 -1
  104. package/lib/taon-session/taon-session-button/index.d.ts +1 -1
  105. package/lib/taon-session/taon-session-button/index.js +2 -2
  106. package/lib/taon-session/taon-session.abstract.context.d.ts +8 -8
  107. package/lib/taon-session/taon-session.controller.d.ts +2 -2
  108. package/lib/taon-session/taon-session.validators.d.ts +3 -1
  109. package/lib/taon-session-user/index.d.ts +2 -1
  110. package/lib/taon-session-user/taon-session-backoffice-users/index.d.ts +1 -1
  111. package/lib/taon-session-user/taon-session-backoffice-users/index.js +2 -2
  112. package/lib/taon-session-user/taon-session-user.abstract.context.d.ts +8 -8
  113. package/lib-esm/lib/build-info._auto-generated_.d.ts +1 -1
  114. package/lib-esm/lib/build-info._auto-generated_.js +1 -1
  115. package/lib-esm/lib/index._auto-generated_.d.ts +43 -1
  116. package/lib-esm/lib/migrations/1790328479283_initial.d.ts +4 -4
  117. package/lib-esm/lib/taon-audit-events/index.d.ts +2 -1
  118. package/lib-esm/lib/taon-audit-events/taon-audit-events.abstract.context.d.ts +8 -8
  119. package/lib-esm/lib/taon-auth-context/taon-auth-context.abstract.context.d.ts +8 -8
  120. package/lib-esm/lib/taon-authorization-backoffice/index.d.ts +1 -1
  121. package/lib-esm/lib/taon-authorization-backoffice/index.js +1 -1
  122. package/lib-esm/lib/taon-group/index.d.ts +2 -1
  123. package/lib-esm/lib/taon-group/taon-group-backoffice/index.d.ts +1 -1
  124. package/lib-esm/lib/taon-group/taon-group-backoffice/index.js +1 -1
  125. package/lib-esm/lib/taon-group/taon-group-chooser/index.d.ts +1 -1
  126. package/lib-esm/lib/taon-group/taon-group-chooser/index.js +1 -1
  127. package/lib-esm/lib/taon-group/taon-group.abstract.context.d.ts +8 -8
  128. package/lib-esm/lib/taon-notification/index.d.ts +2 -1
  129. package/lib-esm/lib/taon-notification/taon-notification.abstract.context.d.ts +8 -8
  130. package/lib-esm/lib/taon-permission/index.d.ts +2 -1
  131. package/lib-esm/lib/taon-permission/taon-permission-backoffice/index.d.ts +1 -1
  132. package/lib-esm/lib/taon-permission/taon-permission-backoffice/index.js +1 -1
  133. package/lib-esm/lib/taon-permission/taon-permission-chooser/index.d.ts +1 -1
  134. package/lib-esm/lib/taon-permission/taon-permission-chooser/index.js +1 -1
  135. package/lib-esm/lib/taon-permission/taon-permission-view-edit/index.d.ts +1 -1
  136. package/lib-esm/lib/taon-permission/taon-permission-view-edit/index.js +1 -1
  137. package/lib-esm/lib/taon-permission/taon-permission.abstract.context.d.ts +8 -8
  138. package/lib-esm/lib/taon-role/index.d.ts +2 -1
  139. package/lib-esm/lib/taon-role/taon-role-backoffice/index.d.ts +1 -1
  140. package/lib-esm/lib/taon-role/taon-role-backoffice/index.js +1 -1
  141. package/lib-esm/lib/taon-role/taon-role-chooser/index.d.ts +1 -1
  142. package/lib-esm/lib/taon-role/taon-role-chooser/index.js +1 -1
  143. package/lib-esm/lib/taon-role/taon-role.abstract.context.d.ts +8 -8
  144. package/lib-esm/lib/taon-session/index.d.ts +4 -1
  145. package/lib-esm/lib/taon-session/taon-profile/index.d.ts +3 -1
  146. package/lib-esm/lib/taon-session/taon-profile/taon-profile-picture/index.d.ts +1 -1
  147. package/lib-esm/lib/taon-session/taon-profile/taon-profile-picture/index.js +1 -1
  148. package/lib-esm/lib/taon-session/taon-profile/taon-profile.abstract.context.d.ts +8 -8
  149. package/lib-esm/lib/taon-session/taon-session/index.d.ts +1 -1
  150. package/lib-esm/lib/taon-session/taon-session/index.js +1 -1
  151. package/lib-esm/lib/taon-session/taon-session/taon-session-profile/index.d.ts +1 -1
  152. package/lib-esm/lib/taon-session/taon-session/taon-session-profile/index.js +1 -1
  153. package/lib-esm/lib/taon-session/taon-session-backoffice/index.d.ts +5 -1
  154. package/lib-esm/lib/taon-session/taon-session-button/index.d.ts +1 -1
  155. package/lib-esm/lib/taon-session/taon-session-button/index.js +1 -1
  156. package/lib-esm/lib/taon-session/taon-session.abstract.context.d.ts +8 -8
  157. package/lib-esm/lib/taon-session/taon-session.controller.d.ts +2 -2
  158. package/lib-esm/lib/taon-session/taon-session.validators.d.ts +3 -1
  159. package/lib-esm/lib/taon-session-user/index.d.ts +2 -1
  160. package/lib-esm/lib/taon-session-user/taon-session-backoffice-users/index.d.ts +1 -1
  161. package/lib-esm/lib/taon-session-user/taon-session-backoffice-users/index.js +1 -1
  162. package/lib-esm/lib/taon-session-user/taon-session-user.abstract.context.d.ts +8 -8
  163. package/lib-prod/build-info._auto-generated_.d.ts +1 -1
  164. package/lib-prod/build-info._auto-generated_.js +1 -1
  165. package/lib-prod/package.json +1 -1
  166. package/lib-prod/taon-authorization-backoffice/index.d.ts +1 -1
  167. package/lib-prod/taon-authorization-backoffice/index.js +1 -1
  168. package/lib-prod/taon-group/taon-group-backoffice/index.d.ts +1 -1
  169. package/lib-prod/taon-group/taon-group-backoffice/index.js +1 -1
  170. package/lib-prod/taon-group/taon-group-chooser/index.d.ts +1 -1
  171. package/lib-prod/taon-group/taon-group-chooser/index.js +1 -1
  172. package/lib-prod/taon-permission/taon-permission-backoffice/index.d.ts +1 -1
  173. package/lib-prod/taon-permission/taon-permission-backoffice/index.js +1 -1
  174. package/lib-prod/taon-permission/taon-permission-chooser/index.d.ts +1 -1
  175. package/lib-prod/taon-permission/taon-permission-chooser/index.js +1 -1
  176. package/lib-prod/taon-permission/taon-permission-view-edit/index.d.ts +1 -1
  177. package/lib-prod/taon-permission/taon-permission-view-edit/index.js +1 -1
  178. package/lib-prod/taon-role/taon-role-backoffice/index.d.ts +1 -1
  179. package/lib-prod/taon-role/taon-role-backoffice/index.js +1 -1
  180. package/lib-prod/taon-role/taon-role-chooser/index.d.ts +1 -1
  181. package/lib-prod/taon-role/taon-role-chooser/index.js +1 -1
  182. package/lib-prod/taon-session/taon-profile/taon-profile-picture/index.d.ts +1 -1
  183. package/lib-prod/taon-session/taon-profile/taon-profile-picture/index.js +1 -1
  184. package/lib-prod/taon-session/taon-session/index.d.ts +1 -1
  185. package/lib-prod/taon-session/taon-session/index.js +1 -1
  186. package/lib-prod/taon-session/taon-session/taon-session-profile/index.d.ts +1 -1
  187. package/lib-prod/taon-session/taon-session/taon-session-profile/index.js +1 -1
  188. package/lib-prod/taon-session/taon-session-button/index.d.ts +1 -1
  189. package/lib-prod/taon-session/taon-session-button/index.js +1 -1
  190. package/lib-prod/taon-session-user/taon-session-backoffice-users/index.d.ts +1 -1
  191. package/lib-prod/taon-session-user/taon-session-backoffice-users/index.js +1 -1
  192. package/package.json +1 -1
  193. package/websql/fesm2022/session-websql.mjs +1 -1
  194. package/websql/fesm2022/session-websql.mjs.map +1 -1
  195. package/websql/package.json +1 -1
  196. package/websql/types/session-websql.d.ts +1 -1
  197. package/websql-prod/fesm2022/session-websql-prod.mjs +1 -1
  198. package/websql-prod/fesm2022/session-websql-prod.mjs.map +1 -1
  199. package/websql-prod/package.json +1 -1
  200. package/websql-prod/types/session-websql-prod.d.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"session-browser-prod.mjs","sources":["../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-group/taon-group-role.entity.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-group/taon-group-role.repository.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-role/taon-role-permission.entity.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-role/taon-role-permission.repository.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/migrations/1790328479283_initial.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/migrations/migrations_index._auto-generated_.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/migrations/index.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/env/env.angular-node-app.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/env/env.docs-webapp.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/env/env.electron-app.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/env/env.mobile-app.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/env/env.npm-lib-and-cli-tool.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/env/env.vscode-plugin.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/build-info._auto-generated_.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/my-organization-proj.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-group/taon-group.entity.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-group/taon-group.repository.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-permission/taon-permission.entity.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-permission/taon-permission.repository.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-role/taon-role.entity.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-role/taon-role.repository.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session/taon-session.provider.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session/taon-session.entity.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session/taon-session.kv.repository.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session/taon-session.repository.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session-user/taon-session-user-identity.entity.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session-user/taon-session-user.entity.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session-user/taon-session-user.repository.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-auth-context/taon-auth-context.repository.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session/taon-profile/taon-profile.controller.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session/taon-profile/taon-profile.models.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session/taon-profile/taon-profile.api.service.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session/taon-profile/taon-profile-picture/taon-profile-picture.component.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session/taon-profile/taon-profile-picture/taon-profile-picture.component.html","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session-user/taon-session-user.controller.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session-user/taon-session-user-api.service.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session-user/taon-session-user-group.entity.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session-user/taon-session-user-group.repository.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session-user/taon-session-user-identity.repository.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session-user/taon-session-user-role.entity.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session-user/taon-session-user.middleware.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session-user/taon-session-user.provider.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session-user/taon-session-user.subscriber.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session-user/taon-session-user.abstract.context.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session-user/taon-session-user.constants.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session-user/taon-session-user.models.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session-user/taon-session-user.utils.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session/taon-session.middleware.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session/taon-session.controller.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session/taon-session.api.service.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session/taon-session.config.service.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session/taon-session.models.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session/taon-session.state.service.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session/taon-session.validators.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session/taon-session/social-buttons/google-login-register-button.component.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session/taon-session/social-buttons/google-login-register-button.component.html","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session/taon-session/taon-session-profile/taon-session-profile.component.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session/taon-session/taon-session-profile/taon-session-profile.component.html","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session/taon-session/taon-session.component.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session/taon-session/taon-session.component.html","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session/taon-session-backoffice/taon-backoffice-navigation.service.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session/taon-session-backoffice/taon-session-backoffice.controller.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session/taon-session-backoffice/taon-session-backoffice.api.service.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session/taon-session-backoffice/taon-session-details.component.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session/taon-session-backoffice/taon-session-details.component.html","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session/taon-session-backoffice/taon-session-backoffice.component.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session/taon-session-backoffice/taon-session-backoffice.component.html","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-group/taon-group.controller.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-group/taon-group-api.service.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-role/taon-role.controller.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-role/taon-role-api.service.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-permission/taon-permission.controller.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-permission/taon-permission-api.service.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session/taon-session-backoffice/taon-backoffice-details.resolver.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session/taon-session-backoffice/taon-session-backoffice.routes.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session/taon-session-backoffice/taon-session-backoffice.models.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session/taon-session-button/taon-session-button.component.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session/taon-session-button/taon-session-button.component.html","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-auth-context/taon-auth-context.entity.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-auth-context/taon-auth-context.abstract.context.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-group/taon-group.middleware.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-group/taon-group.provider.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-group/taon-group.abstract.context.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-permission/taon-permission.middleware.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-permission/taon-permission.provider.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-permission/taon-permission.subscriber.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-permission/taon-permission.abstract.context.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-role/taon-role.provider.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-role/taon-role.abstract.context.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session/taon-profile/taon-profile.entity.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session/taon-profile/taon-profile.provider.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session/taon-profile/taon-profile.abstract.context.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session/taon-session.abstract.context.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session/taon-session.utils.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/start-cli.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-audit-events/taon-audit-events.entity.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-audit-events/taon-audit-events.repository.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-audit-events/taon-audit-events.controller.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-audit-events/taon-audit-events-api.service.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-audit-events/taon-audit-events.provider.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-audit-events/taon-audit-events.middleware.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-audit-events/taon-audit-events.subscriber.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-audit-events/taon-audit-events.abstract.context.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-audit-events/taon-audit-events.constants.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-audit-events/taon-audit-events.models.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-audit-events/taon-audit-events.utils.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-authorization-backoffice/taon-authorization-backoffice.component.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-authorization-backoffice/taon-authorization-backoffice.component.html","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-authorization-backoffice/taon-authorization-backoffice.models.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-authorization-backoffice/taon-authorization-backoffice.routes.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-group/taon-group.constants.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-notification/taon-notification.entity.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-notification/taon-notification.repository.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-notification/taon-notification.controller.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-notification/taon-notification-api.service.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-notification/taon-notification-recipient.entity.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-notification/taon-notification.middleware.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-notification/taon-notification.provider.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-notification/taon-notification.subscriber.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-notification/taon-notification.abstract.context.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-notification/taon-notification.constants.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-notification/taon-notification.models.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-notification/taon-notification.utils.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-permission/taon-permission.constants.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-permission/taon-permission.models.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-permission/taon-permission.utils.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-role/taon-role.constants.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-role/taon-role.models.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-role/taon-role-chooser/taon-role-chooser.component.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-role/taon-role-chooser/taon-role-chooser.component.html","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-group/taon-group-backoffice/taon-group-details.component.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-group/taon-group-backoffice/taon-group-details.component.html","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-group/taon-group-backoffice/taon-group-backoffice.component.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-group/taon-group-backoffice/taon-group-backoffice.component.html","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-group/taon-group-backoffice/taon-group-backoffice.models.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-group/taon-group-backoffice/taon-group-backoffice.routes.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-group/taon-group-chooser/taon-group-chooser.component.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-group/taon-group-chooser/taon-group-chooser.component.html","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-permission/taon-permission-view-edit/taon-permission-view-edit.component.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-permission/taon-permission-view-edit/taon-permission-view-edit.component.html","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-permission/taon-permission-backoffice/taon-permission-details.component.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-permission/taon-permission-backoffice/taon-permission-backoffice.component.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-permission/taon-permission-backoffice/taon-permission-backoffice.component.html","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-permission/taon-permission-backoffice/taon-permission-backoffice.models.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-permission/taon-permission-backoffice/taon-permission-backoffice.routes.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-permission/taon-permission-chooser/taon-permission-chooser.component.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-permission/taon-permission-chooser/taon-permission-chooser.component.html","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-role/taon-role-backoffice/taon-role-details.component.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-role/taon-role-backoffice/taon-role-details.component.html","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-role/taon-role-backoffice/taon-role-backoffice.component.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-role/taon-role-backoffice/taon-role-backoffice.component.html","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-role/taon-role-backoffice/taon-role-backoffice.models.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-role/taon-role-backoffice/taon-role-backoffice.routes.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session/taon-profile/taon-profile.config.service.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session/taon-profile/taon-profile.constants.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session/taon-profile/taon-profile.kv.repository.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session-user/taon-session-backoffice-users/taon-session-user-details.component.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session-user/taon-session-backoffice-users/taon-session-user-details.component.html","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session/taon-session-backoffice/taon-backoffice-details-page.component.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session-user/taon-session-backoffice-users/taon-session-backoffice-users.component.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session-user/taon-session-backoffice-users/taon-session-backoffice-users.component.html","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session-user/taon-session-backoffice-users/taon-session-backoffice-users.models.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session-user/taon-session-backoffice-users/taon-session-backoffice-users.routes.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session/taon-profile/taon-profile-picture/taon-profile-picture.models.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session/taon-profile/taon-profile-picture/taon-profile-picture.routes.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session/taon-session/taon-session-profile/taon-session-profile.models.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/index._auto-generated_.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/index.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/session-browser-prod.ts"],"sourcesContent":["//#region imports\nimport { Column, DateTimeColumn, JoinColumn, ManyToOne, StringColumn, TaonBaseAbstractEntity, TaonEntity, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n\nimport { TaonGroupEntity } from '../taon-group/taon-group.entity';\nimport { TaonRoleEntity } from '../taon-role/taon-role.entity';\n\n//#endregion\n\n@TaonEntity({\n className: 'TaonGroupRoleEntity',\n createTable: true,\n})\nexport class TaonGroupRoleEntity extends TaonBaseAbstractEntity<TaonGroupRoleEntity> {\n/* */\n/* */\n \n groupId!: number;\n\n/* */\n/* */\n \n roleId!: number;\n\n/* */\n/* */\n/* */\n/* */\n \n\n/* */\n/* */\n \n group!: TaonGroupEntity;\n\n/* */\n/* */\n/* */\n/* */\n \n\n/* */\n/* */\n \n role!: TaonRoleEntity;\n}","//#region imports\nimport { TaonBaseRepository, TaonRepository } from 'taon/browser-prod';\nimport { Raw } from 'taon-typeorm/browser-prod';\n\nimport { TaonRoleEntity } from '../taon-role/taon-role.entity';\n\nimport { TaonGroupRoleEntity } from './taon-group-role.entity';\n//#endregion\n\n@TaonRepository({\n className: 'TaonGroupRoleRepository',\n})\nexport class TaonGroupRoleRepository extends TaonBaseRepository<TaonGroupRoleEntity> {\n entityClassResolveFn: () => typeof TaonGroupRoleEntity = () =>\n TaonGroupRoleEntity;\n\n /**\n * TODO remove this demo example method\n */\n //#region API / count entites with even id\n async countEntitesWithEvenId(): Promise<number> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region API / get roles for group id\n async getRolesForGroupId(groupId: number): Promise<TaonRoleEntity[]> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region API / assign role to group\n async assignRoleToGroup(\n groupId: number,\n roleId: number,\n ): Promise<TaonGroupRoleEntity> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region API / unassign role from group\n async unassignRoleFromGroup(groupId: number, roleId: number): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n}\n","//#region imports\nimport { TaonRoleEntity } from '../taon-role/taon-role.entity';\nimport { TaonPermissionEntity } from '../taon-permission/taon-permission.entity';\nimport { Column, DateTimeColumn, JoinColumn, ManyToOne, StringColumn, TaonBaseAbstractEntity, TaonEntity, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n\n//#endregion\n\n@TaonEntity({\n className: 'TaonRolePermissionEntity',\n createTable: true,\n})\nexport class TaonRolePermissionEntity extends TaonBaseAbstractEntity<TaonRolePermissionEntity> {\n/* */\n/* */\n \n roleId!: number;\n\n/* */\n/* */\n \n permissionId!: number;\n\n/* */\n/* */\n/* */\n/* */\n \n\n/* */\n/* */\n \n role!: TaonRoleEntity;\n\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n\n/* */\n/* */\n \n permission!: TaonPermissionEntity;\n}","//#region imports\nimport { TaonBaseRepository, TaonRepository } from 'taon/browser-prod';\nimport { Raw } from 'taon-typeorm/browser-prod';\n\nimport { TaonPermissionEntity } from '../taon-permission/taon-permission.entity';\n\nimport { TaonRolePermissionEntity } from './taon-role-permission.entity';\n//#endregion\n\n@TaonRepository({\n className: 'TaonRolePermissionRepository',\n})\nexport class TaonRolePermissionRepository extends TaonBaseRepository<TaonRolePermissionEntity> {\n entityClassResolveFn: () => typeof TaonRolePermissionEntity = () => TaonRolePermissionEntity;\n\n /**\n * TODO remove this demo example method\n */\n async countEntitesWithEvenId(): Promise<number> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async getPermissionsForRoleId(\n roleId: number,\n ): Promise<TaonPermissionEntity[]> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async assignPermissionToRole(\n roleId: number,\n permissionId: number,\n ): Promise<TaonRolePermissionEntity> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async unassignPermissionFromRole(\n roleId: number,\n permissionId: number,\n ): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n}\n","import { TaonGroupEntity, TaonGroupRepository } from '../index';\nimport {\n TaonPermissionEntity,\n TaonPermissionRepository,\n} from '../index';\nimport { TaonRoleRepository } from '../index';\nimport { TaonBaseMigration, TaonMigration, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\nimport { QueryRunner } from 'taon-typeorm/browser-prod';\n\nimport { TaonGroupRoleRepository } from '../taon-group/taon-group-role.repository';\nimport { TaonRolePermissionRepository } from '../taon-role/taon-role-permission.repository';\nimport { TaonRoleEntity } from '../taon-role/taon-role.entity';\n\n//#region Migration class for context \"SessionContext\"\n@TaonMigration({\n className: 'SessionContext_1790328479283_initial',\n})\nexport class SessionContext_1790328479283_initial extends TaonBaseMigration {\n groupRepo = this.injectCustomRepo(TaonGroupRepository);\n\n roleRepo = this.injectCustomRepo(TaonRoleRepository);\n\n permissionRepo = this.injectCustomRepo(TaonPermissionRepository);\n\n groupRoleRepo = this.injectCustomRepo(TaonGroupRoleRepository);\n\n rolePermissionRepo = this.injectCustomRepo(TaonRolePermissionRepository);\n\n //#region up\n async up(queryRunner: QueryRunner): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region helpers\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n //#endregion\n\n //#region down\n async down(queryRunner: QueryRunner): Promise<void> {\n // I'd normally remove by stable `code`,\n // NOT clearDatabase().\n }\n //#endregion\n}\n//#endregion","// THIS FILE IS GENERATED - DO NOT MODIFY\nimport { SessionContext_1790328479283_initial } from './1790328479283_initial';\n// THIS FILE IS GENERATED - DO NOT MODIFY\nexport const MIGRATIONS_CLASSES_FOR_SessionContext = {\n /* 25-09-2026 11:27:59 */ SessionContext_1790328479283_initial,\n};\n// THIS FILE IS GENERATED - DO NOT MODIFY\n","//@ts-nocheck\nexport * from './migrations_index._auto-generated_';\n","// THIS FILE IS GENERATED - DO NOT MODIFY\nimport { decodeEnv } from 'tnp-core/browser-prod';\n// config.superUsers\nexport const ENV_ANGULAR_NODE_APP_CONFIG_SUPER_USERS = (): Promise<string> => decodeEnv(\"dariusz@taon.dev\");\n// config.googleSecret\nexport const ENV_ANGULAR_NODE_APP_CONFIG_GOOGLE_SECRET = (): Promise<string> => decodeEnv(\"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\");\n// config.googleClientId\nexport const ENV_ANGULAR_NODE_APP_CONFIG_GOOGLE_CLIENT_ID = '289576612173-2mh31b67pmq2qdes5jedno9tr1m542es.apps.googleusercontent.com';\n// loading.preAngularBootstrap.background\nexport const ENV_ANGULAR_NODE_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_BACKGROUND = '#fdebed';\n// loading.preAngularBootstrap.loader.name\nexport const ENV_ANGULAR_NODE_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER_NAME = 'lds-default';\n// website.domain\nexport const ENV_ANGULAR_NODE_APP_WEBSITE_DOMAIN = 'session.example.domain.com';\n// website.title\nexport const ENV_ANGULAR_NODE_APP_WEBSITE_TITLE = 'Session';\n// website.useDomain\nexport const ENV_ANGULAR_NODE_APP_WEBSITE_USE_DOMAIN = true;\n// release.targetArtifact\nexport const ENV_ANGULAR_NODE_APP_RELEASE_TARGET_ARTIFACT = 'angular-node-app';\n// release.envName\nexport const ENV_ANGULAR_NODE_APP_RELEASE_ENV_NAME = '__';\n// finishCallback\nexport const ENV_ANGULAR_NODE_APP_FINISH_CALLBACK = (): Promise<string> => decodeEnv({ });\n// container.only\nexport const ENV_ANGULAR_NODE_APP_CONTAINER_ONLY = undefined;\n// container.end\nexport const ENV_ANGULAR_NODE_APP_CONTAINER_END = undefined;\n// container.start\nexport const ENV_ANGULAR_NODE_APP_CONTAINER_START = undefined;\n// container.skipReleased\nexport const ENV_ANGULAR_NODE_APP_CONTAINER_SKIP_RELEASED = undefined;\n// container.skip\nexport const ENV_ANGULAR_NODE_APP_CONTAINER_SKIP = undefined;\n// init.branding\nexport const ENV_ANGULAR_NODE_APP_INIT_BRANDING = undefined;\n// init.struct\nexport const ENV_ANGULAR_NODE_APP_INIT_STRUCT = undefined;\n// build.pwa.disableServiceWorker\nexport const ENV_ANGULAR_NODE_APP_BUILD_PWA_DISABLE_SERVICE_WORKER = undefined;\n// build.pwa.name\nexport const ENV_ANGULAR_NODE_APP_BUILD_PWA_NAME = undefined;\n// build.pwa.short_name\nexport const ENV_ANGULAR_NODE_APP_BUILD_PWA_SHORT_NAME = undefined;\n// build.pwa.start_url\nexport const ENV_ANGULAR_NODE_APP_BUILD_PWA_START_URL = undefined;\n// build.electron.showDevTools\nexport const ENV_ANGULAR_NODE_APP_BUILD_ELECTRON_SHOW_DEV_TOOLS = undefined;\n// build.ssr\nexport const ENV_ANGULAR_NODE_APP_BUILD_SSR = undefined;\n// build.websql\nexport const ENV_ANGULAR_NODE_APP_BUILD_WEBSQL = undefined;\n// build.prod\nexport const ENV_ANGULAR_NODE_APP_BUILD_PROD = undefined;\n// build.overrideOutputPath\nexport const ENV_ANGULAR_NODE_APP_BUILD_OVERRIDE_OUTPUT_PATH = undefined;\n// build.baseHref\nexport const ENV_ANGULAR_NODE_APP_BUILD_BASE_HREF = undefined;\n// build.watch\nexport const ENV_ANGULAR_NODE_APP_BUILD_WATCH = undefined;\n// build.genOnlyClientCode\nexport const ENV_ANGULAR_NODE_APP_BUILD_GEN_ONLY_CLIENT_CODE = undefined;\n// loading.preAngularBootstrap.loader\nexport const ENV_ANGULAR_NODE_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER = undefined;\n// release.cli.minify\nexport const ENV_ANGULAR_NODE_APP_RELEASE_CLI_MINIFY = undefined;\n// release.cli.includeNodeModules\nexport const ENV_ANGULAR_NODE_APP_RELEASE_CLI_INCLUDE_NODE_MODULES = undefined;\n// release.cli.uglify\nexport const ENV_ANGULAR_NODE_APP_RELEASE_CLI_UGLIFY = undefined;\n// release.cli.obscure\nexport const ENV_ANGULAR_NODE_APP_RELEASE_CLI_OBSCURE = undefined;\n// release.cli.compress\nexport const ENV_ANGULAR_NODE_APP_RELEASE_CLI_COMPRESS = undefined;\n// release.nodeBackendApp.minify\nexport const ENV_ANGULAR_NODE_APP_RELEASE_NODE_BACKEND_APP_MINIFY = undefined;\n// release.lib.removeDts\nexport const ENV_ANGULAR_NODE_APP_RELEASE_LIB_REMOVE_DTS = undefined;\n// release.lib.obscureFileByFile\nexport const ENV_ANGULAR_NODE_APP_RELEASE_LIB_OBSCURE_FILE_BY_FILE = undefined;\n// release.lib.uglifyFileByFile\nexport const ENV_ANGULAR_NODE_APP_RELEASE_LIB_UGLIFY_FILE_BY_FILE = undefined;\n// release.lib.includeSourceMaps\nexport const ENV_ANGULAR_NODE_APP_RELEASE_LIB_INCLUDE_SOURCE_MAPS = undefined;\n// release.lib.compress\nexport const ENV_ANGULAR_NODE_APP_RELEASE_LIB_COMPRESS = undefined;\n// release.lib.doNotIncludeLibFiles\nexport const ENV_ANGULAR_NODE_APP_RELEASE_LIB_DO_NOT_INCLUDE_LIB_FILES = undefined;\n// release.resolvedNewVersion\nexport const ENV_ANGULAR_NODE_APP_RELEASE_RESOLVED_NEW_VERSION = undefined;\n// release.releaseVersionBumpType\nexport const ENV_ANGULAR_NODE_APP_RELEASE_RELEASE_VERSION_BUMP_TYPE = undefined;\n// release.envNumber\nexport const ENV_ANGULAR_NODE_APP_RELEASE_ENV_NUMBER = undefined;\n// release.installLocally\nexport const ENV_ANGULAR_NODE_APP_RELEASE_INSTALL_LOCALLY = undefined;\n// release.removeReleaseOutputAfterLocalInstall\nexport const ENV_ANGULAR_NODE_APP_RELEASE_REMOVE_RELEASE_OUTPUT_AFTER_LOCAL_INSTALL = undefined;\n// release.releaseType\nexport const ENV_ANGULAR_NODE_APP_RELEASE_RELEASE_TYPE = undefined;\n// release.autoReleaseUsingConfig\nexport const ENV_ANGULAR_NODE_APP_RELEASE_AUTO_RELEASE_USING_CONFIG = undefined;\n// release.autoReleaseTaskName\nexport const ENV_ANGULAR_NODE_APP_RELEASE_AUTO_RELEASE_TASK_NAME = undefined;\n// release.taonInstanceIp\nexport const ENV_ANGULAR_NODE_APP_RELEASE_TAON_INSTANCE_IP = undefined;\n// release.skipNpmPublish\nexport const ENV_ANGULAR_NODE_APP_RELEASE_SKIP_NPM_PUBLISH = undefined;\n// release.skipDeploy\nexport const ENV_ANGULAR_NODE_APP_RELEASE_SKIP_DEPLOY = undefined;\n// release.skipTagGitPush\nexport const ENV_ANGULAR_NODE_APP_RELEASE_SKIP_TAG_GIT_PUSH = undefined;\n// release.skipReleaseQuestion\nexport const ENV_ANGULAR_NODE_APP_RELEASE_SKIP_RELEASE_QUESTION = undefined;\n// release.skipResolvingGitChanges\nexport const ENV_ANGULAR_NODE_APP_RELEASE_SKIP_RESOLVING_GIT_CHANGES = undefined;\n// release.skipCodeCutting\nexport const ENV_ANGULAR_NODE_APP_RELEASE_SKIP_CODE_CUTTING = undefined;\n// release.skipBuildingArtifacts\nexport const ENV_ANGULAR_NODE_APP_RELEASE_SKIP_BUILDING_ARTIFACTS = undefined;\n// release.pushToAllOriginsWhenLocalReleaseBranch\nexport const ENV_ANGULAR_NODE_APP_RELEASE_PUSH_TO_ALL_ORIGINS_WHEN_LOCAL_RELEASE_BRANCH = undefined;\n// release.useLocalReleaseBranch\nexport const ENV_ANGULAR_NODE_APP_RELEASE_USE_LOCAL_RELEASE_BRANCH = undefined;\n// copyToManager.beforeCopyHook\nexport const ENV_ANGULAR_NODE_APP_COPY_TO_MANAGER_BEFORE_COPY_HOOK = undefined;\n// copyToManager.copyToLocations\nexport const ENV_ANGULAR_NODE_APP_COPY_TO_MANAGER_COPY_TO_LOCATIONS = undefined;\n// copyToManager.copyToProjects\nexport const ENV_ANGULAR_NODE_APP_COPY_TO_MANAGER_COPY_TO_PROJECTS = undefined;\n// copyToManager.skip\nexport const ENV_ANGULAR_NODE_APP_COPY_TO_MANAGER_SKIP = undefined;\n// purpose\nexport const ENV_ANGULAR_NODE_APP_PURPOSE = undefined;\n// recursiveAction\nexport const ENV_ANGULAR_NODE_APP_RECURSIVE_ACTION = undefined;\n// isCiProcess\nexport const ENV_ANGULAR_NODE_APP_IS_CI_PROCESS = undefined;\n// docker.additionalContainer\nexport const ENV_ANGULAR_NODE_APP_DOCKER_ADDITIONAL_CONTAINER = undefined;\n// docker.skipStartInOrder\nexport const ENV_ANGULAR_NODE_APP_DOCKER_SKIP_START_IN_ORDER = undefined;\n// docker.skipUsingMysqlDb\nexport const ENV_ANGULAR_NODE_APP_DOCKER_SKIP_USING_MYSQL_DB = undefined;\n// THIS FILE IS GENERATED - DO NOT MODIFY","// THIS FILE IS GENERATED - DO NOT MODIFY\nimport { decodeEnv } from 'tnp-core/browser-prod';\n// config.superUsers\nexport const ENV_DOCS_WEBAPP_CONFIG_SUPER_USERS = (): Promise<string> => decodeEnv(\"dariusz@taon.dev\");\n// config.googleSecret\nexport const ENV_DOCS_WEBAPP_CONFIG_GOOGLE_SECRET = (): Promise<string> => decodeEnv(\"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\");\n// config.googleClientId\nexport const ENV_DOCS_WEBAPP_CONFIG_GOOGLE_CLIENT_ID = '289576612173-2mh31b67pmq2qdes5jedno9tr1m542es.apps.googleusercontent.com';\n// loading.preAngularBootstrap.background\nexport const ENV_DOCS_WEBAPP_LOADING_PRE_ANGULAR_BOOTSTRAP_BACKGROUND = '#fdebed';\n// loading.preAngularBootstrap.loader.name\nexport const ENV_DOCS_WEBAPP_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER_NAME = 'lds-default';\n// website.domain\nexport const ENV_DOCS_WEBAPP_WEBSITE_DOMAIN = 'session.example.domain.com';\n// website.title\nexport const ENV_DOCS_WEBAPP_WEBSITE_TITLE = 'Session';\n// website.useDomain\nexport const ENV_DOCS_WEBAPP_WEBSITE_USE_DOMAIN = true;\n// release.targetArtifact\nexport const ENV_DOCS_WEBAPP_RELEASE_TARGET_ARTIFACT = 'docs-webapp';\n// release.envName\nexport const ENV_DOCS_WEBAPP_RELEASE_ENV_NAME = '__';\n// finishCallback\nexport const ENV_DOCS_WEBAPP_FINISH_CALLBACK = (): Promise<string> => decodeEnv({ });\n// container.only\nexport const ENV_DOCS_WEBAPP_CONTAINER_ONLY = undefined;\n// container.end\nexport const ENV_DOCS_WEBAPP_CONTAINER_END = undefined;\n// container.start\nexport const ENV_DOCS_WEBAPP_CONTAINER_START = undefined;\n// container.skipReleased\nexport const ENV_DOCS_WEBAPP_CONTAINER_SKIP_RELEASED = undefined;\n// container.skip\nexport const ENV_DOCS_WEBAPP_CONTAINER_SKIP = undefined;\n// init.branding\nexport const ENV_DOCS_WEBAPP_INIT_BRANDING = undefined;\n// init.struct\nexport const ENV_DOCS_WEBAPP_INIT_STRUCT = undefined;\n// build.pwa.disableServiceWorker\nexport const ENV_DOCS_WEBAPP_BUILD_PWA_DISABLE_SERVICE_WORKER = undefined;\n// build.pwa.name\nexport const ENV_DOCS_WEBAPP_BUILD_PWA_NAME = undefined;\n// build.pwa.short_name\nexport const ENV_DOCS_WEBAPP_BUILD_PWA_SHORT_NAME = undefined;\n// build.pwa.start_url\nexport const ENV_DOCS_WEBAPP_BUILD_PWA_START_URL = undefined;\n// build.electron.showDevTools\nexport const ENV_DOCS_WEBAPP_BUILD_ELECTRON_SHOW_DEV_TOOLS = undefined;\n// build.ssr\nexport const ENV_DOCS_WEBAPP_BUILD_SSR = undefined;\n// build.websql\nexport const ENV_DOCS_WEBAPP_BUILD_WEBSQL = undefined;\n// build.prod\nexport const ENV_DOCS_WEBAPP_BUILD_PROD = undefined;\n// build.overrideOutputPath\nexport const ENV_DOCS_WEBAPP_BUILD_OVERRIDE_OUTPUT_PATH = undefined;\n// build.baseHref\nexport const ENV_DOCS_WEBAPP_BUILD_BASE_HREF = undefined;\n// build.watch\nexport const ENV_DOCS_WEBAPP_BUILD_WATCH = undefined;\n// build.genOnlyClientCode\nexport const ENV_DOCS_WEBAPP_BUILD_GEN_ONLY_CLIENT_CODE = undefined;\n// loading.preAngularBootstrap.loader\nexport const ENV_DOCS_WEBAPP_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER = undefined;\n// release.cli.minify\nexport const ENV_DOCS_WEBAPP_RELEASE_CLI_MINIFY = undefined;\n// release.cli.includeNodeModules\nexport const ENV_DOCS_WEBAPP_RELEASE_CLI_INCLUDE_NODE_MODULES = undefined;\n// release.cli.uglify\nexport const ENV_DOCS_WEBAPP_RELEASE_CLI_UGLIFY = undefined;\n// release.cli.obscure\nexport const ENV_DOCS_WEBAPP_RELEASE_CLI_OBSCURE = undefined;\n// release.cli.compress\nexport const ENV_DOCS_WEBAPP_RELEASE_CLI_COMPRESS = undefined;\n// release.nodeBackendApp.minify\nexport const ENV_DOCS_WEBAPP_RELEASE_NODE_BACKEND_APP_MINIFY = undefined;\n// release.lib.removeDts\nexport const ENV_DOCS_WEBAPP_RELEASE_LIB_REMOVE_DTS = undefined;\n// release.lib.obscureFileByFile\nexport const ENV_DOCS_WEBAPP_RELEASE_LIB_OBSCURE_FILE_BY_FILE = undefined;\n// release.lib.uglifyFileByFile\nexport const ENV_DOCS_WEBAPP_RELEASE_LIB_UGLIFY_FILE_BY_FILE = undefined;\n// release.lib.includeSourceMaps\nexport const ENV_DOCS_WEBAPP_RELEASE_LIB_INCLUDE_SOURCE_MAPS = undefined;\n// release.lib.compress\nexport const ENV_DOCS_WEBAPP_RELEASE_LIB_COMPRESS = undefined;\n// release.lib.doNotIncludeLibFiles\nexport const ENV_DOCS_WEBAPP_RELEASE_LIB_DO_NOT_INCLUDE_LIB_FILES = undefined;\n// release.resolvedNewVersion\nexport const ENV_DOCS_WEBAPP_RELEASE_RESOLVED_NEW_VERSION = undefined;\n// release.releaseVersionBumpType\nexport const ENV_DOCS_WEBAPP_RELEASE_RELEASE_VERSION_BUMP_TYPE = undefined;\n// release.envNumber\nexport const ENV_DOCS_WEBAPP_RELEASE_ENV_NUMBER = undefined;\n// release.installLocally\nexport const ENV_DOCS_WEBAPP_RELEASE_INSTALL_LOCALLY = undefined;\n// release.removeReleaseOutputAfterLocalInstall\nexport const ENV_DOCS_WEBAPP_RELEASE_REMOVE_RELEASE_OUTPUT_AFTER_LOCAL_INSTALL = undefined;\n// release.releaseType\nexport const ENV_DOCS_WEBAPP_RELEASE_RELEASE_TYPE = undefined;\n// release.autoReleaseUsingConfig\nexport const ENV_DOCS_WEBAPP_RELEASE_AUTO_RELEASE_USING_CONFIG = undefined;\n// release.autoReleaseTaskName\nexport const ENV_DOCS_WEBAPP_RELEASE_AUTO_RELEASE_TASK_NAME = undefined;\n// release.taonInstanceIp\nexport const ENV_DOCS_WEBAPP_RELEASE_TAON_INSTANCE_IP = undefined;\n// release.skipNpmPublish\nexport const ENV_DOCS_WEBAPP_RELEASE_SKIP_NPM_PUBLISH = undefined;\n// release.skipDeploy\nexport const ENV_DOCS_WEBAPP_RELEASE_SKIP_DEPLOY = undefined;\n// release.skipTagGitPush\nexport const ENV_DOCS_WEBAPP_RELEASE_SKIP_TAG_GIT_PUSH = undefined;\n// release.skipReleaseQuestion\nexport const ENV_DOCS_WEBAPP_RELEASE_SKIP_RELEASE_QUESTION = undefined;\n// release.skipResolvingGitChanges\nexport const ENV_DOCS_WEBAPP_RELEASE_SKIP_RESOLVING_GIT_CHANGES = undefined;\n// release.skipCodeCutting\nexport const ENV_DOCS_WEBAPP_RELEASE_SKIP_CODE_CUTTING = undefined;\n// release.skipBuildingArtifacts\nexport const ENV_DOCS_WEBAPP_RELEASE_SKIP_BUILDING_ARTIFACTS = undefined;\n// release.pushToAllOriginsWhenLocalReleaseBranch\nexport const ENV_DOCS_WEBAPP_RELEASE_PUSH_TO_ALL_ORIGINS_WHEN_LOCAL_RELEASE_BRANCH = undefined;\n// release.useLocalReleaseBranch\nexport const ENV_DOCS_WEBAPP_RELEASE_USE_LOCAL_RELEASE_BRANCH = undefined;\n// copyToManager.beforeCopyHook\nexport const ENV_DOCS_WEBAPP_COPY_TO_MANAGER_BEFORE_COPY_HOOK = undefined;\n// copyToManager.copyToLocations\nexport const ENV_DOCS_WEBAPP_COPY_TO_MANAGER_COPY_TO_LOCATIONS = undefined;\n// copyToManager.copyToProjects\nexport const ENV_DOCS_WEBAPP_COPY_TO_MANAGER_COPY_TO_PROJECTS = undefined;\n// copyToManager.skip\nexport const ENV_DOCS_WEBAPP_COPY_TO_MANAGER_SKIP = undefined;\n// purpose\nexport const ENV_DOCS_WEBAPP_PURPOSE = undefined;\n// recursiveAction\nexport const ENV_DOCS_WEBAPP_RECURSIVE_ACTION = undefined;\n// isCiProcess\nexport const ENV_DOCS_WEBAPP_IS_CI_PROCESS = undefined;\n// docker.additionalContainer\nexport const ENV_DOCS_WEBAPP_DOCKER_ADDITIONAL_CONTAINER = undefined;\n// docker.skipStartInOrder\nexport const ENV_DOCS_WEBAPP_DOCKER_SKIP_START_IN_ORDER = undefined;\n// docker.skipUsingMysqlDb\nexport const ENV_DOCS_WEBAPP_DOCKER_SKIP_USING_MYSQL_DB = undefined;\n// THIS FILE IS GENERATED - DO NOT MODIFY","// THIS FILE IS GENERATED - DO NOT MODIFY\nimport { decodeEnv } from 'tnp-core/browser-prod';\n// config.superUsers\nexport const ENV_ELECTRON_APP_CONFIG_SUPER_USERS = (): Promise<string> => decodeEnv(\"dariusz@taon.dev\");\n// config.googleSecret\nexport const ENV_ELECTRON_APP_CONFIG_GOOGLE_SECRET = (): Promise<string> => decodeEnv(\"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\");\n// config.googleClientId\nexport const ENV_ELECTRON_APP_CONFIG_GOOGLE_CLIENT_ID = '289576612173-2mh31b67pmq2qdes5jedno9tr1m542es.apps.googleusercontent.com';\n// build.ssr\nexport const ENV_ELECTRON_APP_BUILD_SSR = false;\n// loading.preAngularBootstrap.background\nexport const ENV_ELECTRON_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_BACKGROUND = '#fdebed';\n// loading.preAngularBootstrap.loader.name\nexport const ENV_ELECTRON_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER_NAME = 'lds-default';\n// website.domain\nexport const ENV_ELECTRON_APP_WEBSITE_DOMAIN = 'session.example.domain.com';\n// website.title\nexport const ENV_ELECTRON_APP_WEBSITE_TITLE = 'Session';\n// website.useDomain\nexport const ENV_ELECTRON_APP_WEBSITE_USE_DOMAIN = true;\n// release.targetArtifact\nexport const ENV_ELECTRON_APP_RELEASE_TARGET_ARTIFACT = 'electron-app';\n// release.envName\nexport const ENV_ELECTRON_APP_RELEASE_ENV_NAME = '__';\n// finishCallback\nexport const ENV_ELECTRON_APP_FINISH_CALLBACK = (): Promise<string> => decodeEnv({ });\n// container.only\nexport const ENV_ELECTRON_APP_CONTAINER_ONLY = undefined;\n// container.end\nexport const ENV_ELECTRON_APP_CONTAINER_END = undefined;\n// container.start\nexport const ENV_ELECTRON_APP_CONTAINER_START = undefined;\n// container.skipReleased\nexport const ENV_ELECTRON_APP_CONTAINER_SKIP_RELEASED = undefined;\n// container.skip\nexport const ENV_ELECTRON_APP_CONTAINER_SKIP = undefined;\n// init.branding\nexport const ENV_ELECTRON_APP_INIT_BRANDING = undefined;\n// init.struct\nexport const ENV_ELECTRON_APP_INIT_STRUCT = undefined;\n// build.pwa.disableServiceWorker\nexport const ENV_ELECTRON_APP_BUILD_PWA_DISABLE_SERVICE_WORKER = undefined;\n// build.pwa.name\nexport const ENV_ELECTRON_APP_BUILD_PWA_NAME = undefined;\n// build.pwa.short_name\nexport const ENV_ELECTRON_APP_BUILD_PWA_SHORT_NAME = undefined;\n// build.pwa.start_url\nexport const ENV_ELECTRON_APP_BUILD_PWA_START_URL = undefined;\n// build.electron.showDevTools\nexport const ENV_ELECTRON_APP_BUILD_ELECTRON_SHOW_DEV_TOOLS = undefined;\n// build.websql\nexport const ENV_ELECTRON_APP_BUILD_WEBSQL = undefined;\n// build.prod\nexport const ENV_ELECTRON_APP_BUILD_PROD = undefined;\n// build.overrideOutputPath\nexport const ENV_ELECTRON_APP_BUILD_OVERRIDE_OUTPUT_PATH = undefined;\n// build.baseHref\nexport const ENV_ELECTRON_APP_BUILD_BASE_HREF = undefined;\n// build.watch\nexport const ENV_ELECTRON_APP_BUILD_WATCH = undefined;\n// build.genOnlyClientCode\nexport const ENV_ELECTRON_APP_BUILD_GEN_ONLY_CLIENT_CODE = undefined;\n// loading.preAngularBootstrap.loader\nexport const ENV_ELECTRON_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER = undefined;\n// release.cli.minify\nexport const ENV_ELECTRON_APP_RELEASE_CLI_MINIFY = undefined;\n// release.cli.includeNodeModules\nexport const ENV_ELECTRON_APP_RELEASE_CLI_INCLUDE_NODE_MODULES = undefined;\n// release.cli.uglify\nexport const ENV_ELECTRON_APP_RELEASE_CLI_UGLIFY = undefined;\n// release.cli.obscure\nexport const ENV_ELECTRON_APP_RELEASE_CLI_OBSCURE = undefined;\n// release.cli.compress\nexport const ENV_ELECTRON_APP_RELEASE_CLI_COMPRESS = undefined;\n// release.nodeBackendApp.minify\nexport const ENV_ELECTRON_APP_RELEASE_NODE_BACKEND_APP_MINIFY = undefined;\n// release.lib.removeDts\nexport const ENV_ELECTRON_APP_RELEASE_LIB_REMOVE_DTS = undefined;\n// release.lib.obscureFileByFile\nexport const ENV_ELECTRON_APP_RELEASE_LIB_OBSCURE_FILE_BY_FILE = undefined;\n// release.lib.uglifyFileByFile\nexport const ENV_ELECTRON_APP_RELEASE_LIB_UGLIFY_FILE_BY_FILE = undefined;\n// release.lib.includeSourceMaps\nexport const ENV_ELECTRON_APP_RELEASE_LIB_INCLUDE_SOURCE_MAPS = undefined;\n// release.lib.compress\nexport const ENV_ELECTRON_APP_RELEASE_LIB_COMPRESS = undefined;\n// release.lib.doNotIncludeLibFiles\nexport const ENV_ELECTRON_APP_RELEASE_LIB_DO_NOT_INCLUDE_LIB_FILES = undefined;\n// release.resolvedNewVersion\nexport const ENV_ELECTRON_APP_RELEASE_RESOLVED_NEW_VERSION = undefined;\n// release.releaseVersionBumpType\nexport const ENV_ELECTRON_APP_RELEASE_RELEASE_VERSION_BUMP_TYPE = undefined;\n// release.envNumber\nexport const ENV_ELECTRON_APP_RELEASE_ENV_NUMBER = undefined;\n// release.installLocally\nexport const ENV_ELECTRON_APP_RELEASE_INSTALL_LOCALLY = undefined;\n// release.removeReleaseOutputAfterLocalInstall\nexport const ENV_ELECTRON_APP_RELEASE_REMOVE_RELEASE_OUTPUT_AFTER_LOCAL_INSTALL = undefined;\n// release.releaseType\nexport const ENV_ELECTRON_APP_RELEASE_RELEASE_TYPE = undefined;\n// release.autoReleaseUsingConfig\nexport const ENV_ELECTRON_APP_RELEASE_AUTO_RELEASE_USING_CONFIG = undefined;\n// release.autoReleaseTaskName\nexport const ENV_ELECTRON_APP_RELEASE_AUTO_RELEASE_TASK_NAME = undefined;\n// release.taonInstanceIp\nexport const ENV_ELECTRON_APP_RELEASE_TAON_INSTANCE_IP = undefined;\n// release.skipNpmPublish\nexport const ENV_ELECTRON_APP_RELEASE_SKIP_NPM_PUBLISH = undefined;\n// release.skipDeploy\nexport const ENV_ELECTRON_APP_RELEASE_SKIP_DEPLOY = undefined;\n// release.skipTagGitPush\nexport const ENV_ELECTRON_APP_RELEASE_SKIP_TAG_GIT_PUSH = undefined;\n// release.skipReleaseQuestion\nexport const ENV_ELECTRON_APP_RELEASE_SKIP_RELEASE_QUESTION = undefined;\n// release.skipResolvingGitChanges\nexport const ENV_ELECTRON_APP_RELEASE_SKIP_RESOLVING_GIT_CHANGES = undefined;\n// release.skipCodeCutting\nexport const ENV_ELECTRON_APP_RELEASE_SKIP_CODE_CUTTING = undefined;\n// release.skipBuildingArtifacts\nexport const ENV_ELECTRON_APP_RELEASE_SKIP_BUILDING_ARTIFACTS = undefined;\n// release.pushToAllOriginsWhenLocalReleaseBranch\nexport const ENV_ELECTRON_APP_RELEASE_PUSH_TO_ALL_ORIGINS_WHEN_LOCAL_RELEASE_BRANCH = undefined;\n// release.useLocalReleaseBranch\nexport const ENV_ELECTRON_APP_RELEASE_USE_LOCAL_RELEASE_BRANCH = undefined;\n// copyToManager.beforeCopyHook\nexport const ENV_ELECTRON_APP_COPY_TO_MANAGER_BEFORE_COPY_HOOK = undefined;\n// copyToManager.copyToLocations\nexport const ENV_ELECTRON_APP_COPY_TO_MANAGER_COPY_TO_LOCATIONS = undefined;\n// copyToManager.copyToProjects\nexport const ENV_ELECTRON_APP_COPY_TO_MANAGER_COPY_TO_PROJECTS = undefined;\n// copyToManager.skip\nexport const ENV_ELECTRON_APP_COPY_TO_MANAGER_SKIP = undefined;\n// purpose\nexport const ENV_ELECTRON_APP_PURPOSE = undefined;\n// recursiveAction\nexport const ENV_ELECTRON_APP_RECURSIVE_ACTION = undefined;\n// isCiProcess\nexport const ENV_ELECTRON_APP_IS_CI_PROCESS = undefined;\n// docker.additionalContainer\nexport const ENV_ELECTRON_APP_DOCKER_ADDITIONAL_CONTAINER = undefined;\n// docker.skipStartInOrder\nexport const ENV_ELECTRON_APP_DOCKER_SKIP_START_IN_ORDER = undefined;\n// docker.skipUsingMysqlDb\nexport const ENV_ELECTRON_APP_DOCKER_SKIP_USING_MYSQL_DB = undefined;\n// THIS FILE IS GENERATED - DO NOT MODIFY","// THIS FILE IS GENERATED - DO NOT MODIFY\nimport { decodeEnv } from 'tnp-core/browser-prod';\n// config.superUsers\nexport const ENV_MOBILE_APP_CONFIG_SUPER_USERS = (): Promise<string> => decodeEnv(\"dariusz@taon.dev\");\n// config.googleSecret\nexport const ENV_MOBILE_APP_CONFIG_GOOGLE_SECRET = (): Promise<string> => decodeEnv(\"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\");\n// config.googleClientId\nexport const ENV_MOBILE_APP_CONFIG_GOOGLE_CLIENT_ID = '289576612173-2mh31b67pmq2qdes5jedno9tr1m542es.apps.googleusercontent.com';\n// loading.preAngularBootstrap.background\nexport const ENV_MOBILE_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_BACKGROUND = '#fdebed';\n// loading.preAngularBootstrap.loader.name\nexport const ENV_MOBILE_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER_NAME = 'lds-default';\n// website.domain\nexport const ENV_MOBILE_APP_WEBSITE_DOMAIN = 'session.example.domain.com';\n// website.title\nexport const ENV_MOBILE_APP_WEBSITE_TITLE = 'Session';\n// website.useDomain\nexport const ENV_MOBILE_APP_WEBSITE_USE_DOMAIN = true;\n// release.targetArtifact\nexport const ENV_MOBILE_APP_RELEASE_TARGET_ARTIFACT = 'mobile-app';\n// release.envName\nexport const ENV_MOBILE_APP_RELEASE_ENV_NAME = '__';\n// finishCallback\nexport const ENV_MOBILE_APP_FINISH_CALLBACK = (): Promise<string> => decodeEnv({ });\n// container.only\nexport const ENV_MOBILE_APP_CONTAINER_ONLY = undefined;\n// container.end\nexport const ENV_MOBILE_APP_CONTAINER_END = undefined;\n// container.start\nexport const ENV_MOBILE_APP_CONTAINER_START = undefined;\n// container.skipReleased\nexport const ENV_MOBILE_APP_CONTAINER_SKIP_RELEASED = undefined;\n// container.skip\nexport const ENV_MOBILE_APP_CONTAINER_SKIP = undefined;\n// init.branding\nexport const ENV_MOBILE_APP_INIT_BRANDING = undefined;\n// init.struct\nexport const ENV_MOBILE_APP_INIT_STRUCT = undefined;\n// build.pwa.disableServiceWorker\nexport const ENV_MOBILE_APP_BUILD_PWA_DISABLE_SERVICE_WORKER = undefined;\n// build.pwa.name\nexport const ENV_MOBILE_APP_BUILD_PWA_NAME = undefined;\n// build.pwa.short_name\nexport const ENV_MOBILE_APP_BUILD_PWA_SHORT_NAME = undefined;\n// build.pwa.start_url\nexport const ENV_MOBILE_APP_BUILD_PWA_START_URL = undefined;\n// build.electron.showDevTools\nexport const ENV_MOBILE_APP_BUILD_ELECTRON_SHOW_DEV_TOOLS = undefined;\n// build.ssr\nexport const ENV_MOBILE_APP_BUILD_SSR = undefined;\n// build.websql\nexport const ENV_MOBILE_APP_BUILD_WEBSQL = undefined;\n// build.prod\nexport const ENV_MOBILE_APP_BUILD_PROD = undefined;\n// build.overrideOutputPath\nexport const ENV_MOBILE_APP_BUILD_OVERRIDE_OUTPUT_PATH = undefined;\n// build.baseHref\nexport const ENV_MOBILE_APP_BUILD_BASE_HREF = undefined;\n// build.watch\nexport const ENV_MOBILE_APP_BUILD_WATCH = undefined;\n// build.genOnlyClientCode\nexport const ENV_MOBILE_APP_BUILD_GEN_ONLY_CLIENT_CODE = undefined;\n// loading.preAngularBootstrap.loader\nexport const ENV_MOBILE_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER = undefined;\n// release.cli.minify\nexport const ENV_MOBILE_APP_RELEASE_CLI_MINIFY = undefined;\n// release.cli.includeNodeModules\nexport const ENV_MOBILE_APP_RELEASE_CLI_INCLUDE_NODE_MODULES = undefined;\n// release.cli.uglify\nexport const ENV_MOBILE_APP_RELEASE_CLI_UGLIFY = undefined;\n// release.cli.obscure\nexport const ENV_MOBILE_APP_RELEASE_CLI_OBSCURE = undefined;\n// release.cli.compress\nexport const ENV_MOBILE_APP_RELEASE_CLI_COMPRESS = undefined;\n// release.nodeBackendApp.minify\nexport const ENV_MOBILE_APP_RELEASE_NODE_BACKEND_APP_MINIFY = undefined;\n// release.lib.removeDts\nexport const ENV_MOBILE_APP_RELEASE_LIB_REMOVE_DTS = undefined;\n// release.lib.obscureFileByFile\nexport const ENV_MOBILE_APP_RELEASE_LIB_OBSCURE_FILE_BY_FILE = undefined;\n// release.lib.uglifyFileByFile\nexport const ENV_MOBILE_APP_RELEASE_LIB_UGLIFY_FILE_BY_FILE = undefined;\n// release.lib.includeSourceMaps\nexport const ENV_MOBILE_APP_RELEASE_LIB_INCLUDE_SOURCE_MAPS = undefined;\n// release.lib.compress\nexport const ENV_MOBILE_APP_RELEASE_LIB_COMPRESS = undefined;\n// release.lib.doNotIncludeLibFiles\nexport const ENV_MOBILE_APP_RELEASE_LIB_DO_NOT_INCLUDE_LIB_FILES = undefined;\n// release.resolvedNewVersion\nexport const ENV_MOBILE_APP_RELEASE_RESOLVED_NEW_VERSION = undefined;\n// release.releaseVersionBumpType\nexport const ENV_MOBILE_APP_RELEASE_RELEASE_VERSION_BUMP_TYPE = undefined;\n// release.envNumber\nexport const ENV_MOBILE_APP_RELEASE_ENV_NUMBER = undefined;\n// release.installLocally\nexport const ENV_MOBILE_APP_RELEASE_INSTALL_LOCALLY = undefined;\n// release.removeReleaseOutputAfterLocalInstall\nexport const ENV_MOBILE_APP_RELEASE_REMOVE_RELEASE_OUTPUT_AFTER_LOCAL_INSTALL = undefined;\n// release.releaseType\nexport const ENV_MOBILE_APP_RELEASE_RELEASE_TYPE = undefined;\n// release.autoReleaseUsingConfig\nexport const ENV_MOBILE_APP_RELEASE_AUTO_RELEASE_USING_CONFIG = undefined;\n// release.autoReleaseTaskName\nexport const ENV_MOBILE_APP_RELEASE_AUTO_RELEASE_TASK_NAME = undefined;\n// release.taonInstanceIp\nexport const ENV_MOBILE_APP_RELEASE_TAON_INSTANCE_IP = undefined;\n// release.skipNpmPublish\nexport const ENV_MOBILE_APP_RELEASE_SKIP_NPM_PUBLISH = undefined;\n// release.skipDeploy\nexport const ENV_MOBILE_APP_RELEASE_SKIP_DEPLOY = undefined;\n// release.skipTagGitPush\nexport const ENV_MOBILE_APP_RELEASE_SKIP_TAG_GIT_PUSH = undefined;\n// release.skipReleaseQuestion\nexport const ENV_MOBILE_APP_RELEASE_SKIP_RELEASE_QUESTION = undefined;\n// release.skipResolvingGitChanges\nexport const ENV_MOBILE_APP_RELEASE_SKIP_RESOLVING_GIT_CHANGES = undefined;\n// release.skipCodeCutting\nexport const ENV_MOBILE_APP_RELEASE_SKIP_CODE_CUTTING = undefined;\n// release.skipBuildingArtifacts\nexport const ENV_MOBILE_APP_RELEASE_SKIP_BUILDING_ARTIFACTS = undefined;\n// release.pushToAllOriginsWhenLocalReleaseBranch\nexport const ENV_MOBILE_APP_RELEASE_PUSH_TO_ALL_ORIGINS_WHEN_LOCAL_RELEASE_BRANCH = undefined;\n// release.useLocalReleaseBranch\nexport const ENV_MOBILE_APP_RELEASE_USE_LOCAL_RELEASE_BRANCH = undefined;\n// copyToManager.beforeCopyHook\nexport const ENV_MOBILE_APP_COPY_TO_MANAGER_BEFORE_COPY_HOOK = undefined;\n// copyToManager.copyToLocations\nexport const ENV_MOBILE_APP_COPY_TO_MANAGER_COPY_TO_LOCATIONS = undefined;\n// copyToManager.copyToProjects\nexport const ENV_MOBILE_APP_COPY_TO_MANAGER_COPY_TO_PROJECTS = undefined;\n// copyToManager.skip\nexport const ENV_MOBILE_APP_COPY_TO_MANAGER_SKIP = undefined;\n// purpose\nexport const ENV_MOBILE_APP_PURPOSE = undefined;\n// recursiveAction\nexport const ENV_MOBILE_APP_RECURSIVE_ACTION = undefined;\n// isCiProcess\nexport const ENV_MOBILE_APP_IS_CI_PROCESS = undefined;\n// docker.additionalContainer\nexport const ENV_MOBILE_APP_DOCKER_ADDITIONAL_CONTAINER = undefined;\n// docker.skipStartInOrder\nexport const ENV_MOBILE_APP_DOCKER_SKIP_START_IN_ORDER = undefined;\n// docker.skipUsingMysqlDb\nexport const ENV_MOBILE_APP_DOCKER_SKIP_USING_MYSQL_DB = undefined;\n// THIS FILE IS GENERATED - DO NOT MODIFY","// THIS FILE IS GENERATED - DO NOT MODIFY\nimport { decodeEnv } from 'tnp-core/browser-prod';\n// config.superUsers\nexport const ENV_NPM_LIB_AND_CLI_TOOL_CONFIG_SUPER_USERS = (): Promise<string> => decodeEnv(\"dariusz@taon.dev\");\n// config.googleSecret\nexport const ENV_NPM_LIB_AND_CLI_TOOL_CONFIG_GOOGLE_SECRET = (): Promise<string> => decodeEnv(\"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\");\n// config.googleClientId\nexport const ENV_NPM_LIB_AND_CLI_TOOL_CONFIG_GOOGLE_CLIENT_ID = '289576612173-2mh31b67pmq2qdes5jedno9tr1m542es.apps.googleusercontent.com';\n// loading.preAngularBootstrap.background\nexport const ENV_NPM_LIB_AND_CLI_TOOL_LOADING_PRE_ANGULAR_BOOTSTRAP_BACKGROUND = '#fdebed';\n// loading.preAngularBootstrap.loader.name\nexport const ENV_NPM_LIB_AND_CLI_TOOL_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER_NAME = 'lds-default';\n// website.domain\nexport const ENV_NPM_LIB_AND_CLI_TOOL_WEBSITE_DOMAIN = 'session.example.domain.com';\n// website.title\nexport const ENV_NPM_LIB_AND_CLI_TOOL_WEBSITE_TITLE = 'Session';\n// website.useDomain\nexport const ENV_NPM_LIB_AND_CLI_TOOL_WEBSITE_USE_DOMAIN = true;\n// release.targetArtifact\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_TARGET_ARTIFACT = 'npm-lib-and-cli-tool';\n// release.envName\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_ENV_NAME = '__';\n// finishCallback\nexport const ENV_NPM_LIB_AND_CLI_TOOL_FINISH_CALLBACK = (): Promise<string> => decodeEnv({ });\n// container.only\nexport const ENV_NPM_LIB_AND_CLI_TOOL_CONTAINER_ONLY = undefined;\n// container.end\nexport const ENV_NPM_LIB_AND_CLI_TOOL_CONTAINER_END = undefined;\n// container.start\nexport const ENV_NPM_LIB_AND_CLI_TOOL_CONTAINER_START = undefined;\n// container.skipReleased\nexport const ENV_NPM_LIB_AND_CLI_TOOL_CONTAINER_SKIP_RELEASED = undefined;\n// container.skip\nexport const ENV_NPM_LIB_AND_CLI_TOOL_CONTAINER_SKIP = undefined;\n// init.branding\nexport const ENV_NPM_LIB_AND_CLI_TOOL_INIT_BRANDING = undefined;\n// init.struct\nexport const ENV_NPM_LIB_AND_CLI_TOOL_INIT_STRUCT = undefined;\n// build.pwa.disableServiceWorker\nexport const ENV_NPM_LIB_AND_CLI_TOOL_BUILD_PWA_DISABLE_SERVICE_WORKER = undefined;\n// build.pwa.name\nexport const ENV_NPM_LIB_AND_CLI_TOOL_BUILD_PWA_NAME = undefined;\n// build.pwa.short_name\nexport const ENV_NPM_LIB_AND_CLI_TOOL_BUILD_PWA_SHORT_NAME = undefined;\n// build.pwa.start_url\nexport const ENV_NPM_LIB_AND_CLI_TOOL_BUILD_PWA_START_URL = undefined;\n// build.electron.showDevTools\nexport const ENV_NPM_LIB_AND_CLI_TOOL_BUILD_ELECTRON_SHOW_DEV_TOOLS = undefined;\n// build.ssr\nexport const ENV_NPM_LIB_AND_CLI_TOOL_BUILD_SSR = undefined;\n// build.websql\nexport const ENV_NPM_LIB_AND_CLI_TOOL_BUILD_WEBSQL = undefined;\n// build.prod\nexport const ENV_NPM_LIB_AND_CLI_TOOL_BUILD_PROD = undefined;\n// build.overrideOutputPath\nexport const ENV_NPM_LIB_AND_CLI_TOOL_BUILD_OVERRIDE_OUTPUT_PATH = undefined;\n// build.baseHref\nexport const ENV_NPM_LIB_AND_CLI_TOOL_BUILD_BASE_HREF = undefined;\n// build.watch\nexport const ENV_NPM_LIB_AND_CLI_TOOL_BUILD_WATCH = undefined;\n// build.genOnlyClientCode\nexport const ENV_NPM_LIB_AND_CLI_TOOL_BUILD_GEN_ONLY_CLIENT_CODE = undefined;\n// loading.preAngularBootstrap.loader\nexport const ENV_NPM_LIB_AND_CLI_TOOL_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER = undefined;\n// release.cli.minify\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_CLI_MINIFY = undefined;\n// release.cli.includeNodeModules\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_CLI_INCLUDE_NODE_MODULES = undefined;\n// release.cli.uglify\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_CLI_UGLIFY = undefined;\n// release.cli.obscure\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_CLI_OBSCURE = undefined;\n// release.cli.compress\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_CLI_COMPRESS = undefined;\n// release.nodeBackendApp.minify\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_NODE_BACKEND_APP_MINIFY = undefined;\n// release.lib.removeDts\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_LIB_REMOVE_DTS = undefined;\n// release.lib.obscureFileByFile\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_LIB_OBSCURE_FILE_BY_FILE = undefined;\n// release.lib.uglifyFileByFile\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_LIB_UGLIFY_FILE_BY_FILE = undefined;\n// release.lib.includeSourceMaps\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_LIB_INCLUDE_SOURCE_MAPS = undefined;\n// release.lib.compress\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_LIB_COMPRESS = undefined;\n// release.lib.doNotIncludeLibFiles\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_LIB_DO_NOT_INCLUDE_LIB_FILES = undefined;\n// release.resolvedNewVersion\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_RESOLVED_NEW_VERSION = undefined;\n// release.releaseVersionBumpType\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_RELEASE_VERSION_BUMP_TYPE = undefined;\n// release.envNumber\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_ENV_NUMBER = undefined;\n// release.installLocally\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_INSTALL_LOCALLY = undefined;\n// release.removeReleaseOutputAfterLocalInstall\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_REMOVE_RELEASE_OUTPUT_AFTER_LOCAL_INSTALL = undefined;\n// release.releaseType\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_RELEASE_TYPE = undefined;\n// release.autoReleaseUsingConfig\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_AUTO_RELEASE_USING_CONFIG = undefined;\n// release.autoReleaseTaskName\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_AUTO_RELEASE_TASK_NAME = undefined;\n// release.taonInstanceIp\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_TAON_INSTANCE_IP = undefined;\n// release.skipNpmPublish\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_SKIP_NPM_PUBLISH = undefined;\n// release.skipDeploy\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_SKIP_DEPLOY = undefined;\n// release.skipTagGitPush\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_SKIP_TAG_GIT_PUSH = undefined;\n// release.skipReleaseQuestion\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_SKIP_RELEASE_QUESTION = undefined;\n// release.skipResolvingGitChanges\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_SKIP_RESOLVING_GIT_CHANGES = undefined;\n// release.skipCodeCutting\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_SKIP_CODE_CUTTING = undefined;\n// release.skipBuildingArtifacts\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_SKIP_BUILDING_ARTIFACTS = undefined;\n// release.pushToAllOriginsWhenLocalReleaseBranch\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_PUSH_TO_ALL_ORIGINS_WHEN_LOCAL_RELEASE_BRANCH = undefined;\n// release.useLocalReleaseBranch\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_USE_LOCAL_RELEASE_BRANCH = undefined;\n// copyToManager.beforeCopyHook\nexport const ENV_NPM_LIB_AND_CLI_TOOL_COPY_TO_MANAGER_BEFORE_COPY_HOOK = undefined;\n// copyToManager.copyToLocations\nexport const ENV_NPM_LIB_AND_CLI_TOOL_COPY_TO_MANAGER_COPY_TO_LOCATIONS = undefined;\n// copyToManager.copyToProjects\nexport const ENV_NPM_LIB_AND_CLI_TOOL_COPY_TO_MANAGER_COPY_TO_PROJECTS = undefined;\n// copyToManager.skip\nexport const ENV_NPM_LIB_AND_CLI_TOOL_COPY_TO_MANAGER_SKIP = undefined;\n// purpose\nexport const ENV_NPM_LIB_AND_CLI_TOOL_PURPOSE = undefined;\n// recursiveAction\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RECURSIVE_ACTION = undefined;\n// isCiProcess\nexport const ENV_NPM_LIB_AND_CLI_TOOL_IS_CI_PROCESS = undefined;\n// docker.additionalContainer\nexport const ENV_NPM_LIB_AND_CLI_TOOL_DOCKER_ADDITIONAL_CONTAINER = undefined;\n// docker.skipStartInOrder\nexport const ENV_NPM_LIB_AND_CLI_TOOL_DOCKER_SKIP_START_IN_ORDER = undefined;\n// docker.skipUsingMysqlDb\nexport const ENV_NPM_LIB_AND_CLI_TOOL_DOCKER_SKIP_USING_MYSQL_DB = undefined;\n// THIS FILE IS GENERATED - DO NOT MODIFY","// THIS FILE IS GENERATED - DO NOT MODIFY\nimport { decodeEnv } from 'tnp-core/browser-prod';\n// config.superUsers\nexport const ENV_VSCODE_PLUGIN_CONFIG_SUPER_USERS = (): Promise<string> => decodeEnv(\"dariusz@taon.dev\");\n// config.googleSecret\nexport const ENV_VSCODE_PLUGIN_CONFIG_GOOGLE_SECRET = (): Promise<string> => decodeEnv(\"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\");\n// config.googleClientId\nexport const ENV_VSCODE_PLUGIN_CONFIG_GOOGLE_CLIENT_ID = '289576612173-2mh31b67pmq2qdes5jedno9tr1m542es.apps.googleusercontent.com';\n// loading.preAngularBootstrap.background\nexport const ENV_VSCODE_PLUGIN_LOADING_PRE_ANGULAR_BOOTSTRAP_BACKGROUND = '#fdebed';\n// loading.preAngularBootstrap.loader.name\nexport const ENV_VSCODE_PLUGIN_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER_NAME = 'lds-default';\n// website.domain\nexport const ENV_VSCODE_PLUGIN_WEBSITE_DOMAIN = 'session.example.domain.com';\n// website.title\nexport const ENV_VSCODE_PLUGIN_WEBSITE_TITLE = 'Session';\n// website.useDomain\nexport const ENV_VSCODE_PLUGIN_WEBSITE_USE_DOMAIN = true;\n// release.targetArtifact\nexport const ENV_VSCODE_PLUGIN_RELEASE_TARGET_ARTIFACT = 'vscode-plugin';\n// release.envName\nexport const ENV_VSCODE_PLUGIN_RELEASE_ENV_NAME = '__';\n// finishCallback\nexport const ENV_VSCODE_PLUGIN_FINISH_CALLBACK = (): Promise<string> => decodeEnv({ });\n// container.only\nexport const ENV_VSCODE_PLUGIN_CONTAINER_ONLY = undefined;\n// container.end\nexport const ENV_VSCODE_PLUGIN_CONTAINER_END = undefined;\n// container.start\nexport const ENV_VSCODE_PLUGIN_CONTAINER_START = undefined;\n// container.skipReleased\nexport const ENV_VSCODE_PLUGIN_CONTAINER_SKIP_RELEASED = undefined;\n// container.skip\nexport const ENV_VSCODE_PLUGIN_CONTAINER_SKIP = undefined;\n// init.branding\nexport const ENV_VSCODE_PLUGIN_INIT_BRANDING = undefined;\n// init.struct\nexport const ENV_VSCODE_PLUGIN_INIT_STRUCT = undefined;\n// build.pwa.disableServiceWorker\nexport const ENV_VSCODE_PLUGIN_BUILD_PWA_DISABLE_SERVICE_WORKER = undefined;\n// build.pwa.name\nexport const ENV_VSCODE_PLUGIN_BUILD_PWA_NAME = undefined;\n// build.pwa.short_name\nexport const ENV_VSCODE_PLUGIN_BUILD_PWA_SHORT_NAME = undefined;\n// build.pwa.start_url\nexport const ENV_VSCODE_PLUGIN_BUILD_PWA_START_URL = undefined;\n// build.electron.showDevTools\nexport const ENV_VSCODE_PLUGIN_BUILD_ELECTRON_SHOW_DEV_TOOLS = undefined;\n// build.ssr\nexport const ENV_VSCODE_PLUGIN_BUILD_SSR = undefined;\n// build.websql\nexport const ENV_VSCODE_PLUGIN_BUILD_WEBSQL = undefined;\n// build.prod\nexport const ENV_VSCODE_PLUGIN_BUILD_PROD = undefined;\n// build.overrideOutputPath\nexport const ENV_VSCODE_PLUGIN_BUILD_OVERRIDE_OUTPUT_PATH = undefined;\n// build.baseHref\nexport const ENV_VSCODE_PLUGIN_BUILD_BASE_HREF = undefined;\n// build.watch\nexport const ENV_VSCODE_PLUGIN_BUILD_WATCH = undefined;\n// build.genOnlyClientCode\nexport const ENV_VSCODE_PLUGIN_BUILD_GEN_ONLY_CLIENT_CODE = undefined;\n// loading.preAngularBootstrap.loader\nexport const ENV_VSCODE_PLUGIN_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER = undefined;\n// release.cli.minify\nexport const ENV_VSCODE_PLUGIN_RELEASE_CLI_MINIFY = undefined;\n// release.cli.includeNodeModules\nexport const ENV_VSCODE_PLUGIN_RELEASE_CLI_INCLUDE_NODE_MODULES = undefined;\n// release.cli.uglify\nexport const ENV_VSCODE_PLUGIN_RELEASE_CLI_UGLIFY = undefined;\n// release.cli.obscure\nexport const ENV_VSCODE_PLUGIN_RELEASE_CLI_OBSCURE = undefined;\n// release.cli.compress\nexport const ENV_VSCODE_PLUGIN_RELEASE_CLI_COMPRESS = undefined;\n// release.nodeBackendApp.minify\nexport const ENV_VSCODE_PLUGIN_RELEASE_NODE_BACKEND_APP_MINIFY = undefined;\n// release.lib.removeDts\nexport const ENV_VSCODE_PLUGIN_RELEASE_LIB_REMOVE_DTS = undefined;\n// release.lib.obscureFileByFile\nexport const ENV_VSCODE_PLUGIN_RELEASE_LIB_OBSCURE_FILE_BY_FILE = undefined;\n// release.lib.uglifyFileByFile\nexport const ENV_VSCODE_PLUGIN_RELEASE_LIB_UGLIFY_FILE_BY_FILE = undefined;\n// release.lib.includeSourceMaps\nexport const ENV_VSCODE_PLUGIN_RELEASE_LIB_INCLUDE_SOURCE_MAPS = undefined;\n// release.lib.compress\nexport const ENV_VSCODE_PLUGIN_RELEASE_LIB_COMPRESS = undefined;\n// release.lib.doNotIncludeLibFiles\nexport const ENV_VSCODE_PLUGIN_RELEASE_LIB_DO_NOT_INCLUDE_LIB_FILES = undefined;\n// release.resolvedNewVersion\nexport const ENV_VSCODE_PLUGIN_RELEASE_RESOLVED_NEW_VERSION = undefined;\n// release.releaseVersionBumpType\nexport const ENV_VSCODE_PLUGIN_RELEASE_RELEASE_VERSION_BUMP_TYPE = undefined;\n// release.envNumber\nexport const ENV_VSCODE_PLUGIN_RELEASE_ENV_NUMBER = undefined;\n// release.installLocally\nexport const ENV_VSCODE_PLUGIN_RELEASE_INSTALL_LOCALLY = undefined;\n// release.removeReleaseOutputAfterLocalInstall\nexport const ENV_VSCODE_PLUGIN_RELEASE_REMOVE_RELEASE_OUTPUT_AFTER_LOCAL_INSTALL = undefined;\n// release.releaseType\nexport const ENV_VSCODE_PLUGIN_RELEASE_RELEASE_TYPE = undefined;\n// release.autoReleaseUsingConfig\nexport const ENV_VSCODE_PLUGIN_RELEASE_AUTO_RELEASE_USING_CONFIG = undefined;\n// release.autoReleaseTaskName\nexport const ENV_VSCODE_PLUGIN_RELEASE_AUTO_RELEASE_TASK_NAME = undefined;\n// release.taonInstanceIp\nexport const ENV_VSCODE_PLUGIN_RELEASE_TAON_INSTANCE_IP = undefined;\n// release.skipNpmPublish\nexport const ENV_VSCODE_PLUGIN_RELEASE_SKIP_NPM_PUBLISH = undefined;\n// release.skipDeploy\nexport const ENV_VSCODE_PLUGIN_RELEASE_SKIP_DEPLOY = undefined;\n// release.skipTagGitPush\nexport const ENV_VSCODE_PLUGIN_RELEASE_SKIP_TAG_GIT_PUSH = undefined;\n// release.skipReleaseQuestion\nexport const ENV_VSCODE_PLUGIN_RELEASE_SKIP_RELEASE_QUESTION = undefined;\n// release.skipResolvingGitChanges\nexport const ENV_VSCODE_PLUGIN_RELEASE_SKIP_RESOLVING_GIT_CHANGES = undefined;\n// release.skipCodeCutting\nexport const ENV_VSCODE_PLUGIN_RELEASE_SKIP_CODE_CUTTING = undefined;\n// release.skipBuildingArtifacts\nexport const ENV_VSCODE_PLUGIN_RELEASE_SKIP_BUILDING_ARTIFACTS = undefined;\n// release.pushToAllOriginsWhenLocalReleaseBranch\nexport const ENV_VSCODE_PLUGIN_RELEASE_PUSH_TO_ALL_ORIGINS_WHEN_LOCAL_RELEASE_BRANCH = undefined;\n// release.useLocalReleaseBranch\nexport const ENV_VSCODE_PLUGIN_RELEASE_USE_LOCAL_RELEASE_BRANCH = undefined;\n// copyToManager.beforeCopyHook\nexport const ENV_VSCODE_PLUGIN_COPY_TO_MANAGER_BEFORE_COPY_HOOK = undefined;\n// copyToManager.copyToLocations\nexport const ENV_VSCODE_PLUGIN_COPY_TO_MANAGER_COPY_TO_LOCATIONS = undefined;\n// copyToManager.copyToProjects\nexport const ENV_VSCODE_PLUGIN_COPY_TO_MANAGER_COPY_TO_PROJECTS = undefined;\n// copyToManager.skip\nexport const ENV_VSCODE_PLUGIN_COPY_TO_MANAGER_SKIP = undefined;\n// purpose\nexport const ENV_VSCODE_PLUGIN_PURPOSE = undefined;\n// recursiveAction\nexport const ENV_VSCODE_PLUGIN_RECURSIVE_ACTION = undefined;\n// isCiProcess\nexport const ENV_VSCODE_PLUGIN_IS_CI_PROCESS = undefined;\n// docker.additionalContainer\nexport const ENV_VSCODE_PLUGIN_DOCKER_ADDITIONAL_CONTAINER = undefined;\n// docker.skipStartInOrder\nexport const ENV_VSCODE_PLUGIN_DOCKER_SKIP_START_IN_ORDER = undefined;\n// docker.skipUsingMysqlDb\nexport const ENV_VSCODE_PLUGIN_DOCKER_SKIP_USING_MYSQL_DB = undefined;\n// THIS FILE IS GENERATED - DO NOT MODIFY","// THIS FILE IS GENERATED - DO NOT MODIFY\n/**\n * Autogenerated by current cli tool\n */\nexport const BUILD_FRAMEWORK_CLI_NAME = 'tnp';\n/**\n * This value can be change in taon.jsonc (appId)\n */\nexport const APP_ID = 'com.domain.example.session';\n/**\n * Autogenerated by current cli tool\n */\nexport const BUILD_BASE_HREF = '';\n/**\n * This value can be change in taon.jsonc (overrideNpmName)\n */\nexport const PROJECT_NPM_NAME = '@taon-dev/session';\n/**\n * Taon version from you project taon.json\n */\nexport const CURRENT_PACKAGE_TAON_VERSION = 'v21';\n/**\n * Autogenerated by current cli tool. Use *tnp release* to bump version.\n */\nexport const CURRENT_PACKAGE_VERSION = '21.0.240';\n\n//namespace TAON_CLOUDFLARE_WORKERS_URLS\n\n\texport const TAON_CLOUDFLARE_WORKERS_URLS__NS__CwCustomSeoni4B382 = 'https://cw-custom-seoni-4b382.darekf77.workers.dev';\n\n//end of namespace TAON_CLOUDFLARE_WORKERS_URLS\n\n\n// THIS FILE IS GENERATED - DO NOT MODIFY","export function myOrgProj() {\n\n}\n","//#region imports\nimport { Column, CustomColumn, Index, OneToMany, TaonBaseAbstractEntity, TaonEntity, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n\nimport { TaonGroupRoleEntity } from '../taon-group/taon-group-role.entity';\nimport { TaonSessionUserGroupEntity } from '../taon-session-user/taon-session-user-group.entity';\n\nimport { TaonGroupDefaultsValues } from './taon-group.constants';\n//#endregion\n\n@TaonEntity({\n className: 'TaonGroupEntity',\n createTable: true,\n})\nexport class TaonGroupEntity extends TaonBaseAbstractEntity<TaonGroupEntity> {\n/* */\n/* */\n \n\n/* */\n/* */\n \n name!: string;\n\n/* */\n/* */\n \n code!: string;\n\n/* */\n/* */\n \n description?: string;\n\n/* */\n/* */\n \n userGroups!: TaonSessionUserGroupEntity[];\n\n/* */\n/* */\n \n groupRoles!: TaonGroupRoleEntity[];\n}","//#region imports\nimport { TaonBaseRepository, TaonRepository } from 'taon/browser-prod';\n\nimport { TaonGroupEntity } from './taon-group.entity';\n//#endregion\n\n@TaonRepository({\n className: 'TaonGroupRepository',\n})\nexport class TaonGroupRepository extends TaonBaseRepository<TaonGroupEntity> {\n entityClassResolveFn: () => typeof TaonGroupEntity = () => TaonGroupEntity;\n\n //#region API / get groups for user id\n async getGroupsForUserId(\n userId: number | string,\n ): Promise<TaonGroupEntity[]> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n}\n","//#region imports\nimport { TaonRolePermissionEntity } from '../taon-role/taon-role-permission.entity';\nimport { Column, CustomColumn, Index, OneToMany, TaonBaseAbstractEntity, TaonEntity, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n\nimport { TaonPermissionDefaultsValues } from './taon-permission.constants';\n//#endregion\n\n@TaonEntity({\n className: 'TaonPermissionEntity',\n createTable: true,\n})\nexport class TaonPermissionEntity extends TaonBaseAbstractEntity<TaonPermissionEntity> {\n /**\n * Examples:\n *\n * user.read\n * user.write\n * project.deploy\n * billing.invoice.read\n */\n\n/* */\n/* */\n \n\n/* */\n/* */\n \n name!: string;\n\n/* */\n/* */\n \n code!: string;\n\n/* */\n/* */\n \n description?: string;\n\n/* */\n/* */\n \n rolePermissions!: TaonRolePermissionEntity[];\n}","//#region imports\nimport { TaonBaseRepository, TaonRepository } from 'taon/browser-prod';\nimport { Raw } from 'taon-typeorm/browser-prod';\n\nimport { TaonPermissionEntity } from './taon-permission.entity';\n//#endregion\n\n@TaonRepository({\n className: 'TaonPermissionRepository',\n})\nexport class TaonPermissionRepository extends TaonBaseRepository<TaonPermissionEntity> {\n entityClassResolveFn: () => typeof TaonPermissionEntity = () =>\n TaonPermissionEntity;\n\n //#region methods / get permissions for user id\n async getPermissionsForUserId(\n userId: number | string,\n ): Promise<TaonPermissionEntity[]> {\n // TODO\n return [];\n }\n //#endregion\n\n //#region methods / update description\n async updateDescription(\n permissionId: number,\n description: string,\n ): Promise<TaonPermissionEntity> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n}\n","//#region imports\nimport { TaonSessionUserRoleEntity } from '../taon-session-user/taon-session-user-role.entity';\nimport { TaonRolePermissionEntity } from '../taon-role/taon-role-permission.entity';\nimport { TaonGroupRoleEntity } from '../taon-group/taon-group-role.entity';\nimport { Column, CustomColumn, Index, OneToMany, TaonBaseAbstractEntity, TaonEntity, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n\nimport { TaonRoleDefaultsValues } from './taon-role.constants';\n//#endregion\n\n@TaonEntity({\n className: 'TaonRoleEntity',\n createTable: true,\n})\nexport class TaonRoleEntity extends TaonBaseAbstractEntity<TaonRoleEntity> {\n /**\n * Example:\n * admin\n * editor\n * billing-manager\n */\n\n/* */\n/* */\n \n\n/* */\n/* */\n \n name!: string;\n\n/* */\n/* */\n \n code!: string;\n\n/* */\n/* */\n \n description?: string;\n\n/* */\n/* */\n \n userRoles!: TaonSessionUserRoleEntity[];\n\n/* */\n/* */\n \n groupRoles!: TaonGroupRoleEntity[];\n\n/* */\n/* */\n \n rolePermissions!: TaonRolePermissionEntity[];\n}","//#region imports\nimport { TaonBaseRepository, TaonRepository } from 'taon/browser-prod';\nimport { Raw } from 'taon-typeorm/browser-prod';\n\nimport { TaonRoleEntity } from './taon-role.entity';\n//#endregion\n\n@TaonRepository({\n className: 'TaonRoleRepository',\n})\nexport class TaonRoleRepository extends TaonBaseRepository<TaonRoleEntity> {\n entityClassResolveFn: () => typeof TaonRoleEntity = () => TaonRoleEntity;\n\n async getRolesForUserId(userId: number | string): Promise<TaonRoleEntity[]> {\n // TODO\n return [];\n }\n}\n","import { Injectable } from '@angular/core';\nimport { TaonBaseClass, TaonBaseProvider, TaonProvider } from 'taon/browser-prod';\nimport { GlobalStorage, ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith, CoreModels__NS__BaseProjectType, CoreModels__NS__BaseProjectTypeArr, CoreModels__NS__BuildType, CoreModels__NS__BuildTypeArr, CoreModels__NS__buildTypeToWatcherFn, CoreModels__NS__BuildWatcherErrorType, CoreModels__NS__BuildWatcherType, CoreModels__NS__BuildWatcherTypeArr, CoreModels__NS__CfontAlign, CoreModels__NS__CfontStyle, CoreModels__NS__ClassNameStaticProperty, CoreModels__NS__ContentType, CoreModels__NS__ContentTypeKeys, CoreModels__NS__CoreLibCategory, CoreModels__NS__CutableFileExt, CoreModels__NS__DatabaseType, CoreModels__NS__DeepPartial, CoreModels__NS__FileEvent, CoreModels__NS__FileExtension, CoreModels__NS__FirstParamsFrom, CoreModels__NS__FrameworkVersion, CoreModels__NS__GitConnection, CoreModels__NS__GitConnectionArr, CoreModels__NS__GlobalDependencies, CoreModels__NS__hasExitCleaningFunction, CoreModels__NS__HttpCode, CoreModels__NS__HttpMethod, CoreModels__NS__HttpMethodArr, CoreModels__NS__ImageFileExtension, CoreModels__NS__ImageFileExtensionArr, CoreModels__NS__InstalationType, CoreModels__NS__InstalationTypeArr, CoreModels__NS__LibType, CoreModels__NS__localhostDomain, CoreModels__NS__localhostIp127, CoreModels__NS__ManifestIcon, CoreModels__NS__MediaType, CoreModels__NS__MediaTypeAllArr, CoreModels__NS__mimeTypes, CoreModels__NS__NewFactoryType, CoreModels__NS__NpmInstallOptions, CoreModels__NS__NpmPublishOptions, CoreModels__NS__NpmSpecialVersions, CoreModels__NS__OrignalClassKey, CoreModels__NS__OutFolder, CoreModels__NS__Package, CoreModels__NS__ParamType, CoreModels__NS__parentLocation, CoreModels__NS__pathToChildren, CoreModels__NS__Position, CoreModels__NS__PreReleaseVersionTag, CoreModels__NS__PROGRESS_DATA_TYPE, CoreModels__NS__PUSHTYPE, CoreModels__NS__PwaManifest, CoreModels__NS__ReleaseVersionType, CoreModels__NS__ReleaseVersionTypeEnum, CoreModels__NS__RunOptions, CoreModels__NS__Size, CoreModels__NS__SPECIAL_APP_READY_MESSAGE, CoreModels__NS__SPECIAL_WORKER_READY_MESSAGE, CoreModels__NS__tagForTaskName, CoreModels__NS__TaonHttpErrorCustomProp, CoreModels__NS__TsUsage, CoreModels__NS__UIFramework, CoreModels__NS__VSCodeSettings, UtilsOs__NS__commandExistsAsync, UtilsOs__NS__commandExistsSync, UtilsOs__NS__detectEditor, UtilsOs__NS__drawHorizontalLine, UtilsOs__NS__drawVerticalLine, UtilsOs__NS__Editor, UtilsOs__NS__EDITOR_PROCESSES, UtilsOs__NS__EditorArr, UtilsOs__NS__EditorProcess, UtilsOs__NS__getEditorKeybindingPath, UtilsOs__NS__getEditorSettingsJsonPath, UtilsOs__NS__getInotifyWatchCount, UtilsOs__NS__getRealHomeDir, UtilsOs__NS__isBrowser, UtilsOs__NS__isDockerAvailable, UtilsOs__NS__isElectron, UtilsOs__NS__isNode, UtilsOs__NS__isNodeVersionOk, UtilsOs__NS__isPortInUse, UtilsOs__NS__isRunningInBrowser, UtilsOs__NS__isRunningInCliMode, UtilsOs__NS__isRunningInCloudflareWorker, UtilsOs__NS__isRunningInDocker, UtilsOs__NS__isRunningInElectron, UtilsOs__NS__isRunningInLinuxDistro, UtilsOs__NS__isRunningInLinuxGraphicsCapableEnvironment, UtilsOs__NS__isRunningInMochaTest, UtilsOs__NS__isRunningInNode, UtilsOs__NS__isRunningInOsWithGraphicsCapableEnvironment, UtilsOs__NS__isRunningInSSRMode, UtilsOs__NS__isRunningInVscodeExtension, UtilsOs__NS__isRunningInWebSQL, UtilsOs__NS__isRunningInWindows, UtilsOs__NS__isRunningInWindowsCmd, UtilsOs__NS__isRunningInWindowsGitBash, UtilsOs__NS__isRunningInWindowsPowerShell, UtilsOs__NS__isRunningInWsl, UtilsOs__NS__isRunningNodeDebugger, UtilsOs__NS__isSSRMode, UtilsOs__NS__isVscodeExtension, UtilsOs__NS__isWebSQL, UtilsOs__NS__killAllEditor, UtilsOs__NS__openFolderInFileExplorer, UtilsOs__NS__pipxNestedPackageExists, UtilsOs__NS__pipxPackageExists, UtilsOs__NS__pythonModuleExists, UtilsOs__NS__safeExitProgramCleanUp, UtilsOs__NS__sendNotification, UtilsOs__NS__whichOrWherePackageLocated } from 'tnp-core/browser-prod';\n\n//#region config classes\n\n//#region config classes / cookies\nconst isProduction =\n !GlobalStorage.get('TAON_LOCAL_DEV') &&\n (UtilsOs__NS__isRunningInDocker() || UtilsOs__NS__isRunningInCloudflareWorker());\n\nexport class TaonSessionCookiesConfig extends TaonBaseClass {\n declare public ACCESS_TOKEN_SECRET: string;\n\n declare public REFRESH_TOKEN_SECRET: string;\n\n declare public ACCESS_TOKEN_EXPIRES: string;\n\n declare public REFRESH_TOKEN_EXPIRES_SECONDS: number;\n\n declare public accessTokenCookieName: string;\n\n declare public refreshTokenCookieName: string;\n\n declare public sameSite: 'lax' | 'strict' | 'none';\n\n declare public secure: boolean;\n\n declare public httpOnly: boolean;\n\n constructor() {\n super();\n/* */\n/* */\n/* */\n \n this.ACCESS_TOKEN_EXPIRES = '15m';\n this.REFRESH_TOKEN_EXPIRES_SECONDS = 60 * 60 * 24 * 7;\n this.accessTokenCookieName = 'taon_access_token';\n this.refreshTokenCookieName = 'taon_refresh_token';\n this.sameSite = 'lax';\n\n this.secure = isProduction;\n\n this.httpOnly = true;\n }\n}\n//#endregion\n\n//#region config classes / social login config\nexport class TaonSessionSocialLoginConfig extends TaonBaseClass {\n declare public google: {\n enabled?: boolean;\n googleClientId?: string;\n googleSecret?: string;\n };\n\n declare public facebook: {\n enabled?: boolean;\n facebookClientId?: string;\n };\n\n declare public microsoft: {\n enabled?: boolean;\n microsoftClientId?: string;\n };\n\n declare public apple: {\n enabled?: boolean;\n appleClientId?: string;\n };\n\n declare public github: {\n enabled?: boolean;\n githubClientId?: string;\n };\n\n constructor() {\n super();\n this.google = {\n enabled: false,\n };\n this.facebook = {\n enabled: false,\n };\n this.microsoft = {\n enabled: false,\n };\n this.apple = {\n enabled: false,\n };\n }\n\n public get isAnySocialLoginEnabled(): boolean {\n return !!(\n this.google.enabled ||\n this.microsoft.enabled ||\n this.facebook.enabled ||\n this.apple.enabled\n );\n }\n}\n//#endregion\n\n//#region config classes / password requirements\nexport class TaonSessionPasswordRequirementsConfig {\n declare public minLength: number;\n\n declare public maxLength: number;\n\n declare public requireLowercase: boolean;\n\n declare public requireUppercase: boolean;\n\n declare public requireNumber: boolean;\n\n declare public requireSpecialCharacter: boolean;\n\n declare public specialCharacters: string;\n\n constructor() {\n this.minLength = 8;\n this.maxLength = 128;\n\n this.requireLowercase = false;\n this.requireUppercase = false;\n this.requireNumber = false;\n this.requireSpecialCharacter = false;\n\n this.specialCharacters = '!@#$%^&*';\n }\n}\n//#endregion\n\n//#region config classes / registration requirements\nexport class TaonSessionRegistrationConfig {\n /**\n * ⌛ TODO in progress\n */\n declare public enabled: boolean;\n\n /**\n * ⌛ TODO in progress\n */\n declare public requireEmailConfirmation: boolean;\n\n /**\n * ⌛ TODO in progress\n * Registration allowed only when user has\n * invitation code / registration password.\n */\n declare public requireRegistrationPassword: boolean;\n\n /**\n * ⌛ TODO in progress\n */\n declare public allowDuplicateEmail: boolean;\n\n constructor() {\n this.enabled = true;\n this.requireEmailConfirmation = false;\n this.requireRegistrationPassword = true;\n this.allowDuplicateEmail = false;\n }\n}\n//#endregion\n\n//#region config classes / login config\nexport class TaonSessionLoginConfig extends TaonBaseClass {\n declare public diableLoginByEmail: boolean;\n\n declare public defaultEmail?: string;\n\n declare public defaultPassword?: string;\n\n declare public linkToDashboard: string;\n\n declare public displayDashboardButton: boolean;\n\n /**\n * TODO\n * Whether FE may check whether email exists\n * before showing password/register screen.\n */\n // declare public exposeEmailExistence: boolean;\n\n /**\n * TODO\n */\n // declare public rememberMe: boolean;\n\n constructor() {\n super();\n this.diableLoginByEmail = false;\n this.linkToDashboard = '/';\n this.displayDashboardButton = true;\n // this.exposeEmailExistence = true;\n // this.rememberMe = true;\n if (isProduction) {\n delete this.defaultEmail;\n delete this.defaultPassword;\n }\n }\n}\n//#endregion\n\n//#region config classes / check if human config\nexport class TaonSessionCheckIfHumanConfig {\n declare public duringLoginRegisterEmail: boolean;\n\n declare public duringRegistrationPassword: boolean;\n\n declare public duringLoginPassword: boolean;\n\n declare public duringPasswordReset: boolean;\n\n constructor() {\n this.duringLoginRegisterEmail = false;\n this.duringRegistrationPassword = false;\n this.duringLoginPassword = false;\n\n this.duringPasswordReset = false;\n }\n}\n//#endregion\n\n//#region config classes / sessions\nexport class TaonSessionSessionsConfig {\n /**\n * Multiple devices / browsers may stay logged in.\n */\n declare public allowMultipleSessions: boolean;\n\n /**\n * 0 = unlimited\n */\n declare public maxSessionsPerUser: number;\n\n /**\n * Update last activity timestamp.\n */\n declare public trackActivity: boolean;\n\n /**\n * Optional idle timeout.\n * 0 = disabled\n */\n declare public idleTimeoutSeconds: number;\n\n constructor() {\n this.allowMultipleSessions = true;\n this.maxSessionsPerUser = 0;\n this.trackActivity = true;\n this.idleTimeoutSeconds = 0;\n }\n}\n//#endregion\n\n//#region config classes / password recovery config\nexport class TaonSessionPasswordRecoveryConfig {\n declare public enabled: boolean;\n\n declare public tokenExpiresSeconds: number;\n\n declare public invalidateExistingSessionsAfterReset: boolean;\n\n constructor() {\n this.enabled = true;\n this.tokenExpiresSeconds = 60 * 60; // 1h\n this.invalidateExistingSessionsAfterReset = true;\n }\n}\n//#endregion\n\n//#region config classes / email confirmation config\nexport class TaonSessionEmailConfirmationConfig {\n declare public enabled: boolean;\n\n declare public tokenExpiresSeconds: number;\n\n declare public allowResend: boolean;\n\n declare public resendCooldownSeconds: number;\n\n constructor() {\n this.enabled = true;\n this.tokenExpiresSeconds = 60 * 60 * 24; // 24h\n this.allowResend = true;\n this.resendCooldownSeconds = 60;\n }\n}\n//#endregion\n\n//#region config classes / security config\nexport class TaonSessionSecurityConfig {\n /**\n * Logout all sessions after password change.\n */\n declare public invalidateSessionsAfterPasswordChange: boolean;\n\n /**\n * Rotate refresh token after successful refresh.\n */\n declare public rotateRefreshTokens: boolean;\n\n /**\n * Detect reuse of already rotated refresh tokens.\n */\n declare public detectRefreshTokenReuse: boolean;\n\n constructor() {\n this.invalidateSessionsAfterPasswordChange = true;\n this.rotateRefreshTokens = true;\n this.detectRefreshTokenReuse = true;\n }\n}\n//#endregion\n\n//#region config classes / rate limit config\nexport class TaonSessionRateLimitConfig {\n declare public maxAttempts: number;\n\n declare public windowSeconds: number;\n\n constructor(maxAttempts: number, windowSeconds: number) {\n this.maxAttempts = maxAttempts;\n this.windowSeconds = windowSeconds;\n }\n}\n//#endregion\n\n//#region config classes / rate limits config\nexport class TaonSessionRateLimitsConfig {\n declare public loginAttempts: TaonSessionRateLimitConfig;\n\n declare public passwordReset: TaonSessionRateLimitConfig;\n\n declare public emailConfirmationResend: TaonSessionRateLimitConfig;\n\n constructor() {\n this.loginAttempts = new TaonSessionRateLimitConfig(10, 60);\n\n this.passwordReset = new TaonSessionRateLimitConfig(5, 60 * 60);\n\n this.emailConfirmationResend = new TaonSessionRateLimitConfig(5, 60 * 60);\n }\n}\n//#endregion\n\n//#endregion\n\nexport type TaonSessionConfig = Omit<\n CoreModels__NS__DeepPartial<TaonSessionProvider>,\n | 'ctx'\n | '_'\n | 'getOriginalPrototype'\n | 'getOriginalConstructor'\n | '__endpoint_context__'\n>;\n\n@TaonProvider({\n className: 'TaonSessionProvider',\n})\nexport class TaonSessionProvider extends TaonBaseProvider {\n /**\n * Production means here - it runs on real server\n */\n isProduction = isProduction;\n\n superUsersEmails: string[] = [];\n\n /**\n * Resolve social accounts by verified email as well as provider identity.\n */\n linkSocialAccountEmail = false;\n\n cookies = new TaonSessionCookiesConfig();\n\n login = new TaonSessionLoginConfig();\n\n socialLogin = new TaonSessionSocialLoginConfig();\n\n // passwordRequirements = new TaonSessionPasswordRequirementsConfig();\n\n // registration = new TaonSessionRegistrationConfig();\n\n // checkIfHuman = new TaonSessionCheckIfHumanConfig();\n\n // socialLogin = new TaonSessionSocialLoginConfig();\n\n // sessions = new TaonSessionSessionsConfig();\n\n // passwordRecovery = new TaonSessionPasswordRecoveryConfig();\n\n // emailConfirmation = new TaonSessionEmailConfirmationConfig();\n\n // security = new TaonSessionSecurityConfig();\n\n // rateLimits = new TaonSessionRateLimitsConfig();\n\n async _() {\n // TODO @UNCOMMENT disabled login by email when not on localhost\n const originUrl = this.ctx.frontendHostUri;\n const isLocalhost =\n originUrl.hostname === 'localhost' ||\n originUrl.hostname === '127.0.0.1' ||\n originUrl.hostname === '[::1]';\n if (!isLocalhost) {\n this.login.diableLoginByEmail = true;\n }\n }\n\n clone(): TaonSessionConfig {\n return {\n isProduction: this.isProduction,\n linkSocialAccountEmail: this.linkSocialAccountEmail,\n cookies: this.cookies.clone(),\n login: this.login.clone(),\n socialLogin: this.socialLogin.clone(),\n };\n }\n}","//#region imports\nimport { Column, CreateDateColumn, DateTimeColumn, Index, JoinColumn, ManyToOne, StringColumn, TaonBaseAbstractEntity, TaonEntity, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n\nimport { TaonSessionUserEntity } from '../taon-session-user/taon-session-user.entity';\nimport { TaonSessionIdentityProvider } from '../taon-session-user/taon-session-user.models';\n\n//#endregion\n\n@TaonEntity({\n className: 'TaonSessionEntity',\n createTable: true,\n})\nexport class TaonSessionEntity extends TaonBaseAbstractEntity<TaonSessionEntity> {\n/* */\n/* */\n \n userId!: number;\n\n/* */\n/* */\n \n identityId?: number;\n\n/* */\n/* */\n \n authenticationProvider?: TaonSessionIdentityProvider;\n\n/* */\n/* */\n/* */\n/* */\n \n\n/* */\n/* */\n \n user!: TaonSessionUserEntity;\n\n /**\n * Store HASH of session token, not raw token.\n */\n\n/* */\n/* */\n \n\n/* */\n/* */\n \n tokenHash!: string;\n\n/* */\n/* */\n \n userAgent?: string;\n\n/* */\n/* */\n \n ip?: string;\n\n/* */\n/* */\n \n deviceName?: string;\n\n/* */\n/* */\n \n lastActivityAt?: Date;\n\n/* */\n/* */\n \n expiresAt!: Date;\n\n/* */\n/* */\n \n revokedAt?: Date;\n\n/* */\n/* */\n \n revokeReason?: string;\n\n/* */\n/* */\n \n createdAt!: Date;\n}","//#region imports\n\nimport type express from 'express';\nimport { TaonBaseKvRepository, TaonRepository } from 'taon/browser-prod';\nimport { UtilsJwt__NS__decode, UtilsJwt__NS__JwtPayload, UtilsJwt__NS__sign, UtilsJwt__NS__verify } from 'tnp-core/browser-prod';\n\nimport { TaonSessionProvider } from './taon-session.provider';\n\n//#endregion\n\n@TaonRepository({\n className: 'TaonSessionKvRepository',\n})\nexport class TaonSessionKvRepository extends TaonBaseKvRepository<\n Record<\n string,\n {\n userId: number;\n expiresAt: number;\n sessionId?: number;\n }\n >\n> {\n taonSessionProvider = this.injectProvider(TaonSessionProvider);\n\n //#region create access token\n public async createAccessToken(\n userId: number,\n sessionId?: number,\n ): Promise<string> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region create refresh token\n public async createRefreshToken(\n userId: number,\n sessionId?: number,\n ): Promise<string> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region set auth cookies\n public setAuthCookies(\n res: express.Response,\n accessToken: string,\n refreshToken: string,\n ): void {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region clear auth cookies\n public clearAuthCookies(res: express.Response): void {\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region get token from request\n public getTokenFromRequest(req: express.Request): string | null {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n}","//#region imports\nimport { getStatusCode, getStatusText, HttpStatusEnum, TaonBaseRepository, TaonRepository, TaonServerMiddlewareInterceptOptions, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\nimport { Raw } from 'taon-typeorm/browser-prod';\n\nimport { TaonSessionEntity } from './taon-session.entity';\nimport { TaonSessionKvRepository } from './taon-session.kv.repository';\nimport { UtilsJwt__NS__decode, UtilsJwt__NS__JwtPayload, UtilsJwt__NS__sign, UtilsJwt__NS__verify } from 'tnp-core/browser-prod';\nimport { TaonSessionProvider } from './taon-session.provider';\n//#endregion\n\n@TaonRepository({\n className: 'TaonSessionRepository',\n})\nexport class TaonSessionRepository extends TaonBaseRepository<TaonSessionEntity> {\n //#region fields & getters\n entityClassResolveFn: () => typeof TaonSessionEntity = () =>\n TaonSessionEntity;\n\n private readonly taonSessionKvRepository = this.injectKvRepository(\n TaonSessionKvRepository,\n );\n\n private readonly taonSessionProvider =\n this.injectProvider(TaonSessionProvider);\n //#endregion\n\n //#region create session entity\n async createSession(\n partialSessino: Partial<TaonSessionEntity>,\n ): Promise<TaonSessionEntity> {\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n async requireActiveSession(\n sessionId: number,\n userId: number,\n ): Promise<TaonSessionEntity> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async touchSession(\n sessionId: number,\n userId: number,\n refresh = false,\n ): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async revokeSession(sessionId: number, userId: number): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n //#region get session by id\n async getSessionBy(userId: number | string): Promise<TaonSessionEntity> {\n // TODO not only id ?\n // let session = new TaonSessionEntity().clone(partialSessino);\n // session = await this.save(session);\n return null;\n }\n //#endregion\n\n //#region throw if not authroized\n async throwIfNotAuthenticated({\n req,\n res,\n next,\n }: Pick<TaonServerMiddlewareInterceptOptions, 'req' | 'res'> &\n Partial<\n Pick<TaonServerMiddlewareInterceptOptions, 'next'>\n >): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n}","import {\n BooleanColumn,\n Column,\n CreateDateColumn,\n Index,\n JoinColumn,\n ManyToOne,\n TaonBaseAbstractEntity,\n TaonEntity,\n UpdateDateColumn,\n} from 'taon/browser-prod';\n\nimport { TaonSessionUserEntity } from '../taon-session-user/taon-session-user.entity';\n\nimport { TaonSessionIdentityProvider } from './taon-session-user.models';\n\n@TaonEntity({\n className: 'TaonSessionUserIdentityEntity',\n createTable: true,\n})\n/* */\n/* */\n \nexport class TaonSessionUserIdentityEntity extends TaonBaseAbstractEntity<TaonSessionUserIdentityEntity> {\n/* */\n/* */\n \n userId!: number;\n\n/* */\n/* */\n/* */\n/* */\n \n\n/* */\n/* */\n \n user!: TaonSessionUserEntity;\n\n /**\n * PASSWORD / GOOGLE / MICROSOFT / APPLE / FACEBOOK\n */\n/* */\n/* */\n \n provider!: TaonSessionIdentityProvider;\n\n /**\n * PASSWORD:\n * normalized email\n *\n * GOOGLE:\n * Google's stable `sub`, NOT email\n *\n * Other OAuth providers:\n * stable provider-specific account id\n */\n/* */\n/* */\n \n providerUserId!: string;\n\n /**\n * Convenience/contact email reported by this identity.\n *\n * Do NOT use this as the primary OAuth identity key.\n */\n/* */\n/* */\n \n email?: string;\n\n /**\n * Only PASSWORD identities have this.\n *\n * Never store plaintext here.\n */\n/* */\n/* */\n \n passwordHash?: string;\n\n/* */\n/* */\n \n isEmailVerified!: boolean;\n\n/* */\n/* */\n \n createdAt!: Date;\n\n/* */\n/* */\n \n updatedAt!: Date;\n}\n","//#region imports\nimport { BooleanColumn, Column, CreateDateColumn, CustomColumn, Index, OneToMany, String45Column, String500Column, TaonBaseAbstractEntity, TaonEntity, UpdateDateColumn, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n\nimport { TaonSessionEntity } from '../taon-session/taon-session.entity';\nimport { TaonSessionUserGroupEntity } from '../taon-session-user/taon-session-user-group.entity';\nimport { TaonSessionUserIdentityEntity } from '../taon-session-user/taon-session-user-identity.entity';\nimport { TaonSessionUserRoleEntity } from '../taon-session-user/taon-session-user-role.entity';\n\n//#endregion\n\n@TaonEntity<TaonSessionUserEntity>({\n className: 'TaonSessionUserEntity',\n createTable: true,\n defaultModelMapping: () => ({\n '': TaonSessionUserEntity,\n identities: [TaonSessionUserIdentityEntity],\n }),\n})\nexport class TaonSessionUserEntity extends TaonBaseAbstractEntity<TaonSessionUserEntity> {\n/* */\n/* */\n \n\n/* */\n/* */\n \n username?: string;\n\n/* */\n/* */\n \n isActive!: boolean;\n\n/* */\n/* */\n \n createdAt!: Date;\n\n/* */\n/* */\n \n updatedAt!: Date;\n\n/* */\n/* */\n \n sessions!: TaonSessionEntity[];\n\n/* */\n/* */\n \n identities!: TaonSessionUserIdentityEntity[];\n\n/* */\n/* */\n \n userGroups!: TaonSessionUserGroupEntity[];\n\n/* */\n/* */\n \n userRoles!: TaonSessionUserRoleEntity[];\n}","//#region imports\nimport { getStatusCode, HttpStatusEnum, TaonBaseRepository, TaonRepository, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\nimport { QueryFailedError } from 'taon-typeorm/browser-prod';\nimport { Translation } from '@taon-dev/i18n/browser-prod';\n\nimport { TaonSessionUserEntity } from './taon-session-user.entity';\n//#endregion\n\nconst t = Translation.for('src/lib/taon-session-user/taon-session-user.repository.ts', {} as any);\n\n@TaonRepository({\n className: 'TaonSessionUserRepository',\n})\nexport class TaonSessionUserRepository extends TaonBaseRepository<TaonSessionUserEntity> {\n entityClassResolveFn: () => typeof TaonSessionUserEntity = () =>\n TaonSessionUserEntity;\n\n async createUser(): Promise<TaonSessionUserEntity> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n normalizeUsername(username: string): string {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async isUsernameAvailable(username: string, userId: number): Promise<boolean> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async changeUsername(userId: number, username: string): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async getUserById(\n userId: number | string,\n ): Promise<TaonSessionUserEntity | null> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n}","//#region imports\n\nimport { TaonRolePermissionRepository } from '../taon-role/taon-role-permission.repository';\nimport { TaonGroupRoleRepository } from '../taon-group/taon-group-role.repository';\n\nimport { TaonBaseCustomRepository, TaonRepository } from 'taon/browser-prod';\n\nimport { TaonGroupRepository } from '../taon-group/taon-group.repository';\nimport { TaonPermissionRepository } from '../taon-permission/taon-permission.repository';\nimport { TaonRoleRepository } from '../taon-role/taon-role.repository';\nimport { TaonSessionProvider } from '../taon-session/taon-session.provider';\nimport { TaonSessionRepository } from '../taon-session/taon-session.repository';\nimport { TaonSessionUserRepository } from '../taon-session-user/taon-session-user.repository';\n\nimport {\n TaonAuthContextEntity,\n TaonAuthorizationSchema,\n} from './taon-auth-context.entity';\n\n//#endregion\n\n//#region models\n\ntype EnumLike<T extends string> = Record<string, T>;\n\ntype RelationSelection<T extends string> = '*' | T[];\n\ntype GroupAndRolesTree<GROUP extends string, ROLE extends string> = Partial<\n Record<GROUP, RelationSelection<ROLE>>\n>;\n\ntype RolesAndPermissionsTree<\n ROLE extends string,\n PERMISSION extends string,\n> = Partial<Record<ROLE, RelationSelection<PERMISSION>>>;\n\nexport interface PersistAuthorizationTreeOptions<\n GROUP extends string,\n ROLE extends string,\n PERMISSION extends string,\n> {\n enums: {\n groups: EnumLike<GROUP>;\n roles: EnumLike<ROLE>;\n permissions: EnumLike<PERMISSION>;\n };\n\n tree: {\n groupAndRoles?: GroupAndRolesTree<GROUP, ROLE>;\n\n rolesAndPermissions?: RolesAndPermissionsTree<ROLE, PERMISSION>;\n };\n}\n\n//#endregion\n\n@TaonRepository({\n className: 'TaonAuthContextRepository',\n})\nexport class TaonAuthContextRepository<\n AUTH extends TaonAuthorizationSchema,\n> extends TaonBaseCustomRepository {\n //#region fields & getters\n\n private readonly taonSessionUserRepository = this.injectCustomRepo(\n TaonSessionUserRepository,\n );\n\n private readonly taonSessionRepository = this.injectCustomRepo(\n TaonSessionRepository,\n );\n\n private readonly taonGroupRoleRepository = this.injectCustomRepo(\n TaonGroupRoleRepository,\n );\n\n private readonly taonRolePermissionRepository = this.injectCustomRepo(\n TaonRolePermissionRepository,\n );\n\n private readonly taonGroupRepository =\n this.injectCustomRepo(TaonGroupRepository);\n\n private readonly taonPermissionRepository = this.injectCustomRepo(\n TaonPermissionRepository,\n );\n\n private readonly taonSessionProvider =\n this.injectProvider(TaonSessionProvider);\n\n private readonly taonRoleRepository =\n this.injectCustomRepo(TaonRoleRepository);\n\n //#endregion\n\n //#region API / get context\n\n public async getContext(\n userId?: number | string,\n ): Promise<TaonAuthContextEntity<AUTH>> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n //#endregion\n\n //#region API / persist tree\n\n public async clearRolesGroupPermissions(): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n //#region API / persist tree\n public async persistTree(\n options: PersistAuthorizationTreeOptions<\n AUTH['group'],\n AUTH['role'],\n AUTH['permission']\n >,\n ): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#endregion\n\n //#region methods / get or create group\n private async getOrCreateGroup(code: AUTH['group'], name: string) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods / get or create role\n private async getOrCreateRole(code: AUTH['role'], name: string) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods / get or create permission\n private async getOrCreatePermission(code: AUTH['permission'], name: string) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region assign role\n\n private async assignRole(\n group: Awaited<ReturnType<typeof this.getOrCreateGroup>>,\n role: Awaited<ReturnType<typeof this.getOrCreateRole>>,\n ): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n //#endregion\n\n //#region assign permission\n\n private async assignPermission(\n role: Awaited<ReturnType<typeof this.getOrCreateRole>>,\n permission: Awaited<ReturnType<typeof this.getOrCreatePermission>>,\n ): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n //#endregion\n}\n","//#region imports\nimport { Translation } from '@taon-dev/i18n/browser-prod';\nimport { ExpressRequest, ExpressResponse, getStatusCode, HttpStatusEnum, TaonStorageObject, TaonUploadedFile, Models__NS__ClassType, Models__NS__ClassTypeKey, Models__NS__ConnectionOptionsLogs, Models__NS__ContextOptions, Models__NS__DatabaseConfig, Models__NS__DatabaseConfigTypeOrm, Models__NS__DatabasesFolder, Models__NS__DBRecreateMode, Models__NS__DBRecreateModeType, Models__NS__FrameworkMode, Models__NS__Http__NS__AsyncResponse, Models__NS__Http__NS__ClientAction, Models__NS__Http__NS__ContextENDPOINT, Models__NS__Http__NS__ExpressContext, Models__NS__Http__NS__FormlyFromType, Models__NS__Http__NS__MixResponse, Models__NS__Http__NS__PromiseObservableMix, Models__NS__Http__NS__RequestResults, Models__NS__Http__NS__Response, Models__NS__Http__NS__ResponseFuncOpt, Models__NS__Http__NS__SyncResponse, Models__NS__Http__NS__SyncResponseFunc, Models__NS__Http__NS__TaonResponseStream, Models__NS__KVDatabaseConfig, Models__NS__MiddlewareType, Models__NS__StartParams, Models__NS__TaonCtrlBeforeEachRequestParams, Models__NS__TaonCtxCloneParams, Models__NS__TaonInitializeParams, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\nimport { TaonController, TaonBaseStorageController } from 'taon/browser-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n\nimport { TaonAuthContextRepository } from '../../taon-auth-context/taon-auth-context.repository';\nimport { TaonSessionUserRepository } from '../../taon-session-user/taon-session-user.repository';\nimport { TaonSessionRepository } from '../taon-session.repository';\n\nimport { TaonProfileModels__NS__pictureKey, TaonProfileModels__NS__PictureQuery, TaonProfileModels__NS__PROFILE_PICTURE_ACCEPT, TaonProfileModels__NS__PROFILE_PICTURE_FILE_NAME } from './taon-profile.models';\n//#endregion\n\nconst t = Translation.for('src/lib/taon-session/taon-profile/taon-profile.controller.ts', {} as any);\n\n@TaonController<TaonProfileController>({\n className: 'TaonProfileController',\n allowedMethods: ['exists', 'download', 'delete', 'uploadFormDataToServer'],\n})\nexport class TaonProfileController extends TaonBaseStorageController<\n TaonProfileModels__NS__PictureQuery\n> {\n //#region storage hooks\n\n private readonly taonSessionRepository = this.injectCustomRepo(TaonSessionRepository);\n\n private readonly authRepository = this.injectCustomRepo(\n TaonAuthContextRepository,\n );\n\n private readonly userRepository = this.injectCustomRepo(\n TaonSessionUserRepository,\n );\n\n async beforeEachRequest({\n req,\n res,\n methodConfig,\n classConfig,\n }: Models__NS__TaonCtrlBeforeEachRequestParams<TaonProfileController>): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n protected async handleUploadFiles(\n bodyFormDataFiles: TaonUploadedFile[],\n queryParams?: TaonProfileModels__NS__PictureQuery,\n req?: ExpressRequest<any>,\n res?: ExpressResponse<any>,\n ): Promise<TaonStorageObject[]> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async afterFileUploadHook(\n fileObject?: TaonStorageObject,\n queryParams?: TaonProfileModels__NS__PictureQuery,\n ): Promise<void> {\n // Authentication / authorization / profile persistence can be added here.\n }\n\n buildStorageDownloadUrl(options: {\n req: any;\n key: string;\n private: boolean;\n token?: string;\n }): string {\n throw new Error('TODO');\n }\n\n async createStorageDownloadToken(options: {\n key: string;\n expiresAt: number;\n }): Promise<string> {\n throw new Error('TODO');\n }\n\n //#endregion\n}","//namespace TaonProfileModels\n\n export const TaonProfileModels__NS__PROFILE_PICTURE_FILE_NAME = 'profile-picture';\n\n export interface TaonProfileModels__NS__PictureQuery {\n userId?: number;\n }\n\n export function TaonProfileModels__NS__pictureKey(userId?: number | string): string {\n return userId === undefined\n ? TaonProfileModels__NS__PROFILE_PICTURE_FILE_NAME\n : `${userId}__${TaonProfileModels__NS__PROFILE_PICTURE_FILE_NAME}`;\n }\n\n export const TaonProfileModels__NS__PROFILE_PICTURE_ACCEPT =\n 'image/png,image/jpeg,image/webp,image/gif';\n\n//end of namespace TaonProfileModels\n","//#region imports\nimport { Injectable } from '@angular/core';\nimport { TaonBaseAngularService } from 'taon/browser-prod';\n\nimport { TaonProfileController } from './taon-profile.controller';\nimport { TaonProfileModels__NS__pictureKey, TaonProfileModels__NS__PictureQuery, TaonProfileModels__NS__PROFILE_PICTURE_ACCEPT, TaonProfileModels__NS__PROFILE_PICTURE_FILE_NAME } from './taon-profile.models';\n//#endregion\n\n@Injectable()\nexport class TaonProfileApiService extends TaonBaseAngularService {\n //#region controllers\n\n public readonly taonProfileController = this.injectController(\n TaonProfileController,\n );\n\n //#endregion\n\n //#region methods\n\n async hasProfilePicture(userId?: number | string): Promise<boolean> {\n const response = await this.taonProfileController\n .exists(TaonProfileModels__NS__pictureKey(userId))\n .request();\n\n return response.body.json;\n }\n\n async getProfilePictureBlob(\n userId?: number | string,\n ): Promise<Blob | undefined> {\n if (!(await this.hasProfilePicture(userId))) {\n return undefined;\n }\n\n const response = await this.taonProfileController\n .download(TaonProfileModels__NS__pictureKey(userId))\n .request();\n\n const blobFromPicture = await response.body.native.blob();\n // console.log({ blobFromPicture });\n return blobFromPicture;\n }\n\n async uploadProfilePicture(\n file: File,\n userId?: number | string,\n ): Promise<void> {\n const renamedFile = new File(\n [file],\n TaonProfileModels__NS__PROFILE_PICTURE_FILE_NAME,\n {\n type: file.type,\n lastModified: file.lastModified,\n },\n );\n\n const formData = new FormData();\n\n formData.append('file', renamedFile);\n\n await this.taonProfileController\n .uploadFormDataToServer(\n formData,\n userId === undefined ? undefined : { userId: Number(userId) },\n )\n .request();\n }\n\n async deleteProfilePicture(userId?: number | string): Promise<void> {\n await this.taonProfileController\n .delete(TaonProfileModels__NS__pictureKey(userId))\n .request();\n }\n\n //#endregion\n}","//#region imports\nimport {\n ChangeDetectionStrategy,\n Component,\n Input,\n OnDestroy,\n OnInit,\n OnChanges,\n SimpleChanges,\n inject,\n signal,\n forwardRef,\n} from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { Translation } from '@taon-dev/i18n/browser-prod';\nimport { Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\n\nimport { TaonProfileApiService } from '../taon-profile.api.service';\nimport { TaonProfileModels__NS__pictureKey, TaonProfileModels__NS__PictureQuery, TaonProfileModels__NS__PROFILE_PICTURE_ACCEPT, TaonProfileModels__NS__PROFILE_PICTURE_FILE_NAME } from '../taon-profile.models';\n//#endregion\n\nconst t = Translation.for('src/lib/taon-session/taon-profile/taon-profile-picture/taon-profile-picture.component.ts', {} as any);\n\n@Component({\n selector: 'taon-profile-picture',\n templateUrl: './taon-profile-picture.component.html',\n styleUrls: ['./taon-profile-picture.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [MatIconModule],\n providers: [forwardRef(() => TaonProfileApiService)],\n})\nexport class TaonProfilePictureComponent implements OnDestroy, OnInit, OnChanges {\n //#region inject\n\n @Input() hideButtons: boolean = false;\n\n @Input() userId?: number | string;\n\n @Input() readOnly = false;\n\n public readonly t = t.for(this);\n\n private readonly taonProfileApiService = inject(TaonProfileApiService);\n\n //#endregion\n\n //#region state\n\n readonly pictureUrl = signal<string | undefined>(undefined);\n\n readonly loading = signal(false);\n\n readonly uploading = signal(false);\n\n readonly accept = TaonProfileModels__NS__PROFILE_PICTURE_ACCEPT;\n\n private objectUrl?: string;\n\n private destroyed = false;\n\n private loadVersion = 0;\n\n //#endregion\n\n //#region lifecycle\n\n ngOnInit(): void {\n void this.loadProfilePicture();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.userId && !changes.userId.firstChange) {\n void this.loadProfilePicture();\n }\n }\n\n //#endregion\n\n //#region methods\n\n async loadProfilePicture(): Promise<void> {\n this.loading.set(true);\n const version = ++this.loadVersion;\n this.clearPictureUrl();\n\n try {\n const blob = await this.taonProfileApiService.getProfilePictureBlob(\n this.userId,\n );\n\n if (!this.destroyed && version === this.loadVersion) {\n this.setPictureBlob(blob);\n }\n } finally {\n if (version === this.loadVersion) {\n this.loading.set(false);\n }\n }\n }\n\n async fileSelected(event: Event): Promise<void> {\n if (this.readOnly) {\n throw new Error('Profile picture is read-only');\n }\n const input = event.target as HTMLInputElement;\n\n const file = input.files?.[0];\n\n if (!file) {\n return;\n }\n\n this.uploading.set(true);\n\n try {\n await this.taonProfileApiService.uploadProfilePicture(file, this.userId);\n\n await this.loadProfilePicture();\n } finally {\n this.uploading.set(false);\n\n // Allows selecting the same file again.\n input.value = '';\n }\n }\n\n async removePicture(): Promise<void> {\n if (this.readOnly) {\n throw new Error('Profile picture is read-only');\n }\n this.uploading.set(true);\n const userId = this.userId;\n\n try {\n await this.taonProfileApiService.deleteProfilePicture(userId);\n\n if (!this.destroyed && userId === this.userId) {\n ++this.loadVersion;\n this.loading.set(false);\n this.clearPictureUrl();\n }\n } finally {\n this.uploading.set(false);\n }\n }\n\n private setPictureBlob(blob: Blob | undefined): void {\n this.clearPictureUrl();\n\n if (!blob) {\n return;\n }\n\n this.objectUrl = URL.createObjectURL(blob);\n\n this.pictureUrl.set(this.objectUrl);\n }\n\n private clearPictureUrl(): void {\n if (this.objectUrl) {\n URL.revokeObjectURL(this.objectUrl);\n\n this.objectUrl = undefined;\n }\n\n this.pictureUrl.set(undefined);\n }\n\n //#endregion\n\n //#region destroy\n\n ngOnDestroy(): void {\n this.destroyed = true;\n this.clearPictureUrl();\n }\n\n //#endregion\n}","<div class=\"profile-picture\">\n <label\n class=\"profile-picture__avatar\"\n [class.profile-picture__avatar--disabled]=\"uploading() || readOnly\">\n @if (pictureUrl()) {\n <img\n class=\"profile-picture__image\"\n [src]=\"pictureUrl()\"\n alt=\"Profile picture\" />\n } @else {\n <mat-icon class=\"profile-picture__placeholder\">account_circle</mat-icon>\n <!-- <svg\n class=\"profile-picture__placeholder\"\n viewBox=\"0 0 24 24\"\n aria-hidden=\"true\">\n <path\n d=\"M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4Zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4Z\" />\n </svg> -->\n }\n\n @if (loading() || uploading()) {\n <div class=\"profile-picture__loading\">...</div>\n }\n\n <input\n class=\"profile-picture__input\"\n type=\"file\"\n [accept]=\"accept\"\n [disabled]=\"uploading() || readOnly\"\n (change)=\"fileSelected($event)\" />\n </label>\n\n @if (!hideButtons && !readOnly) {\n <div class=\"profile-picture__actions\">\n <label class=\"profile-picture__button\">\n {{\n pictureUrl()\n ? t.gettext('Change picture')\n : t.gettext('Upload picture')\n }}\n\n <input\n class=\"profile-picture__input\"\n type=\"file\"\n [accept]=\"accept\"\n [disabled]=\"uploading()\"\n (change)=\"fileSelected($event)\" />\n </label>\n\n @if (pictureUrl()) {\n <button\n class=\"profile-picture__button\"\n type=\"button\"\n [disabled]=\"uploading()\"\n (click)=\"removePicture()\">\n {{ t.gettext('Remove') }}\n </button>\n }\n </div>\n }\n</div>\n","//#region imports\nimport { TaonController, TaonBaseCrudController, Query, GET, TaonPaginationQuery, ClassHelpers__NS__asyncHandler, ClassHelpers__NS__ensureClassConfig, ClassHelpers__NS__ensureMethodConfig, ClassHelpers__NS__getClassConfig, ClassHelpers__NS__getClassFnFromObject, ClassHelpers__NS__getControllerConfigs, ClassHelpers__NS__getFullInternalName, ClassHelpers__NS__getMethodsNames, ClassHelpers__NS__getName, ClassHelpers__NS__getOrginalClass, ClassHelpers__NS__getUniqueKey, ClassHelpers__NS__hasParentClassWithName, ClassHelpers__NS__isContextClassObject, ClassHelpers__NS__mapFnError, ClassHelpers__NS__setName, Models__NS__ClassType, Models__NS__ClassTypeKey, Models__NS__ConnectionOptionsLogs, Models__NS__ContextOptions, Models__NS__DatabaseConfig, Models__NS__DatabaseConfigTypeOrm, Models__NS__DatabasesFolder, Models__NS__DBRecreateMode, Models__NS__DBRecreateModeType, Models__NS__FrameworkMode, Models__NS__Http__NS__AsyncResponse, Models__NS__Http__NS__ClientAction, Models__NS__Http__NS__ContextENDPOINT, Models__NS__Http__NS__ExpressContext, Models__NS__Http__NS__FormlyFromType, Models__NS__Http__NS__MixResponse, Models__NS__Http__NS__PromiseObservableMix, Models__NS__Http__NS__RequestResults, Models__NS__Http__NS__Response, Models__NS__Http__NS__ResponseFuncOpt, Models__NS__Http__NS__SyncResponse, Models__NS__Http__NS__SyncResponseFunc, Models__NS__Http__NS__TaonResponseStream, Models__NS__KVDatabaseConfig, Models__NS__MiddlewareType, Models__NS__StartParams, Models__NS__TaonCtrlBeforeEachRequestParams, Models__NS__TaonCtxCloneParams, Models__NS__TaonInitializeParams, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\nimport { Entity } from 'taon-typeorm/browser-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n\nimport { TaonSessionRepository } from '../taon-session/taon-session.repository';\n\nimport { TaonSessionUserIdentityEntity } from './taon-session-user-identity.entity';\nimport { TaonSessionUserEntity } from './taon-session-user.entity';\nimport { TaonSessionUserRepository } from './taon-session-user.repository';\n//#endregion\n\n@TaonController<TaonSessionUserController>({\n className: 'TaonSessionUserController',\n allowedMethods: ['paginationQuery', 'getBy'],\n})\nexport class TaonSessionUserController extends TaonBaseCrudController<\n TaonSessionUserEntity,\n {},\n TaonSessionUserController\n> {\n entityClassResolveFn: () => typeof TaonSessionUserEntity = () =>\n TaonSessionUserEntity;\n\n private readonly taonSessionRepository = this.injectCustomRepo(\n TaonSessionRepository,\n );\n\n async beforeEachRequest({\n req,\n res,\n methodConfig,\n classConfig,\n }: Models__NS__TaonCtrlBeforeEachRequestParams<TaonSessionUserController>): Promise<void> {\n if (['paginationQuery', 'getBy'].includes(methodConfig.methodName)) {\n await this.taonSessionRepository.throwIfNotAuthenticated({\n req,\n res,\n });\n }\n }\n\n @GET()\n getBy(\n @Query('id') id: number | string,\n ): Models__NS__Http__NS__Response<TaonSessionUserEntity> {\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n protected paginationQueryMethods(): (keyof TaonSessionUserController)[] {\n return ['customPaginationQuery'] as any;\n }\n\n @GET()\n paginationQuery(\n queryJson?: TaonPaginationQuery<any>,\n ): Models__NS__Http__NS__Response<TaonSessionUserEntity[]> {\n return async (req, res) => {\n queryJson.callQueryMethod = 'customPaginationQuery';\n const data = await super.paginationQuery(queryJson)(req, res);\n return data;\n };\n }\n\n protected async customPaginationQuery(\n query: TaonPaginationQuery<TaonSessionUserController>,\n ): Promise<[TaonSessionUserEntity[], number]> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n}","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { TaonBaseAngularService, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\n\nimport { TaonSessionUserController } from './taon-session-user.controller';\nimport type { TaonSessionUserEntity } from './taon-session-user.entity';\n\n@Injectable()\nexport class TaonSessionUserApiService extends TaonBaseAngularService {\n public taonSessionUserController = this.injectController(\n TaonSessionUserController,\n );\n\n // public get allMyEntities$(): Observable<TaonSessionUser[]> {\n // return this.taonSessionUserController.getAll().request!().observable.pipe(\n // map(res => res.body?.json),\n // );\n // }\n\n // public helloWorld(user): Observable<string> {\n // return this.taonSessionUserController.helloWord(user).request!().observable.pipe(\n // map(res => res.responseText as string),\n // );\n // }\n}","//#region imports\nimport { TaonSessionUserEntity } from '../taon-session-user/taon-session-user.entity';\nimport { TaonGroupEntity } from '../taon-group/taon-group.entity';\nimport { Column, CreateDateColumn, DateTimeColumn, JoinColumn, ManyToOne, StringColumn, TaonBaseAbstractEntity, TaonEntity, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n\n//#endregion\n\n@TaonEntity({\n className: 'TaonSessionUserGroupEntity',\n createTable: true,\n})\nexport class TaonSessionUserGroupEntity extends TaonBaseAbstractEntity<TaonSessionUserGroupEntity> {\n/* */\n/* */\n \n userId!: number;\n\n/* */\n/* */\n \n groupId!: number;\n\n/* */\n/* */\n/* */\n/* */\n \n\n/* */\n/* */\n \n user!: TaonSessionUserEntity;\n\n/* */\n/* */\n/* */\n/* */\n \n\n/* */\n/* */\n \n group!: TaonGroupEntity;\n\n/* */\n/* */\n \n createdAt!: Date;\n}","//#region imports\nimport { TaonBaseRepository, TaonRepository } from 'taon/browser-prod';\n\nimport { TaonSessionUserGroupEntity } from './taon-session-user-group.entity';\n//#endregion\n\n@TaonRepository({\n className: 'TaonSessionUserGroupRepository',\n})\nexport class TaonSessionUserGroupRepository extends TaonBaseRepository<TaonSessionUserGroupEntity> {\n entityClassResolveFn: () => typeof TaonSessionUserGroupEntity = () =>\n TaonSessionUserGroupEntity;\n\n async assignGroupToUser(\n userId: number,\n groupId: number,\n ): Promise<TaonSessionUserGroupEntity> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async unassignGroupFromUser(userId: number, groupId: number): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n}\n","import { Translation } from '@taon-dev/i18n/browser-prod';\nimport { getStatusCode, HttpStatusEnum, TaonBaseRepository, TaonRepository, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\nimport type { EntityManager } from 'taon-typeorm/browser-prod';\nimport { UtilsPasswords__NS__hashPassword, UtilsPasswords__NS__verifyPassword } from 'tnp-helpers/browser-prod';\n\nimport { TaonSessionProvider } from '../taon-session/taon-session.provider';\n\nimport { TaonSessionUserIdentityEntity } from './taon-session-user-identity.entity';\nimport { TaonSessionUserEntity } from './taon-session-user.entity';\nimport { TaonSessionIdentityProvider } from './taon-session-user.models';\nimport { TaonSessionUserRepository } from './taon-session-user.repository';\n\nconst t = Translation.for('src/lib/taon-session-user/taon-session-user-identity.repository.ts', {} as any);\n\n@TaonRepository({\n className: 'TaonSessionUserIdentityRepository',\n})\nexport class TaonSessionUserIdentityRepository extends TaonBaseRepository<TaonSessionUserIdentityEntity> {\n entityClassResolveFn: () => typeof TaonSessionUserIdentityEntity = () =>\n TaonSessionUserIdentityEntity;\n\n private readonly userRepository = this.injectCustomRepo(TaonSessionUserRepository);\n\n private readonly sessionProvider = this.injectProvider(TaonSessionProvider);\n\n normalizeEmail(email: string): string {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async findUserIdByEmail(\n email: string,\n manager: EntityManager = this.connection.manager,\n ): Promise<number | undefined> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async resolveSocialIdentity(\n provider: TaonSessionIdentityProvider,\n providerUserId: string,\n email: string,\n isEmailVerified: boolean,\n ): Promise<TaonSessionUserIdentityEntity> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async registerPasswordUser(email: string, password: string): Promise<TaonSessionUserEntity | null> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async connectPasswordIdentity(\n userId: number,\n email: string,\n password: string,\n ): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async createPasswordIdentity(\n userId: number,\n email: string,\n password: string,\n ): Promise<TaonSessionUserIdentityEntity> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n private passwordIdentity(\n userId: number,\n normalizedEmail: string,\n passwordHash: string,\n isEmailVerified: boolean,\n ): TaonSessionUserIdentityEntity {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async findPasswordIdentity(\n email: string,\n ): Promise<TaonSessionUserIdentityEntity | null> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async verifyPassword(\n email: string,\n password: string,\n ): Promise<TaonSessionUserIdentityEntity | null> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async findSocialIdentity(\n provider: TaonSessionIdentityProvider,\n providerUserId: string,\n ): Promise<TaonSessionUserIdentityEntity | null> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async createSocialIdentity(\n userId: number,\n provider: TaonSessionIdentityProvider,\n providerUserId: string,\n email?: string,\n isEmailVerified = false,\n manager: EntityManager = this.connection.manager,\n ): Promise<TaonSessionUserIdentityEntity> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n}","//#region imports\nimport { TaonSessionUserEntity } from '../taon-session-user/taon-session-user.entity';\nimport { TaonRoleEntity } from '../taon-role/taon-role.entity';\nimport { Column, CreateDateColumn, CustomColumn, JoinColumn, ManyToOne, String45Column, String500Column, TaonBaseAbstractEntity, TaonEntity, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n\n//#endregion\n\n@TaonEntity({\n className: 'TaonSessionUserRoleEntity',\n createTable: true,\n})\nexport class TaonSessionUserRoleEntity extends TaonBaseAbstractEntity<TaonSessionUserRoleEntity> {\n/* */\n/* */\n \n userId!: number;\n\n/* */\n/* */\n \n roleId!: number;\n\n/* */\n/* */\n/* */\n/* */\n \n\n/* */\n/* */\n \n user!: TaonSessionUserEntity;\n\n/* */\n/* */\n/* */\n/* */\n \n\n/* */\n/* */\n \n role!: TaonRoleEntity;\n\n/* */\n/* */\n \n createdAt!: Date;\n}","//#region imports\nimport { TaonBaseMiddleware, TaonMiddleware, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n//#endregion\n\n@TaonMiddleware({\n className: 'TaonSessionUserMiddleware',\n})\nexport class TaonSessionUserMiddleware extends TaonBaseMiddleware {}","//#region imports\nimport { TaonBaseProvider, TaonProvider, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n//#endregion\n\n@TaonProvider({\n className: 'TaonSessionUserProvider',\n})\nexport class TaonSessionUserProvider extends TaonBaseProvider {\n\n\n\n}","//#region imports\nimport { TaonBaseSubscriberForEntity, TaonSubscriber } from 'taon/browser-prod';\n\nimport { TaonSessionUserEntity } from './taon-session-user.entity';\nimport { TaonSessionUserProvider } from './taon-session-user.provider';\n//#endregion\n\n@TaonSubscriber<TaonSessionUserSubscriber>({\n className: 'TaonSessionUserSubscriber',\n allowedEvents: ['afterUpdate'],\n})\nexport class TaonSessionUserSubscriber extends TaonBaseSubscriberForEntity {\n taonSessionUserProvider = this.injectProvider(TaonSessionUserProvider);\n\n listenTo(): typeof TaonSessionUserEntity {\n return TaonSessionUserEntity;\n }\n}\n","//#region imports\nimport { createContext, TaonBaseContext } from 'taon/browser-prod';\n\nimport { TaonSessionUserGroupEntity } from './taon-session-user-group.entity';\nimport { TaonSessionUserGroupRepository } from './taon-session-user-group.repository';\nimport { TaonSessionUserIdentityEntity } from './taon-session-user-identity.entity';\nimport { TaonSessionUserIdentityRepository } from './taon-session-user-identity.repository';\nimport { TaonSessionUserRoleEntity } from './taon-session-user-role.entity';\nimport { TaonSessionUserController } from './taon-session-user.controller';\nimport { TaonSessionUserEntity } from './taon-session-user.entity';\nimport { TaonSessionUserMiddleware } from './taon-session-user.middleware';\nimport { TaonSessionUserProvider } from './taon-session-user.provider';\nimport { TaonSessionUserRepository } from './taon-session-user.repository';\nimport { TaonSessionUserSubscriber } from './taon-session-user.subscriber';\n//#endregion\n\nexport const TaonSessionUserContext = createContext(() => ({\n contextName: 'TaonSessionUserContext',\n abstract: true,\n contexts: { TaonBaseContext },\n entities: {\n TaonSessionUserEntity,\n TaonSessionUserGroupEntity,\n TaonSessionUserRoleEntity,\n TaonSessionUserIdentityEntity,\n },\n controllers: { TaonSessionUserController },\n repositories: {\n TaonSessionUserRepository,\n TaonSessionUserIdentityRepository,\n TaonSessionUserGroupRepository,\n },\n providers: { TaonSessionUserProvider },\n middlewares: { TaonSessionUserMiddleware },\n subscribers: { TaonSessionUserSubscriber },\n}));\n","import type { TaonSessionUserEntity } from './taon-session-user.entity';\n\nexport const TaonSessionUserDefaultsValues = {} as Partial<TaonSessionUserEntity>;\n","export enum TaonSessionUserState {\n Active = 'active',\n Inactive = 'inactive',\n}\n\nexport enum TaonSessionIdentityProvider {\n PASSWORD = 'PASSWORD',\n\n GOOGLE = 'GOOGLE',\n MICROSOFT = 'MICROSOFT',\n APPLE = 'APPLE',\n FACEBOOK = 'FACEBOOK',\n GITHUB = 'GITHUB',\n}\n","//namespace TaonSessionUserUtils\n\n export function TaonSessionUserUtils__NS__generateRandomUsername(): string {\n return `user${crypto.randomUUID().replace(/-/g, '').slice(0, 12)}`;\n }\n\n//end of namespace TaonSessionUserUtils\n","//#region imports\nimport { TaonAdditionalMiddlewareMethodInfo, TaonBaseMiddleware, TaonMiddleware, TaonServerMiddlewareInterceptOptions, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith, UtilsJwt__NS__decode, UtilsJwt__NS__JwtPayload, UtilsJwt__NS__sign, UtilsJwt__NS__verify } from 'tnp-core/browser-prod';\n\nimport { TaonSessionKvRepository } from './taon-session.kv.repository';\nimport { TaonSessionProvider } from './taon-session.provider';\nimport { TaonSessionRepository } from './taon-session.repository';\n//#endregion\n\n@TaonMiddleware({\n className: 'TaonSessionMiddleware',\n})\nexport class TaonSessionMiddleware extends TaonBaseMiddleware {\n taonSessionRepository = this.injectCustomRepo(TaonSessionRepository);\n\n //#region intercept server method\n async interceptServerMethod(\n data: TaonServerMiddlewareInterceptOptions,\n ): Promise<void> {\n/* */\n/* */\n \n }\n //#endregion\n}","//#region imports\nimport { Translation } from '@taon-dev/i18n/browser-prod';\nimport {\n TaonAuthContextEntity,\n TaonAuthContextRepository,\n} from '../index';\nimport { TaonController, TaonBaseCrudController, Query, GET, TaonBaseController, Body, POST, HttpStatusEnum, getStatusCode, getStatusText, ClassHelpers__NS__asyncHandler, ClassHelpers__NS__ensureClassConfig, ClassHelpers__NS__ensureMethodConfig, ClassHelpers__NS__getClassConfig, ClassHelpers__NS__getClassFnFromObject, ClassHelpers__NS__getControllerConfigs, ClassHelpers__NS__getFullInternalName, ClassHelpers__NS__getMethodsNames, ClassHelpers__NS__getName, ClassHelpers__NS__getOrginalClass, ClassHelpers__NS__getUniqueKey, ClassHelpers__NS__hasParentClassWithName, ClassHelpers__NS__isContextClassObject, ClassHelpers__NS__mapFnError, ClassHelpers__NS__setName, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\nimport { HttpStatusCodeMap } from 'taon/browser-prod';\nimport { FindOneOptions, FindOptionsWhere } from 'taon-typeorm/browser-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith, UtilsJwt__NS__decode, UtilsJwt__NS__JwtPayload, UtilsJwt__NS__sign, UtilsJwt__NS__verify } from 'tnp-core/browser-prod';\n\nimport {\n TaonSessionIdentityProvider,\n TaonSessionUserEntity,\n} from '../taon-session-user';\nimport { TaonSessionUserIdentityEntity } from '../taon-session-user/taon-session-user-identity.entity';\nimport { TaonSessionUserIdentityRepository } from '../taon-session-user/taon-session-user-identity.repository';\nimport { TaonSessionUserRepository } from '../taon-session-user/taon-session-user.repository';\n\nimport { TaonSessionEntity } from './taon-session.entity';\nimport { TaonSessionKvRepository } from './taon-session.kv.repository';\nimport { TaonSessionMiddleware } from './taon-session.middleware';\nimport { TaonLoginData } from './taon-session.models';\nimport { TaonSessionProvider } from './taon-session.provider';\nimport { TaonSessionRepository } from './taon-session.repository';\nimport { TaonSessionUtils__NS__getRequestMetadata, TaonSessionUtils__NS__verifyGoogleAuthorizationCode } from './taon-session.utils';\n\n//#endregion\n\nconst t = Translation.for('src/lib/taon-session/taon-session.controller.ts', {} as any);\n\n@TaonController<TaonSessionController>({\n className: 'TaonSessionController',\n allowedMethods: [\n //#region allowed method\n 'createUser',\n 'userExists',\n 'getCurrentUserId',\n 'login',\n 'logout',\n 'refresh',\n 'context',\n 'emptyContext',\n 'connectIdentity',\n 'disconnectIdentity',\n 'usernameAvailable',\n 'changeUsername',\n //#endregion\n ],\n})\nexport class TaonSessionController extends TaonBaseController {\n //#region fields & getters\n private readonly taonSessionKvRepository = this.injectKvRepository(\n TaonSessionKvRepository,\n );\n\n private readonly taonSessionUserIdentityRepository = this.injectCustomRepo(\n TaonSessionUserIdentityRepository,\n );\n\n private readonly taonSessionProvider =\n this.injectProvider(TaonSessionProvider);\n\n private readonly taonSessionUserRepository = this.injectCustomRepo(\n TaonSessionUserRepository,\n );\n\n private readonly taonAuthContextRepository = this.injectCustomRepo(\n TaonAuthContextRepository,\n );\n\n private readonly taonSessionRepository = this.injectCustomRepo(\n TaonSessionRepository,\n );\n //#endregion\n\n //#region createUser\n @POST()\n createUser(\n @Body('email') email: string,\n @Body('password') password: string,\n ): Taon__NS__Response<TaonSessionUserEntity | null> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region userExists\n @POST()\n userExists(@Body('email') email: string): Taon__NS__Response<boolean> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region get google identity\n private async getGoogleIdentity(data: TaonLoginData): Promise<{\n identity?: TaonSessionUserIdentityEntity | null | undefined;\n error: boolean;\n googleData?: Awaited<\n ReturnType<typeof TaonSessionUtils__NS__verifyGoogleAuthorizationCode>\n >;\n }> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region connect identity\n @POST({\n middlewares: ({ parentMiddlewares }) => ({\n TaonSessionMiddleware,\n ...parentMiddlewares,\n }),\n })\n connectIdentity(@Body() data: TaonLoginData): Taon__NS__Response<boolean> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region username available\n @POST({\n middlewares: ({ parentMiddlewares }) => ({\n TaonSessionMiddleware,\n ...parentMiddlewares,\n }),\n })\n usernameAvailable(\n @Body('username') username: string,\n ): Taon__NS__Response<boolean> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region change username\n @POST({\n middlewares: ({ parentMiddlewares }) => ({\n TaonSessionMiddleware,\n ...parentMiddlewares,\n }),\n })\n changeUsername(@Body('username') username: string): Taon__NS__Response<boolean> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region disconnect identity\n @POST({\n middlewares: ({ parentMiddlewares }) => ({\n TaonSessionMiddleware,\n ...parentMiddlewares,\n }),\n })\n disconnectIdentity(\n @Body('provider') provider: TaonSessionIdentityProvider,\n ): Taon__NS__Response<boolean> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region login\n @POST()\n login(@Body() data: TaonLoginData): Taon__NS__Response<boolean> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region refresh\n @POST()\n refresh(): Taon__NS__Response<boolean> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region logout\n @POST()\n logout(): Taon__NS__Response<boolean> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region context\n @GET({\n middlewares: ({ parentMiddlewares }) => ({\n TaonSessionMiddleware,\n ...parentMiddlewares,\n }),\n })\n context(): Taon__NS__Response<TaonAuthContextEntity> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region empty context\n @GET()\n emptyContext(): Taon__NS__Response<TaonAuthContextEntity> {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region get current user id\n @GET({\n middlewares: ({ parentMiddlewares }) => ({\n TaonSessionMiddleware,\n ...parentMiddlewares,\n }),\n })\n getCurrentUserId(): Taon__NS__Response<number> {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n}","//#region imports\nimport { Injectable } from '@angular/core';\nimport { NEVER, Observable, of } from 'rxjs';\nimport { catchError, map, share, tap } from 'rxjs/operators';\nimport { TaonBaseAngularService, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\n\nimport { TaonAuthContextEntity } from '../taon-auth-context/taon-auth-context.entity';\nimport { TaonSessionUserEntity } from '../taon-session-user/taon-session-user.entity';\nimport { TaonSessionIdentityProvider } from '../taon-session-user/taon-session-user.models';\n\nimport { TaonSessionController } from './taon-session.controller';\nimport { TaonLoginData } from './taon-session.models';\n//#endregion\n\n@Injectable()\nexport class TaonSessionApiService extends TaonBaseAngularService {\n private taonSessionController = this.injectController(TaonSessionController);\n\n usernameAvailable(username: string): Observable<boolean> {\n return this.taonSessionController.usernameAvailable(username)\n .request!().observable.pipe(map(resp => !!resp.body.booleanValue));\n }\n\n changeUsername(username: string): Observable<boolean> {\n return this.taonSessionController.changeUsername(username)\n .request!().observable.pipe(map(resp => !!resp.body.booleanValue));\n }\n\n connectPassword(email: string, password: string): Observable<boolean> {\n return this.taonSessionController.connectIdentity({ email, password })\n .request!().observable.pipe(map(resp => !!resp.body.booleanValue));\n }\n\n //#region login\n\n login(data: TaonLoginData): Observable<boolean> {\n return this.taonSessionController.login(data).request!().observable.pipe(\n map(resp => {\n return !!resp.body.booleanValue;\n }),\n catchError(() => {\n return of(false);\n }),\n );\n }\n //#endregion\n\n //#region logout\n logout(): Observable<boolean> {\n return this.taonSessionController.logout().request!().observable.pipe(\n map(resp => {\n return !!resp.body.booleanValue;\n }),\n catchError(() => {\n return of(false);\n }),\n );\n }\n //#endregion\n\n //#region connect idenitty\n connectIdentity(data: TaonLoginData): Observable<boolean> {\n return this.taonSessionController.connectIdentity(data)\n .request!().observable.pipe(\n map(resp => {\n return !!resp.body.booleanValue;\n }),\n catchError(() => {\n return of(false);\n }),\n );\n }\n //#endregion\n\n //#region disconnect idenitty\n disconnectIdentity(\n provider: TaonSessionIdentityProvider,\n ): Observable<boolean> {\n return this.taonSessionController.disconnectIdentity(provider)\n .request!().observable.pipe(\n map(resp => {\n return !!resp.body.booleanValue;\n }),\n catchError(() => {\n return of(false);\n }),\n );\n }\n //#endregion\n\n //#region me\n context(): Observable<TaonAuthContextEntity> {\n return this.taonSessionController.context().request!().observable.pipe(\n map(resp => {\n return resp.body.json;\n }),\n catchError(() => {\n return of(null);\n }),\n );\n }\n\n emptyContext(): Observable<TaonAuthContextEntity> {\n return this.taonSessionController.emptyContext().request!().observable.pipe(\n map(resp => {\n return resp.body.json;\n }),\n catchError(() => {\n return of(null);\n }),\n );\n }\n //#endregion\n\n //#region get current user id\n getCurrentUserId(): Observable<number> {\n return this.taonSessionController.getCurrentUserId()\n .request!().observable.pipe(\n map(resp => {\n const userId = resp.body.numericValue;\n return userId;\n }),\n catchError(() => {\n return of(null);\n }),\n share(),\n );\n }\n //#endregion\n\n //#region get current user id\n userExists(\n email: string,\n opt: {\n goToPreviouseState: () => void;\n },\n ): Observable<boolean> {\n return this.taonSessionController.userExists(email)\n .request!().observable.pipe(\n map(resp => {\n const userExists = resp.body.booleanValue;\n return userExists;\n }),\n catchError(() => {\n opt.goToPreviouseState();\n return NEVER;\n }),\n );\n }\n //#endregion\n\n //#region get current user id\n createUser(\n email: string,\n password: string,\n ): Observable<TaonSessionUserEntity | undefined> {\n return this.taonSessionController.createUser(email, password)\n .request!().observable.pipe(\n map(resp => {\n const userExists = resp.body.json;\n return userExists;\n }),\n catchError(() => {\n return of(null);\n }),\n );\n }\n //#endregion\n\n //#region refresh\n refresh(): Observable<boolean> {\n return this.taonSessionController.refresh().request!().observable.pipe(\n map(resp => {\n return !!resp.body.booleanValue;\n }),\n catchError(() => {\n return of(false);\n }),\n );\n }\n //#endregion\n}","//#region imports\nimport { Injectable } from '@angular/core';\nimport { NEVER, Observable, of } from 'rxjs';\nimport { catchError, map, tap } from 'rxjs/operators';\nimport { TaonBaseAngularService, ClassHelpers__NS__asyncHandler, ClassHelpers__NS__ensureClassConfig, ClassHelpers__NS__ensureMethodConfig, ClassHelpers__NS__getClassConfig, ClassHelpers__NS__getClassFnFromObject, ClassHelpers__NS__getControllerConfigs, ClassHelpers__NS__getFullInternalName, ClassHelpers__NS__getMethodsNames, ClassHelpers__NS__getName, ClassHelpers__NS__getOrginalClass, ClassHelpers__NS__getUniqueKey, ClassHelpers__NS__hasParentClassWithName, ClassHelpers__NS__isContextClassObject, ClassHelpers__NS__mapFnError, ClassHelpers__NS__setName, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\n\nimport { TaonSessionUserEntity } from '../taon-session-user/taon-session-user.entity';\n\nimport { TaonSessionController } from './taon-session.controller';\nimport {\n TaonSessionConfig,\n TaonSessionProvider,\n} from './taon-session.provider';\n//#endregion\n\n@Injectable()\nexport class TaonSessionConfigService extends TaonBaseAngularService {\n private taonSessionProvider = this.injectProvider(TaonSessionProvider);\n\n clone(): TaonSessionConfig {\n const cloned = this.taonSessionProvider.clone();\n return cloned;\n }\n}","import { Translation } from '@taon-dev/i18n/browser-prod';\nimport { Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\n\nconst t = Translation.for('src/lib/taon-session/taon-session.models.ts', {} as any);\n\nexport interface TaonLoginData {\n email?: string;\n password?: string;\n googleCode?: string;\n}\n\nexport interface GoogleCodeResponse {\n code?: string;\n error?: string;\n error_description?: string;\n}\n\nexport enum TaonSessionState {\n LOADING_INITIAL_AUTH_INFO = 'LOADING_INITIAL_AUTH_INFO',\n LOGIN_OR_REGISTER = 'LOGIN_OR_REGISTER',\n ENTER_PASSWORD = 'ENTER_PASSWORD',\n ENTER_REGISTRATION_PASSWORDS = 'ENTER_REGISTRATION_PASSWORDS',\n LOADING_AUTH = 'LOADING_AUTH',\n LOADING_CHECK_USER_EMAIL_EXISTS = 'LOADING_CHECK_USER_EMAIL_EXISTS',\n LOADING_CREATING_USER = 'LOADING_CREATING_USER',\n LOADING_LOGOUT_INFO = 'LOADING_LOGOUT_INFO',\n TWO_FA_EMAIL = 'TWO_FA_EMAIL',\n TWO_FA_SMS = 'TWO_FA_SMS',\n TWO_FA_AUTHENTICATOR = 'TWO_FA_AUTHENTICATOR',\n LOGIN_SUCCESS = 'LOGIN_SUCCESS',\n PROFILE_INFO = 'PROFILE_INFO',\n PASSWORD_CHANGE = 'PASSWORD_CHANGE',\n AVATAR_CHANGE = 'AVATAR_CHANGE',\n}\n\nexport enum TaonLoginErrors {\n INVALID_PASSWORD = 'INVALID_PASSWORD',\n INVALID_SOCIAL_LOGIN = 'INVALID_SOCIAL_LOGIN',\n PASSWORDS_DO_NOT_MATCH = 'PASSWORDS_DO_NOT_MATCH',\n}\n\nexport const TaonErorsMap = new Map([\n [TaonLoginErrors.INVALID_PASSWORD, t.gettext('Invalid Password')],\n [\n TaonLoginErrors.INVALID_SOCIAL_LOGIN,\n t.gettext('Not able to login with social account'),\n ],\n [\n TaonLoginErrors.PASSWORDS_DO_NOT_MATCH,\n t.gettext('Passwords do not match each other'),\n ],\n]);","//#region imports\n\nimport { inject, Injectable } from '@angular/core'; // @browser\n\nimport {\n BehaviorSubject,\n catchError,\n combineLatest,\n finalize,\n map,\n NEVER,\n Observable,\n of,\n shareReplay,\n switchMap,\n take,\n tap,\n} from 'rxjs';\n\nimport { TaonBaseProvider, TaonProvider } from 'taon/browser-prod';\nimport { signal } from 'tnp-core/browser-prod';\nimport { TaonStateMachine } from 'tnp-core/browser-prod';\n\nimport { TaonAuthContextEntity } from '../taon-auth-context/taon-auth-context.entity';\n\nimport type { TaonSessionComponent } from './taon-session/taon-session.component'; // @browser\nimport { TaonSessionApiService } from './taon-session.api.service'; // @browser\nimport {\n TaonErorsMap,\n TaonLoginErrors,\n TaonSessionState,\n} from './taon-session.models';\n\n//#endregion\n\n/* */\n/* */\n/* */\n/* */\n \n//#region @browser\n@Injectable()\n//#endregion\nexport class TaonSessionStateService extends TaonBaseProvider {\n //#region fields & getters\n\n //#region @browser\n protected readonly taonSessionApiService = inject(TaonSessionApiService);\n //#endregion\n\n /**\n * Refreshes session/authentication information.\n *\n * This causes getCurrentUserId() to be called again.\n */\n protected readonly refreshSrc = new BehaviorSubject<void>(void 0);\n\n /**\n * Refreshes authorization context without reloading\n * the current session/user.\n *\n * Useful when roles/groups/permissions change while\n * the currently authenticated user stays the same.\n */\n protected readonly contextRefreshSrc = new BehaviorSubject<void>(void 0);\n\n protected readonly userId = signal<number | undefined>(void 0);\n\n protected readonly currentSlide = signal(\n TaonSessionState.LOADING_INITIAL_AUTH_INFO,\n );\n\n private allowedStateMap = new Map<TaonSessionState, TaonSessionState[]>([\n [\n TaonSessionState.LOADING_INITIAL_AUTH_INFO,\n [TaonSessionState.LOGIN_OR_REGISTER, TaonSessionState.LOGIN_SUCCESS],\n ],\n [\n TaonSessionState.LOGIN_OR_REGISTER,\n [\n TaonSessionState.ENTER_PASSWORD,\n TaonSessionState.ENTER_REGISTRATION_PASSWORDS,\n TaonSessionState.LOADING_AUTH,\n TaonSessionState.LOADING_CHECK_USER_EMAIL_EXISTS,\n ],\n ],\n [\n TaonSessionState.LOADING_CHECK_USER_EMAIL_EXISTS,\n [\n TaonSessionState.ENTER_PASSWORD,\n TaonSessionState.ENTER_REGISTRATION_PASSWORDS,\n TaonSessionState.LOGIN_OR_REGISTER,\n ],\n ],\n [\n TaonSessionState.ENTER_REGISTRATION_PASSWORDS,\n [TaonSessionState.LOADING_AUTH, TaonSessionState.LOGIN_OR_REGISTER],\n ],\n [\n TaonSessionState.ENTER_PASSWORD,\n [\n TaonSessionState.LOGIN_OR_REGISTER,\n TaonSessionState.ENTER_PASSWORD,\n TaonSessionState.LOADING_AUTH,\n TaonSessionState.TWO_FA_AUTHENTICATOR,\n TaonSessionState.TWO_FA_EMAIL,\n TaonSessionState.TWO_FA_SMS,\n ],\n ],\n [\n TaonSessionState.LOADING_AUTH,\n [\n TaonSessionState.ENTER_PASSWORD,\n TaonSessionState.LOGIN_OR_REGISTER,\n TaonSessionState.LOGIN_SUCCESS,\n ],\n ],\n [\n TaonSessionState.LOGIN_SUCCESS,\n [\n TaonSessionState.LOADING_LOGOUT_INFO,\n TaonSessionState.ENTER_PASSWORD,\n TaonSessionState.PROFILE_INFO,\n ],\n ],\n [\n TaonSessionState.PROFILE_INFO,\n [\n TaonSessionState.LOGIN_SUCCESS,\n TaonSessionState.LOADING_LOGOUT_INFO,\n TaonSessionState.ENTER_PASSWORD,\n ],\n ],\n [\n TaonSessionState.LOADING_LOGOUT_INFO,\n [TaonSessionState.LOGIN_OR_REGISTER, TaonSessionState.LOGIN_SUCCESS],\n ],\n ]);\n\n public state = new TaonStateMachine<TaonSessionState>({\n defaultValue: this.currentSlide(),\n allowedStateMap: this.allowedStateMap,\n effect: (nextState, previousState, debugMode) => {\n this.currentSlide.set(nextState);\n },\n });\n\n /**\n * Current authenticated user.\n *\n * Shared because multiple consumers may depend on userId$,\n * isLoggedIn$ and context$ at the same time.\n *\n * One refresh => one getCurrentUserId() request.\n */\n protected readonly userId$ = this.refreshSrc.pipe(\n switchMap(() => {\n/* */\n/* */\n \n\n //#region @browser\n return this.taonSessionApiService.getCurrentUserId().pipe(\n catchError(() => {\n this.state.set(TaonSessionState.LOGIN_OR_REGISTER);\n return of(void 0);\n }),\n );\n //#endregion\n }),\n\n tap(userId => {\n this.userId.set(userId);\n\n if (userId) {\n this.state.set(TaonSessionState.LOGIN_SUCCESS);\n } else {\n this.state.set(TaonSessionState.LOGIN_OR_REGISTER);\n }\n }),\n\n shareReplay({\n bufferSize: 1,\n refCount: true,\n }),\n );\n\n /**\n * Projection of userId$.\n *\n * Does NOT cause another getCurrentUserId() call because\n * userId$ is shared.\n */\n public readonly isLoggedIn$ = this.userId$.pipe(map(userId => !!userId));\n\n //#region @browser\n\n /**\n * Current authorization context.\n *\n * Reloaded when:\n *\n * 1. session/user changes\n * 2. refreshContext() is explicitly called\n *\n * Multiple subscribers share the same context request.\n */\n public readonly context$: Observable<TaonAuthContextEntity> = combineLatest([\n this.userId$,\n this.contextRefreshSrc,\n ]).pipe(\n switchMap(([userId]) => {\n if (!userId) {\n return this.taonSessionApiService.emptyContext();\n }\n\n return this.taonSessionApiService.context();\n }),\n\n shareReplay({\n bufferSize: 1,\n refCount: true,\n }),\n );\n\n //#endregion\n\n //#endregion\n\n public executeActionForState(\n //#region @browser\n form: TaonSessionComponent['form'],\n //#endregion\n ): void {\n //#region @browser\n\n form.updateValueAndValidity();\n\n if (form.invalid) {\n return;\n }\n\n const googleCodeField = form.controls.googleCode;\n const isSocialLogin = googleCodeField.value!;\n\n //#region login action\n\n const loginAction = (): void => {\n const passwordField = form.controls.password;\n\n if (!isSocialLogin) {\n passwordField.markAsTouched();\n }\n\n this.state.set(TaonSessionState.LOADING_AUTH);\n\n this.taonSessionApiService\n .login({\n email: form.controls.email.value!,\n password: passwordField.value!,\n googleCode: googleCodeField.value!,\n })\n .pipe(\n take(1),\n\n tap(okLogin => {\n googleCodeField.reset();\n\n if (okLogin) {\n this.state.set(TaonSessionState.LOGIN_SUCCESS);\n\n if (!isSocialLogin) {\n passwordField.markAsUntouched();\n }\n } else {\n if (isSocialLogin) {\n this.state.set(TaonSessionState.LOGIN_OR_REGISTER);\n\n googleCodeField.setErrors({\n [TaonLoginErrors.INVALID_SOCIAL_LOGIN]: true,\n });\n } else {\n this.state.set(TaonSessionState.ENTER_PASSWORD);\n\n passwordField.setErrors({\n ...(passwordField.errors ?? {}),\n [TaonLoginErrors.INVALID_PASSWORD]: true,\n });\n\n passwordField.markAsTouched();\n }\n }\n }),\n\n finalize(() => {\n this.refresh();\n }),\n )\n .subscribe();\n };\n\n //#endregion\n\n switch (this.state.currentValue) {\n //#region LOGIN_OR_REGISTER\n\n case TaonSessionState.LOGIN_OR_REGISTER:\n if (isSocialLogin) {\n loginAction();\n } else {\n this.state.set(TaonSessionState.LOADING_CHECK_USER_EMAIL_EXISTS);\n\n this.taonSessionApiService\n .userExists(form.controls.email.value!, {\n goToPreviouseState: () => {\n this.state.set(TaonSessionState.LOGIN_OR_REGISTER);\n },\n })\n .pipe(\n take(1),\n\n tap(userExists => {\n if (userExists) {\n this.state.set(TaonSessionState.ENTER_PASSWORD);\n } else {\n this.state.set(TaonSessionState.ENTER_REGISTRATION_PASSWORDS);\n }\n }),\n\n catchError(err => {\n this.state.set(TaonSessionState.LOGIN_OR_REGISTER);\n return NEVER;\n }),\n )\n .subscribe();\n }\n\n return;\n\n //#endregion\n\n //#region ENTER_REGISTRATION_PASSWORDS\n\n case TaonSessionState.ENTER_REGISTRATION_PASSWORDS:\n this.state.set(TaonSessionState.LOADING_CREATING_USER);\n\n this.taonSessionApiService\n .createUser(form.controls.email.value!, form.controls.password.value!)\n .pipe(\n take(1),\n\n tap(user => {\n if (user) {\n loginAction();\n } else {\n this.state.set(TaonSessionState.ENTER_REGISTRATION_PASSWORDS);\n }\n }),\n\n catchError(err => {\n this.state.set(TaonSessionState.ENTER_REGISTRATION_PASSWORDS);\n\n return NEVER;\n }),\n )\n .subscribe();\n\n return;\n\n //#endregion\n\n //#region ENTER_PASSWORD\n\n case TaonSessionState.ENTER_PASSWORD:\n loginAction();\n return;\n\n //#endregion\n\n default:\n break;\n }\n\n //#endregion\n }\n\n public logout(successCallback?: () => void): void {\n this.state.set(TaonSessionState.LOADING_LOGOUT_INFO);\n\n //#region @browser\n\n this.taonSessionApiService\n .logout()\n .pipe(\n take(1),\n\n tap(logoutOk => {\n if (logoutOk) {\n this.state.set(TaonSessionState.LOGIN_OR_REGISTER);\n successCallback?.();\n } else {\n this.state.set(TaonSessionState.LOGIN_SUCCESS);\n }\n }),\n\n finalize(() => {\n this.refresh();\n }),\n )\n .subscribe();\n\n //#endregion\n }\n\n /**\n * Reload complete authentication/session state.\n *\n * This causes:\n *\n * getCurrentUserId()\n * -> userId$\n * -> isLoggedIn$\n * -> context$\n */\n public refresh(): void {\n this.refreshSrc.next(void 0);\n }\n\n /**\n * Reload authorization context only.\n *\n * Does NOT call getCurrentUserId().\n */\n public refreshContext(): void {\n this.contextRefreshSrc.next(void 0);\n }\n}\n","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms'; // browser\n\nimport { TaonLoginErrors, TaonSessionState } from './taon-session.models';\n\n//namespace TaonSessionValidator\n\n //#region @browser\n export const TaonSessionValidator__NS__passwordMatchValidator: ValidatorFn = (\n control: AbstractControl,\n ): ValidationErrors | null => {\n const password = control.get('password');\n const passwordRepeat = control.get('passwordRepeat');\n const state = control.get('state');\n if (state.value !== TaonSessionState.ENTER_REGISTRATION_PASSWORDS) {\n return null;\n }\n\n if (!password || !passwordRepeat) {\n return null;\n }\n\n return password.value === passwordRepeat.value\n ? null\n : { [TaonLoginErrors.PASSWORDS_DO_NOT_MATCH]: true };\n };\n //#endregion\n\n//end of namespace TaonSessionValidator\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Output } from '@angular/core';\nimport { MatRippleModule } from '@angular/material/core'; // Optional: for Material ripple effect\nimport { Translation } from '@taon-dev/i18n/browser-prod';\nimport { Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\n\nconst t = Translation.for('src/lib/taon-session/taon-session/social-buttons/google-login-register-button.component.ts', {} as any);\n\n@Component({\n selector: 'google-login-register-button',\n standalone: true,\n imports: [CommonModule, MatRippleModule],\n templateUrl: './google-login-register-button.component.html',\n})\nexport class GoogleLoginRegisterButtonComponent {\n t = t.for(this);\n\n @Output() googleSignIn = new EventEmitter<void>();\n\n onClick() {\n this.googleSignIn.emit();\n }\n}","<button\n type=\"button\"\n matRipple\n (click)=\"onClick()\"\n class=\"flex w-full items-center justify-center gap-3 px-4 py-2.5 border border-slate-300 rounded-full font-medium text-slate-700 bg-white hover:bg-slate-50 hover:border-slate-400 active:bg-slate-100 shadow-sm transition-all duration-200 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500 cursor-pointer\">\n <!-- Google SVG Logo -->\n <svg\n class=\"w-5 h-5\"\n viewBox=\"0 0 24 24\">\n <path\n fill=\"#4285F4\"\n d=\"M23.745 12.27c0-.7-.06-1.4-.19-2.07H12v4.51h6.6c-.29 1.52-1.14 2.82-2.4 3.68v3.05h3.88c2.27-2.09 3.66-5.17 3.66-9.17z\" />\n <path\n fill=\"#34A853\"\n d=\"M12 24c3.24 0 5.95-1.08 7.93-2.91l-3.88-3.05c-1.08.72-2.45 1.16-4.05 1.16-3.12 0-5.77-2.1-6.72-4.93H1.19v3.15C3.17 21.32 7.25 24 12 24z\" />\n <path\n fill=\"#FBBC05\"\n d=\"M5.28 14.27c-.25-.72-.38-1.49-.38-2.27s.13-1.55.38-2.27V6.58H1.19C.43 8.1 0 9.8 0 12s.43 3.9 1.19 5.42l4.09-3.15z\" />\n <path\n fill=\"#EA4335\"\n d=\"M12 4.75c1.77 0 3.35.61 4.6 1.8l3.42-3.42C17.95 1.19 15.24 0 12 0 7.25 0 3.17 2.68 1.19 6.58l4.09 3.15c.95-2.83 3.6-4.98 6.72-4.98z\" />\n </svg>\n <span class=\"text-sm font-semibold tracking-wide\">{{\n t.gettext('Sign in with Google')\n }}</span>\n </button>\n","//#region imports\nimport { AsyncPipe } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n inject,\n Input,\n Output,\n signal,\n} from '@angular/core';\nimport { FormControl, FormGroup, ReactiveFormsModule, Validators } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\nimport { MatDialog } from '@angular/material/dialog';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { RouterOutlet } from '@angular/router';\nimport { Translation } from '@taon-dev/i18n/browser-prod';\nimport {\n TaonConfirmDialogComponent,\n TaonHorizontalWheelScrollDirective,\n} from '@taon-dev/ui/browser-prod';\nimport { firstValueFrom, map, shareReplay } from 'rxjs';\nimport { Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\n\nimport { GoogleCodeResponse, TaonSessionConfig } from '../../../index';\n// import { TaonProfilePictureComponent } from '../../../taon-session/taon-profile/taon-profile-picture/taon-profile-picture.component';\nimport { TaonSessionApiService } from '../../../taon-session/taon-session.api.service';\nimport { TaonSessionStateService } from '../../../taon-session/taon-session.state.service';\nimport { TaonSessionUserEntity } from '../../../taon-session-user/taon-session-user.entity';\nimport { TaonSessionIdentityProvider } from '../../../taon-session-user/taon-session-user.models';\n\n//#endregion\n\ndeclare const google: any;\n\nconst t = Translation.for('src/lib/taon-session/taon-session/taon-session-profile/taon-session-profile.component.ts', {} as any);\n\n@Component({\n selector: 'taon-session-profile',\n templateUrl: './taon-session-profile.component.html',\n styleUrls: ['./taon-session-profile.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n AsyncPipe,\n RouterOutlet,\n MatButtonModule,\n MatButtonToggleModule,\n MatTabsModule,\n MatIconModule,\n MatDividerModule,\n MatInputModule,\n MatFormFieldModule,\n ReactiveFormsModule,\n TaonHorizontalWheelScrollDirective,\n // TaonProfilePictureComponent,\n ],\n})\nexport class TaonSessionProfileComponent {\n //#region fields & getters\n t = t.for(this);\n\n TaonSessionIdentityProvider = TaonSessionIdentityProvider;\n\n @Input()\n public config: TaonSessionConfig;\n\n protected readonly taonSessionApiService = inject(TaonSessionApiService);\n\n public readonly taonSessionStateService = inject(TaonSessionStateService);\n\n readonly context$ = this.taonSessionStateService.context$.pipe(\n shareReplay({ bufferSize: 1, refCount: true }),\n );\n\n readonly usernameForm = new FormGroup({\n username: new FormControl('', { nonNullable: true, validators: [\n Validators.required, Validators.maxLength(255), Validators.pattern(/\\S/),\n ] }),\n });\n\n readonly passwordForm = new FormGroup({\n email: new FormControl('', { nonNullable: true, validators: [Validators.required, Validators.email] }),\n password: new FormControl('', { nonNullable: true, validators: [\n Validators.required, Validators.minLength(8), Validators.maxLength(128),\n ] }),\n passwordRepeat: new FormControl('', { nonNullable: true, validators: [Validators.required] }),\n });\n\n readonly savingUsername = signal(false);\n\n readonly usernameError = signal('');\n\n readonly usernameSaved = signal(false);\n\n readonly showPasswordForm = signal(false);\n\n readonly savingPassword = signal(false);\n\n readonly passwordError = signal('');\n\n get isVisibleGoogle(): boolean {\n return this.config?.socialLogin?.google?.enabled;\n }\n\n get isVisibleApple(): boolean {\n return this.config?.socialLogin?.apple?.enabled;\n }\n\n get isVisibleMicrosoft(): boolean {\n return this.config?.socialLogin?.microsoft?.enabled;\n }\n\n get isVisibleFacebook(): boolean {\n return this.config?.socialLogin?.facebook?.enabled;\n }\n\n get isVisibleGithub(): boolean {\n return this.config?.socialLogin?.github?.enabled;\n }\n\n /**\n * Email/password can be connected only when the user currently\n * has no PASSWORD identity.\n *\n * In practice this means an account created purely through\n * social authentication.\n */\n readonly canConnectEmail$ = this.context$.pipe(\n map(context => {\n const identities = context?.user?.identities || [];\n\n return !identities.some(\n identity => identity.provider === TaonSessionIdentityProvider.PASSWORD,\n );\n }),\n );\n\n readonly canConnectGoogle$ = this.context$.pipe(\n map(context => {\n const identities = context?.user?.identities || [];\n\n return !identities.some(\n identity => identity.provider === TaonSessionIdentityProvider.GOOGLE,\n );\n }),\n );\n\n readonly canConnectGithub$ = this.context$.pipe(\n map(context => {\n const identities = context?.user?.identities || [];\n\n return !identities.some(\n identity => identity.provider === TaonSessionIdentityProvider.GITHUB,\n );\n }),\n );\n\n readonly canConnectApple$ = this.context$.pipe(\n map(context => {\n const identities = context?.user?.identities || [];\n\n return !identities.some(\n identity => identity.provider === TaonSessionIdentityProvider.APPLE,\n );\n }),\n );\n\n readonly canConnectMicrosoft$ = this.context$.pipe(\n map(context => {\n const identities = context?.user?.identities || [];\n\n return !identities.some(\n identity => identity.provider === TaonSessionIdentityProvider.MICROSOFT,\n );\n }),\n );\n\n readonly canConnectFacebook$ = this.context$.pipe(\n map(context => {\n const identities = context?.user?.identities || [];\n\n return !identities.some(\n identity => identity.provider === TaonSessionIdentityProvider.FACEBOOK,\n );\n }),\n );\n\n @Output()\n readonly logout = new EventEmitter<void>();\n\n readonly dialog = inject(MatDialog);\n //#endregion\n\n onLogout(): void {\n this.logout.next();\n }\n\n //#region disconnect\n\n public disconnect(provider: TaonSessionIdentityProvider): void {\n const ref = this.dialog.open(TaonConfirmDialogComponent, {\n width: '376px',\n data: {\n title: this.t.gettext('Are you sure? '),\n message: this.t.gettext('Disconnecting provider [[ provider ]].', {\n provider,\n }),\n confirmText: this.t.gettext('OK'),\n cancelText: this.t.gettext('Cancel'),\n },\n });\n\n ref.afterClosed().subscribe(async confirmed => {\n if (!confirmed) return;\n\n this.taonSessionApiService\n .disconnectIdentity(provider)\n .subscribe(connectedToGoogle => {\n if (connectedToGoogle) {\n this.taonSessionStateService.refresh();\n }\n });\n });\n }\n //#endregion\n\n //#region connect email\n connectEmail(user?: TaonSessionUserEntity | null): void {\n const identity = user?.identities?.find(identity =>\n identity.isEmailVerified === true && !!identity.email,\n );\n if (!identity) {\n this.passwordError.set(this.t.gettext('Connect a sign-in method with a verified email first.'));\n return;\n }\n this.passwordForm.reset({ email: identity.email, password: '', passwordRepeat: '' });\n this.passwordError.set('');\n this.showPasswordForm.set(true);\n }\n //#endregion\n\n async savePassword(): Promise<void> {\n this.passwordForm.markAllAsTouched();\n this.passwordError.set('');\n if (this.passwordForm.invalid || this.savingPassword()) {\n return;\n }\n const { email, password, passwordRepeat } = this.passwordForm.getRawValue();\n if (password !== passwordRepeat) {\n this.passwordError.set(this.t.gettext('Passwords do not match each other'));\n return;\n }\n this.savingPassword.set(true);\n try {\n const connected = await firstValueFrom(this.taonSessionApiService.connectPassword(email, password));\n if (!connected) {\n this.passwordError.set(this.t.gettext('Unable to connect email/password.'));\n return;\n }\n this.passwordForm.reset();\n this.showPasswordForm.set(false);\n this.taonSessionStateService.refreshContext();\n } catch (error) {\n console.error('[connect-email]', error);\n this.passwordError.set(this.t.gettext('Unable to connect email/password. The email may already belong to another account.'));\n } finally {\n this.savingPassword.set(false);\n }\n }\n\n async saveUsername(): Promise<void> {\n this.usernameForm.markAllAsTouched();\n this.usernameError.set('');\n this.usernameSaved.set(false);\n if (this.usernameForm.invalid || this.savingUsername()) {\n return;\n }\n const username = this.usernameForm.controls.username.value.trim();\n this.savingUsername.set(true);\n try {\n const available = await firstValueFrom(this.taonSessionApiService.usernameAvailable(username));\n if (!available) {\n this.usernameError.set(this.t.gettext('This username is already taken.'));\n return;\n }\n const saved = await firstValueFrom(this.taonSessionApiService.changeUsername(username));\n if (!saved) {\n this.usernameError.set(this.t.gettext('Unable to update username.'));\n return;\n }\n this.usernameForm.reset();\n this.usernameSaved.set(true);\n this.taonSessionStateService.refreshContext();\n } catch (error) {\n console.error('[change-username]', error);\n this.usernameError.set(this.t.gettext('Unable to update username. It may already be taken.'));\n } finally {\n this.savingUsername.set(false);\n }\n }\n\n //#region connect google\n private googleCodeClient?: any;\n\n public connectGoogle(): void {\n if (!this.googleCodeClient) {\n this.initGoogleLogin();\n }\n\n this.googleCodeClient.requestCode();\n }\n\n private initGoogleLogin(): void {\n this.googleCodeClient = google.accounts.oauth2.initCodeClient({\n client_id: this.config.socialLogin.google.googleClientId,\n\n scope: 'openid email profile',\n\n ux_mode: 'popup',\n\n callback: async (response: GoogleCodeResponse) => {\n if (response.error) {\n console.error('[google-login]', response);\n return;\n }\n\n if (!response.code) {\n return;\n }\n\n await this.connectGoogleIdenitty(response.code);\n },\n\n error_callback: (error: any) => {\n console.error('[google-login-popup]', error);\n },\n });\n }\n\n private connectGoogleIdenitty(googleCode: string): void {\n this.taonSessionApiService\n .connectIdentity({\n googleCode,\n })\n .subscribe(connectedToGoogle => {\n if (connectedToGoogle) {\n this.taonSessionStateService.refresh();\n }\n });\n }\n //#endregion\n\n //#region connect apple\n connectApple(): void {\n // TODO replace with proper Apple authorization flow\n console.log('Connect Apple');\n }\n //#endregion\n\n //#region connect microsoft\n connectMicrosoft(): void {\n // TODO replace with proper Microsoft authorization flow\n console.log('Connect Microsoft');\n }\n //#endregion\n\n //#region connect facebook\n connectFacebook(): void {\n // TODO replace with proper Facebook authorization flow\n console.log('Connect Facebook');\n }\n //#endregion\n}","@let context = context$ | async;\n<mat-tab-group taonHorizontalWheelScroll>\n <!-- CONNECT IDENTITIES -->\n <mat-tab [label]=\"t.gettext('Connect')\">\n <div class=\"tab-content\">\n <h3>{{ t.gettext('Connect sign-in method') }}</h3>\n\n <p class=\"description\">\n {{\n t.gettext('Connect additional ways of signing in to your account.')\n }}\n </p>\n\n <mat-button-toggle-group\n class=\"identity-buttons\"\n [hideSingleSelectionIndicator]=\"true\">\n @if (canConnectEmail$ | async) {\n <mat-button-toggle\n [disabled]=\"config?.login?.diableLoginByEmail\"\n (click)=\"connectEmail(context?.user)\">\n <mat-icon>email</mat-icon>\n Email\n </mat-button-toggle>\n } @else {\n <mat-button-toggle\n (click)=\"disconnect(TaonSessionIdentityProvider.PASSWORD)\">\n <mat-icon>email</mat-icon>\n Disconnect Email\n </mat-button-toggle>\n }\n\n @if (canConnectGoogle$ | async) {\n <mat-button-toggle (click)=\"connectGoogle()\">\n <mat-icon>account_circle</mat-icon>\n Google\n </mat-button-toggle>\n } @else {\n <mat-button-toggle\n (click)=\"disconnect(TaonSessionIdentityProvider.GOOGLE)\">\n <mat-icon>close</mat-icon>\n Disconnect Google\n </mat-button-toggle>\n }\n\n <!-- TODO -->\n <!-- <mat-button-toggle\n [disabled]=\"true\"\n (click)=\"connectApple()\">\n <mat-icon>apple</mat-icon>\n Apple\n </mat-button-toggle>\n\n <mat-button-toggle\n [disabled]=\"true\"\n (click)=\"connectMicrosoft()\">\n <mat-icon>window</mat-icon>\n Microsoft\n </mat-button-toggle>\n\n <mat-button-toggle\n [disabled]=\"true\"\n (click)=\"connectFacebook()\">\n <mat-icon>public</mat-icon>\n Facebook\n </mat-button-toggle>\n\n <mat-button-toggle\n [disabled]=\"true\"\n (click)=\"connectGithub()\">\n <mat-icon>public</mat-icon>\n Github\n </mat-button-toggle> -->\n </mat-button-toggle-group>\n @if (showPasswordForm()) {\n <form [formGroup]=\"passwordForm\" (ngSubmit)=\"savePassword()\">\n <mat-form-field>\n <mat-label>{{ t.gettext('Verified email') }}</mat-label>\n <input matInput formControlName=\"email\" readonly />\n </mat-form-field>\n <mat-form-field>\n <mat-label>{{ t.gettext('Password') }}</mat-label>\n <input matInput type=\"password\" formControlName=\"password\" autocomplete=\"new-password\" />\n <mat-error>{{ t.gettext('Password must contain between 8 and 128 characters.') }}</mat-error>\n </mat-form-field>\n <mat-form-field>\n <mat-label>{{ t.gettext('Repeat password') }}</mat-label>\n <input matInput type=\"password\" formControlName=\"passwordRepeat\" autocomplete=\"new-password\" />\n </mat-form-field>\n <button mat-button type=\"submit\" [disabled]=\"savingPassword() || passwordForm.invalid\">\n {{ t.gettext('Save password') }}\n </button>\n </form>\n }\n @if (passwordError()) {\n <p role=\"alert\">{{ passwordError() }}</p>\n }\n </div>\n </mat-tab>\n\n <!-- CHANGE PICTURE -->\n <!-- <mat-tab label=\"Change Picture\">\n <div class=\"tab-content\">\n <taon-profile-picture />\n\n </div>\n </mat-tab> -->\n\n <!-- CHANGE PASSWORD -->\n <mat-tab label=\"Change Password\">\n <div class=\"tab-content\">\n <!-- TODO change password -->\n </div>\n </mat-tab>\n <mat-tab [label]=\"t.gettext('Change Username')\">\n <div class=\"tab-content\">\n <p>{{ t.gettext('Current username') }}: {{ context?.user?.username || '-' }}</p>\n <form [formGroup]=\"usernameForm\" (ngSubmit)=\"saveUsername()\">\n <mat-form-field>\n <mat-label>{{ t.gettext('New username') }}</mat-label>\n <input matInput formControlName=\"username\" autocomplete=\"username\" [readonly]=\"savingUsername()\"\n (input)=\"usernameError.set(''); usernameSaved.set(false)\" />\n <mat-error>{{ t.gettext('Username must contain between 1 and 255 characters.') }}</mat-error>\n </mat-form-field>\n <button mat-button type=\"submit\" [disabled]=\"savingUsername() || usernameForm.invalid\">\n {{ t.gettext('Save username') }}\n </button>\n </form>\n @if (usernameError()) {\n <p role=\"alert\">{{ usernameError() }}</p>\n }\n @if (usernameSaved()) {\n <p role=\"status\">{{ t.gettext('Username updated.') }}</p>\n }\n </div>\n </mat-tab>\n</mat-tab-group>\n\n<mat-divider></mat-divider>\n\n<div class=\"profile-actions\">\n <button\n mat-button\n (click)=\"onLogout()\">\n <mat-icon>logout</mat-icon>\n {{ t.gettext('Logout') }}\n </button>\n</div>\n","//#region imports\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { AsyncPipe, CommonModule, JsonPipe } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n inject,\n AfterViewInit,\n Input,\n ViewChild,\n OnInit,\n OnDestroy,\n ElementRef,\n forwardRef,\n} from '@angular/core';\nimport {\n ReactiveFormsModule,\n FormsModule,\n FormGroup,\n FormControl,\n Validators,\n} from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDialogModule, MatDialogRef } from '@angular/material/dialog';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { RouterOutlet } from '@angular/router';\nimport { MtxLoaderModule } from '@ng-matero/extensions/loader';\nimport { Translation, TranslateDirective } from '@taon-dev/i18n/browser-prod';\nimport { walk } from 'lodash-walk-object/browser-prod';\nimport { Subscription, take } from 'rxjs';\nimport { Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\nimport {\n TaonSlideContentContentChildComponent,\n TaonSlideContentComponent,\n} from 'taon-ui/browser-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n\nimport { TaonProfilePictureComponent } from '../taon-profile/taon-profile-picture';\nimport { TaonSessionApiService } from '../taon-session.api.service';\nimport { TaonSessionConfigService } from '../taon-session.config.service';\nimport {\n GoogleCodeResponse,\n TaonErorsMap,\n TaonLoginErrors,\n TaonSessionState,\n} from '../taon-session.models';\nimport {\n TaonSessionConfig,\n TaonSessionProvider,\n} from '../taon-session.provider';\nimport { TaonSessionStateService } from '../taon-session.state.service';\nimport { TaonSessionValidator__NS__passwordMatchValidator } from '../taon-session.validators';\n\nimport { GoogleLoginRegisterButtonComponent } from './social-buttons/google-login-register-button.component';\nimport { TaonSessionProfileComponent } from './taon-session-profile/taon-session-profile.component';\n//#endregion\n\ndeclare const google: any;\n\nconst t = Translation.for('src/lib/taon-session/taon-session/taon-session.component.ts', {} as any);\n\n@Component({\n selector: 'taon-session',\n templateUrl: './taon-session.component.html',\n styleUrls: ['./taon-session.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n forwardRef(() => TaonSessionApiService),\n TaonSessionStateService,\n TaonSessionProvider,\n TaonSessionConfigService,\n ],\n imports: [\n //#region imports\n AsyncPipe,\n RouterOutlet,\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n JsonPipe,\n CommonModule,\n MatDialogModule,\n MatButtonModule,\n MatIconModule,\n MatDividerModule,\n MatInputModule,\n MatFormFieldModule,\n MatProgressSpinnerModule,\n MatProgressBarModule,\n MtxLoaderModule,\n ReactiveFormsModule,\n FormsModule,\n TranslateDirective,\n TaonSlideContentComponent,\n TaonSlideContentContentChildComponent,\n A11yModule,\n GoogleLoginRegisterButtonComponent,\n TaonSessionProfileComponent,\n TaonProfilePictureComponent,\n //#endregion\n ],\n})\nexport class TaonSessionComponent implements AfterViewInit, OnInit, OnDestroy {\n //#region fields & getters\n\n @Input()\n public config: TaonSessionConfig;\n\n @ViewChild('emailInput')\n private emailInput?: ElementRef<HTMLInputElement>;\n\n @ViewChild('passwordInput')\n private passwordInput?: ElementRef<HTMLInputElement>;\n\n @ViewChild('registrationPasswordInput')\n private registrationPasswordInput?: ElementRef<HTMLInputElement>;\n\n @ViewChild('slide')\n protected slide!: TaonSlideContentComponent;\n\n protected readonly t = t.for(this);\n\n protected readonly TaonSessionState = TaonSessionState;\n\n protected readonly TaonLoginErrors = TaonLoginErrors;\n\n protected readonly TaonErorsMap = TaonErorsMap;\n\n protected emailRegex = /^[a-zA-Z0-9._%+-]+@(?:[a-zA-Z0-9-]+\\.)+[a-zA-Z]{2,}$/;\n\n public taonSessionStateService: TaonSessionStateService = inject(\n TaonSessionStateService,\n );\n\n protected readonly taonSessionConfigService: TaonSessionConfigService =\n inject(TaonSessionConfigService);\n\n protected form = new FormGroup(\n {\n email: new FormControl('', []),\n password: new FormControl('', []),\n passwordRepeat: new FormControl('', []),\n googleCode: new FormControl('', []),\n state: new FormControl(\n this.taonSessionStateService.state.currentValue,\n [],\n ),\n },\n {\n validators: [TaonSessionValidator__NS__passwordMatchValidator],\n },\n );\n\n protected readonly dialogRef = inject(MatDialogRef<TaonSessionComponent>, {\n optional: true,\n });\n\n isLoggedIn$ = this.taonSessionStateService.isLoggedIn$;\n\n context$ = this.taonSessionStateService.context$; // TODO @LAST\n\n protected sub = new Subscription();\n\n protected googleButtonLoaded = false;\n\n public whenAllowedAnimationMap = new Map<\n TaonSessionState,\n TaonSessionState[]\n >([\n [\n TaonSessionState.LOGIN_OR_REGISTER,\n [\n TaonSessionState.ENTER_PASSWORD,\n TaonSessionState.ENTER_REGISTRATION_PASSWORDS,\n TaonSessionState.LOADING_AUTH,\n ],\n ],\n [TaonSessionState.LOADING_AUTH, [TaonSessionState.LOGIN_SUCCESS]],\n ]);\n\n public get isInsideDialog(): boolean {\n return !!this.dialogRef;\n }\n\n get googleClientId(): string {\n return this.config.socialLogin.google.googleClientId;\n }\n\n get microsoftClientId(): string {\n return this.config.socialLogin.microsoft.microsoftClientId;\n }\n\n get isAnySocialLoginEnabled(): boolean {\n return this.config.socialLogin.isAnySocialLoginEnabled;\n }\n\n get diableLoginByEmail(): boolean {\n return this.config.login.diableLoginByEmail;\n }\n\n //#endregion\n\n //#region reload me\n public reloadMe(): void {\n this.taonSessionStateService.refresh();\n }\n //#endregion\n\n //#region execute action for state\n public executeActionForState(): void {\n this.taonSessionStateService.executeActionForState(this.form);\n }\n //#endregion\n\n //#region goto\n public goTo(action: TaonSessionState): void {\n this.taonSessionStateService.state.set(action);\n }\n //#endregion\n\n //#region logout\n public logout(): void {\n this.taonSessionStateService.logout(() => {\n this.close();\n });\n }\n //#endregion\n\n //#region close\n protected close(): void {\n if (this.isInsideDialog) {\n this.dialogRef.close();\n }\n }\n //#endregion\n\n //#region set focus main input\n private focusMainInput(state: TaonSessionState): void {\n switch (state) {\n case TaonSessionState.LOGIN_OR_REGISTER:\n if (!this.config.socialLogin.isAnySocialLoginEnabled) {\n this.emailInput?.nativeElement.focus();\n }\n break;\n\n case TaonSessionState.ENTER_PASSWORD:\n this.passwordInput?.nativeElement.focus();\n break;\n\n case TaonSessionState.ENTER_REGISTRATION_PASSWORDS:\n this.registrationPasswordInput?.nativeElement.focus();\n break;\n\n // later:\n // case TaonSessionState.TWO_FA_AUTHENTICATOR:\n // this.twoFaInput?.nativeElement.focus();\n // break;\n }\n }\n //#endregion\n\n //#region google login\n private googleCodeClient?: any;\n\n private initGoogleLogin(): void {\n this.googleCodeClient = google.accounts.oauth2.initCodeClient({\n client_id: this.config.socialLogin.google.googleClientId,\n\n scope: 'openid email profile',\n\n ux_mode: 'popup',\n\n callback: async (response: GoogleCodeResponse) => {\n if (response.error) {\n console.error('[google-login]', response);\n return;\n }\n\n if (!response.code) {\n return;\n }\n\n await this.loginWithGoogleCode(response.code);\n },\n\n error_callback: (error: any) => {\n console.error('[google-login-popup]', error);\n },\n });\n }\n\n public loginWithGoogle(): void {\n this.form.controls.googleCode.setErrors({});\n if (!this.googleCodeClient) {\n this.initGoogleLogin();\n }\n\n this.googleCodeClient.requestCode();\n }\n\n private async loginWithGoogleCode(code: string): Promise<void> {\n this.form.controls.googleCode.setValue(code);\n // this.taonSessionStateService.state.set(TaonSessionState.LOADING_AUTH);\n this.form.controls.email.reset();\n this.form.controls.email.setValidators([]);\n this.form.controls.email.setErrors({});\n this.form.controls.email.updateValueAndValidity();\n this.executeActionForState();\n }\n //#endregion\n\n //#region hooks\n\n //#region hooks / on init\n ngOnInit(): void {\n const config = this.taonSessionConfigService.clone();\n walk.Object(\n this.config || {},\n (value, lodashPath) => {\n ___NS__set(config, lodashPath, value);\n },\n {\n walkGetters: false,\n },\n );\n this.config = config;\n\n this.isLoggedIn$.pipe(take(1)).subscribe();\n //Called after the constructor, initializing input properties, and the first call to ngOnChanges.\n //Add 'implements OnInit' to the class.\n if (!this.config.login.linkToDashboard) {\n throw `Please provide config input to taon-session (or taon-session-button) component`;\n }\n if (this.config.login.defaultEmail) {\n this.form.controls.email.setValue(this.config.login.defaultEmail);\n }\n\n this.resetPasswordScreen();\n }\n //#endregion\n\n //#region hooks / on destroy\n ngOnDestroy(): void {\n this.sub.unsubscribe();\n }\n //#endregion\n\n //#region hooks / after view init\n ngAfterViewInit(): void {\n this.sub.add(\n this.taonSessionStateService.state.currentState$.subscribe(\n ({ currentState, previousState }) => {\n if (\n currentState === TaonSessionState.LOGIN_SUCCESS &&\n this.isInsideDialog\n ) {\n this.close();\n }\n this.form.controls.state.setValue(currentState);\n if (currentState === TaonSessionState.LOGIN_OR_REGISTER) {\n this.form.controls.googleCode.setValue('');\n }\n this.updateValidatorsFor(currentState);\n // console.log({ newState });\n if (this.slide) {\n this.slide.goTo(currentState);\n setTimeout(() => {\n // console.log(`FOCUS: ${newState}`);\n this.focusMainInput(currentState);\n }, 500);\n }\n },\n ),\n );\n }\n //#endregion\n\n //#endregion\n\n //#region reset password field\n public resetPasswordScreen() {\n this.form.controls.password.reset();\n this.form.controls.password.setValue(\n this.config.login.defaultPassword || '',\n );\n this.form.controls.passwordRepeat.reset();\n this.form.controls.passwordRepeat.setValue(\n this.config.login.defaultPassword || '',\n );\n }\n //#endregion\n\n //#region update validators for\n private updateValidatorsFor(state: TaonSessionState): void {\n const { email, password, passwordRepeat } = this.form.controls;\n\n email.setValidators(\n state === TaonSessionState.LOGIN_OR_REGISTER &&\n !this.config?.login.diableLoginByEmail\n ? [Validators.required, Validators.pattern(this.emailRegex)]\n : [],\n );\n\n password.setValidators(\n state === TaonSessionState.ENTER_PASSWORD ||\n state === TaonSessionState.ENTER_REGISTRATION_PASSWORDS\n ? [Validators.required]\n : [],\n );\n\n passwordRepeat.setValidators(\n state === TaonSessionState.ENTER_REGISTRATION_PASSWORDS\n ? [Validators.required]\n : [],\n );\n\n if (!this.config?.login.diableLoginByEmail) {\n email.updateValueAndValidity();\n }\n\n password.updateValueAndValidity();\n passwordRepeat.updateValueAndValidity();\n }\n //#endregion\n}","<!-- #region close button -->\n<div\n class=\"absolute top-1 right-1 pointer z-1\"\n *ngIf=\"isInsideDialog\">\n <button\n mat-icon-button\n aria-label=\"Close dialog\"\n (click)=\"close()\">\n <mat-icon>close</mat-icon>\n </button>\n</div>\n<!-- #endregion -->\n<!-- STATE: {{ state.currentValue }} <br /> -->\n<!-- ERRORS: {{ form.errors | json }} <br /> -->\n<!-- IS LOGGED IN: {{ isLoggedIn$ | async }}<br /> -->\n<!-- {{ context$ | async | json }} -->\n<!-- <button (click)=\"test()\" >test</button> -->\n<h1 class=\"flex items-center justify-center pt-10\">\n <taon-profile-picture [hideButtons]=\"!(isLoggedIn$ | async)\" />\n <!-- <mat-icon\n class=\"!w-[100px] !h-[100px] !text-[100px] !leading-[100px]\"\n fontIcon=\"account_circle\">\n </mat-icon> -->\n</h1>\n<taon-slide-content\n #slide\n [whenAllowedAnimationMap]=\"whenAllowedAnimationMap\">\n <taon-slide-content-child\n [assignToState]=\"TaonSessionState.LOADING_INITIAL_AUTH_INFO\">\n <!-- #region login success -->\n <div class=\"p-5\">\n <h4\n class=\"mb-3\"\n translate [translate-t]=\"t\">\n Loading authenticaiton info..\n </h4>\n\n <div class=\"w-full pt-3\">\n <!-- success stuff -->\n </div>\n </div>\n <!-- #endregion -->\n </taon-slide-content-child>\n\n <taon-slide-content-child\n [assignToState]=\"TaonSessionState.LOADING_CHECK_USER_EMAIL_EXISTS\">\n <!-- #region LOADING_CHECK_USER_EMAIL_EXISTS -->\n <div class=\"p-5\">\n <h4\n class=\"mb-3\"\n translate [translate-t]=\"t\">\n Loading...\n </h4>\n\n <div class=\"w-full pt-3\">\n <!-- success stuff -->\n </div>\n </div>\n <!-- #endregion -->\n </taon-slide-content-child>\n\n <taon-slide-content-child [assignToState]=\"TaonSessionState.LOADING_AUTH\">\n <!-- #region LOADING_AUTH -->\n <div class=\"p-5\">\n <h4\n class=\"mb-3\"\n translate [translate-t]=\"t\">\n Loading authentication info...\n </h4>\n\n <div class=\"w-full pt-3\">\n <!-- success stuff -->\n </div>\n </div>\n <!-- #endregion -->\n </taon-slide-content-child>\n\n <taon-slide-content-child\n [assignToState]=\"TaonSessionState.LOGIN_OR_REGISTER\">\n <!-- #region login or register -->\n <div class=\"p-5\">\n <h4\n class=\"mb-3\"\n translate [translate-t]=\"t\">\n Login or Register\n </h4>\n\n <div class=\"w-full pt-3\">\n <!-- #region normal email -->\n <form\n [formGroup]=\"form\"\n (ngSubmit)=\"executeActionForState()\"\n class=\"w-full\">\n <mat-form-field\n [ngClass]=\"{\n 'cursor-not-allowed pointer-events-none select-none':\n diableLoginByEmail,\n }\"\n appearance=\"outline\"\n class=\"w-full email-field\">\n <mat-label *ngIf=\"!diableLoginByEmail\">Email</mat-label>\n\n <input\n #emailInput\n matInput\n formControlName=\"email\"\n class=\"pl-1\"\n type=\"email\"\n [placeholder]=\"\n diableLoginByEmail ? t.gettext('Login by email (disabled)') : ''\n \" />\n\n <button\n mat-icon-button\n [disabled]=\"diableLoginByEmail\"\n matSuffix\n color=\"primary\">\n <mat-icon>mail</mat-icon>\n </button>\n <mat-error\n *ngIf=\"\n form.get('email')?.hasError('pattern') &&\n form.get('email')?.touched\n \"\n translate [translate-t]=\"t\" [translate-t]=\"t\">\n Please enter a valid email address\n </mat-error>\n\n <mat-error\n *ngIf=\"\n form.get('email')?.hasError('required') &&\n form.get('email')?.touched\n \">\n {{ t.gettext('Email is') }} <strong translate [translate-t]=\"t\">required</strong>\n </mat-error>\n </mat-form-field>\n </form>\n <!-- #endregion -->\n\n @if (isAnySocialLoginEnabled) {\n <div class=\"divider\">\n <span translate [translate-t]=\"t\">or</span>\n </div>\n }\n\n <!-- GOOGLE BUTTON -->\n @if (googleClientId) {\n <google-login-register-button\n (googleSignIn)=\"loginWithGoogle()\"></google-login-register-button>\n\n <mat-error\n *ngIf=\"\n form\n .get('googleCode')\n ?.hasError(TaonLoginErrors.INVALID_SOCIAL_LOGIN)\n \">\n {{ TaonErorsMap.get(TaonLoginErrors.INVALID_SOCIAL_LOGIN) }}\n </mat-error>\n }\n\n <!-- <div\n *ngIf=\"googleClientId\"\n #googleBtn\n class=\"google-container\">\n <span\n *ngIf=\"!googleButtonLoaded\"\n class=\"text-300 p-2\"\n translate\n >loading google button..</span\n >\n <mat-progress-bar\n *ngIf=\"!googleButtonLoaded\"\n mode=\"indeterminate\"\n class=\"auth-progress\" />\n </div> -->\n\n <!-- MICROSOFT BUTTON -->\n <div\n *ngIf=\"microsoftClientId\"\n #microsoftBtn\n class=\"microsoft-container\">\n <button\n mat-stroked-button\n color=\"primary\"\n class=\"w-full microsoft-btn\"\n (click)=\"loginWithMicrosoft()\">\n <mat-icon class=\"mr-2\">login</mat-icon>\n {{ t.gettext('Continue with Microsoft') }}\n </button>\n </div>\n </div>\n\n <br />\n\n <div class=\"flex justify-content-end\">\n <!-- <button mat-button>\n {{ t.gettext('Login') }}\n </button> -->\n\n <!-- <button\n *ngIf=\"isInsideDialog\"\n mat-button\n mat-dialog-close>\n {{ t.gettext('Cancel') }}\n </button> -->\n </div>\n </div>\n <!-- #endregion -->\n </taon-slide-content-child>\n\n <taon-slide-content-child [assignToState]=\"TaonSessionState.ENTER_PASSWORD\">\n <!-- #region password -->\n <div class=\"p-5\">\n <h4 class=\"mb-3 flex items-center\">\n <button\n (click)=\"\n resetPasswordScreen(); goTo(TaonSessionState.LOGIN_OR_REGISTER)\n \"\n mat-icon-button\n type=\"button\">\n <mat-icon>keyboard_arrow_left</mat-icon>\n </button>\n <span class=\"flex\">{{ t.gettext('Enter Password') }}</span>\n </h4>\n <div class=\"w-full pt-3\">\n <form\n [formGroup]=\"form\"\n (ngSubmit)=\"executeActionForState()\"\n class=\"w-full\">\n <mat-form-field\n appearance=\"outline\"\n class=\"w-full email-field\">\n <mat-label>Password</mat-label>\n\n <input\n #passwordInput\n matInput\n formControlName=\"password\"\n class=\"pl-1\"\n type=\"password\" />\n\n <button\n mat-icon-button\n matSuffix\n color=\"primary\">\n <mat-icon>lock</mat-icon>\n </button>\n <mat-error\n *ngIf=\"\n form\n .get('password')\n ?.hasError(TaonLoginErrors.INVALID_PASSWORD) &&\n form.get('password')?.touched\n \">\n {{ TaonErorsMap.get(TaonLoginErrors.INVALID_PASSWORD) }}\n </mat-error>\n\n <mat-error\n *ngIf=\"\n form.get('password')?.hasError('required') &&\n form.get('password')?.touched\n \">\n {{ t.gettext('Password is') }} <strong translate [translate-t]=\"t\">required</strong>\n </mat-error>\n </mat-form-field>\n </form>\n </div>\n </div>\n <!-- #endregion -->\n </taon-slide-content-child>\n\n <taon-slide-content-child\n [assignToState]=\"TaonSessionState.ENTER_REGISTRATION_PASSWORDS\">\n <!-- #region registration passwords -->\n <div class=\"p-5\">\n <h4 class=\"mb-3 flex items-center\">\n <button\n (click)=\"\n resetPasswordScreen(); goTo(TaonSessionState.LOGIN_OR_REGISTER)\n \"\n mat-icon-button\n type=\"button\">\n <mat-icon>keyboard_arrow_left</mat-icon>\n </button>\n <span class=\"flex\">{{ t.gettext('Enter Registration Password') }}</span>\n </h4>\n <div class=\"w-full pt-3\">\n <form\n [formGroup]=\"form\"\n (ngSubmit)=\"executeActionForState()\"\n class=\"w-full\">\n <mat-form-field\n appearance=\"outline\"\n class=\"w-full email-field\">\n <mat-label>Enter Password For New Account</mat-label>\n\n <input\n #registrationPasswordInput\n matInput\n formControlName=\"password\"\n class=\"pl-1\"\n type=\"password\" />\n\n <mat-error\n *ngIf=\"\n form\n .get('password')\n ?.hasError(TaonLoginErrors.INVALID_PASSWORD) &&\n form.get('password')?.touched\n \">\n {{ TaonErorsMap.get(TaonLoginErrors.INVALID_PASSWORD) }}\n </mat-error>\n\n <mat-error\n *ngIf=\"\n form.get('password')?.hasError('required') &&\n form.get('password')?.touched\n \">\n {{ t.gettext('Password is') }} <strong translate [translate-t]=\"t\">required</strong>\n </mat-error>\n </mat-form-field>\n\n <mat-form-field\n appearance=\"outline\"\n class=\"w-full email-field\">\n <mat-label>Repeat Password</mat-label>\n\n <input\n matInput\n formControlName=\"passwordRepeat\"\n class=\"pl-1\"\n type=\"password\" />\n\n <button\n mat-icon-button\n matSuffix\n color=\"primary\">\n <mat-icon>key_vertical</mat-icon>\n </button>\n <mat-error\n *ngIf=\"\n form\n .get('passwordRepeat')\n ?.hasError(TaonLoginErrors.INVALID_PASSWORD) &&\n form.get('passwordRepeat')?.touched\n \">\n {{ TaonErorsMap.get(TaonLoginErrors.INVALID_PASSWORD) }}\n </mat-error>\n\n <mat-error\n *ngIf=\"\n form.get('passwordRepeat')?.hasError('required') &&\n form.get('passwordRepeat')?.touched\n \">\n {{ t.gettext('Repeated Password is ') }}\n <strong translate [translate-t]=\"t\">required</strong>\n </mat-error>\n </mat-form-field>\n <mat-error\n *ngIf=\"\n form.get('passwordRepeat').valid &&\n form.get('password').valid &&\n form.hasError(TaonLoginErrors.PASSWORDS_DO_NOT_MATCH)\n \">\n {{ TaonErorsMap.get(TaonLoginErrors.PASSWORDS_DO_NOT_MATCH) }}\n </mat-error>\n </form>\n </div>\n </div>\n <!-- #endregion -->\n </taon-slide-content-child>\n\n <taon-slide-content-child [assignToState]=\"TaonSessionState.LOGIN_SUCCESS\">\n <!-- #region login success -->\n <div class=\"p-5\">\n <h4\n class=\"mb-3\"\n translate [translate-t]=\"t\">\n Login Successfully\n </h4>\n\n @if (!isInsideDialog) {\n <div class=\"w-full pt-3\">\n <!-- success stuff -->\n <button\n mat-button\n (click)=\"logout()\">\n Logout\n </button>\n </div>\n }\n </div>\n <!-- #endregion -->\n </taon-slide-content-child>\n\n <taon-slide-content-child [assignToState]=\"TaonSessionState.PROFILE_INFO\">\n <!-- #region profile info -->\n <div class=\"p-5\">\n <h4\n class=\"mb-3\"\n translate [translate-t]=\"t\">\n Welcome\n </h4>\n\n <div class=\"w-full pt-3\">\n <!-- success stuff -->\n\n <taon-session-profile\n [config]=\"config\"\n (logout)=\"logout()\" />\n <!-- context -->\n </div>\n </div>\n <!-- #endregion -->\n </taon-slide-content-child>\n</taon-slide-content>\n","//#region @browser\nimport { Injectable, inject } from '@angular/core';\nimport { ActivatedRoute, PRIMARY_OUTLET, Router, UrlTree } from '@angular/router';\n\nexport type TaonBackofficeEntity = 'user' | 'group' | 'role' | 'permission' | 'session';\n\n@Injectable()\nexport class TaonBackofficeNavigationService {\n private readonly router = inject(Router);\n\n private readonly route = inject(ActivatedRoute);\n\n detailsLink(entity: TaonBackofficeEntity, id: number | string): UrlTree {\n const ancestry = this.route.snapshot.pathFromRoot;\n const outletRoot = ancestry.find(route => route.outlet !== PRIMARY_OUTLET);\n if (!outletRoot) {\n throw new Error('Session backoffice details require an admin outlet');\n }\n //#endregion\n\n const scope = ancestry.find(route =>\n route.routeConfig?.children?.some(child => child.path === 'authorization'),\n );\n if (!scope) {\n throw new Error(\n 'Session backoffice authorization routes are not configured',\n );\n }\n\n const base = scope.pathFromRoot\n .slice(ancestry.indexOf(outletRoot))\n .flatMap(route => route.url.map(segment => segment.path));\n const userPath = scope.routeConfig.children.some(\n child => child.path === 'users',\n )\n ? ['users']\n : ['session', 'user'];\n const target =\n entity === 'user'\n ? userPath\n : entity === 'session'\n ? ['session']\n : ['authorization', `${entity}s`];\n const [first, ...rest] = [...base, ...target, String(id)];\n const currentOutlet =\n this.router.parseUrl(this.router.url).root.children[outletRoot.outlet];\n\n // Match the admin layout: replace only its outlet and retain its base matrix parameters.\n return this.router.createUrlTree([\n {\n outlets: {\n [outletRoot.outlet]: [\n first,\n { ...currentOutlet?.segments[0]?.parameters },\n ...rest,\n ],\n },\n },\n ]);\n }\n\n openDetails(entity: TaonBackofficeEntity, id: number | string): void {\n void this.router.navigateByUrl(this.detailsLink(entity, id));\n }\n}\n","import { GET, Query, TaonBaseCrudController, TaonController, TaonPaginationQuery, getStatusCode, HttpStatusEnum, Models__NS__ClassType, Models__NS__ClassTypeKey, Models__NS__ConnectionOptionsLogs, Models__NS__ContextOptions, Models__NS__DatabaseConfig, Models__NS__DatabaseConfigTypeOrm, Models__NS__DatabasesFolder, Models__NS__DBRecreateMode, Models__NS__DBRecreateModeType, Models__NS__FrameworkMode, Models__NS__Http__NS__AsyncResponse, Models__NS__Http__NS__ClientAction, Models__NS__Http__NS__ContextENDPOINT, Models__NS__Http__NS__ExpressContext, Models__NS__Http__NS__FormlyFromType, Models__NS__Http__NS__MixResponse, Models__NS__Http__NS__PromiseObservableMix, Models__NS__Http__NS__RequestResults, Models__NS__Http__NS__Response, Models__NS__Http__NS__ResponseFuncOpt, Models__NS__Http__NS__SyncResponse, Models__NS__Http__NS__SyncResponseFunc, Models__NS__Http__NS__TaonResponseStream, Models__NS__KVDatabaseConfig, Models__NS__MiddlewareType, Models__NS__StartParams, Models__NS__TaonCtrlBeforeEachRequestParams, Models__NS__TaonCtxCloneParams, Models__NS__TaonInitializeParams, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\nimport { Brackets } from 'taon-typeorm/browser-prod';\nimport { Translation } from '@taon-dev/i18n/browser-prod';\n\nimport { TaonAuthContextRepository } from '../../taon-auth-context/taon-auth-context.repository';\nimport { TaonSessionUserIdentityRepository } from '../../taon-session-user/taon-session-user-identity.repository';\nimport { TaonSessionUserRepository } from '../../taon-session-user/taon-session-user.repository';\nimport { TaonSessionEntity } from '../taon-session.entity';\nimport { TaonSessionRepository } from '../taon-session.repository';\n\nimport { TaonSessionBackofficeModels__NS__SessionDetails, TaonSessionBackofficeModels__NS__SessionRow } from './taon-session-backoffice.models';\n\nconst t = Translation.for('src/lib/taon-session/taon-session-backoffice/taon-session-backoffice.controller.ts', {} as any);\n\n@TaonController({\n className: 'TaonSessionBackofficeController',\n allowedMethods: ['paginationQuery', 'getBy'],\n})\nexport class TaonSessionBackofficeController extends TaonBaseCrudController<\n TaonSessionBackofficeModels__NS__SessionRow,\n {},\n TaonSessionBackofficeController\n> {\n entityClassResolveFn = () => TaonSessionEntity;\n\n private readonly taonSessionRepository = this.injectCustomRepo(\n TaonSessionRepository,\n );\n\n private readonly taonAuthContextRepository = this.injectCustomRepo(\n TaonAuthContextRepository,\n );\n\n private readonly taonSessionUserRepository = this.injectCustomRepo(\n TaonSessionUserRepository,\n );\n\n private readonly taonSessionUserIdentityRepository = this.injectCustomRepo(\n TaonSessionUserIdentityRepository,\n );\n\n async beforeEachRequest({\n req,\n res,\n }: Models__NS__TaonCtrlBeforeEachRequestParams<TaonSessionBackofficeController>): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n protected async defaultPaginationQuery(\n query: TaonPaginationQuery<TaonSessionBackofficeController>,\n ): Promise<[TaonSessionBackofficeModels__NS__SessionRow[], number]> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n @GET()\n getBy(\n @Query('id') id: number | string,\n ): Taon__NS__Response<TaonSessionBackofficeModels__NS__SessionDetails> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n}","import { Injectable } from '@angular/core';\nimport { TaonBaseAngularService } from 'taon/browser-prod';\n\nimport { TaonSessionBackofficeController } from './taon-session-backoffice.controller';\nimport { TaonSessionBackofficeModels__NS__SessionDetails, TaonSessionBackofficeModels__NS__SessionRow } from './taon-session-backoffice.models';\n\n@Injectable()\nexport class TaonSessionBackofficeApiService extends TaonBaseAngularService {\n readonly taonSessionBackofficeController = this.injectController(\n TaonSessionBackofficeController,\n );\n\n async getSessionDetails(\n id: number,\n ): Promise<TaonSessionBackofficeModels__NS__SessionDetails> {\n const response = await this.taonSessionBackofficeController\n .getBy(id)\n .request();\n return response.body.json;\n }\n}","import { DatePipe } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n Input,\n OnChanges,\n inject,\n signal,\n} from '@angular/core';\nimport { RouterLink } from '@angular/router';\nimport { Translation } from '@taon-dev/i18n/browser-prod';\nimport { Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\n\nimport { TaonBackofficeNavigationService } from './taon-backoffice-navigation.service';\nimport { TaonSessionBackofficeApiService } from './taon-session-backoffice.api.service';\nimport { TaonSessionBackofficeModels__NS__SessionDetails, TaonSessionBackofficeModels__NS__SessionRow } from './taon-session-backoffice.models';\n\nconst t = Translation.for('src/lib/taon-session/taon-session-backoffice/taon-session-details.component.ts', {} as any);\n\n@Component({\n selector: 'taon-session-details',\n templateUrl: './taon-session-details.component.html',\n styleUrls: ['./taon-session-backoffice.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [DatePipe, RouterLink],\n providers: [\n TaonSessionBackofficeApiService,\n TaonBackofficeNavigationService,\n ],\n})\nexport class TaonSessionDetailsComponent implements OnChanges {\n readonly t = t.for(this);\n\n @Input({ required: true }) sessionId!: number;\n\n @Input() detail?: TaonSessionBackofficeModels__NS__SessionDetails;\n\n readonly taonBackofficeNavigationService = inject(TaonBackofficeNavigationService);\n\n private readonly taonSessionBackofficeApiService = inject(TaonSessionBackofficeApiService);\n\n readonly session = signal<TaonSessionBackofficeModels__NS__SessionDetails | null>(null);\n\n readonly loading = signal(false);\n\n readonly error = signal('');\n\n private requestId = 0;\n\n ngOnChanges(): void {\n const requestId = ++this.requestId;\n this.session.set(this.detail ?? null);\n this.error.set('');\n this.loading.set(!this.detail);\n if (!this.detail) {\n void this.loadDetails(requestId);\n }\n }\n\n private async loadDetails(requestId: number): Promise<void> {\n try {\n const detail = await this.taonSessionBackofficeApiService.getSessionDetails(\n Number(this.sessionId),\n );\n if (requestId === this.requestId) {\n this.session.set(detail);\n }\n } catch (error) {\n if (requestId === this.requestId) {\n console.error('[session-details]', error);\n this.error.set(this.t.gettext('Unable to load session details.'));\n }\n } finally {\n if (requestId === this.requestId) {\n this.loading.set(false);\n }\n }\n }\n}","@if (loading()) {\n <p role=\"status\">{{ t.gettext('Loading session details...') }}</p>\n}\n@if (error()) {\n <p role=\"alert\">{{ error() }}</p>\n}\n@if (session(); as detail) {\n <dl class=\"grid grid-cols-[auto_1fr] gap-x-4 gap-y-2 p-4\">\n <dt>{{ t.gettext('Session ID') }}</dt>\n <dd>{{ detail.id }}</dd>\n <dt>{{ t.gettext('User ID') }}</dt>\n <dd>{{ detail.userId }}</dd>\n <dt>{{ t.gettext('Username') }}</dt>\n <dd>\n @if (detail.user; as user) {\n <a [routerLink]=\"taonBackofficeNavigationService.detailsLink('user', user.id)\">\n {{ user.username || 'User #' + user.id }}\n </a>\n } @else {\n {{ t.gettext('Unavailable') }}\n }\n </dd>\n <dt>{{ t.gettext('Email') }}</dt>\n <dd>{{ detail.identity?.email || t.gettext('Unavailable') }}</dd>\n <dt>{{ t.gettext('Provider') }}</dt>\n <dd>{{ detail.authenticationProvider || detail.identity?.provider || t.gettext('Unavailable') }}</dd>\n @if (detail.identityId) {\n <dt>{{ t.gettext('Identity ID') }}</dt>\n <dd>{{ detail.identityId }}</dd>\n }\n <dt>{{ t.gettext('Device') }}</dt>\n <dd>{{ detail.deviceName || t.gettext('Unknown') }}</dd>\n <dt>{{ t.gettext('IP') }}</dt>\n <dd>{{ detail.ip || t.gettext('Unknown') }}</dd>\n <dt>{{ t.gettext('User agent') }}</dt>\n <dd class=\"break-all\">{{ detail.userAgent || t.gettext('Unknown') }}</dd>\n <dt>{{ t.gettext('Logged in') }}</dt>\n <dd>{{ (detail.createdAt | date: 'medium') || t.gettext('Unknown') }}</dd>\n <dt>{{ t.gettext('Last activity') }}</dt>\n <dd>{{ (detail.lastActivityAt | date: 'medium') || t.gettext('Unknown') }}</dd>\n <dt>{{ t.gettext('Expires') }}</dt>\n <dd>{{ (detail.expiresAt | date: 'medium') || t.gettext('Unknown') }}</dd>\n <dt>{{ t.gettext('Revoked') }}</dt>\n <dd>{{ (detail.revokedAt | date: 'medium') || t.gettext('Not revoked') }}</dd>\n @if (detail.revokeReason) {\n <dt>{{ t.gettext('Revocation reason') }}</dt>\n <dd>{{ detail.revokeReason }}</dd>\n }\n </dl>\n}\n","//#region imports\nimport { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { MtxGridColumn } from '@ng-matero/extensions/grid';\nimport { TaonDatatableComponent } from '@taon-dev/ui/browser-prod';\nimport { Translation } from '@taon-dev/i18n/browser-prod';\nimport { Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\n\nimport { TaonBackofficeNavigationService } from './taon-backoffice-navigation.service';\nimport { TaonSessionBackofficeApiService } from './taon-session-backoffice.api.service';\nimport { TaonSessionBackofficeModels__NS__SessionDetails, TaonSessionBackofficeModels__NS__SessionRow } from './taon-session-backoffice.models';\nimport { TaonSessionDetailsComponent } from './taon-session-details.component';\n\n//#endregion\n\nconst t = Translation.for('src/lib/taon-session/taon-session-backoffice/taon-session-backoffice.component.ts', {} as any);\n\n@Component({\n selector: 'app-taon-session-backoffice',\n templateUrl: './taon-session-backoffice.component.html',\n styleUrls: ['./taon-session-backoffice.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [TaonDatatableComponent, TaonSessionDetailsComponent],\n providers: [\n TaonSessionBackofficeApiService,\n TaonBackofficeNavigationService,\n ],\n})\nexport class TaonSessionBackofficeComponent {\n readonly t = t.for(this);\n\n readonly taonSessionBackofficeApiService = inject(TaonSessionBackofficeApiService);\n\n readonly taonBackofficeNavigationService = inject(TaonBackofficeNavigationService);\n\n public get crud() {\n return this.taonSessionBackofficeApiService.taonSessionBackofficeController;\n }\n\n readonly columns: MtxGridColumn[] = [\n { header: this.t.gettext('User ID'), field: 'userId', sortable: true, showExpand: true },\n { header: this.t.gettext('Device'), field: 'deviceName', sortable: true },\n { header: this.t.gettext('IP'), field: 'ip', sortable: true },\n {\n header: this.t.gettext('Actions'),\n field: 'actions',\n type: 'button',\n buttons: [\n {\n type: 'icon',\n icon: 'open_in_new',\n tooltip: this.t.gettext('Session details'),\n click: (session: TaonSessionBackofficeModels__NS__SessionRow) =>\n this.taonBackofficeNavigationService.openDetails('session', session.id),\n },\n ],\n },\n ];\n}","<h2>{{ t.gettext('Active sessions') }}</h2>\n<taon-datatable\n [entityCrudController]=\"crud\"\n [columns]=\"columns\"\n [allowedColumns]=\"['userId', 'deviceName', 'ip']\"\n [hideAddButton]=\"true\"\n searchMode=\"advanced\"\n [expansionTemplate]=\"expansionTemplate\">\n</taon-datatable>\n<ng-template #expansionTemplate let-session>\n <taon-session-details [sessionId]=\"session.id\"></taon-session-details>\n</ng-template>\n","//#region imports\nimport { TaonController, TaonBaseCrudController, Query, GET, POST, DELETE, Body, ClassHelpers__NS__asyncHandler, ClassHelpers__NS__ensureClassConfig, ClassHelpers__NS__ensureMethodConfig, ClassHelpers__NS__getClassConfig, ClassHelpers__NS__getClassFnFromObject, ClassHelpers__NS__getControllerConfigs, ClassHelpers__NS__getFullInternalName, ClassHelpers__NS__getMethodsNames, ClassHelpers__NS__getName, ClassHelpers__NS__getOrginalClass, ClassHelpers__NS__getUniqueKey, ClassHelpers__NS__hasParentClassWithName, ClassHelpers__NS__isContextClassObject, ClassHelpers__NS__mapFnError, ClassHelpers__NS__setName, Models__NS__ClassType, Models__NS__ClassTypeKey, Models__NS__ConnectionOptionsLogs, Models__NS__ContextOptions, Models__NS__DatabaseConfig, Models__NS__DatabaseConfigTypeOrm, Models__NS__DatabasesFolder, Models__NS__DBRecreateMode, Models__NS__DBRecreateModeType, Models__NS__FrameworkMode, Models__NS__Http__NS__AsyncResponse, Models__NS__Http__NS__ClientAction, Models__NS__Http__NS__ContextENDPOINT, Models__NS__Http__NS__ExpressContext, Models__NS__Http__NS__FormlyFromType, Models__NS__Http__NS__MixResponse, Models__NS__Http__NS__PromiseObservableMix, Models__NS__Http__NS__RequestResults, Models__NS__Http__NS__Response, Models__NS__Http__NS__ResponseFuncOpt, Models__NS__Http__NS__SyncResponse, Models__NS__Http__NS__SyncResponseFunc, Models__NS__Http__NS__TaonResponseStream, Models__NS__KVDatabaseConfig, Models__NS__MiddlewareType, Models__NS__StartParams, Models__NS__TaonCtrlBeforeEachRequestParams, Models__NS__TaonCtxCloneParams, Models__NS__TaonInitializeParams, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n\nimport { TaonRoleEntity } from '../taon-role/taon-role.entity';\nimport { TaonSessionRepository } from '../taon-session/taon-session.repository';\nimport { TaonSessionUserGroupRepository } from '../taon-session-user/taon-session-user-group.repository';\nimport { TaonSessionUserController } from '../taon-session-user/taon-session-user.controller';\n\nimport { TaonGroupRoleRepository } from './taon-group-role.repository';\nimport { TaonGroupEntity } from './taon-group.entity';\nimport { TaonGroupRepository } from './taon-group.repository';\n//#endregion\n\n@TaonController({\n className: 'TaonGroupController',\n allowedMethods: [\n //#region allowed methods\n 'paginationQuery',\n 'getAll',\n 'getBy',\n 'getGroupsForUser',\n 'assignGroupToUser',\n 'unassignGroupFromUser',\n 'getRolesForGroup',\n 'assignRoleToGroup',\n 'unassignRoleFromGroup',\n //#endregion\n ],\n})\nexport class TaonGroupController extends TaonBaseCrudController<\n TaonGroupEntity,\n {},\n TaonGroupController\n> {\n entityClassResolveFn: () => typeof TaonGroupEntity = () => TaonGroupEntity;\n\n taonGroupRepository = this.injectCustomRepo(TaonGroupRepository);\n\n private readonly taonGroupRoleRepository = this.injectCustomRepo(\n TaonGroupRoleRepository,\n );\n\n private readonly taonSessionUserGroupRepository = this.injectCustomRepo(\n TaonSessionUserGroupRepository,\n );\n\n private readonly taonSessionRepository = this.injectCustomRepo(\n TaonSessionRepository,\n );\n\n //#region methods & getters / before each request\n protected async beforeEachRequest({\n req,\n res,\n methodConfig,\n }: Models__NS__TaonCtrlBeforeEachRequestParams<TaonSessionUserController>): Promise<void> {\n await this.taonSessionRepository.throwIfNotAuthenticated({\n req,\n res,\n });\n }\n //#endregion\n\n //#region methods & getters / groups assigned to user\n @GET()\n getGroupsForUser(\n @Query('userId') userId: number,\n ): Taon__NS__Response<TaonGroupEntity[]> {\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / assign group to user\n @POST()\n assignGroupToUser(\n @Body('userId') userId: number,\n @Body('groupId') groupId: number,\n ): Taon__NS__Response<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / unassign group from user\n @DELETE()\n unassignGroupFromUser(\n @Query('userId') userId: number,\n @Query('groupId') groupId: number,\n ): Taon__NS__Response<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / roles assigned to group\n @GET()\n getRolesForGroup(\n @Query('groupId') groupId: number,\n ): Taon__NS__Response<TaonRoleEntity[]> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / assign role to group\n @POST()\n assignRoleToGroup(\n @Body('groupId') groupId: number,\n @Body('roleId') roleId: number,\n ): Taon__NS__Response<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / unassign role from group\n @DELETE()\n unassignRoleFromGroup(\n @Query('groupId') groupId: number,\n @Query('roleId') roleId: number,\n ): Taon__NS__Response<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n}","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { TaonBaseAngularService, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\n\nimport type { TaonRoleEntity } from '../taon-role/taon-role.entity';\n\nimport { TaonGroupController } from './taon-group.controller';\nimport type { TaonGroupEntity } from './taon-group.entity';\n\n@Injectable()\nexport class TaonGroupApiService extends TaonBaseAngularService {\n public taonGroupController = this.injectController(TaonGroupController);\n\n public get allMyEntities$(): Observable<TaonGroupEntity[]> {\n return this.taonGroupController.getAll().request!().observable.pipe(\n map(res => res.body?.json),\n );\n }\n\n //#region methods / all groups\n\n async getAllGroups(): Promise<TaonGroupEntity[]> {\n const response = await this.taonGroupController.getAll().request();\n\n return response.body?.json ?? [];\n }\n\n //#endregion\n\n //#region methods / user groups\n\n async getGroupsForUser(userId: number): Promise<TaonGroupEntity[]> {\n const response = await this.taonGroupController\n .getGroupsForUser(userId)\n .request();\n\n return response.body?.json ?? [];\n }\n\n async assignGroupToUser(userId: number, groupId: number): Promise<void> {\n await this.taonGroupController.assignGroupToUser(userId, groupId).request();\n }\n\n async unassignGroupFromUser(userId: number, groupId: number): Promise<void> {\n await this.taonGroupController\n .unassignGroupFromUser(userId, groupId)\n .request();\n }\n\n //#endregion\n\n //#region methods / group roles\n\n async getRolesForGroup(groupId: number): Promise<TaonRoleEntity[]> {\n const response = await this.taonGroupController\n .getRolesForGroup(groupId)\n .request();\n\n return response.body?.json ?? [];\n }\n\n async assignRoleToGroup(groupId: number, roleId: number): Promise<void> {\n await this.taonGroupController.assignRoleToGroup(groupId, roleId).request();\n }\n\n async unassignRoleFromGroup(groupId: number, roleId: number): Promise<void> {\n await this.taonGroupController\n .unassignRoleFromGroup(groupId, roleId)\n .request();\n }\n\n //#endregion\n}","//#region imports\nimport { TaonController, TaonBaseCrudController, Query, GET, POST, DELETE, Body, ClassHelpers__NS__asyncHandler, ClassHelpers__NS__ensureClassConfig, ClassHelpers__NS__ensureMethodConfig, ClassHelpers__NS__getClassConfig, ClassHelpers__NS__getClassFnFromObject, ClassHelpers__NS__getControllerConfigs, ClassHelpers__NS__getFullInternalName, ClassHelpers__NS__getMethodsNames, ClassHelpers__NS__getName, ClassHelpers__NS__getOrginalClass, ClassHelpers__NS__getUniqueKey, ClassHelpers__NS__hasParentClassWithName, ClassHelpers__NS__isContextClassObject, ClassHelpers__NS__mapFnError, ClassHelpers__NS__setName, Models__NS__ClassType, Models__NS__ClassTypeKey, Models__NS__ConnectionOptionsLogs, Models__NS__ContextOptions, Models__NS__DatabaseConfig, Models__NS__DatabaseConfigTypeOrm, Models__NS__DatabasesFolder, Models__NS__DBRecreateMode, Models__NS__DBRecreateModeType, Models__NS__FrameworkMode, Models__NS__Http__NS__AsyncResponse, Models__NS__Http__NS__ClientAction, Models__NS__Http__NS__ContextENDPOINT, Models__NS__Http__NS__ExpressContext, Models__NS__Http__NS__FormlyFromType, Models__NS__Http__NS__MixResponse, Models__NS__Http__NS__PromiseObservableMix, Models__NS__Http__NS__RequestResults, Models__NS__Http__NS__Response, Models__NS__Http__NS__ResponseFuncOpt, Models__NS__Http__NS__SyncResponse, Models__NS__Http__NS__SyncResponseFunc, Models__NS__Http__NS__TaonResponseStream, Models__NS__KVDatabaseConfig, Models__NS__MiddlewareType, Models__NS__StartParams, Models__NS__TaonCtrlBeforeEachRequestParams, Models__NS__TaonCtxCloneParams, Models__NS__TaonInitializeParams, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n\nimport { TaonPermissionEntity } from '../taon-permission/taon-permission.entity';\nimport { TaonSessionRepository } from '../taon-session/taon-session.repository';\nimport { TaonSessionUserController } from '../taon-session-user/taon-session-user.controller';\n\nimport { TaonRolePermissionRepository } from './taon-role-permission.repository';\nimport { TaonRoleEntity } from './taon-role.entity';\nimport { TaonRoleRepository } from './taon-role.repository';\n//#endregion\n\n@TaonController({\n className: 'TaonRoleController',\n allowedMethods: [\n //#region allowed methods\n 'paginationQuery',\n 'getAll',\n 'getBy',\n 'getPermissionsForRole',\n 'assignPermissionToRole',\n 'unassignPermissionFromRole',\n //#endregion\n ],\n})\nexport class TaonRoleController extends TaonBaseCrudController<TaonRoleEntity> {\n entityClassResolveFn: () => typeof TaonRoleEntity = () => TaonRoleEntity;\n\n taonRoleRepository = this.injectCustomRepo(TaonRoleRepository);\n\n private readonly taonRolePermissionRepository = this.injectCustomRepo(\n TaonRolePermissionRepository,\n );\n\n private readonly taonSessionRepository = this.injectCustomRepo(\n TaonSessionRepository,\n );\n\n async beforeEachRequest({\n req,\n res,\n methodConfig,\n }: Models__NS__TaonCtrlBeforeEachRequestParams<TaonSessionUserController>): Promise<void> {\n await this.taonSessionRepository.throwIfNotAuthenticated({\n req,\n res,\n });\n }\n\n //#region methods & getters / permissions assigned to role\n @GET()\n getPermissionsForRole(\n @Query('roleId') roleId: number,\n ): Taon__NS__Response<TaonPermissionEntity[]> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / assign permission to role\n @POST()\n assignPermissionToRole(\n @Body('roleId') roleId: number,\n @Body('permissionId') permissionId: number,\n ): Taon__NS__Response<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / unassign permission from role\n @DELETE()\n unassignPermissionFromRole(\n @Query('roleId') roleId: number,\n @Query('permissionId') permissionId: number,\n ): Taon__NS__Response<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n}","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { TaonBaseAngularService, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\n\nimport type { TaonPermissionEntity } from '../taon-permission/taon-permission.entity';\n\nimport type { TaonRoleEntity } from './taon-role.entity';\nimport { TaonRoleController } from './taon-role.controller';\n\n@Injectable()\nexport class TaonRoleApiService extends TaonBaseAngularService {\n public taonRoleController = this.injectController(TaonRoleController);\n\n public get allMyEntities$(): Observable<TaonRoleEntity[]> {\n return this.taonRoleController.getAll().request!().observable.pipe(\n map(res => res.body?.json),\n );\n }\n\n //#region methods / all roles\n\n async getAllRoles(): Promise<TaonRoleEntity[]> {\n const response = await this.taonRoleController.getAll().request();\n\n return response.body?.json ?? [];\n }\n\n //#endregion\n\n //#region methods / role permissions\n\n async getPermissionsForRole(roleId: number): Promise<TaonPermissionEntity[]> {\n const response = await this.taonRoleController\n .getPermissionsForRole(roleId)\n .request();\n\n return response.body?.json ?? [];\n }\n\n async assignPermissionToRole(\n roleId: number,\n permissionId: number,\n ): Promise<void> {\n await this.taonRoleController\n .assignPermissionToRole(roleId, permissionId)\n .request();\n }\n\n async unassignPermissionFromRole(\n roleId: number,\n permissionId: number,\n ): Promise<void> {\n await this.taonRoleController\n .unassignPermissionFromRole(roleId, permissionId)\n .request();\n }\n\n //#endregion\n}","//#region imports\nimport { TaonSessionUserController } from '../taon-session-user/taon-session-user.controller';\nimport { TaonSessionRepository } from '../taon-session/taon-session.repository';\nimport { TaonController, TaonBaseCrudController, Query, GET, PUT, Body, ClassHelpers__NS__asyncHandler, ClassHelpers__NS__ensureClassConfig, ClassHelpers__NS__ensureMethodConfig, ClassHelpers__NS__getClassConfig, ClassHelpers__NS__getClassFnFromObject, ClassHelpers__NS__getControllerConfigs, ClassHelpers__NS__getFullInternalName, ClassHelpers__NS__getMethodsNames, ClassHelpers__NS__getName, ClassHelpers__NS__getOrginalClass, ClassHelpers__NS__getUniqueKey, ClassHelpers__NS__hasParentClassWithName, ClassHelpers__NS__isContextClassObject, ClassHelpers__NS__mapFnError, ClassHelpers__NS__setName, Models__NS__ClassType, Models__NS__ClassTypeKey, Models__NS__ConnectionOptionsLogs, Models__NS__ContextOptions, Models__NS__DatabaseConfig, Models__NS__DatabaseConfigTypeOrm, Models__NS__DatabasesFolder, Models__NS__DBRecreateMode, Models__NS__DBRecreateModeType, Models__NS__FrameworkMode, Models__NS__Http__NS__AsyncResponse, Models__NS__Http__NS__ClientAction, Models__NS__Http__NS__ContextENDPOINT, Models__NS__Http__NS__ExpressContext, Models__NS__Http__NS__FormlyFromType, Models__NS__Http__NS__MixResponse, Models__NS__Http__NS__PromiseObservableMix, Models__NS__Http__NS__RequestResults, Models__NS__Http__NS__Response, Models__NS__Http__NS__ResponseFuncOpt, Models__NS__Http__NS__SyncResponse, Models__NS__Http__NS__SyncResponseFunc, Models__NS__Http__NS__TaonResponseStream, Models__NS__KVDatabaseConfig, Models__NS__MiddlewareType, Models__NS__StartParams, Models__NS__TaonCtrlBeforeEachRequestParams, Models__NS__TaonCtxCloneParams, Models__NS__TaonInitializeParams, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n\n\nimport { TaonPermissionEntity } from './taon-permission.entity';\nimport { TaonPermissionRepository } from './taon-permission.repository';\n//#endregion\n\n@TaonController({\n className: 'TaonPermissionController',\n allowedMethods: [\n //#region allowed methods\n 'paginationQuery',\n 'getAll',\n 'getBy',\n 'updateDescription',\n //#endregion\n ],\n})\nexport class TaonPermissionController extends TaonBaseCrudController<TaonPermissionEntity> {\n entityClassResolveFn: () => typeof TaonPermissionEntity = () =>\n TaonPermissionEntity;\n\n taonPermissionRepository = this.injectCustomRepo(TaonPermissionRepository);\n\n private readonly taonSessionRepository = this.injectCustomRepo(\n TaonSessionRepository,\n );\n\n async beforeEachRequest({\n req,\n res,\n methodConfig,\n }: Models__NS__TaonCtrlBeforeEachRequestParams<TaonSessionUserController>): Promise<void> {\n await this.taonSessionRepository.throwIfNotAuthenticated({\n req,\n res,\n });\n }\n\n //#region methods & getters / update description\n @PUT()\n updateDescription(\n @Body('permissionId') permissionId: number,\n @Body('description') description: string,\n ): Taon__NS__Response<TaonPermissionEntity> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n}","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { TaonBaseAngularService, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\n\nimport type { TaonPermissionEntity } from './taon-permission.entity';\nimport { TaonPermissionController } from './taon-permission.controller';\n\n@Injectable()\nexport class TaonPermissionApiService extends TaonBaseAngularService {\n public taonPermissionController = this.injectController(\n TaonPermissionController,\n );\n\n public get allMyEntities$(): Observable<TaonPermissionEntity[]> {\n return this.taonPermissionController.getAll().request!().observable.pipe(\n map(res => res.body?.json),\n );\n }\n\n //#region methods / all permissions\n\n async getAllPermissions(): Promise<TaonPermissionEntity[]> {\n const response = await this.taonPermissionController.getAll().request();\n\n return response.body?.json ?? [];\n }\n\n //#endregion\n\n //#region methods / description\n\n async updateDescription(\n permissionId: number,\n description: string,\n ): Promise<TaonPermissionEntity> {\n const response = await this.taonPermissionController\n .updateDescription(permissionId, description)\n .request();\n\n return response.body?.json;\n }\n\n //#endregion\n}","//#region @browser\nimport { inject } from '@angular/core';\nimport { ResolveFn } from '@angular/router';\n\nimport { TaonGroupApiService } from '../../taon-group/taon-group-api.service';\nimport type { TaonGroupEntity } from '../../taon-group/taon-group.entity';\nimport { TaonRoleApiService } from '../../taon-role/taon-role-api.service';\nimport type { TaonRoleEntity } from '../../taon-role/taon-role.entity';\nimport { TaonPermissionApiService } from '../../taon-permission/taon-permission-api.service';\nimport type { TaonPermissionEntity } from '../../taon-permission/taon-permission.entity';\nimport { TaonSessionUserApiService } from '../../taon-session-user/taon-session-user-api.service';\nimport type { TaonSessionUserEntity } from '../../taon-session-user/taon-session-user.entity';\nimport { TaonSessionBackofficeApiService } from './taon-session-backoffice.api.service';\nimport type { TaonSessionBackofficeModels__NS__SessionDetails, TaonSessionBackofficeModels__NS__SessionRow } from './taon-session-backoffice.models';\n\nexport type TaonBackofficeDetail =\n | { kind: 'user'; entity: TaonSessionUserEntity }\n | { kind: 'group'; entity: TaonGroupEntity }\n | { kind: 'role'; entity: TaonRoleEntity }\n | { kind: 'permission'; entity: TaonPermissionEntity }\n | { kind: 'session'; entity: TaonSessionBackofficeModels__NS__SessionDetails };\n\nexport const taonBackofficeDetailsResolver: ResolveFn<\n TaonBackofficeDetail\n> = async route => {\n const id = Number(route.paramMap.get('id'));\n if (!Number.isSafeInteger(id) || id <= 0) {\n throw new Error('Invalid backoffice entity ID');\n }\n\n let detail: TaonBackofficeDetail;\n switch (route.data['kind']) {\n case 'session':\n detail = {\n kind: 'session',\n entity: await inject(TaonSessionBackofficeApiService).getSessionDetails(id),\n };\n break;\n case 'user':\n detail = {\n kind: 'user',\n entity: (await inject(TaonSessionUserApiService)\n .taonSessionUserController.getBy(id).request()).body.json,\n };\n break;\n case 'group':\n detail = {\n kind: 'group',\n entity: (await inject(TaonGroupApiService)\n .taonGroupController.getBy(id).request()).body.json,\n };\n break;\n case 'role':\n detail = {\n kind: 'role',\n entity: (await inject(TaonRoleApiService)\n .taonRoleController.getBy(id).request()).body.json,\n };\n break;\n case 'permission':\n detail = {\n kind: 'permission',\n entity: (await inject(TaonPermissionApiService)\n .taonPermissionController.getBy(id).request()).body.json,\n };\n break;\n default:\n throw new Error('Unknown backoffice entity');\n }\n if (!detail.entity) {\n throw new Error('Backoffice entity not found');\n }\n return detail;\n};\n\n//#endregion","//#region imports\nimport { Routes } from '@angular/router';\nimport { adminLazyRoute } from '@taon-dev/ui/browser-prod';\nimport { taonBackofficeDetailsResolver } from './taon-backoffice-details.resolver';\nimport { TaonSessionBackofficeApiService } from './taon-session-backoffice.api.service';\n//#endregion\n\nexport const TaonSessionBackofficeRoutes: Routes = [\n {\n path: '',\n pathMatch: 'full',\n loadComponent: () =>\n import('./taon-session-backoffice.component').then(\n m => m.TaonSessionBackofficeComponent,\n ),\n },\n adminLazyRoute({\n path: 'user',\n menuItem: 'Users',\n icon: 'account_circle',\n expandable: true,\n loader: () =>\n import('../../taon-session-user/taon-session-backoffice-users/taon-session-backoffice-users.routes').then(\n m => m.TaonSessionBackofficeUsersRoutes,\n ),\n }),\n {\n path: ':id',\n data: { kind: 'session', hideInNavigation: true },\n providers: [TaonSessionBackofficeApiService],\n resolve: { detail: taonBackofficeDetailsResolver },\n loadComponent: () =>\n import('./taon-backoffice-details-page.component').then(\n m => m.TaonBackofficeDetailsPageComponent,\n ),\n },\n];\n\n/**\n * By default exporting TaonSessionBackofficeRoutes,\n * the command `taon generate:app:routes`\n * will automatically add them to the root routes in ./src/app.ts.\n */\n// export default TaonSessionBackofficeRoutes;\n","import type { TaonSessionUserIdentityEntity } from '../../taon-session-user/taon-session-user-identity.entity';\nimport type { TaonSessionUserEntity } from '../../taon-session-user/taon-session-user.entity';\nimport type { TaonSessionEntity } from '../taon-session.entity';\n\n//namespace TaonSessionBackofficeModels\n\n export type TaonSessionBackofficeModels__NS__SessionRow = Pick<\n TaonSessionEntity,\n 'id' | 'userId' | 'deviceName' | 'ip'\n >;\n\n export type TaonSessionBackofficeModels__NS__SessionDetails = TaonSessionBackofficeModels__NS__SessionRow &\n Pick<\n TaonSessionEntity,\n | 'identityId'\n | 'authenticationProvider'\n | 'userAgent'\n | 'createdAt'\n | 'lastActivityAt'\n | 'expiresAt'\n | 'revokedAt'\n | 'revokeReason'\n > & {\n user: Pick<TaonSessionUserEntity, 'id' | 'username'> | null;\n identity: Pick<\n TaonSessionUserIdentityEntity,\n 'id' | 'email' | 'provider'\n > | null;\n };\n\n//end of namespace TaonSessionBackofficeModels\n","//#region imports\nimport { AsyncPipe, CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n forwardRef,\n inject,\n Input,\n OnInit,\n} from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDialog } from '@angular/material/dialog';\nimport { MatIconModule } from '@angular/material/icon';\nimport { Router, RouterOutlet } from '@angular/router';\nimport { walk } from 'lodash-walk-object/browser-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n\nimport { TaonSessionComponent } from '../taon-session/taon-session.component';\nimport { TaonSessionApiService } from '../taon-session.api.service';\nimport { TaonSessionConfigService } from '../taon-session.config.service';\nimport { TaonSessionState } from '../taon-session.models';\nimport { TaonSessionConfig } from '../taon-session.provider';\nimport { TaonSessionStateService } from '../taon-session.state.service';\n\n//#endregion\n\n@Component({\n selector: 'taon-session-button',\n templateUrl: './taon-session-button.component.html',\n styleUrls: ['./taon-session-button.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n forwardRef(() => TaonSessionApiService),\n TaonSessionStateService,\n TaonSessionConfigService,\n ],\n imports: [\n AsyncPipe,\n RouterOutlet,\n MatButtonModule,\n MatIconModule,\n CommonModule,\n ],\n})\nexport class TaonSessionButtonComponent implements OnInit {\n //#region fields & getters\n\n protected readonly taonSessionStateService = inject(TaonSessionStateService);\n\n protected readonly taonSessionConfigService = inject(\n TaonSessionConfigService,\n );\n\n @Input()\n config: TaonSessionConfig;\n\n private readonly dialog = inject(MatDialog);\n\n private readonly router = inject(Router);\n\n //#endregion\n\n constructor() {}\n\n //#region methods / open login dialog\n\n openLogin(): void {\n const instance = this.dialog.open(TaonSessionComponent, {\n width: '410px',\n data: null,\n autoFocus: true,\n });\n const classInstance = instance.componentInstance;\n classInstance.config = this.config;\n classInstance.taonSessionStateService = this.taonSessionStateService;\n }\n //#endregion\n\n //#region go to dashboard\n goDashboard(): void {\n if (this.config.login.linkToDashboard) {\n void this.router.navigateByUrl(this.config.login.linkToDashboard);\n }\n }\n //#endregion\n\n //#region logout\n profile(): void {\n const instance = this.dialog.open(TaonSessionComponent, {\n width: '410px',\n data: null,\n autoFocus: true,\n });\n const classInstance = instance.componentInstance;\n classInstance.config = this.config;\n classInstance.taonSessionStateService = this.taonSessionStateService;\n\n this.taonSessionStateService.state.set(TaonSessionState.PROFILE_INFO);\n }\n //#endregion\n\n //#region hooks / ngOnInit\n ngOnInit(): void {\n const config = this.taonSessionConfigService.clone();\n walk.Object(\n this.config || {},\n (value, lodashPath) => {\n ___NS__set(config, lodashPath, value);\n },\n {\n walkGetters: false,\n },\n );\n this.config = config;\n\n if (\n this.config.socialLogin.microsoft.enabled &&\n !this.config.socialLogin.microsoft.microsoftClientId\n ) {\n console.warn(\n '[taon-session-button] Microsoft client id missing [microsoftClientId]',\n );\n }\n if (\n this.config.socialLogin.google.enabled &&\n !this.config.socialLogin.google.googleClientId\n ) {\n console.warn(\n '[taon-session-button] Google client id missing [googleClientId]',\n );\n }\n //Called after the constructor, initializing input properties, and the first call to ngOnChanges.\n //Add 'implements OnInit' to the class.\n // console.log('this.displayDashboardButton', this.displayDashboardButton);\n this.config.login.displayDashboardButton = ___NS__isBoolean(\n this.config.login.displayDashboardButton,\n )\n ? this.config.login.displayDashboardButton\n : true;\n }\n //#endregion\n}","<div class=\"flex align-items-center gap-2\">\n <ng-container\n *ngIf=\"\n (taonSessionStateService.isLoggedIn$ | async) === false;\n else loggedIn\n \">\n <button\n mat-button\n (click)=\"openLogin()\">\n Login\n </button>\n </ng-container>\n\n <ng-template #loggedIn>\n <button\n *ngIf=\"displayDashboardButton\"\n mat-button\n color=\"primary\"\n class=\"auth-btn\"\n (click)=\"goDashboard()\">\n <mat-icon>dashboard</mat-icon>\n Dashboard\n </button>\n\n <button\n mat-button\n class=\"ml-2\"\n (click)=\"profile()\">\n Welcome user: {{ taonSessionStateService.userId() }}\n </button>\n </ng-template>\n</div>\n","//#region imports\nimport { TaonSessionUserEntity } from '../taon-session-user/taon-session-user.entity';\nimport { TaonSessionEntity } from '../taon-session/taon-session.entity';\nimport { CustomColumn, TaonBaseAbstractEntity, TaonBaseEntity, TaonEntity, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n\n//#endregion\n\nexport interface TaonAuthorizationSchema {\n group: string;\n role: string;\n permission: string;\n}\n\n@TaonEntity({\n className: 'TaonAuthContextEntity',\n createTable: false,\n})\nexport class TaonAuthContextEntity<\n AUTH extends TaonAuthorizationSchema = {\n group: string;\n role: string;\n permission: string;\n },\n> extends TaonBaseEntity<TaonAuthContextEntity> {\n user!: TaonSessionUserEntity;\n\n isSuperUser: boolean = false;\n\n isLocalhostBackend: boolean = false;\n\n session!: TaonSessionEntity;\n\n groups: AUTH['group'][] = [];\n\n roles: AUTH['role'][] = [];\n\n permissions: AUTH['permission'][] = [];\n\n hasPermission(permission: AUTH['permission']): boolean {\n if (this.isSuperUser) {\n return true;\n }\n return this.permissions.includes(permission);\n }\n\n hasRole(role: AUTH['role']): boolean {\n if (this.isSuperUser) {\n return true;\n }\n return this.roles.includes(role);\n }\n\n isInGroup(group: AUTH['group']): boolean {\n if (this.isSuperUser) {\n return true;\n }\n return this.groups.includes(group);\n }\n}","//#region imports\nimport { createContext, TaonBaseContext } from 'taon/browser-prod';\n\nimport { TaonAuthContextEntity } from './taon-auth-context.entity';\nimport { TaonAuthContextRepository } from './taon-auth-context.repository';\n//#endregion\n\nexport const TaonAuthContextContext = createContext(() => ({\n contextName: 'TaonAuthContextContext',\n abstract: true,\n contexts: { TaonBaseContext },\n entities: { TaonAuthContextEntity },\n repositories: { TaonAuthContextRepository },\n}));\n","//#region imports\nimport { TaonBaseMiddleware, TaonMiddleware, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n//#endregion\n\n@TaonMiddleware({\n className: 'TaonGroupMiddleware',\n})\nexport class TaonGroupMiddleware extends TaonBaseMiddleware {}","//#region imports\nimport { TaonBaseProvider, TaonProvider, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n//#endregion\n\n@TaonProvider({\n className: 'TaonGroupProvider',\n})\nexport class TaonGroupProvider extends TaonBaseProvider {\n\n\n\n}","//#region imports\nimport { createContext, TaonBaseContext } from 'taon/browser-prod';\n\nimport { TaonGroupRoleEntity } from './taon-group-role.entity';\nimport { TaonGroupRoleRepository } from './taon-group-role.repository';\nimport { TaonGroupController } from './taon-group.controller';\nimport { TaonGroupEntity } from './taon-group.entity';\nimport { TaonGroupMiddleware } from './taon-group.middleware';\nimport { TaonGroupProvider } from './taon-group.provider';\nimport { TaonGroupRepository } from './taon-group.repository';\n//#endregion\n\nexport const TaonGroupContext = createContext(() => ({\n contextName: 'TaonGroupContext',\n abstract: true,\n contexts: { TaonBaseContext },\n entities: {\n TaonGroupEntity: TaonGroupEntity,\n TaonGroupRoleEntity: TaonGroupRoleEntity,\n },\n controllers: { TaonGroupController },\n repositories: { TaonGroupRepository, TaonGroupRoleRepository },\n providers: { TaonGroupProvider },\n middlewares: { TaonGroupMiddleware },\n}));\n","//#region imports\nimport { TaonBaseMiddleware, TaonMiddleware, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n//#endregion\n\n@TaonMiddleware({\n className: 'TaonPermissionMiddleware',\n})\nexport class TaonPermissionMiddleware extends TaonBaseMiddleware {}","//#region imports\nimport { TaonBaseProvider, TaonProvider, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n//#endregion\n\n@TaonProvider({\n className: 'TaonPermissionProvider',\n})\nexport class TaonPermissionProvider extends TaonBaseProvider {\n\n\n\n}","//#region imports\nimport { TaonBaseSubscriberForEntity, TaonSubscriber } from 'taon/browser-prod';\nimport { TaonPermissionEntity } from './taon-permission.entity';\nimport { TaonPermissionProvider } from './taon-permission.provider';\n//#endregion\n\n@TaonSubscriber<TaonPermissionSubscriber>({\n className: 'TaonPermissionSubscriber',\n // allowedEvents: ['afterUpdate'],\n})\nexport class TaonPermissionSubscriber extends TaonBaseSubscriberForEntity {\n taonPermissionProvider = this.injectProvider(TaonPermissionProvider);\n listenTo(): typeof TaonPermissionEntity {\n return TaonPermissionEntity;\n }\n}\n","//#region imports\nimport { createContext, TaonBaseContext } from 'taon/browser-prod';\n\nimport { TaonPermissionController } from './taon-permission.controller';\nimport { TaonPermissionEntity } from './taon-permission.entity';\nimport { TaonPermissionMiddleware } from './taon-permission.middleware';\nimport { TaonPermissionProvider } from './taon-permission.provider';\nimport { TaonPermissionRepository } from './taon-permission.repository';\nimport { TaonPermissionSubscriber } from './taon-permission.subscriber';\n//#endregion\n\nexport const TaonPermissionContext = createContext(() => ({\n contextName: 'TaonPermissionContext',\n abstract: true,\n contexts: { TaonBaseContext },\n entities: { TaonPermissionEntity },\n controllers: { TaonPermissionController },\n repositories: { TaonPermissionRepository },\n providers: { TaonPermissionProvider },\n middlewares: { TaonPermissionMiddleware },\n subscribers: { TaonPermissionSubscriber },\n}));\n","//#region imports\nimport { TaonBaseProvider, TaonProvider, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n//#endregion\n\n@TaonProvider({\n className: 'TaonRoleProvider',\n})\nexport class TaonRoleProvider extends TaonBaseProvider {\n\n\n\n}","//#region imports\nimport { TaonRolePermissionRepository } from '../taon-role/taon-role-permission.repository';\nimport { createContext, TaonBaseContext } from 'taon/browser-prod';\n\n\nimport { TaonRolePermissionEntity } from './taon-role-permission.entity';\nimport { TaonRoleController } from './taon-role.controller';\nimport { TaonRoleEntity } from './taon-role.entity';\n// import { TaonRoleMiddleware } from './taon-role.middleware';/\nimport { TaonRoleProvider } from './taon-role.provider';\nimport { TaonRoleRepository } from './taon-role.repository';\n// import { TaonRoleSubscriber } from './taon-role.subscriber';\n//#endregion\n\nexport const TaonRoleContext = createContext(() => ({\n contextName: 'TaonRoleContext',\n abstract: true,\n contexts: { TaonBaseContext },\n entities: {\n TaonRoleEntity: TaonRoleEntity,\n TaonRolePermissionEntity: TaonRolePermissionEntity,\n },\n controllers: { TaonRoleController },\n repositories: { TaonRoleRepository, TaonRolePermissionRepository },\n providers: { TaonRoleProvider },\n // middlewares: { TaonRoleMiddleware },\n // subscribers: { TaonRoleSubscriber },\n}));\n","//#region imports\nimport { CustomColumn, Column, TaonBaseAbstractEntity, TaonEntity, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n\nimport { TaonProfileDefaultsValues } from './taon-profile.constants';\n//#endregion\n\n@TaonEntity<TaonProfileEntity>({\n className: 'TaonProfileEntity',\n createTable: false,\n // defaultModelMapping: () => ({\n // '': TaonProfileEntity,\n // nestedObjectField: ClassField,\n // nestedArrField: [ClassObjArrField],\n // }),\n})\nexport class TaonProfileEntity extends TaonBaseAbstractEntity<TaonProfileEntity> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n description?: string;\n}","//#region imports\nimport { TaonBaseClass, TaonBaseProvider, TaonProvider, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n//#endregion\n\nexport class TaonTaonProfileConfig extends TaonBaseClass {\n declare name: string;\n}\n\n@TaonProvider({\n className: 'TaonProfileProvider',\n})\nexport class TaonProfileProvider extends TaonBaseProvider {\n enabledTaonProfileOption: boolean = true;\n\n config = new TaonTaonProfileConfig();\n\n clone() {\n return {\n enabledTaonProfileOption: this.enabledTaonProfileOption,\n config: this.config.clone(),\n };\n }\n}","//#region imports\nimport { createContext, TaonBaseContext } from 'taon/browser-prod';\n\nimport { TaonProfileController } from './taon-profile.controller';\nimport { TaonProfileEntity } from './taon-profile.entity';\nimport { TaonProfileProvider } from './taon-profile.provider';\n// import { TaonProfileRepository } from './taon-profile.repository';\n// import { TaonProfileKvRepository } from './taon-profile.kv.repository';\n// import { TaonProfileMiddleware } from './taon-profile.middleware';\n// import { TaonProfileSubscriber } from './taon-profile.subscriber';\n//#endregion\n\nexport const TaonProfileAbstractContext = createContext(() => ({\n contextName: 'TaonProfileAbstractContext',\n abstract: true,\n contexts: { TaonBaseContext },\n entities: { TaonProfileEntity },\n controllers: { TaonProfileController },\n // repositories: {\n // // TaonProfileKvRepository\n // TaonProfileRepository,\n // },\n providers: { TaonProfileProvider },\n // middlewares: { TaonProfileMiddleware },\n // subscribers: { TaonProfileSubscriber },\n}));\n","//#region imports\nimport { TaonEmailsAbstractContext } from '@taon-dev/emails/browser-prod';\nimport { createContext, TaonBaseContext } from 'taon/browser-prod';\n\nimport { TaonAuditEventsContext, TaonNotificationContext } from '../index';\nimport { TaonAuthContextContext } from '../taon-auth-context/taon-auth-context.abstract.context';\nimport { TaonGroupContext } from '../taon-group/taon-group.abstract.context';\nimport { TaonPermissionContext } from '../taon-permission/taon-permission.abstract.context';\nimport { TaonRoleContext } from '../taon-role/taon-role.abstract.context';\nimport { TaonProfileAbstractContext } from '../taon-session/taon-profile/taon-profile.abstract.context';\nimport { TaonSessionRepository } from '../taon-session/taon-session.repository';\nimport { TaonSessionUserContext } from '../taon-session-user/taon-session-user.abstract.context';\n\nimport { TaonSessionBackofficeController } from './taon-session-backoffice/taon-session-backoffice.controller';\nimport { TaonSessionController } from './taon-session.controller';\nimport { TaonSessionEntity } from './taon-session.entity';\nimport { TaonSessionKvRepository } from './taon-session.kv.repository';\nimport { TaonSessionMiddleware } from './taon-session.middleware';\nimport { TaonSessionProvider } from './taon-session.provider';\nimport { TaonSessionStateService } from './taon-session.state.service';\n//#endregion\n\nexport const TaonSessionAbstractContext = createContext(() => ({\n contextName: 'TaonSessionAbstractContext',\n abstract: true,\n contexts: {\n TaonBaseContext,\n TaonEmailsAbstractContext,\n TaonSessionUserContext,\n TaonAuthContextContext,\n TaonGroupContext,\n TaonPermissionContext,\n TaonRoleContext,\n TaonNotificationContext,\n TaonAuditEventsContext,\n TaonProfileAbstractContext,\n },\n entities: { TaonSessionEntity: TaonSessionEntity },\n controllers: { TaonSessionController, TaonSessionBackofficeController },\n repositories: { TaonSessionKvRepository, TaonSessionRepository },\n providers: {\n TaonSessionProvider,\n /**\n * TODO somehow inject(TaonSessionApiService)\n * when creating manuall instace of TaonSessionStateService.\n * This state service could usefull on backend\n */\n // TaonSessionStateService,\n },\n logs: true,\n disabledRealtime: true,\n middlewares: { TaonSessionMiddleware },\n subscribers: {},\n}));\n","import { TaonServerMiddlewareInterceptOptions } from 'ng2-rest/browser-prod';\n\n//namespace TaonSessionUtils\n\n export const TaonSessionUtils__NS__getRequestMetadata = (\n req: TaonServerMiddlewareInterceptOptions['req'],\n ): { userAgent?: string; ip?: string; deviceName?: string } => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n };\n\n interface GoogleTokenResponse {\n access_token?: string;\n expires_in?: number;\n refresh_token?: string;\n scope?: string;\n token_type?: string;\n id_token?: string;\n error?: string;\n error_description?: string;\n }\n\n interface GoogleIdTokenPayload {\n iss: string;\n aud: string | string[];\n sub: string;\n email?: string;\n email_verified?: boolean;\n name?: string;\n picture?: string;\n exp: number;\n iat: number;\n }\n\n interface GoogleJwk extends JsonWebKey {\n kid?: string;\n alg?: string;\n }\n\n //#region verify google authorization code\n export async function TaonSessionUtils__NS__verifyGoogleAuthorizationCode(\n GOOGLE_CLIENT_ID: string,\n GOOGLE_CLIENT_SECRET: string,\n code: string,\n ) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region verify google id token\n async function verifyGoogleIdToken(\n idToken: string,\n expectedAudience: string,\n ): Promise<GoogleIdTokenPayload> {\n const parts = idToken.split('.');\n\n if (parts.length !== 3) {\n throw new Error('Invalid Google ID token.');\n }\n\n const [encodedHeader, encodedPayload, encodedSignature] = parts;\n\n const header = JSON.parse(decodeBase64UrlToString(encodedHeader)) as {\n alg?: string;\n kid?: string;\n };\n\n if (header.alg !== 'RS256') {\n throw new Error(`Unsupported Google JWT algorithm: ${header.alg}`);\n }\n\n if (!header.kid) {\n throw new Error('Google ID token does not contain kid.');\n }\n\n // ---------------------------------------------------------\n // Google's public signing keys\n // ---------------------------------------------------------\n\n const jwksResponse = await fetch(\n 'https://www.googleapis.com/oauth2/v3/certs',\n );\n\n if (!jwksResponse.ok) {\n throw new Error('Unable to download Google signing keys.');\n }\n\n const jwks = (await jwksResponse.json()) as {\n keys: GoogleJwk[];\n };\n\n const jwk = jwks.keys.find(key => key.kid === header.kid);\n\n if (!jwk) {\n throw new Error('Google signing key not found.');\n }\n\n // ---------------------------------------------------------\n // Import RSA public key\n // ---------------------------------------------------------\n\n const publicKey = await crypto.subtle.importKey(\n 'jwk',\n jwk,\n {\n name: 'RSASSA-PKCS1-v1_5',\n hash: 'SHA-256',\n },\n false,\n ['verify'],\n );\n\n // ---------------------------------------------------------\n // Verify JWT signature\n // ---------------------------------------------------------\n\n const signedData = new TextEncoder().encode(\n `${encodedHeader}.${encodedPayload}`,\n );\n\n const signature = decodeBase64UrlToBytes(encodedSignature);\n\n const validSignature = await crypto.subtle.verify(\n 'RSASSA-PKCS1-v1_5',\n publicKey,\n // @ts-ignore\n signature,\n signedData,\n );\n\n if (!validSignature) {\n throw new Error('Invalid Google ID token signature.');\n }\n\n // ---------------------------------------------------------\n // Decode + validate claims\n // ---------------------------------------------------------\n\n const payload = JSON.parse(\n decodeBase64UrlToString(encodedPayload),\n ) as GoogleIdTokenPayload;\n\n if (\n payload.iss !== 'https://accounts.google.com' &&\n payload.iss !== 'accounts.google.com'\n ) {\n throw new Error(`Invalid Google token issuer: ${payload.iss}`);\n }\n\n const audiences = Array.isArray(payload.aud) ? payload.aud : [payload.aud];\n\n if (!audiences.includes(expectedAudience)) {\n throw new Error('Google ID token audience mismatch.');\n }\n\n const now = Math.floor(Date.now() / 1000);\n\n if (!payload.exp || payload.exp <= now) {\n throw new Error('Google ID token has expired.');\n }\n\n return payload;\n }\n //#endregion\n\n //#region base64 url\n function decodeBase64UrlToBytes(input: string): Uint8Array {\n let base64 = input.replace(/-/g, '+').replace(/_/g, '/');\n\n base64 += '='.repeat((4 - (base64.length % 4)) % 4);\n\n const binary = atob(base64);\n\n const result = new Uint8Array(binary.length);\n\n for (let i = 0; i < binary.length; i++) {\n result[i] = binary.charCodeAt(i);\n }\n\n return result;\n }\n\n function decodeBase64UrlToString(input: string): string {\n return new TextDecoder().decode(decodeBase64UrlToBytes(input));\n }\n //#endregion\n\n//end of namespace TaonSessionUtils\n","//#region imports\nimport { Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\nimport { UtilsJson__NS__AttrJsoncProp, UtilsJson__NS__getAtrributiesFromJsonWithComments, UtilsJson__NS__getAttributiesFromComment, UtilsJson__NS__getValue, UtilsJson__NS__readJson, UtilsJson__NS__readJsonWithComments, UtilsJson__NS__setValue, UtilsJson__NS__validateLodashPath, UtilsOs__NS__commandExistsAsync, UtilsOs__NS__commandExistsSync, UtilsOs__NS__detectEditor, UtilsOs__NS__drawHorizontalLine, UtilsOs__NS__drawVerticalLine, UtilsOs__NS__Editor, UtilsOs__NS__EDITOR_PROCESSES, UtilsOs__NS__EditorArr, UtilsOs__NS__EditorProcess, UtilsOs__NS__getEditorKeybindingPath, UtilsOs__NS__getEditorSettingsJsonPath, UtilsOs__NS__getInotifyWatchCount, UtilsOs__NS__getRealHomeDir, UtilsOs__NS__isBrowser, UtilsOs__NS__isDockerAvailable, UtilsOs__NS__isElectron, UtilsOs__NS__isNode, UtilsOs__NS__isNodeVersionOk, UtilsOs__NS__isPortInUse, UtilsOs__NS__isRunningInBrowser, UtilsOs__NS__isRunningInCliMode, UtilsOs__NS__isRunningInCloudflareWorker, UtilsOs__NS__isRunningInDocker, UtilsOs__NS__isRunningInElectron, UtilsOs__NS__isRunningInLinuxDistro, UtilsOs__NS__isRunningInLinuxGraphicsCapableEnvironment, UtilsOs__NS__isRunningInMochaTest, UtilsOs__NS__isRunningInNode, UtilsOs__NS__isRunningInOsWithGraphicsCapableEnvironment, UtilsOs__NS__isRunningInSSRMode, UtilsOs__NS__isRunningInVscodeExtension, UtilsOs__NS__isRunningInWebSQL, UtilsOs__NS__isRunningInWindows, UtilsOs__NS__isRunningInWindowsCmd, UtilsOs__NS__isRunningInWindowsGitBash, UtilsOs__NS__isRunningInWindowsPowerShell, UtilsOs__NS__isRunningInWsl, UtilsOs__NS__isRunningNodeDebugger, UtilsOs__NS__isSSRMode, UtilsOs__NS__isVscodeExtension, UtilsOs__NS__isWebSQL, UtilsOs__NS__killAllEditor, UtilsOs__NS__openFolderInFileExplorer, UtilsOs__NS__pipxNestedPackageExists, UtilsOs__NS__pipxPackageExists, UtilsOs__NS__pythonModuleExists, UtilsOs__NS__safeExitProgramCleanUp, UtilsOs__NS__sendNotification, UtilsOs__NS__whichOrWherePackageLocated, UtilsTerminal__NS__basicYesNo, UtilsTerminal__NS__canUseInteractiveToggle, UtilsTerminal__NS__clearConsole, UtilsTerminal__NS__confirm, UtilsTerminal__NS__drawBigText, UtilsTerminal__NS__drawHorizontalLine, UtilsTerminal__NS__drawVerticalLine, UtilsTerminal__NS__fetchAndDisplay, UtilsTerminal__NS__getTerminalHeight, UtilsTerminal__NS__input, UtilsTerminal__NS__isVerboseModeTaon, UtilsTerminal__NS__multiselect, UtilsTerminal__NS__multiselectActionAndExecute, UtilsTerminal__NS__password, UtilsTerminal__NS__pipeEnterToStdin, UtilsTerminal__NS__pressAnyKey, UtilsTerminal__NS__pressAnyKeyToContinueAsync, UtilsTerminal__NS__pressAnyKeyToTryAgainErrorOccurred, UtilsTerminal__NS__pressKeyAndContinueSync, UtilsTerminal__NS__previewLongList, UtilsTerminal__NS__previewLongListGitLogLike, UtilsTerminal__NS__select, UtilsTerminal__NS__selectActionAndExecute, UtilsTerminal__NS__SelectChoice, UtilsTerminal__NS__SelectChoiceValue, UtilsTerminal__NS__wait, UtilsTerminal__NS__waitForUserAnyKey, UtilsTerminal__NS__waitMilliseconds } from 'tnp-core/browser-prod';\nimport { BaseCommandLineFeature, Helpers__NS___fixCommand, Helpers__NS__ActionInstance, Helpers__NS__actionStarted, Helpers__NS__bigMaxBuffer, Helpers__NS__checkProcess, Helpers__NS__cleanExit, Helpers__NS__clearConsole, Helpers__NS__command, Helpers__NS__commandOutputAsString, Helpers__NS__commandOutputAsStringAsync, Helpers__NS__contain, Helpers__NS__createFolder, Helpers__NS__createSymLink, Helpers__NS__error, Helpers__NS__execute, Helpers__NS__exists, Helpers__NS__filesFrom, Helpers__NS__foldersFrom, Helpers__NS__getFilesFrom, Helpers__NS__getFoldersFrom, Helpers__NS__getIsBrowser, Helpers__NS__getIsElectron, Helpers__NS__getIsNode, Helpers__NS__getIsRunningInGitBash, Helpers__NS__getIsSupportedTaonTerminal, Helpers__NS__getIsVerboseMode, Helpers__NS__getIsVerboseModeOrTnp, Helpers__NS__getIsWebSQL, Helpers__NS__getIsWsl, Helpers__NS__getStdio, Helpers__NS__hideNodeWarnings, Helpers__NS__info, Helpers__NS__isBlob, Helpers__NS__isBuffer, Helpers__NS__isClass, Helpers__NS__isExistedSymlink, Helpers__NS__isFile, Helpers__NS__isFolder, Helpers__NS__isRunningInDocker, Helpers__NS__isRunningInLinuxGraphicsCapableEnvironment, Helpers__NS__isSymlinkFileExitedOrUnexisted, Helpers__NS__isSymlinkThatMatchesUrl, Helpers__NS__isUnexistedLink, Helpers__NS__killOnPort, Helpers__NS__killProcess, Helpers__NS__killProcessByPort, Helpers__NS__linksToFolderFrom, Helpers__NS__linksToFoldersFrom, Helpers__NS__log, Helpers__NS__logError, Helpers__NS__logInfo, Helpers__NS__logProc, Helpers__NS__logSuccess, Helpers__NS__logTaskDone, Helpers__NS__logTaskStarted, Helpers__NS__logWarn, Helpers__NS__mediaTypeFromSrc, Helpers__NS__mkdirp, Helpers__NS__modifyLineByLine, Helpers__NS__msgCacheClear, Helpers__NS__openFolderInFileExplorer, Helpers__NS__parse, Helpers__NS__pathContainLink, Helpers__NS__questionYesNo, Helpers__NS__readFile, Helpers__NS__readJson, Helpers__NS__readJson5, Helpers__NS__readJsonC, Helpers__NS__relative, Helpers__NS__remove, Helpers__NS__removeEmptyLineFromString, Helpers__NS__removeFileIfExists, Helpers__NS__removeFolderIfExists, Helpers__NS__removeIfExists, Helpers__NS__removeSlashAtBegin, Helpers__NS__removeSlashAtEnd, Helpers__NS__removeSymlinks, Helpers__NS__renderError, Helpers__NS__replaceLinesInFile, Helpers__NS__run, Helpers__NS__runAsyncIn, Helpers__NS__runSyncIn, Helpers__NS__runSyncOrAsync, Helpers__NS__sleep, Helpers__NS__stopApplication, Helpers__NS__stringify, Helpers__NS__success, Helpers__NS__taskDone, Helpers__NS__taskStarted, Helpers__NS__throwError, Helpers__NS__timeout, Helpers__NS__tryCatchError, Helpers__NS__tryReadFile, Helpers__NS__tryRemoveDir, Helpers__NS__values, Helpers__NS__wait, Helpers__NS__warn, Helpers__NS__writeFile, Helpers__NS__writeJson, Helpers__NS__writeJson5, Helpers__NS__writeJsonC } from 'tnp-helpers/browser-prod';\n/* */ \n\nimport { TaonSessionAbstractContext, TaonSessionController } from './taon-session';\n\nimport { DEFAULT_SESSION_EMAIL, DEFAULT_SESSION_PASSWORD } from './index';\n\n//#endregion\n\n//#region create taon context\nconst host = UtilsOs__NS__isRunningInCloudflareWorker()\n ? ''\n : `http://localhost:${Number(\n Helpers__NS__readFile('.taon/libs-apps-ports/HOST_BACKEND_PORT_1'),\n )}`;\n// console.log({ overrideRemoteHost });\n\nconst TaonSessionActiveCtx = UtilsOs__NS__isRunningInCloudflareWorker()\n ? ({} as any)\n : !UtilsOs__NS__isRunningInCliMode()\n ? ({} as ReturnType<typeof Taon__NS__createContext>)\n : TaonSessionAbstractContext.cloneAsRemote({\n overrideRemoteHost: host,\n overrideContextName: 'SessionContext',\n });\n//#endregion\n\n//#region CLI / global scope\n/**\n * This class is for handling global arguments. *\n * Cli engine will parse: hello:world:from:global:arg to helloWorldFromGlobalArg\n * (lower case, camel case) .. so you don't need to worry about misspelling\n * arguments\n */\nclass $Global extends BaseCommandLineFeature<{}> {\n //#region initialize (before each method)\n protected async __initialize__() {\n/* */\n/* */\n/* */\n return (void 0);\n await super.__initialize__();\n }\n //#endregion\n\n //#region _\n /**\n * When you execute cli without arguments:`$ cli`\n */\n public _() {\n console.log(`Hello world from cli`);\n this._exit();\n }\n //#endregion\n\n //#region menu\n async menu() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region ping\n /**\n * When you execute: `$ cli hello:world:from:global:arg`\n * (or `$ cli helloWorldFromGlobalArg`)\n */\n async ping() {\n const taonSessionController = await TaonSessionActiveCtx.getClassInstance(\n TaonSessionController,\n );\n\n try {\n const data = await taonSessionController.helloWorld().request!();\n console.log(data.body.text);\n } catch (error) {\n console.error(error);\n }\n\n this._exit();\n }\n //#endregion\n}\n//#endregion\n\n//#region CLI / Version Scope\n/**\n *\n */\nclass $Version extends BaseCommandLineFeature<{\n anyCLIparamsHere: string;\n}> {\n /**\n * When you execute: `$ cli version`\n */\n public _() {\n console.log(`Hello world from version argument`);\n this._exit();\n }\n\n /**\n * When you execute: `$ cli version:getFromPackageJson`\n */\n public getFromPackageJson() {\n const ver = UtilsJson__NS__getValue(\n this.project.pathFor('package.json'),\n 'version',\n {\n defaultValue: '<not defined>',\n },\n );\n console.log(`Version from packageJson ${ver}`);\n this._exit(0);\n }\n}\n//#endregion\n\n//#region start cli\n/**\n *\n * @param argsv process.argsv\n * @param filename needed if you want ipc communicaiton\n */\nexport async function startCli(\n argsv: string[],\n filename: string,\n): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n}\n//#endregion\n\nexport default startCli;","//#region imports\nimport { Column, CreateDateColumn, CustomColumn, Index, TaonBaseAbstractEntity, TaonEntity, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n\nimport { TaonAuditEventsDefaultsValues } from './taon-audit-events.constants';\n//#endregion\n\n@TaonEntity({\n className: 'TaonAuditEventsEntity',\n createTable: true,\n})\nexport class TaonAuditEventsEntity extends TaonBaseAbstractEntity<TaonAuditEventsEntity> {\n/* */\n/* */\n \n\n/* */\n/* */\n \n type!: string;\n\n /**\n * Who performed the action.\n */\n\n/* */\n/* */\n \n actorUserId?: number;\n\n /**\n * Who/what was affected.\n */\n\n/* */\n/* */\n \n targetType?: string;\n\n/* */\n/* */\n \n targetId?: string;\n\n/* */\n/* */\n \n sessionId?: number;\n\n/* */\n/* */\n \n ip?: string;\n\n/* */\n/* */\n \n userAgent?: string;\n\n/* */\n/* */\n \n data?: Record<string, any>;\n\n/* */\n/* */\n \n createdAt!: Date;\n}","//#region imports\nimport { TaonBaseRepository, TaonRepository } from 'taon/browser-prod';\nimport { Raw } from 'taon-typeorm/browser-prod';\n\nimport { TaonAuditEventsEntity } from './taon-audit-events.entity';\n//#endregion\n\n@TaonRepository({\n className: 'TaonAuditEventsRepository',\n})\nexport class TaonAuditEventsRepository extends TaonBaseRepository<TaonAuditEventsEntity> {\n entityClassResolveFn: () => typeof TaonAuditEventsEntity = () => TaonAuditEventsEntity;\n\n /**\n * TODO remove this demo example method\n */\n async countEntitesWithEvenId(): Promise<number> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n}","//#region imports\nimport { TaonController, TaonBaseCrudController, Query, GET, ClassHelpers__NS__asyncHandler, ClassHelpers__NS__ensureClassConfig, ClassHelpers__NS__ensureMethodConfig, ClassHelpers__NS__getClassConfig, ClassHelpers__NS__getClassFnFromObject, ClassHelpers__NS__getControllerConfigs, ClassHelpers__NS__getFullInternalName, ClassHelpers__NS__getMethodsNames, ClassHelpers__NS__getName, ClassHelpers__NS__getOrginalClass, ClassHelpers__NS__getUniqueKey, ClassHelpers__NS__hasParentClassWithName, ClassHelpers__NS__isContextClassObject, ClassHelpers__NS__mapFnError, ClassHelpers__NS__setName, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n\nimport { TaonAuditEventsEntity } from './taon-audit-events.entity';\nimport { TaonAuditEventsRepository } from './taon-audit-events.repository';\n//#endregion\n\n@TaonController<TaonAuditEventsController>({\n className: 'TaonAuditEventsController',\n allowedMethods: [],\n})\nexport class TaonAuditEventsController extends TaonBaseCrudController<TaonAuditEventsEntity> {\n entityClassResolveFn: () => typeof TaonAuditEventsEntity = () =>\n TaonAuditEventsEntity;\n\n taonAuditEventsRepository = this.injectCustomRepo(TaonAuditEventsRepository);\n\n //#region methods & getters / hello world\n /**\n * TODO remove this demo example method\n */\n @GET()\n helloWord(@Query('yourName') yourName: string): Taon__NS__Response<string> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n}","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { TaonBaseAngularService, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\n\nimport { TaonAuditEventsController } from './taon-audit-events.controller';\nimport type { TaonAuditEventsEntity } from './taon-audit-events.entity';\n\n@Injectable()\nexport class TaonAuditEventsApiService extends TaonBaseAngularService {\n private taonAuditEventsController = this.injectController(TaonAuditEventsController);\n\n public get allMyEntities$(): Observable<TaonAuditEventsEntity[]> {\n return this.taonAuditEventsController.getAll().request!().observable.pipe(\n map(res => res.body?.json),\n );\n }\n\n public helloWorld(user:string): Observable<string> {\n return this.taonAuditEventsController.helloWord(user).request!().observable.pipe(\n map(res => res.responseText as string),\n );\n }\n}","//#region imports\nimport { TaonBaseProvider, TaonProvider, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n//#endregion\n\n@TaonProvider({\n className: 'TaonAuditEventsProvider',\n})\nexport class TaonAuditEventsProvider extends TaonBaseProvider {\n\n\n\n}","//#region imports\nimport { TaonBaseMiddleware, TaonMiddleware, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n//#endregion\n\n@TaonMiddleware({\n className: 'TaonAuditEventsMiddleware',\n})\nexport class TaonAuditEventsMiddleware extends TaonBaseMiddleware {}","//#region imports\nimport { TaonBaseSubscriberForEntity, TaonSubscriber } from 'taon/browser-prod';\nimport { TaonAuditEventsEntity } from './taon-audit-events.entity';\nimport { TaonAuditEventsProvider } from './taon-audit-events.provider';\n//#endregion\n\n@TaonSubscriber<TaonAuditEventsSubscriber>({\n className: 'TaonAuditEventsSubscriber',\n // allowedEvents: ['afterUpdate'],\n})\nexport class TaonAuditEventsSubscriber extends TaonBaseSubscriberForEntity {\n taonAuditEventsProvider = this.injectProvider(TaonAuditEventsProvider);\n listenTo(): typeof TaonAuditEventsEntity {\n return TaonAuditEventsEntity;\n }\n}","//#region imports\nimport { createContext, TaonBaseContext } from 'taon/browser-prod';\n\nimport { TaonAuditEventsEntity } from './taon-audit-events.entity';\nimport { TaonAuditEventsController } from './taon-audit-events.controller';\nimport { TaonAuditEventsRepository } from './taon-audit-events.repository';\nimport { TaonAuditEventsProvider } from './taon-audit-events.provider';\nimport { TaonAuditEventsMiddleware } from './taon-audit-events.middleware';\nimport { TaonAuditEventsSubscriber } from './taon-audit-events.subscriber';\n//#endregion\n\nexport const TaonAuditEventsContext = createContext(() => ({\n contextName: 'TaonAuditEventsContext',\n abstract: true,\n contexts: { TaonBaseContext },\n entities: { TaonAuditEventsEntity },\n controllers: { TaonAuditEventsController },\n repositories: { TaonAuditEventsRepository },\n providers: { TaonAuditEventsProvider },\n middlewares: { TaonAuditEventsMiddleware },\n subscribers: { TaonAuditEventsSubscriber },\n}));","import type { TaonAuditEventsEntity } from './taon-audit-events.entity';\n\nexport const TaonAuditEventsDefaultsValues = {\n description: '',\n version: 0,\n id: void 0,\n} as Partial<TaonAuditEventsEntity>;","export enum TaonAuditEventsState {\n Active = 'active',\n Inactive = 'inactive',\n}","import { TaonAuditEventsState } from './taon-audit-events.models';\n\n//namespace TaonAuditEventsUtils\n\n export function TaonAuditEventsUtils__NS__isActive(state: string): state is TaonAuditEventsState {\n return state === 'active';\n }\n\n//end of namespace TaonAuditEventsUtils\n","//#region imports\nimport { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { RouterOutlet } from '@angular/router';\n//#endregion\n\n@Component({\n selector: 'app-taon-authorization-backoffice',\n templateUrl: './taon-authorization-backoffice.component.html',\n styleUrls: ['./taon-authorization-backoffice.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [AsyncPipe, RouterOutlet],\n})\nexport class TaonAuthorizationBackofficeComponent {\n componentLoaded = false;\n\n onRouteActivate(component: any): void {\n this.componentLoaded = !!component;\n }\n\n onRouteDeactivate(component: any): void {\n this.componentLoaded = false;\n }\n}\n","@if (!componentLoaded) {\n <code>\n In authorization section you can manager Group, Roles and Persmission inside\n system.\n </code>\n}\n\n<router-outlet\n (activate)=\"onRouteActivate($event)\"\n (deactivate)=\"onRouteDeactivate($event)\"></router-outlet>\n","//namespace TaonAuthorizationBackofficeModels\n\n//end of namespace TaonAuthorizationBackofficeModels\n","//#region imports\nimport { Routes } from '@angular/router';\nimport { adminLazyRoute } from '@taon-dev/ui/browser-prod';\n//#endregion\n\nexport const TaonAuthorizationBackofficeRoutes: Routes = [\n {\n path: '',\n loadComponent: () =>\n import('./taon-authorization-backoffice.component').then(\n m => m.TaonAuthorizationBackofficeComponent,\n ),\n\n children: [\n adminLazyRoute({\n path: 'groups',\n menuItem: 'Groups',\n icon: 'groups',\n expandable: false,\n loader: () =>\n import('../taon-group/taon-group-backoffice/taon-group-backoffice.routes').then(\n m => m.TaonGroupBackofficeRoutes,\n ),\n }),\n adminLazyRoute({\n path: 'roles',\n menuItem: 'Roles',\n icon: 'recent_actors',\n expandable: false,\n loader: () =>\n import('../taon-role/taon-role-backoffice/taon-role-backoffice.routes').then(\n m => m.TaonRoleBackofficeRoutes,\n ),\n }),\n adminLazyRoute({\n path: 'permissions',\n menuItem: 'Permissions',\n icon: 'approval',\n expandable: false,\n loader: () =>\n import('../taon-permission/taon-permission-backoffice/taon-permission-backoffice.routes').then(\n m => m.TaonPermissionBackofficeRoutes,\n ),\n }),\n ],\n },\n];\n\n/**\n * By default exporting TaonAuthorizationBackofficeRoutes,\n * the command `taon generate:app:routes`\n * will automatically add them to the root routes in ./src/app.ts.\n */\n// export default TaonAuthorizationBackofficeRoutes;\n","import type { TaonGroupEntity } from './taon-group.entity';\n\nexport const TaonGroupDefaultsValues = {\n\n} as Partial<TaonGroupEntity>;\n","//#region imports\nimport { TaonSessionUserEntity } from '../taon-session-user/taon-session-user.entity';\nimport { TaonNotificationRecipientEntity } from '../taon-notification/taon-notification-recipient.entity';\nimport { Column, CreateDateColumn, CustomColumn, ManyToOne, OneToMany, TaonBaseAbstractEntity, TaonEntity, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n\nimport { TaonNotificationDefaultsValues } from './taon-notification.constants';\n//#endregion\n\n@TaonEntity({\n className: 'TaonNotificationEntity',\n createTable: true,\n})\nexport class TaonNotificationEntity extends TaonBaseAbstractEntity<TaonNotificationEntity> {\n /**\n * Stable machine-readable code.\n *\n * video.processing.finished\n * auth.session.revoked\n * payment.success\n */\n\n/* */\n/* */\n \n type!: string;\n\n/* */\n/* */\n \n title!: string;\n\n/* */\n/* */\n \n message?: string;\n\n /**\n * Optional route/action.\n *\n * /projects/123\n * /videos/abc\n */\n\n/* */\n/* */\n \n actionUrl?: string;\n\n /**\n * Arbitrary strongly-typed-by-your-code payload.\n */\n\n/* */\n/* */\n \n data?: Record<string, any>;\n\n/* */\n/* */\n \n createdByUserId?: number;\n\n/* */\n/* */\n \n createdAt!: Date;\n\n/* */\n/* */\n \n expiresAt?: Date;\n\n/* */\n/* */\n/* */\n/* */\n/* */\n \n recipients!: TaonNotificationRecipientEntity[];\n}","//#region imports\nimport { TaonBaseRepository, TaonRepository } from 'taon/browser-prod';\nimport { Raw } from 'taon-typeorm/browser-prod';\n\nimport { TaonNotificationEntity } from './taon-notification.entity';\n//#endregion\n\n@TaonRepository({\n className: 'TaonNotificationRepository',\n})\nexport class TaonNotificationRepository extends TaonBaseRepository<TaonNotificationEntity> {\n entityClassResolveFn: () => typeof TaonNotificationEntity = () => TaonNotificationEntity;\n\n /**\n * TODO remove this demo example method\n */\n async countEntitesWithEvenId(): Promise<number> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n}","//#region imports\nimport { TaonController, TaonBaseCrudController, Query, GET, ClassHelpers__NS__asyncHandler, ClassHelpers__NS__ensureClassConfig, ClassHelpers__NS__ensureMethodConfig, ClassHelpers__NS__getClassConfig, ClassHelpers__NS__getClassFnFromObject, ClassHelpers__NS__getControllerConfigs, ClassHelpers__NS__getFullInternalName, ClassHelpers__NS__getMethodsNames, ClassHelpers__NS__getName, ClassHelpers__NS__getOrginalClass, ClassHelpers__NS__getUniqueKey, ClassHelpers__NS__hasParentClassWithName, ClassHelpers__NS__isContextClassObject, ClassHelpers__NS__mapFnError, ClassHelpers__NS__setName, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n\nimport { TaonNotificationEntity } from './taon-notification.entity';\nimport { TaonNotificationRepository } from './taon-notification.repository';\n//#endregion\n\n@TaonController<TaonNotificationController>({\n className: 'TaonNotificationController',\n allowedMethods: [],\n})\nexport class TaonNotificationController extends TaonBaseCrudController<TaonNotificationEntity> {\n entityClassResolveFn: () => typeof TaonNotificationEntity = () =>\n TaonNotificationEntity;\n\n taonNotificationRepository = this.injectCustomRepo(\n TaonNotificationRepository,\n );\n\n //#region methods & getters / hello world\n /**\n * TODO remove this demo example method\n */\n @GET()\n helloWord(@Query('yourName') yourName: string): Taon__NS__Response<string> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n}","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { TaonBaseAngularService, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\n\nimport type { TaonNotificationEntity } from './taon-notification.entity';\nimport { TaonNotificationController } from './taon-notification.controller';\n\n@Injectable()\nexport class TaonNotificationApiService extends TaonBaseAngularService {\n private taonNotificationController = this.injectController(TaonNotificationController);\n\n public get allMyEntities$(): Observable<TaonNotificationEntity[]> {\n return this.taonNotificationController.getAll().request!().observable.pipe(\n map(res => res.body?.json),\n );\n }\n\n public helloWorld(user:string): Observable<string> {\n return this.taonNotificationController.helloWord(user).request!().observable.pipe(\n map(res => res.responseText as string),\n );\n }\n}","//#region imports\nimport { TaonSessionUserEntity } from '../taon-session-user/taon-session-user.entity';\nimport { TaonNotificationEntity } from '../taon-notification/taon-notification.entity';\nimport { Column, DateTimeColumn, ManyToOne, StringColumn, TaonBaseAbstractEntity, TaonEntity, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n\n//#endregion\n\n@TaonEntity({\n className: 'TaonNotificationRecipientEntity',\n createTable: true,\n})\nexport class TaonNotificationRecipientEntity extends TaonBaseAbstractEntity<TaonNotificationRecipientEntity> {\n/* */\n/* */\n/* */\n/* */\n \n notificationId!: number;\n\n/* */\n/* */\n \n userId!: number;\n\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n notification!: TaonNotificationEntity;\n\n/* */\n/* */\n/* */\n/* */\n \n user!: TaonSessionUserEntity;\n\n/* */\n/* */\n \n readAt?: Date;\n\n/* */\n/* */\n \n dismissedAt?: Date;\n\n/* */\n/* */\n \n deliveredAt?: Date;\n}","//#region imports\nimport { TaonBaseMiddleware, TaonMiddleware, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n//#endregion\n\n@TaonMiddleware({\n className: 'TaonNotificationMiddleware',\n})\nexport class TaonNotificationMiddleware extends TaonBaseMiddleware {}","//#region imports\nimport { TaonBaseProvider, TaonProvider, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n//#endregion\n\n@TaonProvider({\n className: 'TaonNotificationProvider',\n})\nexport class TaonNotificationProvider extends TaonBaseProvider {\n\n\n\n}","//#region imports\nimport { TaonBaseSubscriberForEntity, TaonSubscriber } from 'taon/browser-prod';\nimport { TaonNotificationEntity } from './taon-notification.entity';\nimport { TaonNotificationProvider } from './taon-notification.provider';\n//#endregion\n\n@TaonSubscriber<TaonNotificationSubscriber>({\n className: 'TaonNotificationSubscriber',\n // allowedEvents: ['afterUpdate'],\n})\nexport class TaonNotificationSubscriber extends TaonBaseSubscriberForEntity {\n taonNotificationProvider = this.injectProvider(TaonNotificationProvider);\n listenTo(): typeof TaonNotificationEntity {\n return TaonNotificationEntity;\n }\n}","//#region imports\nimport { createContext, TaonBaseContext } from 'taon/browser-prod';\n\nimport { TaonNotificationRecipientEntity } from './taon-notification-recipient.entity';\nimport { TaonNotificationController } from './taon-notification.controller';\nimport { TaonNotificationEntity } from './taon-notification.entity';\nimport { TaonNotificationMiddleware } from './taon-notification.middleware';\nimport { TaonNotificationProvider } from './taon-notification.provider';\nimport { TaonNotificationRepository } from './taon-notification.repository';\nimport { TaonNotificationSubscriber } from './taon-notification.subscriber';\n//#endregion\n\nexport const TaonNotificationContext = createContext(() => ({\n contextName: 'TaonNotificationContext',\n abstract: true,\n contexts: { TaonBaseContext },\n entities: { TaonNotificationEntity, TaonNotificationRecipientEntity },\n controllers: { TaonNotificationController },\n repositories: { TaonNotificationRepository },\n providers: { TaonNotificationProvider },\n middlewares: { TaonNotificationMiddleware },\n subscribers: { TaonNotificationSubscriber },\n}));\n","import type { TaonNotificationEntity } from './taon-notification.entity';\n\nexport const TaonNotificationDefaultsValues = {\n description: '',\n version: 0,\n id: void 0,\n} as Partial<TaonNotificationEntity>;","export enum TaonNotificationState {\n Active = 'active',\n Inactive = 'inactive',\n}","import { TaonNotificationState } from './taon-notification.models';\n\n//namespace TaonNotificationUtils\n\n export function TaonNotificationUtils__NS__isActive(state: string): state is TaonNotificationState {\n return state === 'active';\n }\n\n//end of namespace TaonNotificationUtils\n","import type { TaonPermissionEntity } from './taon-permission.entity';\n\nexport const TaonPermissionDefaultsValues = {\n description: '',\n version: 0,\n id: void 0,\n} as Partial<TaonPermissionEntity>;\n","export enum TaonPermissionState {\n Active = 'active',\n Inactive = 'inactive',\n}","import { TaonPermissionState } from './taon-permission.models';\n\n//namespace TaonPermissionUtils\n\n export function TaonPermissionUtils__NS__isActive(state: string): state is TaonPermissionState {\n return state === 'active';\n }\n\n//end of namespace TaonPermissionUtils\n","import type { TaonRoleEntity } from './taon-role.entity';\n\nexport const TaonRoleDefaultsValues = {\n description: '',\n version: 0,\n id: void 0,\n} as Partial<TaonRoleEntity>;\n","export enum TaonRoleState {\n Active = 'active',\n Inactive = 'inactive',\n}","//#region imports\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n inject,\n signal,\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatSelectModule } from '@angular/material/select';\n\nimport { TaonGroupApiService } from '../../taon-group/taon-group-api.service';\nimport { TaonRoleApiService } from '../taon-role-api.service';\nimport type { TaonRoleEntity } from '../taon-role.entity';\n//#endregion\n\n@Component({\n selector: 'taon-role-chooser',\n templateUrl: './taon-role-chooser.component.html',\n styleUrls: ['./taon-role-chooser.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n FormsModule,\n MatButtonModule,\n MatFormFieldModule,\n MatIconModule,\n MatSelectModule,\n ],\n providers: [TaonRoleApiService, TaonGroupApiService],\n})\nexport class TaonRoleChooserComponent {\n //#region inject\n\n private readonly taonRoleApiService = inject(TaonRoleApiService);\n\n private readonly taonGroupApiService = inject(TaonGroupApiService);\n\n //#endregion\n\n //#region inputs & outputs\n\n @Input({ required: true }) groupId!: number;\n\n @Input() excludedRoleIds: number[] = [];\n\n @Output() readonly assigned = new EventEmitter<number>();\n\n @Output() readonly cancelled = new EventEmitter<void>();\n\n //#endregion\n\n //#region state\n\n readonly roles = signal<TaonRoleEntity[]>([]);\n\n readonly loading = signal(false);\n\n readonly saving = signal(false);\n\n selectedRoleId?: number;\n\n //#endregion\n\n //#region constructor\n\n constructor() {\n void this.loadRoles();\n }\n\n //#endregion\n\n //#region getters\n\n get availableRoles(): TaonRoleEntity[] {\n return this.roles().filter(\n role => !this.excludedRoleIds.includes(role.id as number),\n );\n }\n\n //#endregion\n\n //#region methods\n\n async loadRoles(): Promise<void> {\n this.loading.set(true);\n\n try {\n this.roles.set(await this.taonRoleApiService.getAllRoles());\n } catch {\n this.roles.set([]);\n } finally {\n this.loading.set(false);\n }\n }\n\n async assign(): Promise<void> {\n const roleId = this.selectedRoleId;\n\n if (!roleId || !this.groupId) {\n return;\n }\n\n this.saving.set(true);\n\n try {\n await this.taonGroupApiService.assignRoleToGroup(this.groupId, roleId);\n\n this.selectedRoleId = undefined;\n\n this.assigned.emit(roleId);\n } finally {\n this.saving.set(false);\n }\n }\n\n cancel(): void {\n this.selectedRoleId = undefined;\n\n this.cancelled.emit();\n }\n\n //#endregion\n}\n","<div class=\"taon-role-chooser\">\n <mat-form-field\n appearance=\"outline\"\n subscriptSizing=\"dynamic\"\n class=\"taon-role-chooser__field\">\n <mat-label> Role </mat-label>\n\n <mat-select\n [(ngModel)]=\"selectedRoleId\"\n [disabled]=\"loading() || saving()\">\n @for (role of availableRoles; track role.id) {\n <mat-option [value]=\"role.id\">\n {{ role.name }} ({{ role.code }})\n </mat-option>\n } @empty {\n <mat-option [disabled]=\"true\"> No roles available </mat-option>\n }\n </mat-select>\n </mat-form-field>\n\n <button\n mat-flat-button\n color=\"primary\"\n type=\"button\"\n [disabled]=\"!selectedRoleId || saving()\"\n (click)=\"assign()\">\n <mat-icon> add </mat-icon>\n\n Assign\n </button>\n\n <button\n mat-button\n type=\"button\"\n [disabled]=\"saving()\"\n (click)=\"cancel()\">\n Cancel\n </button>\n</div>\n","//#region imports\nimport {\n ChangeDetectionStrategy,\n Component,\n Input,\n OnChanges,\n inject,\n signal,\n} from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { RouterLink } from '@angular/router';\nimport { MtxGridColumn } from '@ng-matero/extensions/grid';\nimport { TaonDatatableComponent } from '@taon-dev/ui/browser-prod';\n\nimport { TaonRoleChooserComponent } from '../../taon-role/taon-role-chooser/taon-role-chooser.component';\nimport { TaonBackofficeNavigationService } from '../../taon-session/taon-session-backoffice/taon-backoffice-navigation.service';\nimport { TaonGroupApiService } from '../taon-group-api.service';\nimport type { TaonGroupEntity } from '../taon-group.entity';\n\nimport { TaonGroupBackofficeModels__NS__AssignedRoleRow } from './taon-group-backoffice.models';\n//#endregion\n\n@Component({\n selector: 'taon-group-details',\n templateUrl: './taon-group-details.component.html',\n styleUrls: ['./taon-group-backoffice.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n RouterLink,\n MatButtonModule,\n MatIconModule,\n TaonDatatableComponent,\n TaonRoleChooserComponent,\n ],\n providers: [TaonGroupApiService, TaonBackofficeNavigationService],\n})\nexport class TaonGroupDetailsComponent implements OnChanges {\n @Input({ required: true }) group!: TaonGroupEntity;\n\n readonly navigation = inject(TaonBackofficeNavigationService);\n\n ngOnChanges(): void {\n void this.loadRolesForGroup(Number(this.group.id));\n }\n //#region inject\n\n taonGroupApiService = inject(TaonGroupApiService);\n\n //#endregion\n\n //#region state\n\n readonly roleRowsByGroupId = signal<\n Record<number, TaonGroupBackofficeModels__NS__AssignedRoleRow[]>\n >({});\n\n readonly roleChooserGroupId = signal<number | undefined>(undefined);\n\n /**\n * Stable reference, so that nested datatables do not reload on every\n * change detection cycle while roles are not loaded yet.\n */\n private readonly emptyRoleRows: TaonGroupBackofficeModels__NS__AssignedRoleRow[] =\n [];\n\n private readonly emptyIds: number[] = [];\n\n private readonly assignedRoleIdsByGroupId = signal<Record<number, number[]>>(\n {},\n );\n\n //#endregion\n\n //#region columns\n\n roleColumns: MtxGridColumn[] = [\n {\n header: 'ID',\n field: 'roleId',\n },\n {\n header: 'Name',\n field: 'name',\n },\n {\n header: 'Code',\n field: 'code',\n },\n {\n header: 'Description',\n field: 'description',\n },\n {\n header: 'Actions',\n field: 'actions',\n type: 'button',\n buttons: [\n {\n type: 'icon',\n icon: 'open_in_new',\n tooltip: 'Role details',\n click: (row: TaonGroupBackofficeModels__NS__AssignedRoleRow) =>\n this.navigation.openDetails('role', row.roleId),\n },\n {\n type: 'icon',\n icon: 'delete',\n color: 'warn',\n tooltip: 'Remove role from group',\n click: (row: TaonGroupBackofficeModels__NS__AssignedRoleRow) =>\n void this.unassignRole(row),\n },\n ],\n },\n ];\n\n //#endregion\n\n //#region methods\n\n roleRowsFor(groupId: number): TaonGroupBackofficeModels__NS__AssignedRoleRow[] {\n return this.roleRowsByGroupId()[groupId] ?? this.emptyRoleRows;\n }\n\n assignedRoleIds(groupId: number): number[] {\n return this.assignedRoleIdsByGroupId()[groupId] ?? this.emptyIds;\n }\n\n openRoleChooser(groupId: number): void {\n this.roleChooserGroupId.set(groupId);\n }\n\n closeRoleChooser(): void {\n this.roleChooserGroupId.set(undefined);\n }\n\n roleAssigned(groupId: number): void {\n this.closeRoleChooser();\n\n void this.loadRolesForGroup(groupId);\n }\n\n async loadRolesForGroup(groupId: number): Promise<void> {\n if (!groupId) {\n return;\n }\n\n const roles = await this.taonGroupApiService.getRolesForGroup(groupId);\n\n const rows = roles.map(role => ({\n groupId,\n roleId: role.id as number,\n name: role.name,\n code: role.code,\n description: role.description,\n }));\n\n this.roleRowsByGroupId.set({\n ...this.roleRowsByGroupId(),\n [groupId]: rows,\n });\n\n this.assignedRoleIdsByGroupId.set({\n ...this.assignedRoleIdsByGroupId(),\n [groupId]: rows.map(row => row.roleId),\n });\n }\n\n async unassignRole(\n row: TaonGroupBackofficeModels__NS__AssignedRoleRow,\n ): Promise<void> {\n await this.taonGroupApiService.unassignRoleFromGroup(\n row.groupId,\n row.roleId,\n );\n\n await this.loadRolesForGroup(row.groupId);\n }\n\n //#endregion\n}","<a [routerLink]=\"navigation.detailsLink('group', group.id)\">Group details #{{ group.id }}</a>\n <div class=\"group-details__section\">\n <div class=\"group-details__section-header\">\n <h4 class=\"group-details__section-title\">Group roles</h4>\n\n @if (roleChooserGroupId() !== group.id) {\n <button\n mat-flat-button\n color=\"primary\"\n type=\"button\"\n (click)=\"openRoleChooser(group.id)\">\n <mat-icon> add_moderator </mat-icon>\n\n Assign role\n </button>\n }\n </div>\n\n @if (roleChooserGroupId() === group.id) {\n <taon-role-chooser\n [groupId]=\"group.id\"\n [excludedRoleIds]=\"assignedRoleIds(group.id)\"\n (assigned)=\"roleAssigned(group.id)\"\n (cancelled)=\"closeRoleChooser()\">\n </taon-role-chooser>\n }\n\n <taon-datatable\n [data]=\"roleRowsFor(group.id)\"\n [columns]=\"roleColumns\"\n [pageSize]=\"5\"\n [hideSearch]=\"true\"\n [hideAddButton]=\"true\"\n [showPaginator]=\"false\"\n searchMode=\"simple\">\n </taon-datatable>\n </div>\n","import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { MtxGridColumn } from '@ng-matero/extensions/grid';\nimport { TaonDatatableComponent } from '@taon-dev/ui/browser-prod';\n\nimport { TaonBackofficeNavigationService } from '../../taon-session/taon-session-backoffice/taon-backoffice-navigation.service';\nimport { TaonGroupApiService } from '../taon-group-api.service';\nimport type { TaonGroupEntity } from '../taon-group.entity';\n\nimport { TaonGroupDetailsComponent } from './taon-group-details.component';\n\n@Component({\n selector: 'app-taon-group-backoffice',\n templateUrl: './taon-group-backoffice.component.html',\n styleUrls: ['./taon-group-backoffice.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [TaonDatatableComponent, TaonGroupDetailsComponent],\n providers: [TaonGroupApiService, TaonBackofficeNavigationService],\n})\nexport class TaonGroupBackofficeComponent {\n readonly taonGroupApiService = inject(TaonGroupApiService);\n\n readonly navigation = inject(TaonBackofficeNavigationService);\n\n public get crud() {\n return this.taonGroupApiService.taonGroupController;\n }\n\n readonly columns: MtxGridColumn[] = [\n { header: 'ID', field: 'id', sortable: true, showExpand: true },\n { header: 'Name', field: 'name', sortable: true },\n { header: 'Code', field: 'code', sortable: true },\n {\n header: 'Actions',\n field: 'actions',\n type: 'button',\n buttons: [\n {\n type: 'icon',\n icon: 'open_in_new',\n tooltip: 'Group details',\n click: (group: TaonGroupEntity) =>\n this.navigation.openDetails('group', group.id),\n },\n ],\n },\n ];\n\n add(): void {}\n}\n","<taon-datatable\n [entityCrudController]=\"crud\"\n [columns]=\"columns\"\n [allowedColumns]=\"['id', 'name', 'code']\"\n searchMode=\"advanced\"\n (addingItem)=\"add()\"\n [expansionTemplate]=\"expansionTemplate\">\n</taon-datatable>\n<ng-template #expansionTemplate let-group>\n <taon-group-details [group]=\"group\"></taon-group-details>\n</ng-template>\n","//namespace TaonGroupBackofficeModels\n\n export type TaonGroupBackofficeModels__NS__AssignedRoleRow = {\n groupId: number;\n roleId: number;\n name: string;\n code: string;\n description?: string;\n };\n\n//end of namespace TaonGroupBackofficeModels\n","//#region imports\nimport { Routes } from '@angular/router';\n\nimport { taonBackofficeDetailsResolver } from '../../taon-session/taon-session-backoffice/taon-backoffice-details.resolver';\nimport { TaonGroupApiService } from '../taon-group-api.service';\n//#endregion\n\nexport const TaonGroupBackofficeRoutes: Routes = [\n {\n path: '',\n pathMatch: 'full',\n loadComponent: () =>\n import('./taon-group-backoffice.component').then(\n m => m.TaonGroupBackofficeComponent,\n ),\n },\n {\n path: ':id',\n data: { kind: 'group', hideInNavigation: true },\n providers: [TaonGroupApiService],\n resolve: { detail: taonBackofficeDetailsResolver },\n loadComponent: () =>\n import('../../taon-session/taon-session-backoffice/taon-backoffice-details-page.component').then(\n m => m.TaonBackofficeDetailsPageComponent,\n ),\n },\n];\n\n/**\n * By default exporting TaonGroupBackofficeRoutes,\n * the command `taon generate:app:routes`\n * will automatically add them to the root routes in ./src/app.ts.\n */\n// export default TaonGroupBackofficeRoutes;\n","//#region imports\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n inject,\n signal,\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatSelectModule } from '@angular/material/select';\n\nimport { TaonGroupApiService } from '../taon-group-api.service';\nimport type { TaonGroupEntity } from '../taon-group.entity';\n//#endregion\n\n@Component({\n selector: 'taon-group-chooser',\n templateUrl: './taon-group-chooser.component.html',\n styleUrls: ['./taon-group-chooser.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n FormsModule,\n MatButtonModule,\n MatFormFieldModule,\n MatIconModule,\n MatSelectModule,\n ],\n providers: [TaonGroupApiService],\n})\nexport class TaonGroupChooserComponent {\n //#region inject\n\n private readonly taonGroupApiService = inject(TaonGroupApiService);\n\n //#endregion\n\n //#region inputs & outputs\n\n @Input({ required: true }) userId!: number;\n\n @Input() excludedGroupIds: number[] = [];\n\n @Output() readonly assigned = new EventEmitter<number>();\n\n @Output() readonly cancelled = new EventEmitter<void>();\n\n //#endregion\n\n //#region state\n\n readonly groups = signal<TaonGroupEntity[]>([]);\n\n readonly loading = signal(false);\n\n readonly saving = signal(false);\n\n selectedGroupId?: number;\n\n //#endregion\n\n //#region constructor\n\n constructor() {\n void this.loadGroups();\n }\n\n //#endregion\n\n //#region getters\n\n get availableGroups(): TaonGroupEntity[] {\n return this.groups().filter(\n group => !this.excludedGroupIds.includes(group.id as number),\n );\n }\n\n //#endregion\n\n //#region methods\n\n async loadGroups(): Promise<void> {\n this.loading.set(true);\n\n try {\n this.groups.set(await this.taonGroupApiService.getAllGroups());\n } catch {\n this.groups.set([]);\n } finally {\n this.loading.set(false);\n }\n }\n\n async assign(): Promise<void> {\n const groupId = this.selectedGroupId;\n\n if (!groupId || !this.userId) {\n return;\n }\n\n this.saving.set(true);\n\n try {\n await this.taonGroupApiService.assignGroupToUser(this.userId, groupId);\n\n this.selectedGroupId = undefined;\n\n this.assigned.emit(groupId);\n } finally {\n this.saving.set(false);\n }\n }\n\n cancel(): void {\n this.selectedGroupId = undefined;\n\n this.cancelled.emit();\n }\n\n //#endregion\n}\n","<div class=\"taon-group-chooser\">\n <mat-form-field\n appearance=\"outline\"\n subscriptSizing=\"dynamic\"\n class=\"taon-group-chooser__field\">\n <mat-label> Group </mat-label>\n\n <mat-select\n [(ngModel)]=\"selectedGroupId\"\n [disabled]=\"loading() || saving()\">\n @for (group of availableGroups; track group.id) {\n <mat-option [value]=\"group.id\">\n {{ group.name }} ({{ group.code }})\n </mat-option>\n } @empty {\n <mat-option [disabled]=\"true\"> No groups available </mat-option>\n }\n </mat-select>\n </mat-form-field>\n\n <button\n mat-flat-button\n color=\"primary\"\n type=\"button\"\n [disabled]=\"!selectedGroupId || saving()\"\n (click)=\"assign()\">\n <mat-icon> add </mat-icon>\n\n Assign\n </button>\n\n <button\n mat-button\n type=\"button\"\n [disabled]=\"saving()\"\n (click)=\"cancel()\">\n Cancel\n </button>\n</div>\n","//#region imports\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n inject,\n signal,\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\n\nimport { TaonPermissionApiService } from '../taon-permission-api.service';\nimport type { TaonPermissionEntity } from '../taon-permission.entity';\n//#endregion\n\n@Component({\n selector: 'taon-permission-view-edit',\n templateUrl: './taon-permission-view-edit.component.html',\n styleUrls: ['./taon-permission-view-edit.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n FormsModule,\n MatButtonModule,\n MatFormFieldModule,\n MatIconModule,\n MatInputModule,\n ],\n providers: [TaonPermissionApiService],\n})\nexport class TaonPermissionViewEditComponent {\n //#region inject\n\n private readonly taonPermissionApiService = inject(TaonPermissionApiService);\n\n //#endregion\n\n //#region inputs & outputs\n\n @Input({ required: true })\n set permission(value: TaonPermissionEntity) {\n this._permission = value;\n\n this.description.set(value?.description ?? '');\n\n this.editMode.set(false);\n }\n\n get permission(): TaonPermissionEntity {\n return this._permission;\n }\n\n @Output() readonly descriptionChanged = new EventEmitter<string>();\n\n //#endregion\n\n //#region state\n\n private _permission!: TaonPermissionEntity;\n\n readonly description = signal('');\n\n readonly draftDescription = signal('');\n\n readonly editMode = signal(false);\n\n readonly saving = signal(false);\n\n //#endregion\n\n //#region methods\n\n edit(): void {\n this.draftDescription.set(this.description());\n\n this.editMode.set(true);\n }\n\n cancel(): void {\n this.draftDescription.set(this.description());\n\n this.editMode.set(false);\n }\n\n async save(): Promise<void> {\n if (!this.permission?.id) {\n return;\n }\n\n const newDescription = this.draftDescription();\n\n this.saving.set(true);\n\n try {\n await this.taonPermissionApiService.updateDescription(\n this.permission.id as number,\n newDescription,\n );\n\n this.permission.description = newDescription;\n\n this.description.set(newDescription);\n\n this.editMode.set(false);\n\n this.descriptionChanged.emit(newDescription);\n } finally {\n this.saving.set(false);\n }\n }\n\n //#endregion\n}\n","<div class=\"taon-permission-view-edit\">\n @if (editMode()) {\n <mat-form-field\n appearance=\"outline\"\n subscriptSizing=\"dynamic\"\n class=\"taon-permission-view-edit__field\">\n <mat-label> Description </mat-label>\n\n <textarea\n matInput\n rows=\"4\"\n [ngModel]=\"draftDescription()\"\n (ngModelChange)=\"draftDescription.set($event)\"\n [disabled]=\"saving()\">\n </textarea>\n </mat-form-field>\n\n <div class=\"taon-permission-view-edit__actions\">\n <button\n mat-flat-button\n color=\"primary\"\n type=\"button\"\n [disabled]=\"saving()\"\n (click)=\"save()\">\n <mat-icon> save </mat-icon>\n\n Save\n </button>\n\n <button\n mat-button\n type=\"button\"\n [disabled]=\"saving()\"\n (click)=\"cancel()\">\n Cancel\n </button>\n </div>\n } @else {\n <div class=\"taon-permission-view-edit__description\">\n {{ description() || 'No description' }}\n </div>\n\n <div class=\"taon-permission-view-edit__actions\">\n <button\n mat-stroked-button\n type=\"button\"\n (click)=\"edit()\">\n <mat-icon> edit </mat-icon>\n\n Edit\n </button>\n </div>\n }\n</div>\n","import { ChangeDetectionStrategy, Component, Input, inject } from '@angular/core';\nimport { RouterLink } from '@angular/router';\n\nimport { TaonBackofficeNavigationService } from '../../taon-session/taon-session-backoffice/taon-backoffice-navigation.service';\nimport { TaonPermissionViewEditComponent } from '../taon-permission-view-edit/taon-permission-view-edit.component';\nimport type { TaonPermissionEntity } from '../taon-permission.entity';\n\n@Component({\n selector: 'taon-permission-details',\n template: `\n <a [routerLink]=\"navigation.detailsLink('permission', permission.id)\">Permission details #{{ permission.id }}</a>\n <div class=\"permission-details__section\">\n <h4 class=\"permission-details__section-title\">Description</h4>\n <taon-permission-view-edit [permission]=\"permission\"></taon-permission-view-edit>\n </div>\n `,\n styleUrls: ['./taon-permission-backoffice.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [RouterLink, TaonPermissionViewEditComponent],\n providers: [TaonBackofficeNavigationService],\n})\nexport class TaonPermissionDetailsComponent {\n @Input({ required: true }) permission!: TaonPermissionEntity;\n\n readonly navigation = inject(TaonBackofficeNavigationService);\n}\n","//#region imports\nimport { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { MtxGridColumn } from '@ng-matero/extensions/grid';\nimport { TaonDatatableComponent } from '@taon-dev/ui/browser-prod';\n\nimport { TaonBackofficeNavigationService } from '../../taon-session/taon-session-backoffice/taon-backoffice-navigation.service';\nimport { TaonPermissionApiService } from '../taon-permission-api.service';\nimport type { TaonPermissionEntity } from '../taon-permission.entity';\n\nimport { TaonPermissionDetailsComponent } from './taon-permission-details.component';\n//#endregion\n\n@Component({\n selector: 'app-taon-permission-backoffice',\n templateUrl: './taon-permission-backoffice.component.html',\n styleUrls: ['./taon-permission-backoffice.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n TaonDatatableComponent,\n TaonPermissionDetailsComponent,\n ],\n providers: [TaonPermissionApiService, TaonBackofficeNavigationService],\n})\nexport class TaonPermissionBackofficeComponent {\n readonly navigation = inject(TaonBackofficeNavigationService);\n\n taonPermissionApiService = inject(TaonPermissionApiService);\n\n // eslint-disable-next-line @typescript-eslint/explicit-function-return-type\n public get crud() {\n return this.taonPermissionApiService.taonPermissionController;\n }\n\n columns: MtxGridColumn[] = [\n {\n header: 'ID',\n field: 'id',\n sortable: true,\n showExpand: true,\n },\n {\n header: 'Name',\n field: 'name',\n sortable: true,\n },\n {\n header: 'Code',\n field: 'code',\n sortable: true,\n },\n {\n header: 'Actions',\n field: 'actions',\n type: 'button',\n buttons: [\n {\n type: 'icon',\n icon: 'open_in_new',\n tooltip: 'Permission details',\n click: (permission: TaonPermissionEntity) =>\n this.navigation.openDetails('permission', permission.id),\n },\n ],\n },\n ];\n\n add(): void {}\n}\n","<taon-datatable\n [entityCrudController]=\"crud\"\n [columns]=\"columns\"\n [allowedColumns]=\"['id', 'name', 'code']\"\n searchMode=\"advanced\"\n (addingItem)=\"add()\"\n [expansionTemplate]=\"expansionTemplate\">\n</taon-datatable>\n\n<ng-template\n #expansionTemplate\n let-permission>\n <taon-permission-details [permission]=\"permission\"></taon-permission-details>\n</ng-template>\n","//namespace TaonPermissionBackofficeModels\n\n//end of namespace TaonPermissionBackofficeModels\n","//#region imports\nimport { Routes } from '@angular/router';\n\nimport { taonBackofficeDetailsResolver } from '../../taon-session/taon-session-backoffice/taon-backoffice-details.resolver';\nimport { TaonPermissionApiService } from '../taon-permission-api.service';\n//#endregion\n\nexport const TaonPermissionBackofficeRoutes: Routes = [\n {\n path: '',\n pathMatch: 'full',\n loadComponent: () =>\n import('./taon-permission-backoffice.component').then(\n m => m.TaonPermissionBackofficeComponent,\n ),\n },\n {\n path: ':id',\n data: { kind: 'permission', hideInNavigation: true },\n providers: [TaonPermissionApiService],\n resolve: { detail: taonBackofficeDetailsResolver },\n loadComponent: () =>\n import('../../taon-session/taon-session-backoffice/taon-backoffice-details-page.component').then(\n m => m.TaonBackofficeDetailsPageComponent,\n ),\n },\n];\n\n/**\n * By default exporting TaonPermissionBackofficeRoutes,\n * the command `taon generate:app:routes`\n * will automatically add them to the root routes in ./src/app.ts.\n */\n// export default TaonPermissionBackofficeRoutes;\n","//#region imports\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n inject,\n signal,\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatSelectModule } from '@angular/material/select';\n\nimport { TaonRoleApiService } from '../../taon-role/taon-role-api.service';\nimport { TaonPermissionApiService } from '../taon-permission-api.service';\nimport type { TaonPermissionEntity } from '../taon-permission.entity';\n//#endregion\n\n@Component({\n selector: 'taon-permission-chooser',\n templateUrl: './taon-permission-chooser.component.html',\n styleUrls: ['./taon-permission-chooser.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n FormsModule,\n MatButtonModule,\n MatFormFieldModule,\n MatIconModule,\n MatSelectModule,\n ],\n providers: [TaonPermissionApiService, TaonRoleApiService],\n})\nexport class TaonPermissionChooserComponent {\n //#region inject\n\n private readonly taonPermissionApiService = inject(TaonPermissionApiService);\n\n private readonly taonRoleApiService = inject(TaonRoleApiService);\n\n //#endregion\n\n //#region inputs & outputs\n\n @Input({ required: true }) roleId!: number;\n\n @Input() excludedPermissionIds: number[] = [];\n\n @Output() readonly assigned = new EventEmitter<number>();\n\n @Output() readonly cancelled = new EventEmitter<void>();\n\n //#endregion\n\n //#region state\n\n readonly permissions = signal<TaonPermissionEntity[]>([]);\n\n readonly loading = signal(false);\n\n readonly saving = signal(false);\n\n selectedPermissionId?: number;\n\n //#endregion\n\n //#region constructor\n\n constructor() {\n void this.loadPermissions();\n }\n\n //#endregion\n\n //#region getters\n\n get availablePermissions(): TaonPermissionEntity[] {\n return this.permissions().filter(\n permission =>\n !this.excludedPermissionIds.includes(permission.id as number),\n );\n }\n\n //#endregion\n\n //#region methods\n\n async loadPermissions(): Promise<void> {\n this.loading.set(true);\n\n try {\n this.permissions.set(\n await this.taonPermissionApiService.getAllPermissions(),\n );\n } catch {\n this.permissions.set([]);\n } finally {\n this.loading.set(false);\n }\n }\n\n async assign(): Promise<void> {\n const permissionId = this.selectedPermissionId;\n\n if (!permissionId || !this.roleId) {\n return;\n }\n\n this.saving.set(true);\n\n try {\n await this.taonRoleApiService.assignPermissionToRole(\n this.roleId,\n permissionId,\n );\n\n this.selectedPermissionId = undefined;\n\n this.assigned.emit(permissionId);\n } finally {\n this.saving.set(false);\n }\n }\n\n cancel(): void {\n this.selectedPermissionId = undefined;\n\n this.cancelled.emit();\n }\n\n //#endregion\n}\n","<div class=\"taon-permission-chooser\">\n <mat-form-field\n appearance=\"outline\"\n subscriptSizing=\"dynamic\"\n class=\"taon-permission-chooser__field\">\n <mat-label> Permission </mat-label>\n\n <mat-select\n [(ngModel)]=\"selectedPermissionId\"\n [disabled]=\"loading() || saving()\">\n @for (permission of availablePermissions; track permission.id) {\n <mat-option [value]=\"permission.id\">\n {{ permission.name }} ({{ permission.code }})\n </mat-option>\n } @empty {\n <mat-option [disabled]=\"true\"> No permissions available </mat-option>\n }\n </mat-select>\n </mat-form-field>\n\n <button\n mat-flat-button\n color=\"primary\"\n type=\"button\"\n [disabled]=\"!selectedPermissionId || saving()\"\n (click)=\"assign()\">\n <mat-icon> add </mat-icon>\n\n Assign\n </button>\n\n <button\n mat-button\n type=\"button\"\n [disabled]=\"saving()\"\n (click)=\"cancel()\">\n Cancel\n </button>\n</div>\n","//#region imports\nimport {\n ChangeDetectionStrategy,\n Component,\n Input,\n OnChanges,\n inject,\n signal,\n} from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { RouterLink } from '@angular/router';\nimport { MtxGridColumn } from '@ng-matero/extensions/grid';\nimport { TaonDatatableComponent } from '@taon-dev/ui/browser-prod';\n\nimport { TaonPermissionChooserComponent } from '../../taon-permission/taon-permission-chooser/taon-permission-chooser.component';\nimport { TaonBackofficeNavigationService } from '../../taon-session/taon-session-backoffice/taon-backoffice-navigation.service';\nimport { TaonRoleApiService } from '../taon-role-api.service';\nimport type { TaonRoleEntity } from '../taon-role.entity';\n\nimport { TaonRoleBackofficeModels__NS__AssignedPermissionRow } from './taon-role-backoffice.models';\n//#endregion\n\n@Component({\n selector: 'taon-role-details',\n templateUrl: './taon-role-details.component.html',\n styleUrls: ['./taon-role-backoffice.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n RouterLink,\n MatButtonModule,\n MatIconModule,\n TaonDatatableComponent,\n TaonPermissionChooserComponent,\n ],\n providers: [TaonRoleApiService, TaonBackofficeNavigationService],\n})\nexport class TaonRoleDetailsComponent implements OnChanges {\n @Input({ required: true }) role!: TaonRoleEntity;\n\n readonly navigation = inject(TaonBackofficeNavigationService);\n\n ngOnChanges(): void {\n void this.loadPermissionsForRole(Number(this.role.id));\n }\n //#region inject\n\n taonRoleApiService = inject(TaonRoleApiService);\n\n //#endregion\n\n //#region state\n\n readonly permissionRowsByRoleId = signal<\n Record<number, TaonRoleBackofficeModels__NS__AssignedPermissionRow[]>\n >({});\n\n readonly permissionChooserRoleId = signal<number | undefined>(undefined);\n\n /**\n * Stable reference, so that nested datatables do not reload on every\n * change detection cycle while permissions are not loaded yet.\n */\n private readonly emptyPermissionRows: TaonRoleBackofficeModels__NS__AssignedPermissionRow[] =\n [];\n\n private readonly emptyIds: number[] = [];\n\n private readonly assignedPermissionIdsByRoleId = signal<\n Record<number, number[]>\n >({});\n\n //#endregion\n\n //#region columns\n\n permissionColumns: MtxGridColumn[] = [\n {\n header: 'ID',\n field: 'permissionId',\n },\n {\n header: 'Name',\n field: 'name',\n },\n {\n header: 'Code',\n field: 'code',\n },\n {\n header: 'Description',\n field: 'description',\n },\n {\n header: 'Actions',\n field: 'actions',\n type: 'button',\n buttons: [\n {\n type: 'icon',\n icon: 'open_in_new',\n tooltip: 'Permission details',\n click: (row: TaonRoleBackofficeModels__NS__AssignedPermissionRow) =>\n this.navigation.openDetails('permission', row.permissionId),\n },\n {\n type: 'icon',\n icon: 'delete',\n color: 'warn',\n tooltip: 'Remove permission from role',\n click: (row: TaonRoleBackofficeModels__NS__AssignedPermissionRow) =>\n void this.unassignPermission(row),\n },\n ],\n },\n ];\n\n //#endregion\n\n //#region methods\n\n permissionRowsFor(\n roleId: number,\n ): TaonRoleBackofficeModels__NS__AssignedPermissionRow[] {\n return this.permissionRowsByRoleId()[roleId] ?? this.emptyPermissionRows;\n }\n\n assignedPermissionIds(roleId: number): number[] {\n return this.assignedPermissionIdsByRoleId()[roleId] ?? this.emptyIds;\n }\n\n openPermissionChooser(roleId: number): void {\n this.permissionChooserRoleId.set(roleId);\n }\n\n closePermissionChooser(): void {\n this.permissionChooserRoleId.set(undefined);\n }\n\n permissionAssigned(roleId: number): void {\n this.closePermissionChooser();\n\n void this.loadPermissionsForRole(roleId);\n }\n\n async loadPermissionsForRole(roleId: number): Promise<void> {\n if (!roleId) {\n return;\n }\n\n const permissions =\n await this.taonRoleApiService.getPermissionsForRole(roleId);\n\n const rows = permissions.map(permission => ({\n roleId,\n permissionId: permission.id as number,\n name: permission.name,\n code: permission.code,\n description: permission.description,\n }));\n\n this.permissionRowsByRoleId.set({\n ...this.permissionRowsByRoleId(),\n [roleId]: rows,\n });\n\n this.assignedPermissionIdsByRoleId.set({\n ...this.assignedPermissionIdsByRoleId(),\n [roleId]: rows.map(row => row.permissionId),\n });\n }\n\n async unassignPermission(\n row: TaonRoleBackofficeModels__NS__AssignedPermissionRow,\n ): Promise<void> {\n await this.taonRoleApiService.unassignPermissionFromRole(\n row.roleId,\n row.permissionId,\n );\n\n await this.loadPermissionsForRole(row.roleId);\n }\n\n //#endregion\n}","<a [routerLink]=\"navigation.detailsLink('role', role.id)\">Role details #{{ role.id }}</a>\n <div class=\"role-details__section\">\n <div class=\"role-details__section-header\">\n <h4 class=\"role-details__section-title\">Role permissions</h4>\n\n @if (permissionChooserRoleId() !== role.id) {\n <button\n mat-flat-button\n color=\"primary\"\n type=\"button\"\n (click)=\"openPermissionChooser(role.id)\">\n <mat-icon> add </mat-icon>\n\n Assign permission\n </button>\n }\n </div>\n\n @if (permissionChooserRoleId() === role.id) {\n <taon-permission-chooser\n [roleId]=\"role.id\"\n [excludedPermissionIds]=\"assignedPermissionIds(role.id)\"\n (assigned)=\"permissionAssigned(role.id)\"\n (cancelled)=\"closePermissionChooser()\">\n </taon-permission-chooser>\n }\n\n <taon-datatable\n [data]=\"permissionRowsFor(role.id)\"\n [columns]=\"permissionColumns\"\n [pageSize]=\"5\"\n [hideSearch]=\"true\"\n [hideAddButton]=\"true\"\n [showPaginator]=\"false\"\n searchMode=\"simple\">\n </taon-datatable>\n </div>\n","import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { MtxGridColumn } from '@ng-matero/extensions/grid';\nimport { TaonDatatableComponent } from '@taon-dev/ui/browser-prod';\n\nimport { TaonBackofficeNavigationService } from '../../taon-session/taon-session-backoffice/taon-backoffice-navigation.service';\nimport { TaonRoleApiService } from '../taon-role-api.service';\nimport type { TaonRoleEntity } from '../taon-role.entity';\n\nimport { TaonRoleDetailsComponent } from './taon-role-details.component';\n\n@Component({\n selector: 'app-taon-role-backoffice',\n templateUrl: './taon-role-backoffice.component.html',\n styleUrls: ['./taon-role-backoffice.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [TaonDatatableComponent, TaonRoleDetailsComponent],\n providers: [TaonRoleApiService, TaonBackofficeNavigationService],\n})\nexport class TaonRoleBackofficeComponent {\n readonly taonRoleApiService = inject(TaonRoleApiService);\n\n readonly navigation = inject(TaonBackofficeNavigationService);\n\n public get crud() {\n return this.taonRoleApiService.taonRoleController;\n }\n\n readonly columns: MtxGridColumn[] = [\n { header: 'ID', field: 'id', sortable: true, showExpand: true },\n { header: 'Name', field: 'name', sortable: true },\n { header: 'Code', field: 'code', sortable: true },\n {\n header: 'Actions',\n field: 'actions',\n type: 'button',\n buttons: [\n {\n type: 'icon',\n icon: 'open_in_new',\n tooltip: 'Role details',\n click: (role: TaonRoleEntity) =>\n this.navigation.openDetails('role', role.id),\n },\n ],\n },\n ];\n\n add(): void {}\n}\n","<taon-datatable\n [entityCrudController]=\"crud\"\n [columns]=\"columns\"\n [allowedColumns]=\"['id', 'name', 'code']\"\n searchMode=\"advanced\"\n (addingItem)=\"add()\"\n [expansionTemplate]=\"expansionTemplate\">\n</taon-datatable>\n<ng-template #expansionTemplate let-role>\n <taon-role-details [role]=\"role\"></taon-role-details>\n</ng-template>\n","//namespace TaonRoleBackofficeModels\n\n export type TaonRoleBackofficeModels__NS__AssignedPermissionRow = {\n roleId: number;\n permissionId: number;\n name: string;\n code: string;\n description?: string;\n };\n\n//end of namespace TaonRoleBackofficeModels\n","//#region imports\nimport { Routes } from '@angular/router';\nimport { TaonRoleApiService } from '../taon-role-api.service';\nimport { taonBackofficeDetailsResolver } from '../../taon-session/taon-session-backoffice/taon-backoffice-details.resolver';\n//#endregion\n\nexport const TaonRoleBackofficeRoutes: Routes = [\n {\n path: '',\n pathMatch: 'full',\n loadComponent: () =>\n import('./taon-role-backoffice.component').then(\n m => m.TaonRoleBackofficeComponent,\n ),\n },\n {\n path: ':id',\n data: { kind: 'role', hideInNavigation: true },\n providers: [TaonRoleApiService],\n resolve: { detail: taonBackofficeDetailsResolver },\n loadComponent: () =>\n import('../../taon-session/taon-session-backoffice/taon-backoffice-details-page.component').then(\n m => m.TaonBackofficeDetailsPageComponent,\n ),\n },\n];\n\n/**\n * By default exporting TaonRoleBackofficeRoutes,\n * the command `taon generate:app:routes`\n * will automatically add them to the root routes in ./src/app.ts.\n */\n// export default TaonRoleBackofficeRoutes;\n","//#region imports\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { TaonBaseAngularService, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\n\nimport { TaonProfileProvider } from './taon-profile.provider';\n//#endregion\n\n@Injectable()\nexport class TaonProfileConfigService extends TaonBaseAngularService {\n private taonProfileProvider = this.injectProvider(TaonProfileProvider);\n\n clone(): Partial<TaonProfileProvider> {\n const cloned = this.taonProfileProvider.clone();\n return cloned;\n }\n}","import type { TaonProfileEntity } from './taon-profile.entity';\nimport { Translation } from '@taon-dev/i18n/browser-prod';\nimport { Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\n\nconst t = Translation.for('src/lib/taon-session/taon-profile/taon-profile.constants.ts', {} as any);\n\nexport const TaonProfileDefaultsValues = {\n description: '',\n version: 0,\n id: void 0,\n} as Partial<TaonProfileEntity>;\n\nexport enum TaonProfileErrors {\n INVALID_PASSWORD_EXAMPLE_ERROR = 'INVALID_PASSWORD_EXAMPLE_ERROR',\n}\n\nexport const TaonProfileTranslationErorsMap = new Map([\n [TaonProfileErrors.INVALID_PASSWORD_EXAMPLE_ERROR, t.gettext('Invalid Password')],\n]);","//#region imports\nimport {\n TaonBaseRepository,\n TaonBaseKvRepository,\n TaonRepository,\n} from 'taon/browser-prod';\n\nimport { TaonProfileEntity } from './taon-profile.entity';\n//#endregion\n\n@TaonRepository({\n className: 'TaonProfileKvRepository',\n})\nexport class TaonProfileKvRepository extends TaonBaseKvRepository<{\n usersToNotify: TaonProfileEntity[];\n}> {\n async notifyUsers(users: TaonProfileEntity[]) {\n this.set('usersToNotify', users);\n }\n}","//#region imports\nimport { AsyncPipe } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n Input,\n OnChanges,\n forwardRef,\n inject,\n signal,\n} from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { RouterLink } from '@angular/router';\nimport { MtxGridColumn } from '@ng-matero/extensions/grid';\nimport { TaonDatatableComponent } from '@taon-dev/ui/browser-prod';\n\nimport { TaonGroupApiService } from '../../taon-group/taon-group-api.service';\nimport { TaonGroupChooserComponent } from '../../taon-group/taon-group-chooser/taon-group-chooser.component';\nimport type { TaonGroupEntity } from '../../taon-group/taon-group.entity';\nimport { TaonProfilePictureComponent } from '../../taon-session/taon-profile/taon-profile-picture/taon-profile-picture.component';\nimport { TaonBackofficeNavigationService } from '../../taon-session/taon-session-backoffice/taon-backoffice-navigation.service';\nimport { TaonSessionApiService } from '../../taon-session/taon-session.api.service';\nimport type { TaonSessionUserEntity } from '../taon-session-user.entity';\n\nimport { TaonSessionBackofficeUsersModels__NS__AssignedGroupRoleRow, TaonSessionBackofficeUsersModels__NS__AssignedGroupRow } from './taon-session-backoffice-users.models';\nimport { of } from 'rxjs';\n//#endregion\n\n@Component({\n selector: 'taon-session-user-details',\n templateUrl: './taon-session-user-details.component.html',\n styleUrls: ['./taon-session-backoffice-users.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n AsyncPipe,\n RouterLink,\n MatButtonModule,\n MatIconModule,\n TaonDatatableComponent,\n TaonGroupChooserComponent,\n TaonProfilePictureComponent,\n ],\n providers: [\n TaonGroupApiService,\n TaonBackofficeNavigationService,\n forwardRef(() => TaonSessionApiService),\n ],\n})\nexport class TaonSessionUserDetailsComponent implements OnChanges {\n @Input({ required: true }) user!: TaonSessionUserEntity;\n\n readonly navigation = inject(TaonBackofficeNavigationService);\n\n readonly taonSessionApiService = inject(TaonSessionApiService);\n\n context$ = this.taonSessionApiService.context();\n\n ngOnChanges(): void {\n void this.loadGroupsForUser(Number(this.user.id));\n }\n //#region inject\n\n private readonly taonGroupApiService = inject(TaonGroupApiService);\n\n //#endregion\n\n //#region state\n\n readonly groupRowsByUserId = signal<\n Record<number, TaonSessionBackofficeUsersModels__NS__AssignedGroupRow[]>\n >({});\n\n readonly groupChooserUserId = signal<number | undefined>(undefined);\n\n /**\n * Stable reference, so that nested datatables do not reload on every\n * change detection cycle while groups are not loaded yet.\n */\n private readonly emptyGroupRows: TaonSessionBackofficeUsersModels__NS__AssignedGroupRow[] =\n [];\n\n private readonly emptyIds: number[] = [];\n\n private readonly assignedGroupIdsByUserId = signal<Record<number, number[]>>(\n {},\n );\n\n //#endregion\n\n //#region columns\n\n identityColumns: MtxGridColumn[] = [\n {\n header: 'Provider',\n field: 'provider',\n },\n {\n header: 'Email',\n field: 'email',\n },\n ];\n\n groupColumns: MtxGridColumn[] = [\n {\n header: 'ID',\n field: 'groupId',\n showExpand: true,\n },\n {\n header: 'Name',\n field: 'name',\n },\n {\n header: 'Code',\n field: 'code',\n },\n {\n header: 'Description',\n field: 'description',\n },\n {\n header: 'Actions',\n field: 'actions',\n type: 'button',\n buttons: [\n {\n type: 'icon',\n icon: 'open_in_new',\n tooltip: 'Group details',\n click: (row: TaonSessionBackofficeUsersModels__NS__AssignedGroupRow) =>\n this.navigation.openDetails('group', row.groupId),\n },\n {\n type: 'icon',\n icon: 'delete',\n color: 'warn',\n tooltip: 'Remove group from user',\n click: (row: TaonSessionBackofficeUsersModels__NS__AssignedGroupRow) =>\n void this.unassignGroup(row),\n },\n ],\n },\n ];\n\n //#endregion\n\n //#region methods\n\n groupRowsFor(\n userId: number,\n ): TaonSessionBackofficeUsersModels__NS__AssignedGroupRow[] {\n return this.groupRowsByUserId()[userId] ?? this.emptyGroupRows;\n }\n\n assignedGroupIds(userId: number): number[] {\n return this.assignedGroupIdsByUserId()[userId] ?? this.emptyIds;\n }\n\n openGroupChooser(userId: number): void {\n this.groupChooserUserId.set(userId);\n }\n\n closeGroupChooser(): void {\n this.groupChooserUserId.set(undefined);\n }\n\n groupAssigned(userId: number): void {\n this.closeGroupChooser();\n\n void this.loadGroupsForUser(userId);\n }\n\n async loadGroupsForUser(userId: number): Promise<void> {\n if (!userId) {\n return;\n }\n\n const groups = await this.taonGroupApiService.getGroupsForUser(userId);\n\n const rows = groups.map(group => ({\n userId,\n groupId: group.id as number,\n name: group.name,\n code: group.code,\n description: group.description,\n roles: this.roleRowsFromGroup(group),\n }));\n\n this.groupRowsByUserId.set({\n ...this.groupRowsByUserId(),\n [userId]: rows,\n });\n\n this.assignedGroupIdsByUserId.set({\n ...this.assignedGroupIdsByUserId(),\n [userId]: rows.map(row => row.groupId),\n });\n }\n\n async unassignGroup(\n row: TaonSessionBackofficeUsersModels__NS__AssignedGroupRow,\n ): Promise<void> {\n await this.taonGroupApiService.unassignGroupFromUser(\n row.userId,\n row.groupId,\n );\n\n await this.loadGroupsForUser(row.userId);\n }\n\n //#endregion\n\n //#region private methods\n\n private roleRowsFromGroup(\n group: TaonGroupEntity,\n ): TaonSessionBackofficeUsersModels__NS__AssignedGroupRoleRow[] {\n const rolesById = new Map<\n number,\n TaonSessionBackofficeUsersModels__NS__AssignedGroupRoleRow\n >();\n\n for (const groupRole of group.groupRoles ?? []) {\n const role = groupRole.role;\n if (role) {\n rolesById.set(Number(role.id), {\n roleId: Number(role.id),\n name: role.name,\n });\n }\n }\n\n return [...rolesById.values()];\n }\n\n //#endregion\n}","<a [routerLink]=\"navigation.detailsLink('user', user.id)\">User details #{{ user.id }}</a>\n <!-- profile -->\n <div class=\"user-details__profile\">\n <div class=\"user-details__profile-picture\">\n <taon-profile-picture\n [userId]=\"user.id\"\n [readOnly]=\"!(context$ | async)?.isSuperUser\">\n </taon-profile-picture>\n </div>\n\n <div class=\"user-details__profile-fields\">\n <div class=\"user-details__profile-field\">\n <span class=\"user-details__profile-label\"> First Name </span>\n\n <span class=\"user-details__profile-value\"> - </span>\n </div>\n\n <div class=\"user-details__profile-field\">\n <span class=\"user-details__profile-label\"> Surname </span>\n\n <span class=\"user-details__profile-value\"> - </span>\n </div>\n </div>\n </div>\n\n <!-- groups -->\n <div class=\"user-details__section\">\n <div class=\"user-details__section-header\">\n <h4 class=\"user-details__section-title\">User groups</h4>\n\n @if (groupChooserUserId() !== user.id) {\n <button\n mat-flat-button\n color=\"primary\"\n type=\"button\"\n (click)=\"openGroupChooser(user.id)\">\n <mat-icon> group_add </mat-icon>\n\n Assign group\n </button>\n }\n </div>\n\n @if (groupChooserUserId() === user.id) {\n <taon-group-chooser\n [userId]=\"user.id\"\n [excludedGroupIds]=\"assignedGroupIds(user.id)\"\n (assigned)=\"groupAssigned(user.id)\"\n (cancelled)=\"closeGroupChooser()\">\n </taon-group-chooser>\n }\n\n <taon-datatable\n [data]=\"groupRowsFor(user.id)\"\n [columns]=\"groupColumns\"\n [pageSize]=\"5\"\n [hideSearch]=\"true\"\n [hideAddButton]=\"true\"\n [showPaginator]=\"false\"\n searchMode=\"simple\"\n [expansionTemplate]=\"groupExpansionTemplate\">\n </taon-datatable>\n </div>\n\n <!-- providers -->\n <div class=\"user-details__section\">\n <h4 class=\"user-details__section-title\">Providers</h4>\n\n <taon-datatable\n [data]=\"user.identities\"\n [columns]=\"identityColumns\"\n [pageSize]=\"5\"\n [hideSearch]=\"true\"\n [hideAddButton]=\"true\"\n [showPaginator]=\"false\"\n searchMode=\"simple\">\n </taon-datatable>\n </div>\n\n\n<ng-template\n #groupExpansionTemplate\n let-group>\n <div class=\"user-details__group-roles\">\n <span class=\"user-details__section-title\"> Roles from groups </span>\n\n <ul class=\"user-details__role-list\">\n @for (role of group.roles; track role.roleId) {\n <li class=\"user-details__role-item\">\n <a [routerLink]=\"navigation.detailsLink('role', role.roleId)\">{{ role.name }}</a>\n </li>\n } @empty {\n <li class=\"user-details__role-item\">\n No roles available through this group\n </li>\n }\n </ul>\n </div>\n</ng-template>\n","import { AsyncPipe } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n forwardRef,\n inject,\n} from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { map } from 'rxjs';\n\nimport { TaonGroupDetailsComponent } from '../../taon-group/taon-group-backoffice/taon-group-details.component';\nimport { TaonPermissionDetailsComponent } from '../../taon-permission/taon-permission-backoffice/taon-permission-details.component';\nimport { TaonRoleDetailsComponent } from '../../taon-role/taon-role-backoffice/taon-role-details.component';\nimport { TaonSessionUserDetailsComponent } from '../../taon-session-user/taon-session-backoffice-users/taon-session-user-details.component';\n\nimport type { TaonBackofficeDetail } from './taon-backoffice-details.resolver';\nimport { TaonSessionDetailsComponent } from './taon-session-details.component';\n\n@Component({\n selector: 'taon-backoffice-details-page',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n AsyncPipe,\n forwardRef(() => TaonSessionUserDetailsComponent),\n forwardRef(() => TaonGroupDetailsComponent),\n forwardRef(() => TaonRoleDetailsComponent),\n forwardRef(() => TaonPermissionDetailsComponent),\n forwardRef(() => TaonSessionDetailsComponent),\n ],\n template: `\n @if (detail$ | async; as detail) {\n @switch (detail.kind) {\n @case ('session') {\n <h2>Session #{{ detail.entity.id }}</h2>\n <taon-session-details\n [sessionId]=\"detail.entity.id\"\n [detail]=\"detail.entity\"></taon-session-details>\n }\n @case ('user') {\n <h2>User: {{ detail.entity.username }} (#{{ detail.entity.id }})</h2>\n <taon-session-user-details\n [user]=\"detail.entity\"></taon-session-user-details>\n }\n @case ('group') {\n <h2>Group: {{ detail.entity.name }} (#{{ detail.entity.id }})</h2>\n <taon-group-details [group]=\"detail.entity\"></taon-group-details>\n }\n @case ('role') {\n <h2>Role: {{ detail.entity.name }} (#{{ detail.entity.id }})</h2>\n <taon-role-details [role]=\"detail.entity\"></taon-role-details>\n }\n @case ('permission') {\n <h2>\n Permission: {{ detail.entity.name }} (#{{ detail.entity.id }})\n </h2>\n <taon-permission-details\n [permission]=\"detail.entity\"></taon-permission-details>\n }\n }\n }\n `,\n})\nexport class TaonBackofficeDetailsPageComponent {\n readonly detail$ = inject(ActivatedRoute).data.pipe(\n map(data => data['detail'] as TaonBackofficeDetail),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n forwardRef,\n inject,\n} from '@angular/core';\nimport { MtxGridColumn } from '@ng-matero/extensions/grid';\nimport { TaonDatatableComponent } from '@taon-dev/ui/browser-prod';\n\nimport { TaonBackofficeNavigationService } from '../../taon-session/taon-session-backoffice/taon-backoffice-navigation.service';\nimport { TaonSessionUserApiService } from '../taon-session-user-api.service';\nimport type { TaonSessionUserEntity } from '../taon-session-user.entity';\n\nimport { TaonSessionUserDetailsComponent } from './taon-session-user-details.component';\n\n@Component({\n selector: 'app-taon-session-backoffice-users',\n templateUrl: './taon-session-backoffice-users.component.html',\n styleUrls: ['./taon-session-backoffice-users.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n TaonDatatableComponent,\n forwardRef(() => TaonSessionUserDetailsComponent),\n ],\n providers: [TaonSessionUserApiService, TaonBackofficeNavigationService],\n})\nexport class TaonSessionBackofficeUsersComponent {\n readonly userApiService = inject(TaonSessionUserApiService);\n\n readonly navigation = inject(TaonBackofficeNavigationService);\n\n public get crud() {\n return this.userApiService.taonSessionUserController;\n }\n\n readonly columns: MtxGridColumn[] = [\n { header: 'ID', field: 'id', sortable: true, showExpand: true },\n { header: 'Username', field: 'username', sortable: true },\n {\n header: 'Actions',\n field: 'actions',\n type: 'button',\n buttons: [\n {\n type: 'icon',\n icon: 'open_in_new',\n tooltip: 'User details',\n click: (user: TaonSessionUserEntity) =>\n this.navigation.openDetails('user', user.id),\n },\n ],\n },\n ];\n\n add(): void {}\n}\n","<taon-datatable\n [entityCrudController]=\"crud\"\n [columns]=\"columns\"\n [allowedColumns]=\"['id', 'username']\"\n searchMode=\"advanced\"\n (addingItem)=\"add()\"\n [expansionTemplate]=\"expansionTemplate\">\n</taon-datatable>\n<ng-template #expansionTemplate let-user>\n <taon-session-user-details [user]=\"user\"></taon-session-user-details>\n</ng-template>\n","//namespace TaonSessionBackofficeUsersModels\n\n export type TaonSessionBackofficeUsersModels__NS__AssignedGroupRoleRow = {\n roleId: number;\n name: string;\n };\n\n export type TaonSessionBackofficeUsersModels__NS__AssignedGroupRow = {\n userId: number;\n groupId: number;\n name: string;\n code: string;\n description?: string;\n roles: TaonSessionBackofficeUsersModels__NS__AssignedGroupRoleRow[];\n };\n\n//end of namespace TaonSessionBackofficeUsersModels\n","//#region imports\nimport { Routes } from '@angular/router';\nimport { TaonSessionUserApiService } from '../taon-session-user-api.service';\nimport { taonBackofficeDetailsResolver } from '../../taon-session/taon-session-backoffice/taon-backoffice-details.resolver';\n//#endregion\n\nexport const TaonSessionBackofficeUsersRoutes: Routes = [\n {\n path: '',\n pathMatch: 'full',\n loadComponent: () =>\n import('./taon-session-backoffice-users.component').then(\n m => m.TaonSessionBackofficeUsersComponent,\n ),\n },\n {\n path: ':id',\n data: { kind: 'user', hideInNavigation: true },\n providers: [TaonSessionUserApiService],\n resolve: { detail: taonBackofficeDetailsResolver },\n loadComponent: () =>\n import('../../taon-session/taon-session-backoffice/taon-backoffice-details-page.component').then(\n m => m.TaonBackofficeDetailsPageComponent,\n ),\n },\n];\n\n/**\n * By default exporting TaonSessionBackofficeUsersRoutes,\n * the command `taon generate:app:routes`\n * will automatically add them to the root routes in ./src/app.ts.\n */\n// export default TaonSessionBackofficeUsersRoutes;\n","//namespace TaonProfilePictureModels\n\n//end of namespace TaonProfilePictureModels\n","//#region imports\nimport { Routes } from '@angular/router';\nimport { adminLazyRoute } from '@taon-dev/ui/browser-prod';\n//#endregion\n\nexport const TaonProfilePictureRoutes: Routes = [\n {\n path: '',\n loadComponent: () =>\n import('./taon-profile-picture.component').then(m => m.TaonProfilePictureComponent),\n\n children: [\n // adminLazyRoute({\n // path: 'dashboard',\n // menuItem: 'Dashboard',\n // icon: 'dashboard',\n // expandable: false,\n // loader: () =>\n // import('./anothermodule.routes').then(m => m.DashboardRoutes),\n // }),\n ],\n },\n];\n\n/**\n * By default exporting TaonProfilePictureRoutes,\n * the command `taon generate:app:routes`\n * will automatically add them to the root routes in ./src/app.ts.\n */\n// export default TaonProfilePictureRoutes;","//namespace TaonSessionProfileModels\n\n//end of namespace TaonSessionProfileModels\n","// @ts-nocheck\n// This file is auto-generated during init process. Do not modify.\n// This disable this auto generate file.\n// set property \"shouldGenerateAutogenIndexFile: false\" \n// in taon.jsonc of your project. \nexport * from './build-info._auto-generated_'; \nexport * from './my-organization-proj'; \nexport * from './start-cli'; \nexport * from './taon-audit-events/taon-audit-events-api.service'; // @browser\nexport * from './taon-audit-events/taon-audit-events.abstract.context'; \nexport * from './taon-audit-events/taon-audit-events.constants'; \nexport * from './taon-audit-events/taon-audit-events.controller'; \nexport * from './taon-audit-events/taon-audit-events.entity'; \nexport * from './taon-audit-events/taon-audit-events.middleware'; \nexport * from './taon-audit-events/taon-audit-events.models'; \nexport * from './taon-audit-events/taon-audit-events.provider'; \nexport * from './taon-audit-events/taon-audit-events.repository'; \nexport * from './taon-audit-events/taon-audit-events.subscriber'; \nexport * from './taon-audit-events/taon-audit-events.utils'; \nexport * from './taon-auth-context/taon-auth-context.abstract.context'; \nexport * from './taon-auth-context/taon-auth-context.entity'; \nexport * from './taon-auth-context/taon-auth-context.repository'; \nexport * from './taon-authorization-backoffice/taon-authorization-backoffice.component'; // @browser\nexport * from './taon-authorization-backoffice/taon-authorization-backoffice.models'; \nexport * from './taon-authorization-backoffice/taon-authorization-backoffice.routes'; // @browser\nexport * from './taon-group/taon-group-api.service'; // @browser\nexport * from './taon-group/taon-group-role.entity'; \nexport * from './taon-group/taon-group-role.repository'; \nexport * from './taon-group/taon-group.abstract.context'; \nexport * from './taon-group/taon-group.constants'; \nexport * from './taon-group/taon-group.controller'; \nexport * from './taon-group/taon-group.entity'; \nexport * from './taon-group/taon-group.middleware'; \nexport * from './taon-group/taon-group.provider'; \nexport * from './taon-group/taon-group.repository'; \nexport * from './taon-notification/taon-notification-api.service'; // @browser\nexport * from './taon-notification/taon-notification-recipient.entity'; \nexport * from './taon-notification/taon-notification.abstract.context'; \nexport * from './taon-notification/taon-notification.constants'; \nexport * from './taon-notification/taon-notification.controller'; \nexport * from './taon-notification/taon-notification.entity'; \nexport * from './taon-notification/taon-notification.middleware'; \nexport * from './taon-notification/taon-notification.models'; \nexport * from './taon-notification/taon-notification.provider'; \nexport * from './taon-notification/taon-notification.repository'; \nexport * from './taon-notification/taon-notification.subscriber'; \nexport * from './taon-notification/taon-notification.utils'; \nexport * from './taon-permission/taon-permission-api.service'; // @browser\nexport * from './taon-permission/taon-permission.abstract.context'; \nexport * from './taon-permission/taon-permission.constants'; \nexport * from './taon-permission/taon-permission.controller'; \nexport * from './taon-permission/taon-permission.entity'; \nexport * from './taon-permission/taon-permission.middleware'; \nexport * from './taon-permission/taon-permission.models'; \nexport * from './taon-permission/taon-permission.provider'; \nexport * from './taon-permission/taon-permission.repository'; \nexport * from './taon-permission/taon-permission.subscriber'; \nexport * from './taon-permission/taon-permission.utils'; \nexport * from './taon-role/taon-role-api.service'; // @browser\nexport * from './taon-role/taon-role-permission.entity'; \nexport * from './taon-role/taon-role-permission.repository'; \nexport * from './taon-role/taon-role.abstract.context'; \nexport * from './taon-role/taon-role.constants'; \nexport * from './taon-role/taon-role.controller'; \nexport * from './taon-role/taon-role.entity'; \nexport * from './taon-role/taon-role.models'; \nexport * from './taon-role/taon-role.provider'; \nexport * from './taon-role/taon-role.repository'; \nexport * from './taon-session/taon-session.abstract.context'; \nexport * from './taon-session/taon-session.api.service'; // @browser\nexport * from './taon-session/taon-session.config.service'; // @browser\nexport * from './taon-session/taon-session.controller'; \nexport * from './taon-session/taon-session.entity'; \nexport * from './taon-session/taon-session.kv.repository'; \nexport * from './taon-session/taon-session.middleware'; \nexport * from './taon-session/taon-session.models'; \nexport * from './taon-session/taon-session.provider'; \nexport * from './taon-session/taon-session.repository'; \nexport * from './taon-session/taon-session.state.service'; // @browser\nexport * from './taon-session/taon-session.utils'; \nexport * from './taon-session/taon-session.validators'; \nexport * from './taon-session-user/taon-session-user-api.service'; // @browser\nexport * from './taon-session-user/taon-session-user-group.entity'; \nexport * from './taon-session-user/taon-session-user-group.repository'; \nexport * from './taon-session-user/taon-session-user-identity.entity'; \nexport * from './taon-session-user/taon-session-user-identity.repository'; \nexport * from './taon-session-user/taon-session-user-role.entity'; \nexport * from './taon-session-user/taon-session-user.abstract.context'; \nexport * from './taon-session-user/taon-session-user.constants'; \nexport * from './taon-session-user/taon-session-user.controller'; \nexport * from './taon-session-user/taon-session-user.entity'; \nexport * from './taon-session-user/taon-session-user.middleware'; \nexport * from './taon-session-user/taon-session-user.models'; \nexport * from './taon-session-user/taon-session-user.provider'; \nexport * from './taon-session-user/taon-session-user.repository'; \nexport * from './taon-session-user/taon-session-user.subscriber'; \nexport * from './taon-session-user/taon-session-user.utils'; \nexport * from './taon-group/taon-group-backoffice/taon-group-backoffice.component'; // @browser\nexport * from './taon-group/taon-group-backoffice/taon-group-backoffice.models'; \nexport * from './taon-group/taon-group-backoffice/taon-group-backoffice.routes'; // @browser\nexport * from './taon-group/taon-group-backoffice/taon-group-details.component'; // @browser\nexport * from './taon-group/taon-group-chooser/taon-group-chooser.component'; // @browser\nexport * from './taon-permission/taon-permission-backoffice/taon-permission-backoffice.component'; // @browser\nexport * from './taon-permission/taon-permission-backoffice/taon-permission-backoffice.models'; \nexport * from './taon-permission/taon-permission-backoffice/taon-permission-backoffice.routes'; // @browser\nexport * from './taon-permission/taon-permission-backoffice/taon-permission-details.component'; // @browser\nexport * from './taon-permission/taon-permission-chooser/taon-permission-chooser.component'; // @browser\nexport * from './taon-permission/taon-permission-view-edit/taon-permission-view-edit.component'; // @browser\nexport * from './taon-role/taon-role-backoffice/taon-role-backoffice.component'; // @browser\nexport * from './taon-role/taon-role-backoffice/taon-role-backoffice.models'; \nexport * from './taon-role/taon-role-backoffice/taon-role-backoffice.routes'; // @browser\nexport * from './taon-role/taon-role-backoffice/taon-role-details.component'; // @browser\nexport * from './taon-role/taon-role-chooser/taon-role-chooser.component'; // @browser\nexport * from './taon-session/taon-profile/taon-profile.abstract.context'; \nexport * from './taon-session/taon-profile/taon-profile.api.service'; // @browser\nexport * from './taon-session/taon-profile/taon-profile.config.service'; // @browser\nexport * from './taon-session/taon-profile/taon-profile.constants'; \nexport * from './taon-session/taon-profile/taon-profile.controller'; \nexport * from './taon-session/taon-profile/taon-profile.entity'; \nexport * from './taon-session/taon-profile/taon-profile.kv.repository'; \nexport * from './taon-session/taon-profile/taon-profile.models'; \nexport * from './taon-session/taon-profile/taon-profile.provider'; \nexport * from './taon-session/taon-session/taon-session.component'; // @browser\nexport * from './taon-session/taon-session-backoffice/taon-backoffice-details-page.component'; // @browser\nexport * from './taon-session/taon-session-backoffice/taon-backoffice-details.resolver'; // @browser\nexport * from './taon-session/taon-session-backoffice/taon-backoffice-navigation.service'; // @browser\nexport * from './taon-session/taon-session-backoffice/taon-session-backoffice.api.service'; // @browser\nexport * from './taon-session/taon-session-backoffice/taon-session-backoffice.component'; // @browser\nexport * from './taon-session/taon-session-backoffice/taon-session-backoffice.controller'; \nexport * from './taon-session/taon-session-backoffice/taon-session-backoffice.models'; \nexport * from './taon-session/taon-session-backoffice/taon-session-backoffice.routes'; // @browser\nexport * from './taon-session/taon-session-backoffice/taon-session-details.component'; // @browser\nexport * from './taon-session/taon-session-button/taon-session-button.component'; // @browser\nexport * from './taon-session-user/taon-session-backoffice-users/taon-session-backoffice-users.component'; // @browser\nexport * from './taon-session-user/taon-session-backoffice-users/taon-session-backoffice-users.models'; \nexport * from './taon-session-user/taon-session-backoffice-users/taon-session-backoffice-users.routes'; // @browser\nexport * from './taon-session-user/taon-session-backoffice-users/taon-session-user-details.component'; // @browser\nexport * from './taon-session/taon-profile/taon-profile-picture/taon-profile-picture.component'; // @browser\nexport * from './taon-session/taon-profile/taon-profile-picture/taon-profile-picture.models'; \nexport * from './taon-session/taon-profile/taon-profile-picture/taon-profile-picture.routes'; // @browser\nexport * from './taon-session/taon-session/social-buttons/google-login-register-button.component'; // @browser\nexport * from './taon-session/taon-session/taon-session-profile/taon-session-profile.component'; // @browser\nexport * from './taon-session/taon-session/taon-session-profile/taon-session-profile.models'; ","export * from './migrations';\nexport * from './env';\nexport * from './index._auto-generated_';\n/* */ \nexport default {};\n\nexport const DEFAULT_SESSION_PASSWORD = 'ddd';\n\nexport const DEFAULT_SESSION_EMAIL = 'test@test.com';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["t","i1","signal","catchError","map","i6","i7","i2","i3","i5"],"mappings":"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"}
1
+ {"version":3,"file":"session-browser-prod.mjs","sources":["../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-group/taon-group-role.entity.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-group/taon-group-role.repository.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-role/taon-role-permission.entity.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-role/taon-role-permission.repository.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/migrations/1790328479283_initial.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/migrations/migrations_index._auto-generated_.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/migrations/index.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/env/env.angular-node-app.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/env/env.docs-webapp.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/env/env.electron-app.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/env/env.mobile-app.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/env/env.npm-lib-and-cli-tool.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/env/env.vscode-plugin.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/build-info._auto-generated_.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/my-organization-proj.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-group/taon-group.entity.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-group/taon-group.repository.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-permission/taon-permission.entity.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-permission/taon-permission.repository.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-role/taon-role.entity.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-role/taon-role.repository.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session/taon-session.provider.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session/taon-session.entity.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session/taon-session.kv.repository.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session/taon-session.repository.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session-user/taon-session-user-identity.entity.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session-user/taon-session-user.entity.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session-user/taon-session-user.repository.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-auth-context/taon-auth-context.repository.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session/taon-profile/taon-profile.controller.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session/taon-profile/taon-profile.models.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session/taon-profile/taon-profile.api.service.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session/taon-profile/taon-profile-picture/taon-profile-picture.component.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session/taon-profile/taon-profile-picture/taon-profile-picture.component.html","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session-user/taon-session-user.controller.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session-user/taon-session-user-api.service.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session-user/taon-session-user-group.entity.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session-user/taon-session-user-group.repository.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session-user/taon-session-user-identity.repository.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session-user/taon-session-user-role.entity.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session-user/taon-session-user.middleware.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session-user/taon-session-user.provider.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session-user/taon-session-user.subscriber.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session-user/taon-session-user.abstract.context.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session-user/taon-session-user.constants.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session-user/taon-session-user.models.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session-user/taon-session-user.utils.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session/taon-session.middleware.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session/taon-session.controller.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session/taon-session.api.service.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session/taon-session.config.service.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session/taon-session.models.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session/taon-session.state.service.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session/taon-session.validators.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session/taon-session/social-buttons/google-login-register-button.component.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session/taon-session/social-buttons/google-login-register-button.component.html","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session/taon-session/taon-session-profile/taon-session-profile.component.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session/taon-session/taon-session-profile/taon-session-profile.component.html","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session/taon-session/taon-session.component.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session/taon-session/taon-session.component.html","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session/taon-session-backoffice/taon-backoffice-navigation.service.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session/taon-session-backoffice/taon-session-backoffice.controller.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session/taon-session-backoffice/taon-session-backoffice.api.service.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session/taon-session-backoffice/taon-session-details.component.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session/taon-session-backoffice/taon-session-details.component.html","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session/taon-session-backoffice/taon-session-backoffice.component.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session/taon-session-backoffice/taon-session-backoffice.component.html","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-group/taon-group.controller.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-group/taon-group-api.service.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-role/taon-role.controller.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-role/taon-role-api.service.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-permission/taon-permission.controller.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-permission/taon-permission-api.service.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session/taon-session-backoffice/taon-backoffice-details.resolver.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session/taon-session-backoffice/taon-session-backoffice.routes.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session/taon-session-backoffice/taon-session-backoffice.models.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session/taon-session-button/taon-session-button.component.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session/taon-session-button/taon-session-button.component.html","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-auth-context/taon-auth-context.entity.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-auth-context/taon-auth-context.abstract.context.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-group/taon-group.middleware.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-group/taon-group.provider.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-group/taon-group.abstract.context.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-permission/taon-permission.middleware.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-permission/taon-permission.provider.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-permission/taon-permission.subscriber.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-permission/taon-permission.abstract.context.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-role/taon-role.provider.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-role/taon-role.abstract.context.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session/taon-profile/taon-profile.entity.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session/taon-profile/taon-profile.provider.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session/taon-profile/taon-profile.abstract.context.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session/taon-session.abstract.context.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session/taon-session.utils.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/start-cli.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-audit-events/taon-audit-events.entity.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-audit-events/taon-audit-events.repository.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-audit-events/taon-audit-events.controller.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-audit-events/taon-audit-events-api.service.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-audit-events/taon-audit-events.provider.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-audit-events/taon-audit-events.middleware.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-audit-events/taon-audit-events.subscriber.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-audit-events/taon-audit-events.abstract.context.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-audit-events/taon-audit-events.constants.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-audit-events/taon-audit-events.models.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-audit-events/taon-audit-events.utils.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-authorization-backoffice/taon-authorization-backoffice.component.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-authorization-backoffice/taon-authorization-backoffice.component.html","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-authorization-backoffice/taon-authorization-backoffice.models.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-authorization-backoffice/taon-authorization-backoffice.routes.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-group/taon-group.constants.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-notification/taon-notification.entity.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-notification/taon-notification.repository.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-notification/taon-notification.controller.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-notification/taon-notification-api.service.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-notification/taon-notification-recipient.entity.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-notification/taon-notification.middleware.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-notification/taon-notification.provider.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-notification/taon-notification.subscriber.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-notification/taon-notification.abstract.context.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-notification/taon-notification.constants.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-notification/taon-notification.models.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-notification/taon-notification.utils.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-permission/taon-permission.constants.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-permission/taon-permission.models.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-permission/taon-permission.utils.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-role/taon-role.constants.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-role/taon-role.models.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-role/taon-role-chooser/taon-role-chooser.component.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-role/taon-role-chooser/taon-role-chooser.component.html","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-group/taon-group-backoffice/taon-group-details.component.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-group/taon-group-backoffice/taon-group-details.component.html","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-group/taon-group-backoffice/taon-group-backoffice.component.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-group/taon-group-backoffice/taon-group-backoffice.component.html","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-group/taon-group-backoffice/taon-group-backoffice.models.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-group/taon-group-backoffice/taon-group-backoffice.routes.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-group/taon-group-chooser/taon-group-chooser.component.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-group/taon-group-chooser/taon-group-chooser.component.html","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-permission/taon-permission-view-edit/taon-permission-view-edit.component.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-permission/taon-permission-view-edit/taon-permission-view-edit.component.html","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-permission/taon-permission-backoffice/taon-permission-details.component.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-permission/taon-permission-backoffice/taon-permission-backoffice.component.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-permission/taon-permission-backoffice/taon-permission-backoffice.component.html","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-permission/taon-permission-backoffice/taon-permission-backoffice.models.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-permission/taon-permission-backoffice/taon-permission-backoffice.routes.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-permission/taon-permission-chooser/taon-permission-chooser.component.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-permission/taon-permission-chooser/taon-permission-chooser.component.html","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-role/taon-role-backoffice/taon-role-details.component.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-role/taon-role-backoffice/taon-role-details.component.html","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-role/taon-role-backoffice/taon-role-backoffice.component.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-role/taon-role-backoffice/taon-role-backoffice.component.html","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-role/taon-role-backoffice/taon-role-backoffice.models.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-role/taon-role-backoffice/taon-role-backoffice.routes.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session/taon-profile/taon-profile.config.service.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session/taon-profile/taon-profile.constants.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session/taon-profile/taon-profile.kv.repository.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session-user/taon-session-backoffice-users/taon-session-user-details.component.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session-user/taon-session-backoffice-users/taon-session-user-details.component.html","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session/taon-session-backoffice/taon-backoffice-details-page.component.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session-user/taon-session-backoffice-users/taon-session-backoffice-users.component.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session-user/taon-session-backoffice-users/taon-session-backoffice-users.component.html","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session-user/taon-session-backoffice-users/taon-session-backoffice-users.models.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session-user/taon-session-backoffice-users/taon-session-backoffice-users.routes.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session/taon-profile/taon-profile-picture/taon-profile-picture.models.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session/taon-profile/taon-profile-picture/taon-profile-picture.routes.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/taon-session/taon-session/taon-session-profile/taon-session-profile.models.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/index._auto-generated_.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/lib/index.ts","../../../tmp-libs-for-dist-prod/session/projects/session/src/session-browser-prod.ts"],"sourcesContent":["//#region imports\nimport { Column, DateTimeColumn, JoinColumn, ManyToOne, StringColumn, TaonBaseAbstractEntity, TaonEntity, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n\nimport { TaonGroupEntity } from '../taon-group/taon-group.entity';\nimport { TaonRoleEntity } from '../taon-role/taon-role.entity';\n\n//#endregion\n\n@TaonEntity({\n className: 'TaonGroupRoleEntity',\n createTable: true,\n})\nexport class TaonGroupRoleEntity extends TaonBaseAbstractEntity<TaonGroupRoleEntity> {\n/* */\n/* */\n \n groupId!: number;\n\n/* */\n/* */\n \n roleId!: number;\n\n/* */\n/* */\n/* */\n/* */\n \n\n/* */\n/* */\n \n group!: TaonGroupEntity;\n\n/* */\n/* */\n/* */\n/* */\n \n\n/* */\n/* */\n \n role!: TaonRoleEntity;\n}","//#region imports\nimport { TaonBaseRepository, TaonRepository } from 'taon/browser-prod';\nimport { Raw } from 'taon-typeorm/browser-prod';\n\nimport { TaonRoleEntity } from '../taon-role/taon-role.entity';\n\nimport { TaonGroupRoleEntity } from './taon-group-role.entity';\n//#endregion\n\n@TaonRepository({\n className: 'TaonGroupRoleRepository',\n})\nexport class TaonGroupRoleRepository extends TaonBaseRepository<TaonGroupRoleEntity> {\n entityClassResolveFn: () => typeof TaonGroupRoleEntity = () =>\n TaonGroupRoleEntity;\n\n /**\n * TODO remove this demo example method\n */\n //#region API / count entites with even id\n async countEntitesWithEvenId(): Promise<number> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region API / get roles for group id\n async getRolesForGroupId(groupId: number): Promise<TaonRoleEntity[]> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region API / assign role to group\n async assignRoleToGroup(\n groupId: number,\n roleId: number,\n ): Promise<TaonGroupRoleEntity> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region API / unassign role from group\n async unassignRoleFromGroup(groupId: number, roleId: number): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n}\n","//#region imports\nimport { TaonRoleEntity } from '../taon-role/taon-role.entity';\nimport { TaonPermissionEntity } from '../taon-permission/taon-permission.entity';\nimport { Column, DateTimeColumn, JoinColumn, ManyToOne, StringColumn, TaonBaseAbstractEntity, TaonEntity, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n\n//#endregion\n\n@TaonEntity({\n className: 'TaonRolePermissionEntity',\n createTable: true,\n})\nexport class TaonRolePermissionEntity extends TaonBaseAbstractEntity<TaonRolePermissionEntity> {\n/* */\n/* */\n \n roleId!: number;\n\n/* */\n/* */\n \n permissionId!: number;\n\n/* */\n/* */\n/* */\n/* */\n \n\n/* */\n/* */\n \n role!: TaonRoleEntity;\n\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n\n/* */\n/* */\n \n permission!: TaonPermissionEntity;\n}","//#region imports\nimport { TaonBaseRepository, TaonRepository } from 'taon/browser-prod';\nimport { Raw } from 'taon-typeorm/browser-prod';\n\nimport { TaonPermissionEntity } from '../taon-permission/taon-permission.entity';\n\nimport { TaonRolePermissionEntity } from './taon-role-permission.entity';\n//#endregion\n\n@TaonRepository({\n className: 'TaonRolePermissionRepository',\n})\nexport class TaonRolePermissionRepository extends TaonBaseRepository<TaonRolePermissionEntity> {\n entityClassResolveFn: () => typeof TaonRolePermissionEntity = () => TaonRolePermissionEntity;\n\n /**\n * TODO remove this demo example method\n */\n async countEntitesWithEvenId(): Promise<number> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async getPermissionsForRoleId(\n roleId: number,\n ): Promise<TaonPermissionEntity[]> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async assignPermissionToRole(\n roleId: number,\n permissionId: number,\n ): Promise<TaonRolePermissionEntity> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async unassignPermissionFromRole(\n roleId: number,\n permissionId: number,\n ): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n}\n","import { TaonGroupEntity, TaonGroupRepository } from '../index';\nimport {\n TaonPermissionEntity,\n TaonPermissionRepository,\n} from '../index';\nimport { TaonRoleRepository } from '../index';\nimport { TaonBaseMigration, TaonMigration, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\nimport { QueryRunner } from 'taon-typeorm/browser-prod';\n\nimport { TaonGroupRoleRepository } from '../taon-group/taon-group-role.repository';\nimport { TaonRolePermissionRepository } from '../taon-role/taon-role-permission.repository';\nimport { TaonRoleEntity } from '../taon-role/taon-role.entity';\n\n//#region Migration class for context \"SessionContext\"\n@TaonMigration({\n className: 'SessionContext_1790328479283_initial',\n})\nexport class SessionContext_1790328479283_initial extends TaonBaseMigration {\n groupRepo = this.injectCustomRepo(TaonGroupRepository);\n\n roleRepo = this.injectCustomRepo(TaonRoleRepository);\n\n permissionRepo = this.injectCustomRepo(TaonPermissionRepository);\n\n groupRoleRepo = this.injectCustomRepo(TaonGroupRoleRepository);\n\n rolePermissionRepo = this.injectCustomRepo(TaonRolePermissionRepository);\n\n //#region up\n async up(queryRunner: QueryRunner): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region helpers\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n //#endregion\n\n //#region down\n async down(queryRunner: QueryRunner): Promise<void> {\n // I'd normally remove by stable `code`,\n // NOT clearDatabase().\n }\n //#endregion\n}\n//#endregion","// THIS FILE IS GENERATED - DO NOT MODIFY\nimport { SessionContext_1790328479283_initial } from './1790328479283_initial';\n// THIS FILE IS GENERATED - DO NOT MODIFY\nexport const MIGRATIONS_CLASSES_FOR_SessionContext = {\n /* 25-09-2026 11:27:59 */ SessionContext_1790328479283_initial,\n};\n// THIS FILE IS GENERATED - DO NOT MODIFY\n","//@ts-nocheck\nexport * from './migrations_index._auto-generated_';\n","// THIS FILE IS GENERATED - DO NOT MODIFY\nimport { decodeEnv } from 'tnp-core/browser-prod';\n// config.superUsers\nexport const ENV_ANGULAR_NODE_APP_CONFIG_SUPER_USERS = (): Promise<string> => decodeEnv(\"dariusz@taon.dev\");\n// config.googleSecret\nexport const ENV_ANGULAR_NODE_APP_CONFIG_GOOGLE_SECRET = (): Promise<string> => decodeEnv(\"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\");\n// config.googleClientId\nexport const ENV_ANGULAR_NODE_APP_CONFIG_GOOGLE_CLIENT_ID = '289576612173-2mh31b67pmq2qdes5jedno9tr1m542es.apps.googleusercontent.com';\n// loading.preAngularBootstrap.background\nexport const ENV_ANGULAR_NODE_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_BACKGROUND = '#fdebed';\n// loading.preAngularBootstrap.loader.name\nexport const ENV_ANGULAR_NODE_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER_NAME = 'lds-default';\n// website.domain\nexport const ENV_ANGULAR_NODE_APP_WEBSITE_DOMAIN = 'session.example.domain.com';\n// website.title\nexport const ENV_ANGULAR_NODE_APP_WEBSITE_TITLE = 'Session';\n// website.useDomain\nexport const ENV_ANGULAR_NODE_APP_WEBSITE_USE_DOMAIN = true;\n// release.targetArtifact\nexport const ENV_ANGULAR_NODE_APP_RELEASE_TARGET_ARTIFACT = 'angular-node-app';\n// release.envName\nexport const ENV_ANGULAR_NODE_APP_RELEASE_ENV_NAME = '__';\n// finishCallback\nexport const ENV_ANGULAR_NODE_APP_FINISH_CALLBACK = (): Promise<string> => decodeEnv({ });\n// container.only\nexport const ENV_ANGULAR_NODE_APP_CONTAINER_ONLY = undefined;\n// container.end\nexport const ENV_ANGULAR_NODE_APP_CONTAINER_END = undefined;\n// container.start\nexport const ENV_ANGULAR_NODE_APP_CONTAINER_START = undefined;\n// container.skipReleased\nexport const ENV_ANGULAR_NODE_APP_CONTAINER_SKIP_RELEASED = undefined;\n// container.skip\nexport const ENV_ANGULAR_NODE_APP_CONTAINER_SKIP = undefined;\n// init.branding\nexport const ENV_ANGULAR_NODE_APP_INIT_BRANDING = undefined;\n// init.struct\nexport const ENV_ANGULAR_NODE_APP_INIT_STRUCT = undefined;\n// build.pwa.disableServiceWorker\nexport const ENV_ANGULAR_NODE_APP_BUILD_PWA_DISABLE_SERVICE_WORKER = undefined;\n// build.pwa.name\nexport const ENV_ANGULAR_NODE_APP_BUILD_PWA_NAME = undefined;\n// build.pwa.short_name\nexport const ENV_ANGULAR_NODE_APP_BUILD_PWA_SHORT_NAME = undefined;\n// build.pwa.start_url\nexport const ENV_ANGULAR_NODE_APP_BUILD_PWA_START_URL = undefined;\n// build.electron.showDevTools\nexport const ENV_ANGULAR_NODE_APP_BUILD_ELECTRON_SHOW_DEV_TOOLS = undefined;\n// build.ssr\nexport const ENV_ANGULAR_NODE_APP_BUILD_SSR = undefined;\n// build.websql\nexport const ENV_ANGULAR_NODE_APP_BUILD_WEBSQL = undefined;\n// build.prod\nexport const ENV_ANGULAR_NODE_APP_BUILD_PROD = undefined;\n// build.overrideOutputPath\nexport const ENV_ANGULAR_NODE_APP_BUILD_OVERRIDE_OUTPUT_PATH = undefined;\n// build.baseHref\nexport const ENV_ANGULAR_NODE_APP_BUILD_BASE_HREF = undefined;\n// build.watch\nexport const ENV_ANGULAR_NODE_APP_BUILD_WATCH = undefined;\n// build.genOnlyClientCode\nexport const ENV_ANGULAR_NODE_APP_BUILD_GEN_ONLY_CLIENT_CODE = undefined;\n// loading.preAngularBootstrap.loader\nexport const ENV_ANGULAR_NODE_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER = undefined;\n// release.cli.minify\nexport const ENV_ANGULAR_NODE_APP_RELEASE_CLI_MINIFY = undefined;\n// release.cli.includeNodeModules\nexport const ENV_ANGULAR_NODE_APP_RELEASE_CLI_INCLUDE_NODE_MODULES = undefined;\n// release.cli.uglify\nexport const ENV_ANGULAR_NODE_APP_RELEASE_CLI_UGLIFY = undefined;\n// release.cli.obscure\nexport const ENV_ANGULAR_NODE_APP_RELEASE_CLI_OBSCURE = undefined;\n// release.cli.compress\nexport const ENV_ANGULAR_NODE_APP_RELEASE_CLI_COMPRESS = undefined;\n// release.nodeBackendApp.minify\nexport const ENV_ANGULAR_NODE_APP_RELEASE_NODE_BACKEND_APP_MINIFY = undefined;\n// release.lib.removeDts\nexport const ENV_ANGULAR_NODE_APP_RELEASE_LIB_REMOVE_DTS = undefined;\n// release.lib.obscureFileByFile\nexport const ENV_ANGULAR_NODE_APP_RELEASE_LIB_OBSCURE_FILE_BY_FILE = undefined;\n// release.lib.uglifyFileByFile\nexport const ENV_ANGULAR_NODE_APP_RELEASE_LIB_UGLIFY_FILE_BY_FILE = undefined;\n// release.lib.includeSourceMaps\nexport const ENV_ANGULAR_NODE_APP_RELEASE_LIB_INCLUDE_SOURCE_MAPS = undefined;\n// release.lib.compress\nexport const ENV_ANGULAR_NODE_APP_RELEASE_LIB_COMPRESS = undefined;\n// release.lib.doNotIncludeLibFiles\nexport const ENV_ANGULAR_NODE_APP_RELEASE_LIB_DO_NOT_INCLUDE_LIB_FILES = undefined;\n// release.resolvedNewVersion\nexport const ENV_ANGULAR_NODE_APP_RELEASE_RESOLVED_NEW_VERSION = undefined;\n// release.releaseVersionBumpType\nexport const ENV_ANGULAR_NODE_APP_RELEASE_RELEASE_VERSION_BUMP_TYPE = undefined;\n// release.envNumber\nexport const ENV_ANGULAR_NODE_APP_RELEASE_ENV_NUMBER = undefined;\n// release.installLocally\nexport const ENV_ANGULAR_NODE_APP_RELEASE_INSTALL_LOCALLY = undefined;\n// release.removeReleaseOutputAfterLocalInstall\nexport const ENV_ANGULAR_NODE_APP_RELEASE_REMOVE_RELEASE_OUTPUT_AFTER_LOCAL_INSTALL = undefined;\n// release.releaseType\nexport const ENV_ANGULAR_NODE_APP_RELEASE_RELEASE_TYPE = undefined;\n// release.autoReleaseUsingConfig\nexport const ENV_ANGULAR_NODE_APP_RELEASE_AUTO_RELEASE_USING_CONFIG = undefined;\n// release.autoReleaseTaskName\nexport const ENV_ANGULAR_NODE_APP_RELEASE_AUTO_RELEASE_TASK_NAME = undefined;\n// release.taonInstanceIp\nexport const ENV_ANGULAR_NODE_APP_RELEASE_TAON_INSTANCE_IP = undefined;\n// release.skipNpmPublish\nexport const ENV_ANGULAR_NODE_APP_RELEASE_SKIP_NPM_PUBLISH = undefined;\n// release.skipDeploy\nexport const ENV_ANGULAR_NODE_APP_RELEASE_SKIP_DEPLOY = undefined;\n// release.skipTagGitPush\nexport const ENV_ANGULAR_NODE_APP_RELEASE_SKIP_TAG_GIT_PUSH = undefined;\n// release.skipReleaseQuestion\nexport const ENV_ANGULAR_NODE_APP_RELEASE_SKIP_RELEASE_QUESTION = undefined;\n// release.skipResolvingGitChanges\nexport const ENV_ANGULAR_NODE_APP_RELEASE_SKIP_RESOLVING_GIT_CHANGES = undefined;\n// release.skipCodeCutting\nexport const ENV_ANGULAR_NODE_APP_RELEASE_SKIP_CODE_CUTTING = undefined;\n// release.skipBuildingArtifacts\nexport const ENV_ANGULAR_NODE_APP_RELEASE_SKIP_BUILDING_ARTIFACTS = undefined;\n// release.pushToAllOriginsWhenLocalReleaseBranch\nexport const ENV_ANGULAR_NODE_APP_RELEASE_PUSH_TO_ALL_ORIGINS_WHEN_LOCAL_RELEASE_BRANCH = undefined;\n// release.useLocalReleaseBranch\nexport const ENV_ANGULAR_NODE_APP_RELEASE_USE_LOCAL_RELEASE_BRANCH = undefined;\n// copyToManager.beforeCopyHook\nexport const ENV_ANGULAR_NODE_APP_COPY_TO_MANAGER_BEFORE_COPY_HOOK = undefined;\n// copyToManager.copyToLocations\nexport const ENV_ANGULAR_NODE_APP_COPY_TO_MANAGER_COPY_TO_LOCATIONS = undefined;\n// copyToManager.copyToProjects\nexport const ENV_ANGULAR_NODE_APP_COPY_TO_MANAGER_COPY_TO_PROJECTS = undefined;\n// copyToManager.skip\nexport const ENV_ANGULAR_NODE_APP_COPY_TO_MANAGER_SKIP = undefined;\n// purpose\nexport const ENV_ANGULAR_NODE_APP_PURPOSE = undefined;\n// recursiveAction\nexport const ENV_ANGULAR_NODE_APP_RECURSIVE_ACTION = undefined;\n// isCiProcess\nexport const ENV_ANGULAR_NODE_APP_IS_CI_PROCESS = undefined;\n// docker.additionalContainer\nexport const ENV_ANGULAR_NODE_APP_DOCKER_ADDITIONAL_CONTAINER = undefined;\n// docker.skipStartInOrder\nexport const ENV_ANGULAR_NODE_APP_DOCKER_SKIP_START_IN_ORDER = undefined;\n// docker.skipUsingMysqlDb\nexport const ENV_ANGULAR_NODE_APP_DOCKER_SKIP_USING_MYSQL_DB = undefined;\n// THIS FILE IS GENERATED - DO NOT MODIFY","// THIS FILE IS GENERATED - DO NOT MODIFY\nimport { decodeEnv } from 'tnp-core/browser-prod';\n// config.superUsers\nexport const ENV_DOCS_WEBAPP_CONFIG_SUPER_USERS = (): Promise<string> => decodeEnv(\"dariusz@taon.dev\");\n// config.googleSecret\nexport const ENV_DOCS_WEBAPP_CONFIG_GOOGLE_SECRET = (): Promise<string> => decodeEnv(\"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\");\n// config.googleClientId\nexport const ENV_DOCS_WEBAPP_CONFIG_GOOGLE_CLIENT_ID = '289576612173-2mh31b67pmq2qdes5jedno9tr1m542es.apps.googleusercontent.com';\n// loading.preAngularBootstrap.background\nexport const ENV_DOCS_WEBAPP_LOADING_PRE_ANGULAR_BOOTSTRAP_BACKGROUND = '#fdebed';\n// loading.preAngularBootstrap.loader.name\nexport const ENV_DOCS_WEBAPP_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER_NAME = 'lds-default';\n// website.domain\nexport const ENV_DOCS_WEBAPP_WEBSITE_DOMAIN = 'session.example.domain.com';\n// website.title\nexport const ENV_DOCS_WEBAPP_WEBSITE_TITLE = 'Session';\n// website.useDomain\nexport const ENV_DOCS_WEBAPP_WEBSITE_USE_DOMAIN = true;\n// release.targetArtifact\nexport const ENV_DOCS_WEBAPP_RELEASE_TARGET_ARTIFACT = 'docs-webapp';\n// release.envName\nexport const ENV_DOCS_WEBAPP_RELEASE_ENV_NAME = '__';\n// finishCallback\nexport const ENV_DOCS_WEBAPP_FINISH_CALLBACK = (): Promise<string> => decodeEnv({ });\n// container.only\nexport const ENV_DOCS_WEBAPP_CONTAINER_ONLY = undefined;\n// container.end\nexport const ENV_DOCS_WEBAPP_CONTAINER_END = undefined;\n// container.start\nexport const ENV_DOCS_WEBAPP_CONTAINER_START = undefined;\n// container.skipReleased\nexport const ENV_DOCS_WEBAPP_CONTAINER_SKIP_RELEASED = undefined;\n// container.skip\nexport const ENV_DOCS_WEBAPP_CONTAINER_SKIP = undefined;\n// init.branding\nexport const ENV_DOCS_WEBAPP_INIT_BRANDING = undefined;\n// init.struct\nexport const ENV_DOCS_WEBAPP_INIT_STRUCT = undefined;\n// build.pwa.disableServiceWorker\nexport const ENV_DOCS_WEBAPP_BUILD_PWA_DISABLE_SERVICE_WORKER = undefined;\n// build.pwa.name\nexport const ENV_DOCS_WEBAPP_BUILD_PWA_NAME = undefined;\n// build.pwa.short_name\nexport const ENV_DOCS_WEBAPP_BUILD_PWA_SHORT_NAME = undefined;\n// build.pwa.start_url\nexport const ENV_DOCS_WEBAPP_BUILD_PWA_START_URL = undefined;\n// build.electron.showDevTools\nexport const ENV_DOCS_WEBAPP_BUILD_ELECTRON_SHOW_DEV_TOOLS = undefined;\n// build.ssr\nexport const ENV_DOCS_WEBAPP_BUILD_SSR = undefined;\n// build.websql\nexport const ENV_DOCS_WEBAPP_BUILD_WEBSQL = undefined;\n// build.prod\nexport const ENV_DOCS_WEBAPP_BUILD_PROD = undefined;\n// build.overrideOutputPath\nexport const ENV_DOCS_WEBAPP_BUILD_OVERRIDE_OUTPUT_PATH = undefined;\n// build.baseHref\nexport const ENV_DOCS_WEBAPP_BUILD_BASE_HREF = undefined;\n// build.watch\nexport const ENV_DOCS_WEBAPP_BUILD_WATCH = undefined;\n// build.genOnlyClientCode\nexport const ENV_DOCS_WEBAPP_BUILD_GEN_ONLY_CLIENT_CODE = undefined;\n// loading.preAngularBootstrap.loader\nexport const ENV_DOCS_WEBAPP_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER = undefined;\n// release.cli.minify\nexport const ENV_DOCS_WEBAPP_RELEASE_CLI_MINIFY = undefined;\n// release.cli.includeNodeModules\nexport const ENV_DOCS_WEBAPP_RELEASE_CLI_INCLUDE_NODE_MODULES = undefined;\n// release.cli.uglify\nexport const ENV_DOCS_WEBAPP_RELEASE_CLI_UGLIFY = undefined;\n// release.cli.obscure\nexport const ENV_DOCS_WEBAPP_RELEASE_CLI_OBSCURE = undefined;\n// release.cli.compress\nexport const ENV_DOCS_WEBAPP_RELEASE_CLI_COMPRESS = undefined;\n// release.nodeBackendApp.minify\nexport const ENV_DOCS_WEBAPP_RELEASE_NODE_BACKEND_APP_MINIFY = undefined;\n// release.lib.removeDts\nexport const ENV_DOCS_WEBAPP_RELEASE_LIB_REMOVE_DTS = undefined;\n// release.lib.obscureFileByFile\nexport const ENV_DOCS_WEBAPP_RELEASE_LIB_OBSCURE_FILE_BY_FILE = undefined;\n// release.lib.uglifyFileByFile\nexport const ENV_DOCS_WEBAPP_RELEASE_LIB_UGLIFY_FILE_BY_FILE = undefined;\n// release.lib.includeSourceMaps\nexport const ENV_DOCS_WEBAPP_RELEASE_LIB_INCLUDE_SOURCE_MAPS = undefined;\n// release.lib.compress\nexport const ENV_DOCS_WEBAPP_RELEASE_LIB_COMPRESS = undefined;\n// release.lib.doNotIncludeLibFiles\nexport const ENV_DOCS_WEBAPP_RELEASE_LIB_DO_NOT_INCLUDE_LIB_FILES = undefined;\n// release.resolvedNewVersion\nexport const ENV_DOCS_WEBAPP_RELEASE_RESOLVED_NEW_VERSION = undefined;\n// release.releaseVersionBumpType\nexport const ENV_DOCS_WEBAPP_RELEASE_RELEASE_VERSION_BUMP_TYPE = undefined;\n// release.envNumber\nexport const ENV_DOCS_WEBAPP_RELEASE_ENV_NUMBER = undefined;\n// release.installLocally\nexport const ENV_DOCS_WEBAPP_RELEASE_INSTALL_LOCALLY = undefined;\n// release.removeReleaseOutputAfterLocalInstall\nexport const ENV_DOCS_WEBAPP_RELEASE_REMOVE_RELEASE_OUTPUT_AFTER_LOCAL_INSTALL = undefined;\n// release.releaseType\nexport const ENV_DOCS_WEBAPP_RELEASE_RELEASE_TYPE = undefined;\n// release.autoReleaseUsingConfig\nexport const ENV_DOCS_WEBAPP_RELEASE_AUTO_RELEASE_USING_CONFIG = undefined;\n// release.autoReleaseTaskName\nexport const ENV_DOCS_WEBAPP_RELEASE_AUTO_RELEASE_TASK_NAME = undefined;\n// release.taonInstanceIp\nexport const ENV_DOCS_WEBAPP_RELEASE_TAON_INSTANCE_IP = undefined;\n// release.skipNpmPublish\nexport const ENV_DOCS_WEBAPP_RELEASE_SKIP_NPM_PUBLISH = undefined;\n// release.skipDeploy\nexport const ENV_DOCS_WEBAPP_RELEASE_SKIP_DEPLOY = undefined;\n// release.skipTagGitPush\nexport const ENV_DOCS_WEBAPP_RELEASE_SKIP_TAG_GIT_PUSH = undefined;\n// release.skipReleaseQuestion\nexport const ENV_DOCS_WEBAPP_RELEASE_SKIP_RELEASE_QUESTION = undefined;\n// release.skipResolvingGitChanges\nexport const ENV_DOCS_WEBAPP_RELEASE_SKIP_RESOLVING_GIT_CHANGES = undefined;\n// release.skipCodeCutting\nexport const ENV_DOCS_WEBAPP_RELEASE_SKIP_CODE_CUTTING = undefined;\n// release.skipBuildingArtifacts\nexport const ENV_DOCS_WEBAPP_RELEASE_SKIP_BUILDING_ARTIFACTS = undefined;\n// release.pushToAllOriginsWhenLocalReleaseBranch\nexport const ENV_DOCS_WEBAPP_RELEASE_PUSH_TO_ALL_ORIGINS_WHEN_LOCAL_RELEASE_BRANCH = undefined;\n// release.useLocalReleaseBranch\nexport const ENV_DOCS_WEBAPP_RELEASE_USE_LOCAL_RELEASE_BRANCH = undefined;\n// copyToManager.beforeCopyHook\nexport const ENV_DOCS_WEBAPP_COPY_TO_MANAGER_BEFORE_COPY_HOOK = undefined;\n// copyToManager.copyToLocations\nexport const ENV_DOCS_WEBAPP_COPY_TO_MANAGER_COPY_TO_LOCATIONS = undefined;\n// copyToManager.copyToProjects\nexport const ENV_DOCS_WEBAPP_COPY_TO_MANAGER_COPY_TO_PROJECTS = undefined;\n// copyToManager.skip\nexport const ENV_DOCS_WEBAPP_COPY_TO_MANAGER_SKIP = undefined;\n// purpose\nexport const ENV_DOCS_WEBAPP_PURPOSE = undefined;\n// recursiveAction\nexport const ENV_DOCS_WEBAPP_RECURSIVE_ACTION = undefined;\n// isCiProcess\nexport const ENV_DOCS_WEBAPP_IS_CI_PROCESS = undefined;\n// docker.additionalContainer\nexport const ENV_DOCS_WEBAPP_DOCKER_ADDITIONAL_CONTAINER = undefined;\n// docker.skipStartInOrder\nexport const ENV_DOCS_WEBAPP_DOCKER_SKIP_START_IN_ORDER = undefined;\n// docker.skipUsingMysqlDb\nexport const ENV_DOCS_WEBAPP_DOCKER_SKIP_USING_MYSQL_DB = undefined;\n// THIS FILE IS GENERATED - DO NOT MODIFY","// THIS FILE IS GENERATED - DO NOT MODIFY\nimport { decodeEnv } from 'tnp-core/browser-prod';\n// config.superUsers\nexport const ENV_ELECTRON_APP_CONFIG_SUPER_USERS = (): Promise<string> => decodeEnv(\"dariusz@taon.dev\");\n// config.googleSecret\nexport const ENV_ELECTRON_APP_CONFIG_GOOGLE_SECRET = (): Promise<string> => decodeEnv(\"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\");\n// config.googleClientId\nexport const ENV_ELECTRON_APP_CONFIG_GOOGLE_CLIENT_ID = '289576612173-2mh31b67pmq2qdes5jedno9tr1m542es.apps.googleusercontent.com';\n// build.ssr\nexport const ENV_ELECTRON_APP_BUILD_SSR = false;\n// loading.preAngularBootstrap.background\nexport const ENV_ELECTRON_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_BACKGROUND = '#fdebed';\n// loading.preAngularBootstrap.loader.name\nexport const ENV_ELECTRON_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER_NAME = 'lds-default';\n// website.domain\nexport const ENV_ELECTRON_APP_WEBSITE_DOMAIN = 'session.example.domain.com';\n// website.title\nexport const ENV_ELECTRON_APP_WEBSITE_TITLE = 'Session';\n// website.useDomain\nexport const ENV_ELECTRON_APP_WEBSITE_USE_DOMAIN = true;\n// release.targetArtifact\nexport const ENV_ELECTRON_APP_RELEASE_TARGET_ARTIFACT = 'electron-app';\n// release.envName\nexport const ENV_ELECTRON_APP_RELEASE_ENV_NAME = '__';\n// finishCallback\nexport const ENV_ELECTRON_APP_FINISH_CALLBACK = (): Promise<string> => decodeEnv({ });\n// container.only\nexport const ENV_ELECTRON_APP_CONTAINER_ONLY = undefined;\n// container.end\nexport const ENV_ELECTRON_APP_CONTAINER_END = undefined;\n// container.start\nexport const ENV_ELECTRON_APP_CONTAINER_START = undefined;\n// container.skipReleased\nexport const ENV_ELECTRON_APP_CONTAINER_SKIP_RELEASED = undefined;\n// container.skip\nexport const ENV_ELECTRON_APP_CONTAINER_SKIP = undefined;\n// init.branding\nexport const ENV_ELECTRON_APP_INIT_BRANDING = undefined;\n// init.struct\nexport const ENV_ELECTRON_APP_INIT_STRUCT = undefined;\n// build.pwa.disableServiceWorker\nexport const ENV_ELECTRON_APP_BUILD_PWA_DISABLE_SERVICE_WORKER = undefined;\n// build.pwa.name\nexport const ENV_ELECTRON_APP_BUILD_PWA_NAME = undefined;\n// build.pwa.short_name\nexport const ENV_ELECTRON_APP_BUILD_PWA_SHORT_NAME = undefined;\n// build.pwa.start_url\nexport const ENV_ELECTRON_APP_BUILD_PWA_START_URL = undefined;\n// build.electron.showDevTools\nexport const ENV_ELECTRON_APP_BUILD_ELECTRON_SHOW_DEV_TOOLS = undefined;\n// build.websql\nexport const ENV_ELECTRON_APP_BUILD_WEBSQL = undefined;\n// build.prod\nexport const ENV_ELECTRON_APP_BUILD_PROD = undefined;\n// build.overrideOutputPath\nexport const ENV_ELECTRON_APP_BUILD_OVERRIDE_OUTPUT_PATH = undefined;\n// build.baseHref\nexport const ENV_ELECTRON_APP_BUILD_BASE_HREF = undefined;\n// build.watch\nexport const ENV_ELECTRON_APP_BUILD_WATCH = undefined;\n// build.genOnlyClientCode\nexport const ENV_ELECTRON_APP_BUILD_GEN_ONLY_CLIENT_CODE = undefined;\n// loading.preAngularBootstrap.loader\nexport const ENV_ELECTRON_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER = undefined;\n// release.cli.minify\nexport const ENV_ELECTRON_APP_RELEASE_CLI_MINIFY = undefined;\n// release.cli.includeNodeModules\nexport const ENV_ELECTRON_APP_RELEASE_CLI_INCLUDE_NODE_MODULES = undefined;\n// release.cli.uglify\nexport const ENV_ELECTRON_APP_RELEASE_CLI_UGLIFY = undefined;\n// release.cli.obscure\nexport const ENV_ELECTRON_APP_RELEASE_CLI_OBSCURE = undefined;\n// release.cli.compress\nexport const ENV_ELECTRON_APP_RELEASE_CLI_COMPRESS = undefined;\n// release.nodeBackendApp.minify\nexport const ENV_ELECTRON_APP_RELEASE_NODE_BACKEND_APP_MINIFY = undefined;\n// release.lib.removeDts\nexport const ENV_ELECTRON_APP_RELEASE_LIB_REMOVE_DTS = undefined;\n// release.lib.obscureFileByFile\nexport const ENV_ELECTRON_APP_RELEASE_LIB_OBSCURE_FILE_BY_FILE = undefined;\n// release.lib.uglifyFileByFile\nexport const ENV_ELECTRON_APP_RELEASE_LIB_UGLIFY_FILE_BY_FILE = undefined;\n// release.lib.includeSourceMaps\nexport const ENV_ELECTRON_APP_RELEASE_LIB_INCLUDE_SOURCE_MAPS = undefined;\n// release.lib.compress\nexport const ENV_ELECTRON_APP_RELEASE_LIB_COMPRESS = undefined;\n// release.lib.doNotIncludeLibFiles\nexport const ENV_ELECTRON_APP_RELEASE_LIB_DO_NOT_INCLUDE_LIB_FILES = undefined;\n// release.resolvedNewVersion\nexport const ENV_ELECTRON_APP_RELEASE_RESOLVED_NEW_VERSION = undefined;\n// release.releaseVersionBumpType\nexport const ENV_ELECTRON_APP_RELEASE_RELEASE_VERSION_BUMP_TYPE = undefined;\n// release.envNumber\nexport const ENV_ELECTRON_APP_RELEASE_ENV_NUMBER = undefined;\n// release.installLocally\nexport const ENV_ELECTRON_APP_RELEASE_INSTALL_LOCALLY = undefined;\n// release.removeReleaseOutputAfterLocalInstall\nexport const ENV_ELECTRON_APP_RELEASE_REMOVE_RELEASE_OUTPUT_AFTER_LOCAL_INSTALL = undefined;\n// release.releaseType\nexport const ENV_ELECTRON_APP_RELEASE_RELEASE_TYPE = undefined;\n// release.autoReleaseUsingConfig\nexport const ENV_ELECTRON_APP_RELEASE_AUTO_RELEASE_USING_CONFIG = undefined;\n// release.autoReleaseTaskName\nexport const ENV_ELECTRON_APP_RELEASE_AUTO_RELEASE_TASK_NAME = undefined;\n// release.taonInstanceIp\nexport const ENV_ELECTRON_APP_RELEASE_TAON_INSTANCE_IP = undefined;\n// release.skipNpmPublish\nexport const ENV_ELECTRON_APP_RELEASE_SKIP_NPM_PUBLISH = undefined;\n// release.skipDeploy\nexport const ENV_ELECTRON_APP_RELEASE_SKIP_DEPLOY = undefined;\n// release.skipTagGitPush\nexport const ENV_ELECTRON_APP_RELEASE_SKIP_TAG_GIT_PUSH = undefined;\n// release.skipReleaseQuestion\nexport const ENV_ELECTRON_APP_RELEASE_SKIP_RELEASE_QUESTION = undefined;\n// release.skipResolvingGitChanges\nexport const ENV_ELECTRON_APP_RELEASE_SKIP_RESOLVING_GIT_CHANGES = undefined;\n// release.skipCodeCutting\nexport const ENV_ELECTRON_APP_RELEASE_SKIP_CODE_CUTTING = undefined;\n// release.skipBuildingArtifacts\nexport const ENV_ELECTRON_APP_RELEASE_SKIP_BUILDING_ARTIFACTS = undefined;\n// release.pushToAllOriginsWhenLocalReleaseBranch\nexport const ENV_ELECTRON_APP_RELEASE_PUSH_TO_ALL_ORIGINS_WHEN_LOCAL_RELEASE_BRANCH = undefined;\n// release.useLocalReleaseBranch\nexport const ENV_ELECTRON_APP_RELEASE_USE_LOCAL_RELEASE_BRANCH = undefined;\n// copyToManager.beforeCopyHook\nexport const ENV_ELECTRON_APP_COPY_TO_MANAGER_BEFORE_COPY_HOOK = undefined;\n// copyToManager.copyToLocations\nexport const ENV_ELECTRON_APP_COPY_TO_MANAGER_COPY_TO_LOCATIONS = undefined;\n// copyToManager.copyToProjects\nexport const ENV_ELECTRON_APP_COPY_TO_MANAGER_COPY_TO_PROJECTS = undefined;\n// copyToManager.skip\nexport const ENV_ELECTRON_APP_COPY_TO_MANAGER_SKIP = undefined;\n// purpose\nexport const ENV_ELECTRON_APP_PURPOSE = undefined;\n// recursiveAction\nexport const ENV_ELECTRON_APP_RECURSIVE_ACTION = undefined;\n// isCiProcess\nexport const ENV_ELECTRON_APP_IS_CI_PROCESS = undefined;\n// docker.additionalContainer\nexport const ENV_ELECTRON_APP_DOCKER_ADDITIONAL_CONTAINER = undefined;\n// docker.skipStartInOrder\nexport const ENV_ELECTRON_APP_DOCKER_SKIP_START_IN_ORDER = undefined;\n// docker.skipUsingMysqlDb\nexport const ENV_ELECTRON_APP_DOCKER_SKIP_USING_MYSQL_DB = undefined;\n// THIS FILE IS GENERATED - DO NOT MODIFY","// THIS FILE IS GENERATED - DO NOT MODIFY\nimport { decodeEnv } from 'tnp-core/browser-prod';\n// config.superUsers\nexport const ENV_MOBILE_APP_CONFIG_SUPER_USERS = (): Promise<string> => decodeEnv(\"dariusz@taon.dev\");\n// config.googleSecret\nexport const ENV_MOBILE_APP_CONFIG_GOOGLE_SECRET = (): Promise<string> => decodeEnv(\"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\");\n// config.googleClientId\nexport const ENV_MOBILE_APP_CONFIG_GOOGLE_CLIENT_ID = '289576612173-2mh31b67pmq2qdes5jedno9tr1m542es.apps.googleusercontent.com';\n// loading.preAngularBootstrap.background\nexport const ENV_MOBILE_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_BACKGROUND = '#fdebed';\n// loading.preAngularBootstrap.loader.name\nexport const ENV_MOBILE_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER_NAME = 'lds-default';\n// website.domain\nexport const ENV_MOBILE_APP_WEBSITE_DOMAIN = 'session.example.domain.com';\n// website.title\nexport const ENV_MOBILE_APP_WEBSITE_TITLE = 'Session';\n// website.useDomain\nexport const ENV_MOBILE_APP_WEBSITE_USE_DOMAIN = true;\n// release.targetArtifact\nexport const ENV_MOBILE_APP_RELEASE_TARGET_ARTIFACT = 'mobile-app';\n// release.envName\nexport const ENV_MOBILE_APP_RELEASE_ENV_NAME = '__';\n// finishCallback\nexport const ENV_MOBILE_APP_FINISH_CALLBACK = (): Promise<string> => decodeEnv({ });\n// container.only\nexport const ENV_MOBILE_APP_CONTAINER_ONLY = undefined;\n// container.end\nexport const ENV_MOBILE_APP_CONTAINER_END = undefined;\n// container.start\nexport const ENV_MOBILE_APP_CONTAINER_START = undefined;\n// container.skipReleased\nexport const ENV_MOBILE_APP_CONTAINER_SKIP_RELEASED = undefined;\n// container.skip\nexport const ENV_MOBILE_APP_CONTAINER_SKIP = undefined;\n// init.branding\nexport const ENV_MOBILE_APP_INIT_BRANDING = undefined;\n// init.struct\nexport const ENV_MOBILE_APP_INIT_STRUCT = undefined;\n// build.pwa.disableServiceWorker\nexport const ENV_MOBILE_APP_BUILD_PWA_DISABLE_SERVICE_WORKER = undefined;\n// build.pwa.name\nexport const ENV_MOBILE_APP_BUILD_PWA_NAME = undefined;\n// build.pwa.short_name\nexport const ENV_MOBILE_APP_BUILD_PWA_SHORT_NAME = undefined;\n// build.pwa.start_url\nexport const ENV_MOBILE_APP_BUILD_PWA_START_URL = undefined;\n// build.electron.showDevTools\nexport const ENV_MOBILE_APP_BUILD_ELECTRON_SHOW_DEV_TOOLS = undefined;\n// build.ssr\nexport const ENV_MOBILE_APP_BUILD_SSR = undefined;\n// build.websql\nexport const ENV_MOBILE_APP_BUILD_WEBSQL = undefined;\n// build.prod\nexport const ENV_MOBILE_APP_BUILD_PROD = undefined;\n// build.overrideOutputPath\nexport const ENV_MOBILE_APP_BUILD_OVERRIDE_OUTPUT_PATH = undefined;\n// build.baseHref\nexport const ENV_MOBILE_APP_BUILD_BASE_HREF = undefined;\n// build.watch\nexport const ENV_MOBILE_APP_BUILD_WATCH = undefined;\n// build.genOnlyClientCode\nexport const ENV_MOBILE_APP_BUILD_GEN_ONLY_CLIENT_CODE = undefined;\n// loading.preAngularBootstrap.loader\nexport const ENV_MOBILE_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER = undefined;\n// release.cli.minify\nexport const ENV_MOBILE_APP_RELEASE_CLI_MINIFY = undefined;\n// release.cli.includeNodeModules\nexport const ENV_MOBILE_APP_RELEASE_CLI_INCLUDE_NODE_MODULES = undefined;\n// release.cli.uglify\nexport const ENV_MOBILE_APP_RELEASE_CLI_UGLIFY = undefined;\n// release.cli.obscure\nexport const ENV_MOBILE_APP_RELEASE_CLI_OBSCURE = undefined;\n// release.cli.compress\nexport const ENV_MOBILE_APP_RELEASE_CLI_COMPRESS = undefined;\n// release.nodeBackendApp.minify\nexport const ENV_MOBILE_APP_RELEASE_NODE_BACKEND_APP_MINIFY = undefined;\n// release.lib.removeDts\nexport const ENV_MOBILE_APP_RELEASE_LIB_REMOVE_DTS = undefined;\n// release.lib.obscureFileByFile\nexport const ENV_MOBILE_APP_RELEASE_LIB_OBSCURE_FILE_BY_FILE = undefined;\n// release.lib.uglifyFileByFile\nexport const ENV_MOBILE_APP_RELEASE_LIB_UGLIFY_FILE_BY_FILE = undefined;\n// release.lib.includeSourceMaps\nexport const ENV_MOBILE_APP_RELEASE_LIB_INCLUDE_SOURCE_MAPS = undefined;\n// release.lib.compress\nexport const ENV_MOBILE_APP_RELEASE_LIB_COMPRESS = undefined;\n// release.lib.doNotIncludeLibFiles\nexport const ENV_MOBILE_APP_RELEASE_LIB_DO_NOT_INCLUDE_LIB_FILES = undefined;\n// release.resolvedNewVersion\nexport const ENV_MOBILE_APP_RELEASE_RESOLVED_NEW_VERSION = undefined;\n// release.releaseVersionBumpType\nexport const ENV_MOBILE_APP_RELEASE_RELEASE_VERSION_BUMP_TYPE = undefined;\n// release.envNumber\nexport const ENV_MOBILE_APP_RELEASE_ENV_NUMBER = undefined;\n// release.installLocally\nexport const ENV_MOBILE_APP_RELEASE_INSTALL_LOCALLY = undefined;\n// release.removeReleaseOutputAfterLocalInstall\nexport const ENV_MOBILE_APP_RELEASE_REMOVE_RELEASE_OUTPUT_AFTER_LOCAL_INSTALL = undefined;\n// release.releaseType\nexport const ENV_MOBILE_APP_RELEASE_RELEASE_TYPE = undefined;\n// release.autoReleaseUsingConfig\nexport const ENV_MOBILE_APP_RELEASE_AUTO_RELEASE_USING_CONFIG = undefined;\n// release.autoReleaseTaskName\nexport const ENV_MOBILE_APP_RELEASE_AUTO_RELEASE_TASK_NAME = undefined;\n// release.taonInstanceIp\nexport const ENV_MOBILE_APP_RELEASE_TAON_INSTANCE_IP = undefined;\n// release.skipNpmPublish\nexport const ENV_MOBILE_APP_RELEASE_SKIP_NPM_PUBLISH = undefined;\n// release.skipDeploy\nexport const ENV_MOBILE_APP_RELEASE_SKIP_DEPLOY = undefined;\n// release.skipTagGitPush\nexport const ENV_MOBILE_APP_RELEASE_SKIP_TAG_GIT_PUSH = undefined;\n// release.skipReleaseQuestion\nexport const ENV_MOBILE_APP_RELEASE_SKIP_RELEASE_QUESTION = undefined;\n// release.skipResolvingGitChanges\nexport const ENV_MOBILE_APP_RELEASE_SKIP_RESOLVING_GIT_CHANGES = undefined;\n// release.skipCodeCutting\nexport const ENV_MOBILE_APP_RELEASE_SKIP_CODE_CUTTING = undefined;\n// release.skipBuildingArtifacts\nexport const ENV_MOBILE_APP_RELEASE_SKIP_BUILDING_ARTIFACTS = undefined;\n// release.pushToAllOriginsWhenLocalReleaseBranch\nexport const ENV_MOBILE_APP_RELEASE_PUSH_TO_ALL_ORIGINS_WHEN_LOCAL_RELEASE_BRANCH = undefined;\n// release.useLocalReleaseBranch\nexport const ENV_MOBILE_APP_RELEASE_USE_LOCAL_RELEASE_BRANCH = undefined;\n// copyToManager.beforeCopyHook\nexport const ENV_MOBILE_APP_COPY_TO_MANAGER_BEFORE_COPY_HOOK = undefined;\n// copyToManager.copyToLocations\nexport const ENV_MOBILE_APP_COPY_TO_MANAGER_COPY_TO_LOCATIONS = undefined;\n// copyToManager.copyToProjects\nexport const ENV_MOBILE_APP_COPY_TO_MANAGER_COPY_TO_PROJECTS = undefined;\n// copyToManager.skip\nexport const ENV_MOBILE_APP_COPY_TO_MANAGER_SKIP = undefined;\n// purpose\nexport const ENV_MOBILE_APP_PURPOSE = undefined;\n// recursiveAction\nexport const ENV_MOBILE_APP_RECURSIVE_ACTION = undefined;\n// isCiProcess\nexport const ENV_MOBILE_APP_IS_CI_PROCESS = undefined;\n// docker.additionalContainer\nexport const ENV_MOBILE_APP_DOCKER_ADDITIONAL_CONTAINER = undefined;\n// docker.skipStartInOrder\nexport const ENV_MOBILE_APP_DOCKER_SKIP_START_IN_ORDER = undefined;\n// docker.skipUsingMysqlDb\nexport const ENV_MOBILE_APP_DOCKER_SKIP_USING_MYSQL_DB = undefined;\n// THIS FILE IS GENERATED - DO NOT MODIFY","// THIS FILE IS GENERATED - DO NOT MODIFY\nimport { decodeEnv } from 'tnp-core/browser-prod';\n// config.superUsers\nexport const ENV_NPM_LIB_AND_CLI_TOOL_CONFIG_SUPER_USERS = (): Promise<string> => decodeEnv(\"dariusz@taon.dev\");\n// config.googleSecret\nexport const ENV_NPM_LIB_AND_CLI_TOOL_CONFIG_GOOGLE_SECRET = (): Promise<string> => decodeEnv(\"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\");\n// config.googleClientId\nexport const ENV_NPM_LIB_AND_CLI_TOOL_CONFIG_GOOGLE_CLIENT_ID = '289576612173-2mh31b67pmq2qdes5jedno9tr1m542es.apps.googleusercontent.com';\n// loading.preAngularBootstrap.background\nexport const ENV_NPM_LIB_AND_CLI_TOOL_LOADING_PRE_ANGULAR_BOOTSTRAP_BACKGROUND = '#fdebed';\n// loading.preAngularBootstrap.loader.name\nexport const ENV_NPM_LIB_AND_CLI_TOOL_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER_NAME = 'lds-default';\n// website.domain\nexport const ENV_NPM_LIB_AND_CLI_TOOL_WEBSITE_DOMAIN = 'session.example.domain.com';\n// website.title\nexport const ENV_NPM_LIB_AND_CLI_TOOL_WEBSITE_TITLE = 'Session';\n// website.useDomain\nexport const ENV_NPM_LIB_AND_CLI_TOOL_WEBSITE_USE_DOMAIN = true;\n// release.targetArtifact\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_TARGET_ARTIFACT = 'npm-lib-and-cli-tool';\n// release.envName\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_ENV_NAME = '__';\n// finishCallback\nexport const ENV_NPM_LIB_AND_CLI_TOOL_FINISH_CALLBACK = (): Promise<string> => decodeEnv({ });\n// container.only\nexport const ENV_NPM_LIB_AND_CLI_TOOL_CONTAINER_ONLY = undefined;\n// container.end\nexport const ENV_NPM_LIB_AND_CLI_TOOL_CONTAINER_END = undefined;\n// container.start\nexport const ENV_NPM_LIB_AND_CLI_TOOL_CONTAINER_START = undefined;\n// container.skipReleased\nexport const ENV_NPM_LIB_AND_CLI_TOOL_CONTAINER_SKIP_RELEASED = undefined;\n// container.skip\nexport const ENV_NPM_LIB_AND_CLI_TOOL_CONTAINER_SKIP = undefined;\n// init.branding\nexport const ENV_NPM_LIB_AND_CLI_TOOL_INIT_BRANDING = undefined;\n// init.struct\nexport const ENV_NPM_LIB_AND_CLI_TOOL_INIT_STRUCT = undefined;\n// build.pwa.disableServiceWorker\nexport const ENV_NPM_LIB_AND_CLI_TOOL_BUILD_PWA_DISABLE_SERVICE_WORKER = undefined;\n// build.pwa.name\nexport const ENV_NPM_LIB_AND_CLI_TOOL_BUILD_PWA_NAME = undefined;\n// build.pwa.short_name\nexport const ENV_NPM_LIB_AND_CLI_TOOL_BUILD_PWA_SHORT_NAME = undefined;\n// build.pwa.start_url\nexport const ENV_NPM_LIB_AND_CLI_TOOL_BUILD_PWA_START_URL = undefined;\n// build.electron.showDevTools\nexport const ENV_NPM_LIB_AND_CLI_TOOL_BUILD_ELECTRON_SHOW_DEV_TOOLS = undefined;\n// build.ssr\nexport const ENV_NPM_LIB_AND_CLI_TOOL_BUILD_SSR = undefined;\n// build.websql\nexport const ENV_NPM_LIB_AND_CLI_TOOL_BUILD_WEBSQL = undefined;\n// build.prod\nexport const ENV_NPM_LIB_AND_CLI_TOOL_BUILD_PROD = undefined;\n// build.overrideOutputPath\nexport const ENV_NPM_LIB_AND_CLI_TOOL_BUILD_OVERRIDE_OUTPUT_PATH = undefined;\n// build.baseHref\nexport const ENV_NPM_LIB_AND_CLI_TOOL_BUILD_BASE_HREF = undefined;\n// build.watch\nexport const ENV_NPM_LIB_AND_CLI_TOOL_BUILD_WATCH = undefined;\n// build.genOnlyClientCode\nexport const ENV_NPM_LIB_AND_CLI_TOOL_BUILD_GEN_ONLY_CLIENT_CODE = undefined;\n// loading.preAngularBootstrap.loader\nexport const ENV_NPM_LIB_AND_CLI_TOOL_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER = undefined;\n// release.cli.minify\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_CLI_MINIFY = undefined;\n// release.cli.includeNodeModules\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_CLI_INCLUDE_NODE_MODULES = undefined;\n// release.cli.uglify\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_CLI_UGLIFY = undefined;\n// release.cli.obscure\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_CLI_OBSCURE = undefined;\n// release.cli.compress\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_CLI_COMPRESS = undefined;\n// release.nodeBackendApp.minify\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_NODE_BACKEND_APP_MINIFY = undefined;\n// release.lib.removeDts\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_LIB_REMOVE_DTS = undefined;\n// release.lib.obscureFileByFile\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_LIB_OBSCURE_FILE_BY_FILE = undefined;\n// release.lib.uglifyFileByFile\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_LIB_UGLIFY_FILE_BY_FILE = undefined;\n// release.lib.includeSourceMaps\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_LIB_INCLUDE_SOURCE_MAPS = undefined;\n// release.lib.compress\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_LIB_COMPRESS = undefined;\n// release.lib.doNotIncludeLibFiles\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_LIB_DO_NOT_INCLUDE_LIB_FILES = undefined;\n// release.resolvedNewVersion\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_RESOLVED_NEW_VERSION = undefined;\n// release.releaseVersionBumpType\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_RELEASE_VERSION_BUMP_TYPE = undefined;\n// release.envNumber\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_ENV_NUMBER = undefined;\n// release.installLocally\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_INSTALL_LOCALLY = undefined;\n// release.removeReleaseOutputAfterLocalInstall\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_REMOVE_RELEASE_OUTPUT_AFTER_LOCAL_INSTALL = undefined;\n// release.releaseType\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_RELEASE_TYPE = undefined;\n// release.autoReleaseUsingConfig\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_AUTO_RELEASE_USING_CONFIG = undefined;\n// release.autoReleaseTaskName\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_AUTO_RELEASE_TASK_NAME = undefined;\n// release.taonInstanceIp\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_TAON_INSTANCE_IP = undefined;\n// release.skipNpmPublish\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_SKIP_NPM_PUBLISH = undefined;\n// release.skipDeploy\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_SKIP_DEPLOY = undefined;\n// release.skipTagGitPush\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_SKIP_TAG_GIT_PUSH = undefined;\n// release.skipReleaseQuestion\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_SKIP_RELEASE_QUESTION = undefined;\n// release.skipResolvingGitChanges\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_SKIP_RESOLVING_GIT_CHANGES = undefined;\n// release.skipCodeCutting\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_SKIP_CODE_CUTTING = undefined;\n// release.skipBuildingArtifacts\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_SKIP_BUILDING_ARTIFACTS = undefined;\n// release.pushToAllOriginsWhenLocalReleaseBranch\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_PUSH_TO_ALL_ORIGINS_WHEN_LOCAL_RELEASE_BRANCH = undefined;\n// release.useLocalReleaseBranch\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_USE_LOCAL_RELEASE_BRANCH = undefined;\n// copyToManager.beforeCopyHook\nexport const ENV_NPM_LIB_AND_CLI_TOOL_COPY_TO_MANAGER_BEFORE_COPY_HOOK = undefined;\n// copyToManager.copyToLocations\nexport const ENV_NPM_LIB_AND_CLI_TOOL_COPY_TO_MANAGER_COPY_TO_LOCATIONS = undefined;\n// copyToManager.copyToProjects\nexport const ENV_NPM_LIB_AND_CLI_TOOL_COPY_TO_MANAGER_COPY_TO_PROJECTS = undefined;\n// copyToManager.skip\nexport const ENV_NPM_LIB_AND_CLI_TOOL_COPY_TO_MANAGER_SKIP = undefined;\n// purpose\nexport const ENV_NPM_LIB_AND_CLI_TOOL_PURPOSE = undefined;\n// recursiveAction\nexport const ENV_NPM_LIB_AND_CLI_TOOL_RECURSIVE_ACTION = undefined;\n// isCiProcess\nexport const ENV_NPM_LIB_AND_CLI_TOOL_IS_CI_PROCESS = undefined;\n// docker.additionalContainer\nexport const ENV_NPM_LIB_AND_CLI_TOOL_DOCKER_ADDITIONAL_CONTAINER = undefined;\n// docker.skipStartInOrder\nexport const ENV_NPM_LIB_AND_CLI_TOOL_DOCKER_SKIP_START_IN_ORDER = undefined;\n// docker.skipUsingMysqlDb\nexport const ENV_NPM_LIB_AND_CLI_TOOL_DOCKER_SKIP_USING_MYSQL_DB = undefined;\n// THIS FILE IS GENERATED - DO NOT MODIFY","// THIS FILE IS GENERATED - DO NOT MODIFY\nimport { decodeEnv } from 'tnp-core/browser-prod';\n// config.superUsers\nexport const ENV_VSCODE_PLUGIN_CONFIG_SUPER_USERS = (): Promise<string> => decodeEnv(\"dariusz@taon.dev\");\n// config.googleSecret\nexport const ENV_VSCODE_PLUGIN_CONFIG_GOOGLE_SECRET = (): Promise<string> => decodeEnv(\"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\");\n// config.googleClientId\nexport const ENV_VSCODE_PLUGIN_CONFIG_GOOGLE_CLIENT_ID = '289576612173-2mh31b67pmq2qdes5jedno9tr1m542es.apps.googleusercontent.com';\n// loading.preAngularBootstrap.background\nexport const ENV_VSCODE_PLUGIN_LOADING_PRE_ANGULAR_BOOTSTRAP_BACKGROUND = '#fdebed';\n// loading.preAngularBootstrap.loader.name\nexport const ENV_VSCODE_PLUGIN_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER_NAME = 'lds-default';\n// website.domain\nexport const ENV_VSCODE_PLUGIN_WEBSITE_DOMAIN = 'session.example.domain.com';\n// website.title\nexport const ENV_VSCODE_PLUGIN_WEBSITE_TITLE = 'Session';\n// website.useDomain\nexport const ENV_VSCODE_PLUGIN_WEBSITE_USE_DOMAIN = true;\n// release.targetArtifact\nexport const ENV_VSCODE_PLUGIN_RELEASE_TARGET_ARTIFACT = 'vscode-plugin';\n// release.envName\nexport const ENV_VSCODE_PLUGIN_RELEASE_ENV_NAME = '__';\n// finishCallback\nexport const ENV_VSCODE_PLUGIN_FINISH_CALLBACK = (): Promise<string> => decodeEnv({ });\n// container.only\nexport const ENV_VSCODE_PLUGIN_CONTAINER_ONLY = undefined;\n// container.end\nexport const ENV_VSCODE_PLUGIN_CONTAINER_END = undefined;\n// container.start\nexport const ENV_VSCODE_PLUGIN_CONTAINER_START = undefined;\n// container.skipReleased\nexport const ENV_VSCODE_PLUGIN_CONTAINER_SKIP_RELEASED = undefined;\n// container.skip\nexport const ENV_VSCODE_PLUGIN_CONTAINER_SKIP = undefined;\n// init.branding\nexport const ENV_VSCODE_PLUGIN_INIT_BRANDING = undefined;\n// init.struct\nexport const ENV_VSCODE_PLUGIN_INIT_STRUCT = undefined;\n// build.pwa.disableServiceWorker\nexport const ENV_VSCODE_PLUGIN_BUILD_PWA_DISABLE_SERVICE_WORKER = undefined;\n// build.pwa.name\nexport const ENV_VSCODE_PLUGIN_BUILD_PWA_NAME = undefined;\n// build.pwa.short_name\nexport const ENV_VSCODE_PLUGIN_BUILD_PWA_SHORT_NAME = undefined;\n// build.pwa.start_url\nexport const ENV_VSCODE_PLUGIN_BUILD_PWA_START_URL = undefined;\n// build.electron.showDevTools\nexport const ENV_VSCODE_PLUGIN_BUILD_ELECTRON_SHOW_DEV_TOOLS = undefined;\n// build.ssr\nexport const ENV_VSCODE_PLUGIN_BUILD_SSR = undefined;\n// build.websql\nexport const ENV_VSCODE_PLUGIN_BUILD_WEBSQL = undefined;\n// build.prod\nexport const ENV_VSCODE_PLUGIN_BUILD_PROD = undefined;\n// build.overrideOutputPath\nexport const ENV_VSCODE_PLUGIN_BUILD_OVERRIDE_OUTPUT_PATH = undefined;\n// build.baseHref\nexport const ENV_VSCODE_PLUGIN_BUILD_BASE_HREF = undefined;\n// build.watch\nexport const ENV_VSCODE_PLUGIN_BUILD_WATCH = undefined;\n// build.genOnlyClientCode\nexport const ENV_VSCODE_PLUGIN_BUILD_GEN_ONLY_CLIENT_CODE = undefined;\n// loading.preAngularBootstrap.loader\nexport const ENV_VSCODE_PLUGIN_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER = undefined;\n// release.cli.minify\nexport const ENV_VSCODE_PLUGIN_RELEASE_CLI_MINIFY = undefined;\n// release.cli.includeNodeModules\nexport const ENV_VSCODE_PLUGIN_RELEASE_CLI_INCLUDE_NODE_MODULES = undefined;\n// release.cli.uglify\nexport const ENV_VSCODE_PLUGIN_RELEASE_CLI_UGLIFY = undefined;\n// release.cli.obscure\nexport const ENV_VSCODE_PLUGIN_RELEASE_CLI_OBSCURE = undefined;\n// release.cli.compress\nexport const ENV_VSCODE_PLUGIN_RELEASE_CLI_COMPRESS = undefined;\n// release.nodeBackendApp.minify\nexport const ENV_VSCODE_PLUGIN_RELEASE_NODE_BACKEND_APP_MINIFY = undefined;\n// release.lib.removeDts\nexport const ENV_VSCODE_PLUGIN_RELEASE_LIB_REMOVE_DTS = undefined;\n// release.lib.obscureFileByFile\nexport const ENV_VSCODE_PLUGIN_RELEASE_LIB_OBSCURE_FILE_BY_FILE = undefined;\n// release.lib.uglifyFileByFile\nexport const ENV_VSCODE_PLUGIN_RELEASE_LIB_UGLIFY_FILE_BY_FILE = undefined;\n// release.lib.includeSourceMaps\nexport const ENV_VSCODE_PLUGIN_RELEASE_LIB_INCLUDE_SOURCE_MAPS = undefined;\n// release.lib.compress\nexport const ENV_VSCODE_PLUGIN_RELEASE_LIB_COMPRESS = undefined;\n// release.lib.doNotIncludeLibFiles\nexport const ENV_VSCODE_PLUGIN_RELEASE_LIB_DO_NOT_INCLUDE_LIB_FILES = undefined;\n// release.resolvedNewVersion\nexport const ENV_VSCODE_PLUGIN_RELEASE_RESOLVED_NEW_VERSION = undefined;\n// release.releaseVersionBumpType\nexport const ENV_VSCODE_PLUGIN_RELEASE_RELEASE_VERSION_BUMP_TYPE = undefined;\n// release.envNumber\nexport const ENV_VSCODE_PLUGIN_RELEASE_ENV_NUMBER = undefined;\n// release.installLocally\nexport const ENV_VSCODE_PLUGIN_RELEASE_INSTALL_LOCALLY = undefined;\n// release.removeReleaseOutputAfterLocalInstall\nexport const ENV_VSCODE_PLUGIN_RELEASE_REMOVE_RELEASE_OUTPUT_AFTER_LOCAL_INSTALL = undefined;\n// release.releaseType\nexport const ENV_VSCODE_PLUGIN_RELEASE_RELEASE_TYPE = undefined;\n// release.autoReleaseUsingConfig\nexport const ENV_VSCODE_PLUGIN_RELEASE_AUTO_RELEASE_USING_CONFIG = undefined;\n// release.autoReleaseTaskName\nexport const ENV_VSCODE_PLUGIN_RELEASE_AUTO_RELEASE_TASK_NAME = undefined;\n// release.taonInstanceIp\nexport const ENV_VSCODE_PLUGIN_RELEASE_TAON_INSTANCE_IP = undefined;\n// release.skipNpmPublish\nexport const ENV_VSCODE_PLUGIN_RELEASE_SKIP_NPM_PUBLISH = undefined;\n// release.skipDeploy\nexport const ENV_VSCODE_PLUGIN_RELEASE_SKIP_DEPLOY = undefined;\n// release.skipTagGitPush\nexport const ENV_VSCODE_PLUGIN_RELEASE_SKIP_TAG_GIT_PUSH = undefined;\n// release.skipReleaseQuestion\nexport const ENV_VSCODE_PLUGIN_RELEASE_SKIP_RELEASE_QUESTION = undefined;\n// release.skipResolvingGitChanges\nexport const ENV_VSCODE_PLUGIN_RELEASE_SKIP_RESOLVING_GIT_CHANGES = undefined;\n// release.skipCodeCutting\nexport const ENV_VSCODE_PLUGIN_RELEASE_SKIP_CODE_CUTTING = undefined;\n// release.skipBuildingArtifacts\nexport const ENV_VSCODE_PLUGIN_RELEASE_SKIP_BUILDING_ARTIFACTS = undefined;\n// release.pushToAllOriginsWhenLocalReleaseBranch\nexport const ENV_VSCODE_PLUGIN_RELEASE_PUSH_TO_ALL_ORIGINS_WHEN_LOCAL_RELEASE_BRANCH = undefined;\n// release.useLocalReleaseBranch\nexport const ENV_VSCODE_PLUGIN_RELEASE_USE_LOCAL_RELEASE_BRANCH = undefined;\n// copyToManager.beforeCopyHook\nexport const ENV_VSCODE_PLUGIN_COPY_TO_MANAGER_BEFORE_COPY_HOOK = undefined;\n// copyToManager.copyToLocations\nexport const ENV_VSCODE_PLUGIN_COPY_TO_MANAGER_COPY_TO_LOCATIONS = undefined;\n// copyToManager.copyToProjects\nexport const ENV_VSCODE_PLUGIN_COPY_TO_MANAGER_COPY_TO_PROJECTS = undefined;\n// copyToManager.skip\nexport const ENV_VSCODE_PLUGIN_COPY_TO_MANAGER_SKIP = undefined;\n// purpose\nexport const ENV_VSCODE_PLUGIN_PURPOSE = undefined;\n// recursiveAction\nexport const ENV_VSCODE_PLUGIN_RECURSIVE_ACTION = undefined;\n// isCiProcess\nexport const ENV_VSCODE_PLUGIN_IS_CI_PROCESS = undefined;\n// docker.additionalContainer\nexport const ENV_VSCODE_PLUGIN_DOCKER_ADDITIONAL_CONTAINER = undefined;\n// docker.skipStartInOrder\nexport const ENV_VSCODE_PLUGIN_DOCKER_SKIP_START_IN_ORDER = undefined;\n// docker.skipUsingMysqlDb\nexport const ENV_VSCODE_PLUGIN_DOCKER_SKIP_USING_MYSQL_DB = undefined;\n// THIS FILE IS GENERATED - DO NOT MODIFY","// THIS FILE IS GENERATED - DO NOT MODIFY\n/**\n * Autogenerated by current cli tool\n */\nexport const BUILD_FRAMEWORK_CLI_NAME = 'tnp';\n/**\n * This value can be change in taon.jsonc (appId)\n */\nexport const APP_ID = 'com.domain.example.session';\n/**\n * Autogenerated by current cli tool\n */\nexport const BUILD_BASE_HREF = '';\n/**\n * This value can be change in taon.jsonc (overrideNpmName)\n */\nexport const PROJECT_NPM_NAME = '@taon-dev/session';\n/**\n * Taon version from you project taon.json\n */\nexport const CURRENT_PACKAGE_TAON_VERSION = 'v21';\n/**\n * Autogenerated by current cli tool. Use *tnp release* to bump version.\n */\nexport const CURRENT_PACKAGE_VERSION = '21.0.241';\n\n//namespace TAON_CLOUDFLARE_WORKERS_URLS\n\n\texport const TAON_CLOUDFLARE_WORKERS_URLS__NS__CwCustomSeoni4B382 = 'https://cw-custom-seoni-4b382.darekf77.workers.dev';\n\n//end of namespace TAON_CLOUDFLARE_WORKERS_URLS\n\n\n// THIS FILE IS GENERATED - DO NOT MODIFY","export function myOrgProj() {\n\n}\n","//#region imports\nimport { Column, CustomColumn, Index, OneToMany, TaonBaseAbstractEntity, TaonEntity, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n\nimport { TaonGroupRoleEntity } from '../taon-group/taon-group-role.entity';\nimport { TaonSessionUserGroupEntity } from '../taon-session-user/taon-session-user-group.entity';\n\nimport { TaonGroupDefaultsValues } from './taon-group.constants';\n//#endregion\n\n@TaonEntity({\n className: 'TaonGroupEntity',\n createTable: true,\n})\nexport class TaonGroupEntity extends TaonBaseAbstractEntity<TaonGroupEntity> {\n/* */\n/* */\n \n\n/* */\n/* */\n \n name!: string;\n\n/* */\n/* */\n \n code!: string;\n\n/* */\n/* */\n \n description?: string;\n\n/* */\n/* */\n \n userGroups!: TaonSessionUserGroupEntity[];\n\n/* */\n/* */\n \n groupRoles!: TaonGroupRoleEntity[];\n}","//#region imports\nimport { TaonBaseRepository, TaonRepository } from 'taon/browser-prod';\n\nimport { TaonGroupEntity } from './taon-group.entity';\n//#endregion\n\n@TaonRepository({\n className: 'TaonGroupRepository',\n})\nexport class TaonGroupRepository extends TaonBaseRepository<TaonGroupEntity> {\n entityClassResolveFn: () => typeof TaonGroupEntity = () => TaonGroupEntity;\n\n //#region API / get groups for user id\n async getGroupsForUserId(\n userId: number | string,\n ): Promise<TaonGroupEntity[]> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n}\n","//#region imports\nimport { TaonRolePermissionEntity } from '../taon-role/taon-role-permission.entity';\nimport { Column, CustomColumn, Index, OneToMany, TaonBaseAbstractEntity, TaonEntity, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n\nimport { TaonPermissionDefaultsValues } from './taon-permission.constants';\n//#endregion\n\n@TaonEntity({\n className: 'TaonPermissionEntity',\n createTable: true,\n})\nexport class TaonPermissionEntity extends TaonBaseAbstractEntity<TaonPermissionEntity> {\n /**\n * Examples:\n *\n * user.read\n * user.write\n * project.deploy\n * billing.invoice.read\n */\n\n/* */\n/* */\n \n\n/* */\n/* */\n \n name!: string;\n\n/* */\n/* */\n \n code!: string;\n\n/* */\n/* */\n \n description?: string;\n\n/* */\n/* */\n \n rolePermissions!: TaonRolePermissionEntity[];\n}","//#region imports\nimport { TaonBaseRepository, TaonRepository } from 'taon/browser-prod';\nimport { Raw } from 'taon-typeorm/browser-prod';\n\nimport { TaonPermissionEntity } from './taon-permission.entity';\n//#endregion\n\n@TaonRepository({\n className: 'TaonPermissionRepository',\n})\nexport class TaonPermissionRepository extends TaonBaseRepository<TaonPermissionEntity> {\n entityClassResolveFn: () => typeof TaonPermissionEntity = () =>\n TaonPermissionEntity;\n\n //#region methods / get permissions for user id\n async getPermissionsForUserId(\n userId: number | string,\n ): Promise<TaonPermissionEntity[]> {\n // TODO\n return [];\n }\n //#endregion\n\n //#region methods / update description\n async updateDescription(\n permissionId: number,\n description: string,\n ): Promise<TaonPermissionEntity> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n}\n","//#region imports\nimport { TaonSessionUserRoleEntity } from '../taon-session-user/taon-session-user-role.entity';\nimport { TaonRolePermissionEntity } from '../taon-role/taon-role-permission.entity';\nimport { TaonGroupRoleEntity } from '../taon-group/taon-group-role.entity';\nimport { Column, CustomColumn, Index, OneToMany, TaonBaseAbstractEntity, TaonEntity, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n\nimport { TaonRoleDefaultsValues } from './taon-role.constants';\n//#endregion\n\n@TaonEntity({\n className: 'TaonRoleEntity',\n createTable: true,\n})\nexport class TaonRoleEntity extends TaonBaseAbstractEntity<TaonRoleEntity> {\n /**\n * Example:\n * admin\n * editor\n * billing-manager\n */\n\n/* */\n/* */\n \n\n/* */\n/* */\n \n name!: string;\n\n/* */\n/* */\n \n code!: string;\n\n/* */\n/* */\n \n description?: string;\n\n/* */\n/* */\n \n userRoles!: TaonSessionUserRoleEntity[];\n\n/* */\n/* */\n \n groupRoles!: TaonGroupRoleEntity[];\n\n/* */\n/* */\n \n rolePermissions!: TaonRolePermissionEntity[];\n}","//#region imports\nimport { TaonBaseRepository, TaonRepository } from 'taon/browser-prod';\nimport { Raw } from 'taon-typeorm/browser-prod';\n\nimport { TaonRoleEntity } from './taon-role.entity';\n//#endregion\n\n@TaonRepository({\n className: 'TaonRoleRepository',\n})\nexport class TaonRoleRepository extends TaonBaseRepository<TaonRoleEntity> {\n entityClassResolveFn: () => typeof TaonRoleEntity = () => TaonRoleEntity;\n\n async getRolesForUserId(userId: number | string): Promise<TaonRoleEntity[]> {\n // TODO\n return [];\n }\n}\n","import { Injectable } from '@angular/core';\nimport { TaonBaseClass, TaonBaseProvider, TaonProvider } from 'taon/browser-prod';\nimport { GlobalStorage, ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith, CoreModels__NS__BaseProjectType, CoreModels__NS__BaseProjectTypeArr, CoreModels__NS__BuildType, CoreModels__NS__BuildTypeArr, CoreModels__NS__buildTypeToWatcherFn, CoreModels__NS__BuildWatcherErrorType, CoreModels__NS__BuildWatcherType, CoreModels__NS__BuildWatcherTypeArr, CoreModels__NS__CfontAlign, CoreModels__NS__CfontStyle, CoreModels__NS__ClassNameStaticProperty, CoreModels__NS__ContentType, CoreModels__NS__ContentTypeKeys, CoreModels__NS__CoreLibCategory, CoreModels__NS__CutableFileExt, CoreModels__NS__DatabaseType, CoreModels__NS__DeepPartial, CoreModels__NS__FileEvent, CoreModels__NS__FileExtension, CoreModels__NS__FirstParamsFrom, CoreModels__NS__FrameworkVersion, CoreModels__NS__GitConnection, CoreModels__NS__GitConnectionArr, CoreModels__NS__GlobalDependencies, CoreModels__NS__hasExitCleaningFunction, CoreModels__NS__HttpCode, CoreModels__NS__HttpMethod, CoreModels__NS__HttpMethodArr, CoreModels__NS__ImageFileExtension, CoreModels__NS__ImageFileExtensionArr, CoreModels__NS__InstalationType, CoreModels__NS__InstalationTypeArr, CoreModels__NS__LibType, CoreModels__NS__localhostDomain, CoreModels__NS__localhostIp127, CoreModels__NS__ManifestIcon, CoreModels__NS__MediaType, CoreModels__NS__MediaTypeAllArr, CoreModels__NS__mimeTypes, CoreModels__NS__NewFactoryType, CoreModels__NS__NpmInstallOptions, CoreModels__NS__NpmPublishOptions, CoreModels__NS__NpmSpecialVersions, CoreModels__NS__OrignalClassKey, CoreModels__NS__OutFolder, CoreModels__NS__Package, CoreModels__NS__ParamType, CoreModels__NS__parentLocation, CoreModels__NS__pathToChildren, CoreModels__NS__Position, CoreModels__NS__PreReleaseVersionTag, CoreModels__NS__PROGRESS_DATA_TYPE, CoreModels__NS__PUSHTYPE, CoreModels__NS__PwaManifest, CoreModels__NS__ReleaseVersionType, CoreModels__NS__ReleaseVersionTypeEnum, CoreModels__NS__RunOptions, CoreModels__NS__Size, CoreModels__NS__SPECIAL_APP_READY_MESSAGE, CoreModels__NS__SPECIAL_WORKER_READY_MESSAGE, CoreModels__NS__tagForTaskName, CoreModels__NS__TaonHttpErrorCustomProp, CoreModels__NS__TsUsage, CoreModels__NS__UIFramework, CoreModels__NS__VSCodeSettings, UtilsOs__NS__commandExistsAsync, UtilsOs__NS__commandExistsSync, UtilsOs__NS__detectEditor, UtilsOs__NS__drawHorizontalLine, UtilsOs__NS__drawVerticalLine, UtilsOs__NS__Editor, UtilsOs__NS__EDITOR_PROCESSES, UtilsOs__NS__EditorArr, UtilsOs__NS__EditorProcess, UtilsOs__NS__getEditorKeybindingPath, UtilsOs__NS__getEditorSettingsJsonPath, UtilsOs__NS__getInotifyWatchCount, UtilsOs__NS__getRealHomeDir, UtilsOs__NS__isBrowser, UtilsOs__NS__isDockerAvailable, UtilsOs__NS__isElectron, UtilsOs__NS__isNode, UtilsOs__NS__isNodeVersionOk, UtilsOs__NS__isPortInUse, UtilsOs__NS__isRunningInBrowser, UtilsOs__NS__isRunningInCliMode, UtilsOs__NS__isRunningInCloudflareWorker, UtilsOs__NS__isRunningInDocker, UtilsOs__NS__isRunningInElectron, UtilsOs__NS__isRunningInLinuxDistro, UtilsOs__NS__isRunningInLinuxGraphicsCapableEnvironment, UtilsOs__NS__isRunningInMochaTest, UtilsOs__NS__isRunningInNode, UtilsOs__NS__isRunningInOsWithGraphicsCapableEnvironment, UtilsOs__NS__isRunningInSSRMode, UtilsOs__NS__isRunningInVscodeExtension, UtilsOs__NS__isRunningInWebSQL, UtilsOs__NS__isRunningInWindows, UtilsOs__NS__isRunningInWindowsCmd, UtilsOs__NS__isRunningInWindowsGitBash, UtilsOs__NS__isRunningInWindowsPowerShell, UtilsOs__NS__isRunningInWsl, UtilsOs__NS__isRunningNodeDebugger, UtilsOs__NS__isSSRMode, UtilsOs__NS__isVscodeExtension, UtilsOs__NS__isWebSQL, UtilsOs__NS__killAllEditor, UtilsOs__NS__openFolderInFileExplorer, UtilsOs__NS__pipxNestedPackageExists, UtilsOs__NS__pipxPackageExists, UtilsOs__NS__pythonModuleExists, UtilsOs__NS__safeExitProgramCleanUp, UtilsOs__NS__sendNotification, UtilsOs__NS__whichOrWherePackageLocated } from 'tnp-core/browser-prod';\n\n//#region config classes\n\n//#region config classes / cookies\nconst isProduction =\n !GlobalStorage.get('TAON_LOCAL_DEV') &&\n (UtilsOs__NS__isRunningInDocker() || UtilsOs__NS__isRunningInCloudflareWorker());\n\nexport class TaonSessionCookiesConfig extends TaonBaseClass {\n declare public ACCESS_TOKEN_SECRET: string;\n\n declare public REFRESH_TOKEN_SECRET: string;\n\n declare public ACCESS_TOKEN_EXPIRES: string;\n\n declare public REFRESH_TOKEN_EXPIRES_SECONDS: number;\n\n declare public accessTokenCookieName: string;\n\n declare public refreshTokenCookieName: string;\n\n declare public sameSite: 'lax' | 'strict' | 'none';\n\n declare public secure: boolean;\n\n declare public httpOnly: boolean;\n\n constructor() {\n super();\n/* */\n/* */\n/* */\n \n this.ACCESS_TOKEN_EXPIRES = '15m';\n this.REFRESH_TOKEN_EXPIRES_SECONDS = 60 * 60 * 24 * 7;\n this.accessTokenCookieName = 'taon_access_token';\n this.refreshTokenCookieName = 'taon_refresh_token';\n this.sameSite = 'lax';\n\n this.secure = isProduction;\n\n this.httpOnly = true;\n }\n}\n//#endregion\n\n//#region config classes / social login config\nexport class TaonSessionSocialLoginConfig extends TaonBaseClass {\n declare public google: {\n enabled?: boolean;\n googleClientId?: string;\n googleSecret?: string;\n };\n\n declare public facebook: {\n enabled?: boolean;\n facebookClientId?: string;\n };\n\n declare public microsoft: {\n enabled?: boolean;\n microsoftClientId?: string;\n };\n\n declare public apple: {\n enabled?: boolean;\n appleClientId?: string;\n };\n\n declare public github: {\n enabled?: boolean;\n githubClientId?: string;\n };\n\n constructor() {\n super();\n this.google = {\n enabled: false,\n };\n this.facebook = {\n enabled: false,\n };\n this.microsoft = {\n enabled: false,\n };\n this.apple = {\n enabled: false,\n };\n }\n\n public get isAnySocialLoginEnabled(): boolean {\n return !!(\n this.google.enabled ||\n this.microsoft.enabled ||\n this.facebook.enabled ||\n this.apple.enabled\n );\n }\n}\n//#endregion\n\n//#region config classes / password requirements\nexport class TaonSessionPasswordRequirementsConfig {\n declare public minLength: number;\n\n declare public maxLength: number;\n\n declare public requireLowercase: boolean;\n\n declare public requireUppercase: boolean;\n\n declare public requireNumber: boolean;\n\n declare public requireSpecialCharacter: boolean;\n\n declare public specialCharacters: string;\n\n constructor() {\n this.minLength = 8;\n this.maxLength = 128;\n\n this.requireLowercase = false;\n this.requireUppercase = false;\n this.requireNumber = false;\n this.requireSpecialCharacter = false;\n\n this.specialCharacters = '!@#$%^&*';\n }\n}\n//#endregion\n\n//#region config classes / registration requirements\nexport class TaonSessionRegistrationConfig {\n /**\n * ⌛ TODO in progress\n */\n declare public enabled: boolean;\n\n /**\n * ⌛ TODO in progress\n */\n declare public requireEmailConfirmation: boolean;\n\n /**\n * ⌛ TODO in progress\n * Registration allowed only when user has\n * invitation code / registration password.\n */\n declare public requireRegistrationPassword: boolean;\n\n /**\n * ⌛ TODO in progress\n */\n declare public allowDuplicateEmail: boolean;\n\n constructor() {\n this.enabled = true;\n this.requireEmailConfirmation = false;\n this.requireRegistrationPassword = true;\n this.allowDuplicateEmail = false;\n }\n}\n//#endregion\n\n//#region config classes / login config\nexport class TaonSessionLoginConfig extends TaonBaseClass {\n declare public diableLoginByEmail: boolean;\n\n declare public defaultEmail?: string;\n\n declare public defaultPassword?: string;\n\n declare public linkToDashboard: string;\n\n declare public displayDashboardButton: boolean;\n\n /**\n * TODO\n * Whether FE may check whether email exists\n * before showing password/register screen.\n */\n // declare public exposeEmailExistence: boolean;\n\n /**\n * TODO\n */\n // declare public rememberMe: boolean;\n\n constructor() {\n super();\n this.diableLoginByEmail = false;\n this.linkToDashboard = '/';\n this.displayDashboardButton = true;\n // this.exposeEmailExistence = true;\n // this.rememberMe = true;\n if (isProduction) {\n delete this.defaultEmail;\n delete this.defaultPassword;\n }\n }\n}\n//#endregion\n\n//#region config classes / check if human config\nexport class TaonSessionCheckIfHumanConfig {\n declare public duringLoginRegisterEmail: boolean;\n\n declare public duringRegistrationPassword: boolean;\n\n declare public duringLoginPassword: boolean;\n\n declare public duringPasswordReset: boolean;\n\n constructor() {\n this.duringLoginRegisterEmail = false;\n this.duringRegistrationPassword = false;\n this.duringLoginPassword = false;\n\n this.duringPasswordReset = false;\n }\n}\n//#endregion\n\n//#region config classes / sessions\nexport class TaonSessionSessionsConfig {\n /**\n * Multiple devices / browsers may stay logged in.\n */\n declare public allowMultipleSessions: boolean;\n\n /**\n * 0 = unlimited\n */\n declare public maxSessionsPerUser: number;\n\n /**\n * Update last activity timestamp.\n */\n declare public trackActivity: boolean;\n\n /**\n * Optional idle timeout.\n * 0 = disabled\n */\n declare public idleTimeoutSeconds: number;\n\n constructor() {\n this.allowMultipleSessions = true;\n this.maxSessionsPerUser = 0;\n this.trackActivity = true;\n this.idleTimeoutSeconds = 0;\n }\n}\n//#endregion\n\n//#region config classes / password recovery config\nexport class TaonSessionPasswordRecoveryConfig {\n declare public enabled: boolean;\n\n declare public tokenExpiresSeconds: number;\n\n declare public invalidateExistingSessionsAfterReset: boolean;\n\n constructor() {\n this.enabled = true;\n this.tokenExpiresSeconds = 60 * 60; // 1h\n this.invalidateExistingSessionsAfterReset = true;\n }\n}\n//#endregion\n\n//#region config classes / email confirmation config\nexport class TaonSessionEmailConfirmationConfig {\n declare public enabled: boolean;\n\n declare public tokenExpiresSeconds: number;\n\n declare public allowResend: boolean;\n\n declare public resendCooldownSeconds: number;\n\n constructor() {\n this.enabled = true;\n this.tokenExpiresSeconds = 60 * 60 * 24; // 24h\n this.allowResend = true;\n this.resendCooldownSeconds = 60;\n }\n}\n//#endregion\n\n//#region config classes / security config\nexport class TaonSessionSecurityConfig {\n /**\n * Logout all sessions after password change.\n */\n declare public invalidateSessionsAfterPasswordChange: boolean;\n\n /**\n * Rotate refresh token after successful refresh.\n */\n declare public rotateRefreshTokens: boolean;\n\n /**\n * Detect reuse of already rotated refresh tokens.\n */\n declare public detectRefreshTokenReuse: boolean;\n\n constructor() {\n this.invalidateSessionsAfterPasswordChange = true;\n this.rotateRefreshTokens = true;\n this.detectRefreshTokenReuse = true;\n }\n}\n//#endregion\n\n//#region config classes / rate limit config\nexport class TaonSessionRateLimitConfig {\n declare public maxAttempts: number;\n\n declare public windowSeconds: number;\n\n constructor(maxAttempts: number, windowSeconds: number) {\n this.maxAttempts = maxAttempts;\n this.windowSeconds = windowSeconds;\n }\n}\n//#endregion\n\n//#region config classes / rate limits config\nexport class TaonSessionRateLimitsConfig {\n declare public loginAttempts: TaonSessionRateLimitConfig;\n\n declare public passwordReset: TaonSessionRateLimitConfig;\n\n declare public emailConfirmationResend: TaonSessionRateLimitConfig;\n\n constructor() {\n this.loginAttempts = new TaonSessionRateLimitConfig(10, 60);\n\n this.passwordReset = new TaonSessionRateLimitConfig(5, 60 * 60);\n\n this.emailConfirmationResend = new TaonSessionRateLimitConfig(5, 60 * 60);\n }\n}\n//#endregion\n\n//#endregion\n\nexport type TaonSessionConfig = Omit<\n CoreModels__NS__DeepPartial<TaonSessionProvider>,\n | 'ctx'\n | '_'\n | 'getOriginalPrototype'\n | 'getOriginalConstructor'\n | '__endpoint_context__'\n>;\n\n@TaonProvider({\n className: 'TaonSessionProvider',\n})\nexport class TaonSessionProvider extends TaonBaseProvider {\n /**\n * Production means here - it runs on real server\n */\n isProduction = isProduction;\n\n superUsersEmails: string[] = [];\n\n /**\n * Resolve social accounts by verified email as well as provider identity.\n */\n linkSocialAccountEmail = false;\n\n cookies = new TaonSessionCookiesConfig();\n\n login = new TaonSessionLoginConfig();\n\n socialLogin = new TaonSessionSocialLoginConfig();\n\n // passwordRequirements = new TaonSessionPasswordRequirementsConfig();\n\n // registration = new TaonSessionRegistrationConfig();\n\n // checkIfHuman = new TaonSessionCheckIfHumanConfig();\n\n // socialLogin = new TaonSessionSocialLoginConfig();\n\n // sessions = new TaonSessionSessionsConfig();\n\n // passwordRecovery = new TaonSessionPasswordRecoveryConfig();\n\n // emailConfirmation = new TaonSessionEmailConfirmationConfig();\n\n // security = new TaonSessionSecurityConfig();\n\n // rateLimits = new TaonSessionRateLimitsConfig();\n\n async _() {\n // TODO @UNCOMMENT disabled login by email when not on localhost\n const originUrl = this.ctx.frontendHostUri;\n const isLocalhost =\n originUrl.hostname === 'localhost' ||\n originUrl.hostname === '127.0.0.1' ||\n originUrl.hostname === '[::1]';\n if (!isLocalhost) {\n this.login.diableLoginByEmail = true;\n }\n }\n\n clone(): TaonSessionConfig {\n return {\n isProduction: this.isProduction,\n linkSocialAccountEmail: this.linkSocialAccountEmail,\n cookies: this.cookies.clone(),\n login: this.login.clone(),\n socialLogin: this.socialLogin.clone(),\n };\n }\n}","//#region imports\nimport { Column, CreateDateColumn, DateTimeColumn, Index, JoinColumn, ManyToOne, StringColumn, TaonBaseAbstractEntity, TaonEntity, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n\nimport { TaonSessionUserEntity } from '../taon-session-user/taon-session-user.entity';\nimport { TaonSessionIdentityProvider } from '../taon-session-user/taon-session-user.models';\n\n//#endregion\n\n@TaonEntity({\n className: 'TaonSessionEntity',\n createTable: true,\n})\nexport class TaonSessionEntity extends TaonBaseAbstractEntity<TaonSessionEntity> {\n/* */\n/* */\n \n userId!: number;\n\n/* */\n/* */\n \n identityId?: number;\n\n/* */\n/* */\n \n authenticationProvider?: TaonSessionIdentityProvider;\n\n/* */\n/* */\n/* */\n/* */\n \n\n/* */\n/* */\n \n user!: TaonSessionUserEntity;\n\n /**\n * Store HASH of session token, not raw token.\n */\n\n/* */\n/* */\n \n\n/* */\n/* */\n \n tokenHash!: string;\n\n/* */\n/* */\n \n userAgent?: string;\n\n/* */\n/* */\n \n ip?: string;\n\n/* */\n/* */\n \n deviceName?: string;\n\n/* */\n/* */\n \n lastActivityAt?: Date;\n\n/* */\n/* */\n \n expiresAt!: Date;\n\n/* */\n/* */\n \n revokedAt?: Date;\n\n/* */\n/* */\n \n revokeReason?: string;\n\n/* */\n/* */\n \n createdAt!: Date;\n}","//#region imports\n\nimport type express from 'express';\nimport { TaonBaseKvRepository, TaonRepository } from 'taon/browser-prod';\nimport { UtilsJwt__NS__decode, UtilsJwt__NS__JwtPayload, UtilsJwt__NS__sign, UtilsJwt__NS__verify } from 'tnp-core/browser-prod';\n\nimport { TaonSessionProvider } from './taon-session.provider';\n\n//#endregion\n\n@TaonRepository({\n className: 'TaonSessionKvRepository',\n})\nexport class TaonSessionKvRepository extends TaonBaseKvRepository<\n Record<\n string,\n {\n userId: number;\n expiresAt: number;\n sessionId?: number;\n }\n >\n> {\n taonSessionProvider = this.injectProvider(TaonSessionProvider);\n\n //#region create access token\n public async createAccessToken(\n userId: number,\n sessionId?: number,\n ): Promise<string> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region create refresh token\n public async createRefreshToken(\n userId: number,\n sessionId?: number,\n ): Promise<string> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region set auth cookies\n public setAuthCookies(\n res: express.Response,\n accessToken: string,\n refreshToken: string,\n ): void {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region clear auth cookies\n public clearAuthCookies(res: express.Response): void {\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region get token from request\n public getTokenFromRequest(req: express.Request): string | null {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n}","//#region imports\nimport { getStatusCode, getStatusText, HttpStatusEnum, TaonBaseRepository, TaonRepository, TaonServerMiddlewareInterceptOptions, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\nimport { Raw } from 'taon-typeorm/browser-prod';\n\nimport { TaonSessionEntity } from './taon-session.entity';\nimport { TaonSessionKvRepository } from './taon-session.kv.repository';\nimport { UtilsJwt__NS__decode, UtilsJwt__NS__JwtPayload, UtilsJwt__NS__sign, UtilsJwt__NS__verify } from 'tnp-core/browser-prod';\nimport { TaonSessionProvider } from './taon-session.provider';\n//#endregion\n\n@TaonRepository({\n className: 'TaonSessionRepository',\n})\nexport class TaonSessionRepository extends TaonBaseRepository<TaonSessionEntity> {\n //#region fields & getters\n entityClassResolveFn: () => typeof TaonSessionEntity = () =>\n TaonSessionEntity;\n\n private readonly taonSessionKvRepository = this.injectKvRepository(\n TaonSessionKvRepository,\n );\n\n private readonly taonSessionProvider =\n this.injectProvider(TaonSessionProvider);\n //#endregion\n\n //#region create session entity\n async createSession(\n partialSessino: Partial<TaonSessionEntity>,\n ): Promise<TaonSessionEntity> {\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n async requireActiveSession(\n sessionId: number,\n userId: number,\n ): Promise<TaonSessionEntity> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async touchSession(\n sessionId: number,\n userId: number,\n refresh = false,\n ): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async revokeSession(sessionId: number, userId: number): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n //#region get session by id\n async getSessionBy(userId: number | string): Promise<TaonSessionEntity> {\n // TODO not only id ?\n // let session = new TaonSessionEntity().clone(partialSessino);\n // session = await this.save(session);\n return null;\n }\n //#endregion\n\n //#region throw if not authroized\n async throwIfNotAuthenticated({\n req,\n res,\n next,\n }: Pick<TaonServerMiddlewareInterceptOptions, 'req' | 'res'> &\n Partial<\n Pick<TaonServerMiddlewareInterceptOptions, 'next'>\n >): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n}","import {\n BooleanColumn,\n Column,\n CreateDateColumn,\n Index,\n JoinColumn,\n ManyToOne,\n TaonBaseAbstractEntity,\n TaonEntity,\n UpdateDateColumn,\n} from 'taon/browser-prod';\n\nimport { TaonSessionUserEntity } from '../taon-session-user/taon-session-user.entity';\n\nimport { TaonSessionIdentityProvider } from './taon-session-user.models';\n\n@TaonEntity({\n className: 'TaonSessionUserIdentityEntity',\n createTable: true,\n})\n/* */\n/* */\n \nexport class TaonSessionUserIdentityEntity extends TaonBaseAbstractEntity<TaonSessionUserIdentityEntity> {\n/* */\n/* */\n \n userId!: number;\n\n/* */\n/* */\n/* */\n/* */\n \n\n/* */\n/* */\n \n user!: TaonSessionUserEntity;\n\n /**\n * PASSWORD / GOOGLE / MICROSOFT / APPLE / FACEBOOK\n */\n/* */\n/* */\n \n provider!: TaonSessionIdentityProvider;\n\n /**\n * PASSWORD:\n * normalized email\n *\n * GOOGLE:\n * Google's stable `sub`, NOT email\n *\n * Other OAuth providers:\n * stable provider-specific account id\n */\n/* */\n/* */\n \n providerUserId!: string;\n\n /**\n * Convenience/contact email reported by this identity.\n *\n * Do NOT use this as the primary OAuth identity key.\n */\n/* */\n/* */\n \n email?: string;\n\n /**\n * Only PASSWORD identities have this.\n *\n * Never store plaintext here.\n */\n/* */\n/* */\n \n passwordHash?: string;\n\n/* */\n/* */\n \n isEmailVerified!: boolean;\n\n/* */\n/* */\n \n createdAt!: Date;\n\n/* */\n/* */\n \n updatedAt!: Date;\n}\n","//#region imports\nimport { BooleanColumn, Column, CreateDateColumn, CustomColumn, Index, OneToMany, String45Column, String500Column, TaonBaseAbstractEntity, TaonEntity, UpdateDateColumn, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n\nimport { TaonSessionEntity } from '../taon-session/taon-session.entity';\nimport { TaonSessionUserGroupEntity } from '../taon-session-user/taon-session-user-group.entity';\nimport { TaonSessionUserIdentityEntity } from '../taon-session-user/taon-session-user-identity.entity';\nimport { TaonSessionUserRoleEntity } from '../taon-session-user/taon-session-user-role.entity';\n\n//#endregion\n\n@TaonEntity<TaonSessionUserEntity>({\n className: 'TaonSessionUserEntity',\n createTable: true,\n defaultModelMapping: () => ({\n '': TaonSessionUserEntity,\n identities: [TaonSessionUserIdentityEntity],\n }),\n})\nexport class TaonSessionUserEntity extends TaonBaseAbstractEntity<TaonSessionUserEntity> {\n/* */\n/* */\n \n\n/* */\n/* */\n \n username?: string;\n\n/* */\n/* */\n \n isActive!: boolean;\n\n/* */\n/* */\n \n createdAt!: Date;\n\n/* */\n/* */\n \n updatedAt!: Date;\n\n/* */\n/* */\n \n sessions!: TaonSessionEntity[];\n\n/* */\n/* */\n \n identities!: TaonSessionUserIdentityEntity[];\n\n/* */\n/* */\n \n userGroups!: TaonSessionUserGroupEntity[];\n\n/* */\n/* */\n \n userRoles!: TaonSessionUserRoleEntity[];\n}","//#region imports\nimport { getStatusCode, HttpStatusEnum, TaonBaseRepository, TaonRepository, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\nimport { QueryFailedError } from 'taon-typeorm/browser-prod';\nimport { Translation } from '@taon-dev/i18n/browser-prod';\n\nimport { TaonSessionUserEntity } from './taon-session-user.entity';\n//#endregion\n\nconst t = Translation.for('src/lib/taon-session-user/taon-session-user.repository.ts', {} as any);\n\n@TaonRepository({\n className: 'TaonSessionUserRepository',\n})\nexport class TaonSessionUserRepository extends TaonBaseRepository<TaonSessionUserEntity> {\n entityClassResolveFn: () => typeof TaonSessionUserEntity = () =>\n TaonSessionUserEntity;\n\n async createUser(): Promise<TaonSessionUserEntity> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n normalizeUsername(username: string): string {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async isUsernameAvailable(username: string, userId: number): Promise<boolean> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async changeUsername(userId: number, username: string): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async getUserById(\n userId: number | string,\n ): Promise<TaonSessionUserEntity | null> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n}","//#region imports\n\nimport { TaonRolePermissionRepository } from '../taon-role/taon-role-permission.repository';\nimport { TaonGroupRoleRepository } from '../taon-group/taon-group-role.repository';\n\nimport { TaonBaseCustomRepository, TaonRepository } from 'taon/browser-prod';\n\nimport { TaonGroupRepository } from '../taon-group/taon-group.repository';\nimport { TaonPermissionRepository } from '../taon-permission/taon-permission.repository';\nimport { TaonRoleRepository } from '../taon-role/taon-role.repository';\nimport { TaonSessionProvider } from '../taon-session/taon-session.provider';\nimport { TaonSessionRepository } from '../taon-session/taon-session.repository';\nimport { TaonSessionUserRepository } from '../taon-session-user/taon-session-user.repository';\n\nimport {\n TaonAuthContextEntity,\n TaonAuthorizationSchema,\n} from './taon-auth-context.entity';\n\n//#endregion\n\n//#region models\n\ntype EnumLike<T extends string> = Record<string, T>;\n\ntype RelationSelection<T extends string> = '*' | T[];\n\ntype GroupAndRolesTree<GROUP extends string, ROLE extends string> = Partial<\n Record<GROUP, RelationSelection<ROLE>>\n>;\n\ntype RolesAndPermissionsTree<\n ROLE extends string,\n PERMISSION extends string,\n> = Partial<Record<ROLE, RelationSelection<PERMISSION>>>;\n\nexport interface PersistAuthorizationTreeOptions<\n GROUP extends string,\n ROLE extends string,\n PERMISSION extends string,\n> {\n enums: {\n groups: EnumLike<GROUP>;\n roles: EnumLike<ROLE>;\n permissions: EnumLike<PERMISSION>;\n };\n\n tree: {\n groupAndRoles?: GroupAndRolesTree<GROUP, ROLE>;\n\n rolesAndPermissions?: RolesAndPermissionsTree<ROLE, PERMISSION>;\n };\n}\n\n//#endregion\n\n@TaonRepository({\n className: 'TaonAuthContextRepository',\n})\nexport class TaonAuthContextRepository<\n AUTH extends TaonAuthorizationSchema,\n> extends TaonBaseCustomRepository {\n //#region fields & getters\n\n private readonly taonSessionUserRepository = this.injectCustomRepo(\n TaonSessionUserRepository,\n );\n\n private readonly taonSessionRepository = this.injectCustomRepo(\n TaonSessionRepository,\n );\n\n private readonly taonGroupRoleRepository = this.injectCustomRepo(\n TaonGroupRoleRepository,\n );\n\n private readonly taonRolePermissionRepository = this.injectCustomRepo(\n TaonRolePermissionRepository,\n );\n\n private readonly taonGroupRepository =\n this.injectCustomRepo(TaonGroupRepository);\n\n private readonly taonPermissionRepository = this.injectCustomRepo(\n TaonPermissionRepository,\n );\n\n private readonly taonSessionProvider =\n this.injectProvider(TaonSessionProvider);\n\n private readonly taonRoleRepository =\n this.injectCustomRepo(TaonRoleRepository);\n\n //#endregion\n\n //#region API / get context\n\n public async getContext(\n userId?: number | string,\n ): Promise<TaonAuthContextEntity<AUTH>> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n //#endregion\n\n //#region API / persist tree\n\n public async clearRolesGroupPermissions(): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n //#region API / persist tree\n public async persistTree(\n options: PersistAuthorizationTreeOptions<\n AUTH['group'],\n AUTH['role'],\n AUTH['permission']\n >,\n ): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#endregion\n\n //#region methods / get or create group\n private async getOrCreateGroup(code: AUTH['group'], name: string) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods / get or create role\n private async getOrCreateRole(code: AUTH['role'], name: string) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods / get or create permission\n private async getOrCreatePermission(code: AUTH['permission'], name: string) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region assign role\n\n private async assignRole(\n group: Awaited<ReturnType<typeof this.getOrCreateGroup>>,\n role: Awaited<ReturnType<typeof this.getOrCreateRole>>,\n ): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n //#endregion\n\n //#region assign permission\n\n private async assignPermission(\n role: Awaited<ReturnType<typeof this.getOrCreateRole>>,\n permission: Awaited<ReturnType<typeof this.getOrCreatePermission>>,\n ): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n //#endregion\n}\n","//#region imports\nimport { Translation } from '@taon-dev/i18n/browser-prod';\nimport { ExpressRequest, ExpressResponse, getStatusCode, HttpStatusEnum, TaonStorageObject, TaonUploadedFile, Models__NS__ClassType, Models__NS__ClassTypeKey, Models__NS__ConnectionOptionsLogs, Models__NS__ContextOptions, Models__NS__DatabaseConfig, Models__NS__DatabaseConfigTypeOrm, Models__NS__DatabasesFolder, Models__NS__DBRecreateMode, Models__NS__DBRecreateModeType, Models__NS__FrameworkMode, Models__NS__Http__NS__AsyncResponse, Models__NS__Http__NS__ClientAction, Models__NS__Http__NS__ContextENDPOINT, Models__NS__Http__NS__ExpressContext, Models__NS__Http__NS__FormlyFromType, Models__NS__Http__NS__MixResponse, Models__NS__Http__NS__PromiseObservableMix, Models__NS__Http__NS__RequestResults, Models__NS__Http__NS__Response, Models__NS__Http__NS__ResponseFuncOpt, Models__NS__Http__NS__SyncResponse, Models__NS__Http__NS__SyncResponseFunc, Models__NS__Http__NS__TaonResponseStream, Models__NS__KVDatabaseConfig, Models__NS__MiddlewareType, Models__NS__StartParams, Models__NS__TaonCtrlBeforeEachRequestParams, Models__NS__TaonCtxCloneParams, Models__NS__TaonInitializeParams, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\nimport { TaonController, TaonBaseStorageController } from 'taon/browser-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n\nimport { TaonAuthContextRepository } from '../../taon-auth-context/taon-auth-context.repository';\nimport { TaonSessionUserRepository } from '../../taon-session-user/taon-session-user.repository';\nimport { TaonSessionRepository } from '../taon-session.repository';\n\nimport { TaonProfileModels__NS__pictureKey, TaonProfileModels__NS__PictureQuery, TaonProfileModels__NS__PROFILE_PICTURE_ACCEPT, TaonProfileModels__NS__PROFILE_PICTURE_FILE_NAME } from './taon-profile.models';\n//#endregion\n\nconst t = Translation.for('src/lib/taon-session/taon-profile/taon-profile.controller.ts', {} as any);\n\n@TaonController<TaonProfileController>({\n className: 'TaonProfileController',\n allowedMethods: ['exists', 'download', 'delete', 'uploadFormDataToServer'],\n})\nexport class TaonProfileController extends TaonBaseStorageController<\n TaonProfileModels__NS__PictureQuery\n> {\n //#region storage hooks\n\n private readonly taonSessionRepository = this.injectCustomRepo(TaonSessionRepository);\n\n private readonly authRepository = this.injectCustomRepo(\n TaonAuthContextRepository,\n );\n\n private readonly userRepository = this.injectCustomRepo(\n TaonSessionUserRepository,\n );\n\n async beforeEachRequest({\n req,\n res,\n methodConfig,\n classConfig,\n }: Models__NS__TaonCtrlBeforeEachRequestParams<TaonProfileController>): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n protected async handleUploadFiles(\n bodyFormDataFiles: TaonUploadedFile[],\n queryParams?: TaonProfileModels__NS__PictureQuery,\n req?: ExpressRequest<any>,\n res?: ExpressResponse<any>,\n ): Promise<TaonStorageObject[]> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async afterFileUploadHook(\n fileObject?: TaonStorageObject,\n queryParams?: TaonProfileModels__NS__PictureQuery,\n ): Promise<void> {\n // Authentication / authorization / profile persistence can be added here.\n }\n\n buildStorageDownloadUrl(options: {\n req: any;\n key: string;\n private: boolean;\n token?: string;\n }): string {\n throw new Error('TODO');\n }\n\n async createStorageDownloadToken(options: {\n key: string;\n expiresAt: number;\n }): Promise<string> {\n throw new Error('TODO');\n }\n\n //#endregion\n}","//namespace TaonProfileModels\n\n export const TaonProfileModels__NS__PROFILE_PICTURE_FILE_NAME = 'profile-picture';\n\n export interface TaonProfileModels__NS__PictureQuery {\n userId?: number;\n }\n\n export function TaonProfileModels__NS__pictureKey(userId?: number | string): string {\n return userId === undefined\n ? TaonProfileModels__NS__PROFILE_PICTURE_FILE_NAME\n : `${userId}__${TaonProfileModels__NS__PROFILE_PICTURE_FILE_NAME}`;\n }\n\n export const TaonProfileModels__NS__PROFILE_PICTURE_ACCEPT =\n 'image/png,image/jpeg,image/webp,image/gif';\n\n//end of namespace TaonProfileModels\n","//#region imports\nimport { Injectable } from '@angular/core';\nimport { TaonBaseAngularService } from 'taon/browser-prod';\n\nimport { TaonProfileController } from './taon-profile.controller';\nimport { TaonProfileModels__NS__pictureKey, TaonProfileModels__NS__PictureQuery, TaonProfileModels__NS__PROFILE_PICTURE_ACCEPT, TaonProfileModels__NS__PROFILE_PICTURE_FILE_NAME } from './taon-profile.models';\n//#endregion\n\n@Injectable()\nexport class TaonProfileApiService extends TaonBaseAngularService {\n //#region controllers\n\n public readonly taonProfileController = this.injectController(\n TaonProfileController,\n );\n\n //#endregion\n\n //#region methods\n\n async hasProfilePicture(userId?: number | string): Promise<boolean> {\n const response = await this.taonProfileController\n .exists(TaonProfileModels__NS__pictureKey(userId))\n .request();\n\n return response.body.json;\n }\n\n async getProfilePictureBlob(\n userId?: number | string,\n ): Promise<Blob | undefined> {\n if (!(await this.hasProfilePicture(userId))) {\n return undefined;\n }\n\n const response = await this.taonProfileController\n .download(TaonProfileModels__NS__pictureKey(userId))\n .request();\n\n const blobFromPicture = await response.body.native.blob();\n // console.log({ blobFromPicture });\n return blobFromPicture;\n }\n\n async uploadProfilePicture(\n file: File,\n userId?: number | string,\n ): Promise<void> {\n const renamedFile = new File(\n [file],\n TaonProfileModels__NS__PROFILE_PICTURE_FILE_NAME,\n {\n type: file.type,\n lastModified: file.lastModified,\n },\n );\n\n const formData = new FormData();\n\n formData.append('file', renamedFile);\n\n await this.taonProfileController\n .uploadFormDataToServer(\n formData,\n userId === undefined ? undefined : { userId: Number(userId) },\n )\n .request();\n }\n\n async deleteProfilePicture(userId?: number | string): Promise<void> {\n await this.taonProfileController\n .delete(TaonProfileModels__NS__pictureKey(userId))\n .request();\n }\n\n //#endregion\n}","//#region imports\nimport {\n ChangeDetectionStrategy,\n Component,\n Input,\n OnDestroy,\n OnInit,\n OnChanges,\n SimpleChanges,\n inject,\n signal,\n forwardRef,\n} from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { Translation } from '@taon-dev/i18n/browser-prod';\nimport { Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\n\nimport { TaonProfileApiService } from '../taon-profile.api.service';\nimport { TaonProfileModels__NS__pictureKey, TaonProfileModels__NS__PictureQuery, TaonProfileModels__NS__PROFILE_PICTURE_ACCEPT, TaonProfileModels__NS__PROFILE_PICTURE_FILE_NAME } from '../taon-profile.models';\n//#endregion\n\nconst t = Translation.for('src/lib/taon-session/taon-profile/taon-profile-picture/taon-profile-picture.component.ts', {} as any);\n\n@Component({\n selector: 'taon-profile-picture',\n templateUrl: './taon-profile-picture.component.html',\n styleUrls: ['./taon-profile-picture.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [MatIconModule],\n providers: [forwardRef(() => TaonProfileApiService)],\n})\nexport class TaonProfilePictureComponent implements OnDestroy, OnInit, OnChanges {\n //#region inject\n\n @Input() hideButtons: boolean = false;\n\n @Input() userId?: number | string;\n\n @Input() readOnly = false;\n\n public readonly t = t.for(this);\n\n private readonly taonProfileApiService = inject(TaonProfileApiService);\n\n //#endregion\n\n //#region state\n\n readonly pictureUrl = signal<string | undefined>(undefined);\n\n readonly loading = signal(false);\n\n readonly uploading = signal(false);\n\n readonly accept = TaonProfileModels__NS__PROFILE_PICTURE_ACCEPT;\n\n private objectUrl?: string;\n\n private destroyed = false;\n\n private loadVersion = 0;\n\n //#endregion\n\n //#region lifecycle\n\n ngOnInit(): void {\n void this.loadProfilePicture();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.userId && !changes.userId.firstChange) {\n void this.loadProfilePicture();\n }\n }\n\n //#endregion\n\n //#region methods\n\n async loadProfilePicture(): Promise<void> {\n this.loading.set(true);\n const version = ++this.loadVersion;\n this.clearPictureUrl();\n\n try {\n const blob = await this.taonProfileApiService.getProfilePictureBlob(\n this.userId,\n );\n\n if (!this.destroyed && version === this.loadVersion) {\n this.setPictureBlob(blob);\n }\n } finally {\n if (version === this.loadVersion) {\n this.loading.set(false);\n }\n }\n }\n\n async fileSelected(event: Event): Promise<void> {\n if (this.readOnly) {\n throw new Error('Profile picture is read-only');\n }\n const input = event.target as HTMLInputElement;\n\n const file = input.files?.[0];\n\n if (!file) {\n return;\n }\n\n this.uploading.set(true);\n\n try {\n await this.taonProfileApiService.uploadProfilePicture(file, this.userId);\n\n await this.loadProfilePicture();\n } finally {\n this.uploading.set(false);\n\n // Allows selecting the same file again.\n input.value = '';\n }\n }\n\n async removePicture(): Promise<void> {\n if (this.readOnly) {\n throw new Error('Profile picture is read-only');\n }\n this.uploading.set(true);\n const userId = this.userId;\n\n try {\n await this.taonProfileApiService.deleteProfilePicture(userId);\n\n if (!this.destroyed && userId === this.userId) {\n ++this.loadVersion;\n this.loading.set(false);\n this.clearPictureUrl();\n }\n } finally {\n this.uploading.set(false);\n }\n }\n\n private setPictureBlob(blob: Blob | undefined): void {\n this.clearPictureUrl();\n\n if (!blob) {\n return;\n }\n\n this.objectUrl = URL.createObjectURL(blob);\n\n this.pictureUrl.set(this.objectUrl);\n }\n\n private clearPictureUrl(): void {\n if (this.objectUrl) {\n URL.revokeObjectURL(this.objectUrl);\n\n this.objectUrl = undefined;\n }\n\n this.pictureUrl.set(undefined);\n }\n\n //#endregion\n\n //#region destroy\n\n ngOnDestroy(): void {\n this.destroyed = true;\n this.clearPictureUrl();\n }\n\n //#endregion\n}","<div class=\"profile-picture\">\n <label\n class=\"profile-picture__avatar\"\n [class.profile-picture__avatar--disabled]=\"uploading() || readOnly\">\n @if (pictureUrl()) {\n <img\n class=\"profile-picture__image\"\n [src]=\"pictureUrl()\"\n alt=\"Profile picture\" />\n } @else {\n <mat-icon class=\"profile-picture__placeholder\">account_circle</mat-icon>\n <!-- <svg\n class=\"profile-picture__placeholder\"\n viewBox=\"0 0 24 24\"\n aria-hidden=\"true\">\n <path\n d=\"M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4Zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4Z\" />\n </svg> -->\n }\n\n @if (loading() || uploading()) {\n <div class=\"profile-picture__loading\">...</div>\n }\n\n <input\n class=\"profile-picture__input\"\n type=\"file\"\n [accept]=\"accept\"\n [disabled]=\"uploading() || readOnly\"\n (change)=\"fileSelected($event)\" />\n </label>\n\n @if (!hideButtons && !readOnly) {\n <div class=\"profile-picture__actions\">\n <label class=\"profile-picture__button\">\n {{\n pictureUrl()\n ? t.gettext('Change picture')\n : t.gettext('Upload picture')\n }}\n\n <input\n class=\"profile-picture__input\"\n type=\"file\"\n [accept]=\"accept\"\n [disabled]=\"uploading()\"\n (change)=\"fileSelected($event)\" />\n </label>\n\n @if (pictureUrl()) {\n <button\n class=\"profile-picture__button\"\n type=\"button\"\n [disabled]=\"uploading()\"\n (click)=\"removePicture()\">\n {{ t.gettext('Remove') }}\n </button>\n }\n </div>\n }\n</div>\n","//#region imports\nimport { TaonController, TaonBaseCrudController, Query, GET, TaonPaginationQuery, ClassHelpers__NS__asyncHandler, ClassHelpers__NS__ensureClassConfig, ClassHelpers__NS__ensureMethodConfig, ClassHelpers__NS__getClassConfig, ClassHelpers__NS__getClassFnFromObject, ClassHelpers__NS__getControllerConfigs, ClassHelpers__NS__getFullInternalName, ClassHelpers__NS__getMethodsNames, ClassHelpers__NS__getName, ClassHelpers__NS__getOrginalClass, ClassHelpers__NS__getUniqueKey, ClassHelpers__NS__hasParentClassWithName, ClassHelpers__NS__isContextClassObject, ClassHelpers__NS__mapFnError, ClassHelpers__NS__setName, Models__NS__ClassType, Models__NS__ClassTypeKey, Models__NS__ConnectionOptionsLogs, Models__NS__ContextOptions, Models__NS__DatabaseConfig, Models__NS__DatabaseConfigTypeOrm, Models__NS__DatabasesFolder, Models__NS__DBRecreateMode, Models__NS__DBRecreateModeType, Models__NS__FrameworkMode, Models__NS__Http__NS__AsyncResponse, Models__NS__Http__NS__ClientAction, Models__NS__Http__NS__ContextENDPOINT, Models__NS__Http__NS__ExpressContext, Models__NS__Http__NS__FormlyFromType, Models__NS__Http__NS__MixResponse, Models__NS__Http__NS__PromiseObservableMix, Models__NS__Http__NS__RequestResults, Models__NS__Http__NS__Response, Models__NS__Http__NS__ResponseFuncOpt, Models__NS__Http__NS__SyncResponse, Models__NS__Http__NS__SyncResponseFunc, Models__NS__Http__NS__TaonResponseStream, Models__NS__KVDatabaseConfig, Models__NS__MiddlewareType, Models__NS__StartParams, Models__NS__TaonCtrlBeforeEachRequestParams, Models__NS__TaonCtxCloneParams, Models__NS__TaonInitializeParams, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\nimport { Entity } from 'taon-typeorm/browser-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n\nimport { TaonSessionRepository } from '../taon-session/taon-session.repository';\n\nimport { TaonSessionUserIdentityEntity } from './taon-session-user-identity.entity';\nimport { TaonSessionUserEntity } from './taon-session-user.entity';\nimport { TaonSessionUserRepository } from './taon-session-user.repository';\n//#endregion\n\n@TaonController<TaonSessionUserController>({\n className: 'TaonSessionUserController',\n allowedMethods: ['paginationQuery', 'getBy'],\n})\nexport class TaonSessionUserController extends TaonBaseCrudController<\n TaonSessionUserEntity,\n {},\n TaonSessionUserController\n> {\n entityClassResolveFn: () => typeof TaonSessionUserEntity = () =>\n TaonSessionUserEntity;\n\n private readonly taonSessionRepository = this.injectCustomRepo(\n TaonSessionRepository,\n );\n\n async beforeEachRequest({\n req,\n res,\n methodConfig,\n classConfig,\n }: Models__NS__TaonCtrlBeforeEachRequestParams<TaonSessionUserController>): Promise<void> {\n if (['paginationQuery', 'getBy'].includes(methodConfig.methodName)) {\n await this.taonSessionRepository.throwIfNotAuthenticated({\n req,\n res,\n });\n }\n }\n\n @GET()\n getBy(\n @Query('id') id: number | string,\n ): Models__NS__Http__NS__Response<TaonSessionUserEntity> {\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n protected paginationQueryMethods(): (keyof TaonSessionUserController)[] {\n return ['customPaginationQuery'] as any;\n }\n\n @GET()\n paginationQuery(\n queryJson?: TaonPaginationQuery<any>,\n ): Models__NS__Http__NS__Response<TaonSessionUserEntity[]> {\n return async (req, res) => {\n queryJson.callQueryMethod = 'customPaginationQuery';\n const data = await super.paginationQuery(queryJson)(req, res);\n return data;\n };\n }\n\n protected async customPaginationQuery(\n query: TaonPaginationQuery<TaonSessionUserController>,\n ): Promise<[TaonSessionUserEntity[], number]> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n}","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { TaonBaseAngularService, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\n\nimport { TaonSessionUserController } from './taon-session-user.controller';\nimport type { TaonSessionUserEntity } from './taon-session-user.entity';\n\n@Injectable()\nexport class TaonSessionUserApiService extends TaonBaseAngularService {\n public taonSessionUserController = this.injectController(\n TaonSessionUserController,\n );\n\n // public get allMyEntities$(): Observable<TaonSessionUser[]> {\n // return this.taonSessionUserController.getAll().request!().observable.pipe(\n // map(res => res.body?.json),\n // );\n // }\n\n // public helloWorld(user): Observable<string> {\n // return this.taonSessionUserController.helloWord(user).request!().observable.pipe(\n // map(res => res.responseText as string),\n // );\n // }\n}","//#region imports\nimport { TaonSessionUserEntity } from '../taon-session-user/taon-session-user.entity';\nimport { TaonGroupEntity } from '../taon-group/taon-group.entity';\nimport { Column, CreateDateColumn, DateTimeColumn, JoinColumn, ManyToOne, StringColumn, TaonBaseAbstractEntity, TaonEntity, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n\n//#endregion\n\n@TaonEntity({\n className: 'TaonSessionUserGroupEntity',\n createTable: true,\n})\nexport class TaonSessionUserGroupEntity extends TaonBaseAbstractEntity<TaonSessionUserGroupEntity> {\n/* */\n/* */\n \n userId!: number;\n\n/* */\n/* */\n \n groupId!: number;\n\n/* */\n/* */\n/* */\n/* */\n \n\n/* */\n/* */\n \n user!: TaonSessionUserEntity;\n\n/* */\n/* */\n/* */\n/* */\n \n\n/* */\n/* */\n \n group!: TaonGroupEntity;\n\n/* */\n/* */\n \n createdAt!: Date;\n}","//#region imports\nimport { TaonBaseRepository, TaonRepository } from 'taon/browser-prod';\n\nimport { TaonSessionUserGroupEntity } from './taon-session-user-group.entity';\n//#endregion\n\n@TaonRepository({\n className: 'TaonSessionUserGroupRepository',\n})\nexport class TaonSessionUserGroupRepository extends TaonBaseRepository<TaonSessionUserGroupEntity> {\n entityClassResolveFn: () => typeof TaonSessionUserGroupEntity = () =>\n TaonSessionUserGroupEntity;\n\n async assignGroupToUser(\n userId: number,\n groupId: number,\n ): Promise<TaonSessionUserGroupEntity> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async unassignGroupFromUser(userId: number, groupId: number): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n}\n","import { Translation } from '@taon-dev/i18n/browser-prod';\nimport { getStatusCode, HttpStatusEnum, TaonBaseRepository, TaonRepository, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\nimport type { EntityManager } from 'taon-typeorm/browser-prod';\nimport { UtilsPasswords__NS__hashPassword, UtilsPasswords__NS__verifyPassword } from 'tnp-helpers/browser-prod';\n\nimport { TaonSessionProvider } from '../taon-session/taon-session.provider';\n\nimport { TaonSessionUserIdentityEntity } from './taon-session-user-identity.entity';\nimport { TaonSessionUserEntity } from './taon-session-user.entity';\nimport { TaonSessionIdentityProvider } from './taon-session-user.models';\nimport { TaonSessionUserRepository } from './taon-session-user.repository';\n\nconst t = Translation.for('src/lib/taon-session-user/taon-session-user-identity.repository.ts', {} as any);\n\n@TaonRepository({\n className: 'TaonSessionUserIdentityRepository',\n})\nexport class TaonSessionUserIdentityRepository extends TaonBaseRepository<TaonSessionUserIdentityEntity> {\n entityClassResolveFn: () => typeof TaonSessionUserIdentityEntity = () =>\n TaonSessionUserIdentityEntity;\n\n private readonly userRepository = this.injectCustomRepo(TaonSessionUserRepository);\n\n private readonly sessionProvider = this.injectProvider(TaonSessionProvider);\n\n normalizeEmail(email: string): string {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async findUserIdByEmail(\n email: string,\n manager: EntityManager = this.connection.manager,\n ): Promise<number | undefined> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async resolveSocialIdentity(\n provider: TaonSessionIdentityProvider,\n providerUserId: string,\n email: string,\n isEmailVerified: boolean,\n ): Promise<TaonSessionUserIdentityEntity> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async registerPasswordUser(email: string, password: string): Promise<TaonSessionUserEntity | null> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async connectPasswordIdentity(\n userId: number,\n email: string,\n password: string,\n ): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async createPasswordIdentity(\n userId: number,\n email: string,\n password: string,\n ): Promise<TaonSessionUserIdentityEntity> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n private passwordIdentity(\n userId: number,\n normalizedEmail: string,\n passwordHash: string,\n isEmailVerified: boolean,\n ): TaonSessionUserIdentityEntity {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async findPasswordIdentity(\n email: string,\n ): Promise<TaonSessionUserIdentityEntity | null> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async verifyPassword(\n email: string,\n password: string,\n ): Promise<TaonSessionUserIdentityEntity | null> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async findSocialIdentity(\n provider: TaonSessionIdentityProvider,\n providerUserId: string,\n ): Promise<TaonSessionUserIdentityEntity | null> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async createSocialIdentity(\n userId: number,\n provider: TaonSessionIdentityProvider,\n providerUserId: string,\n email?: string,\n isEmailVerified = false,\n manager: EntityManager = this.connection.manager,\n ): Promise<TaonSessionUserIdentityEntity> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n}","//#region imports\nimport { TaonSessionUserEntity } from '../taon-session-user/taon-session-user.entity';\nimport { TaonRoleEntity } from '../taon-role/taon-role.entity';\nimport { Column, CreateDateColumn, CustomColumn, JoinColumn, ManyToOne, String45Column, String500Column, TaonBaseAbstractEntity, TaonEntity, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n\n//#endregion\n\n@TaonEntity({\n className: 'TaonSessionUserRoleEntity',\n createTable: true,\n})\nexport class TaonSessionUserRoleEntity extends TaonBaseAbstractEntity<TaonSessionUserRoleEntity> {\n/* */\n/* */\n \n userId!: number;\n\n/* */\n/* */\n \n roleId!: number;\n\n/* */\n/* */\n/* */\n/* */\n \n\n/* */\n/* */\n \n user!: TaonSessionUserEntity;\n\n/* */\n/* */\n/* */\n/* */\n \n\n/* */\n/* */\n \n role!: TaonRoleEntity;\n\n/* */\n/* */\n \n createdAt!: Date;\n}","//#region imports\nimport { TaonBaseMiddleware, TaonMiddleware, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n//#endregion\n\n@TaonMiddleware({\n className: 'TaonSessionUserMiddleware',\n})\nexport class TaonSessionUserMiddleware extends TaonBaseMiddleware {}","//#region imports\nimport { TaonBaseProvider, TaonProvider, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n//#endregion\n\n@TaonProvider({\n className: 'TaonSessionUserProvider',\n})\nexport class TaonSessionUserProvider extends TaonBaseProvider {\n\n\n\n}","//#region imports\nimport { TaonBaseSubscriberForEntity, TaonSubscriber } from 'taon/browser-prod';\n\nimport { TaonSessionUserEntity } from './taon-session-user.entity';\nimport { TaonSessionUserProvider } from './taon-session-user.provider';\n//#endregion\n\n@TaonSubscriber<TaonSessionUserSubscriber>({\n className: 'TaonSessionUserSubscriber',\n allowedEvents: ['afterUpdate'],\n})\nexport class TaonSessionUserSubscriber extends TaonBaseSubscriberForEntity {\n taonSessionUserProvider = this.injectProvider(TaonSessionUserProvider);\n\n listenTo(): typeof TaonSessionUserEntity {\n return TaonSessionUserEntity;\n }\n}\n","//#region imports\nimport { createContext, TaonBaseContext } from 'taon/browser-prod';\n\nimport { TaonSessionUserGroupEntity } from './taon-session-user-group.entity';\nimport { TaonSessionUserGroupRepository } from './taon-session-user-group.repository';\nimport { TaonSessionUserIdentityEntity } from './taon-session-user-identity.entity';\nimport { TaonSessionUserIdentityRepository } from './taon-session-user-identity.repository';\nimport { TaonSessionUserRoleEntity } from './taon-session-user-role.entity';\nimport { TaonSessionUserController } from './taon-session-user.controller';\nimport { TaonSessionUserEntity } from './taon-session-user.entity';\nimport { TaonSessionUserMiddleware } from './taon-session-user.middleware';\nimport { TaonSessionUserProvider } from './taon-session-user.provider';\nimport { TaonSessionUserRepository } from './taon-session-user.repository';\nimport { TaonSessionUserSubscriber } from './taon-session-user.subscriber';\n//#endregion\n\nexport const TaonSessionUserContext = createContext(() => ({\n contextName: 'TaonSessionUserContext',\n abstract: true,\n contexts: { TaonBaseContext },\n entities: {\n TaonSessionUserEntity,\n TaonSessionUserGroupEntity,\n TaonSessionUserRoleEntity,\n TaonSessionUserIdentityEntity,\n },\n controllers: { TaonSessionUserController },\n repositories: {\n TaonSessionUserRepository,\n TaonSessionUserIdentityRepository,\n TaonSessionUserGroupRepository,\n },\n providers: { TaonSessionUserProvider },\n middlewares: { TaonSessionUserMiddleware },\n subscribers: { TaonSessionUserSubscriber },\n}));\n","import type { TaonSessionUserEntity } from './taon-session-user.entity';\n\nexport const TaonSessionUserDefaultsValues = {} as Partial<TaonSessionUserEntity>;\n","export enum TaonSessionUserState {\n Active = 'active',\n Inactive = 'inactive',\n}\n\nexport enum TaonSessionIdentityProvider {\n PASSWORD = 'PASSWORD',\n\n GOOGLE = 'GOOGLE',\n MICROSOFT = 'MICROSOFT',\n APPLE = 'APPLE',\n FACEBOOK = 'FACEBOOK',\n GITHUB = 'GITHUB',\n}\n","//namespace TaonSessionUserUtils\n\n export function TaonSessionUserUtils__NS__generateRandomUsername(): string {\n return `user${crypto.randomUUID().replace(/-/g, '').slice(0, 12)}`;\n }\n\n//end of namespace TaonSessionUserUtils\n","//#region imports\nimport { TaonAdditionalMiddlewareMethodInfo, TaonBaseMiddleware, TaonMiddleware, TaonServerMiddlewareInterceptOptions, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith, UtilsJwt__NS__decode, UtilsJwt__NS__JwtPayload, UtilsJwt__NS__sign, UtilsJwt__NS__verify } from 'tnp-core/browser-prod';\n\nimport { TaonSessionKvRepository } from './taon-session.kv.repository';\nimport { TaonSessionProvider } from './taon-session.provider';\nimport { TaonSessionRepository } from './taon-session.repository';\n//#endregion\n\n@TaonMiddleware({\n className: 'TaonSessionMiddleware',\n})\nexport class TaonSessionMiddleware extends TaonBaseMiddleware {\n taonSessionRepository = this.injectCustomRepo(TaonSessionRepository);\n\n //#region intercept server method\n async interceptServerMethod(\n data: TaonServerMiddlewareInterceptOptions,\n ): Promise<void> {\n/* */\n/* */\n \n }\n //#endregion\n}","//#region imports\nimport { Translation } from '@taon-dev/i18n/browser-prod';\nimport {\n TaonAuthContextEntity,\n TaonAuthContextRepository,\n} from '../index';\nimport { TaonController, TaonBaseCrudController, Query, GET, TaonBaseController, Body, POST, HttpStatusEnum, getStatusCode, getStatusText, ClassHelpers__NS__asyncHandler, ClassHelpers__NS__ensureClassConfig, ClassHelpers__NS__ensureMethodConfig, ClassHelpers__NS__getClassConfig, ClassHelpers__NS__getClassFnFromObject, ClassHelpers__NS__getControllerConfigs, ClassHelpers__NS__getFullInternalName, ClassHelpers__NS__getMethodsNames, ClassHelpers__NS__getName, ClassHelpers__NS__getOrginalClass, ClassHelpers__NS__getUniqueKey, ClassHelpers__NS__hasParentClassWithName, ClassHelpers__NS__isContextClassObject, ClassHelpers__NS__mapFnError, ClassHelpers__NS__setName, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\nimport { HttpStatusCodeMap } from 'taon/browser-prod';\nimport { FindOneOptions, FindOptionsWhere } from 'taon-typeorm/browser-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith, UtilsJwt__NS__decode, UtilsJwt__NS__JwtPayload, UtilsJwt__NS__sign, UtilsJwt__NS__verify } from 'tnp-core/browser-prod';\n\nimport {\n TaonSessionIdentityProvider,\n TaonSessionUserEntity,\n} from '../taon-session-user';\nimport { TaonSessionUserIdentityEntity } from '../taon-session-user/taon-session-user-identity.entity';\nimport { TaonSessionUserIdentityRepository } from '../taon-session-user/taon-session-user-identity.repository';\nimport { TaonSessionUserRepository } from '../taon-session-user/taon-session-user.repository';\n\nimport { TaonSessionEntity } from './taon-session.entity';\nimport { TaonSessionKvRepository } from './taon-session.kv.repository';\nimport { TaonSessionMiddleware } from './taon-session.middleware';\nimport { TaonLoginData } from './taon-session.models';\nimport { TaonSessionProvider } from './taon-session.provider';\nimport { TaonSessionRepository } from './taon-session.repository';\nimport { TaonSessionUtils__NS__getRequestMetadata, TaonSessionUtils__NS__verifyGoogleAuthorizationCode } from './taon-session.utils';\n\n//#endregion\n\nconst t = Translation.for('src/lib/taon-session/taon-session.controller.ts', {} as any);\n\n@TaonController<TaonSessionController>({\n className: 'TaonSessionController',\n allowedMethods: [\n //#region allowed method\n 'createUser',\n 'userExists',\n 'getCurrentUserId',\n 'login',\n 'logout',\n 'refresh',\n 'context',\n 'emptyContext',\n 'connectIdentity',\n 'disconnectIdentity',\n 'usernameAvailable',\n 'changeUsername',\n //#endregion\n ],\n})\nexport class TaonSessionController extends TaonBaseController {\n //#region fields & getters\n private readonly taonSessionKvRepository = this.injectKvRepository(\n TaonSessionKvRepository,\n );\n\n private readonly taonSessionUserIdentityRepository = this.injectCustomRepo(\n TaonSessionUserIdentityRepository,\n );\n\n private readonly taonSessionProvider =\n this.injectProvider(TaonSessionProvider);\n\n private readonly taonSessionUserRepository = this.injectCustomRepo(\n TaonSessionUserRepository,\n );\n\n private readonly taonAuthContextRepository = this.injectCustomRepo(\n TaonAuthContextRepository,\n );\n\n private readonly taonSessionRepository = this.injectCustomRepo(\n TaonSessionRepository,\n );\n //#endregion\n\n //#region createUser\n @POST()\n createUser(\n @Body('email') email: string,\n @Body('password') password: string,\n ): Taon__NS__Response<TaonSessionUserEntity | null> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region userExists\n @POST()\n userExists(@Body('email') email: string): Taon__NS__Response<boolean> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region get google identity\n private async getGoogleIdentity(data: TaonLoginData): Promise<{\n identity?: TaonSessionUserIdentityEntity | null | undefined;\n error: boolean;\n googleData?: Awaited<\n ReturnType<typeof TaonSessionUtils__NS__verifyGoogleAuthorizationCode>\n >;\n }> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region connect identity\n @POST({\n middlewares: ({ parentMiddlewares }) => ({\n TaonSessionMiddleware,\n ...parentMiddlewares,\n }),\n })\n connectIdentity(@Body() data: TaonLoginData): Taon__NS__Response<boolean> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region username available\n @POST({\n middlewares: ({ parentMiddlewares }) => ({\n TaonSessionMiddleware,\n ...parentMiddlewares,\n }),\n })\n usernameAvailable(\n @Body('username') username: string,\n ): Taon__NS__Response<boolean> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region change username\n @POST({\n middlewares: ({ parentMiddlewares }) => ({\n TaonSessionMiddleware,\n ...parentMiddlewares,\n }),\n })\n changeUsername(@Body('username') username: string): Taon__NS__Response<boolean> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region disconnect identity\n @POST({\n middlewares: ({ parentMiddlewares }) => ({\n TaonSessionMiddleware,\n ...parentMiddlewares,\n }),\n })\n disconnectIdentity(\n @Body('provider') provider: TaonSessionIdentityProvider,\n ): Taon__NS__Response<boolean> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region login\n @POST()\n login(@Body() data: TaonLoginData): Taon__NS__Response<boolean> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region refresh\n @POST()\n refresh(): Taon__NS__Response<boolean> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region logout\n @POST()\n logout(): Taon__NS__Response<boolean> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region context\n @GET({\n middlewares: ({ parentMiddlewares }) => ({\n TaonSessionMiddleware,\n ...parentMiddlewares,\n }),\n })\n context(): Taon__NS__Response<TaonAuthContextEntity> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region empty context\n @GET()\n emptyContext(): Taon__NS__Response<TaonAuthContextEntity> {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region get current user id\n @GET({\n middlewares: ({ parentMiddlewares }) => ({\n TaonSessionMiddleware,\n ...parentMiddlewares,\n }),\n })\n getCurrentUserId(): Taon__NS__Response<number> {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n}","//#region imports\nimport { Injectable } from '@angular/core';\nimport { NEVER, Observable, of } from 'rxjs';\nimport { catchError, map, share, tap } from 'rxjs/operators';\nimport { TaonBaseAngularService, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\n\nimport { TaonAuthContextEntity } from '../taon-auth-context/taon-auth-context.entity';\nimport { TaonSessionUserEntity } from '../taon-session-user/taon-session-user.entity';\nimport { TaonSessionIdentityProvider } from '../taon-session-user/taon-session-user.models';\n\nimport { TaonSessionController } from './taon-session.controller';\nimport { TaonLoginData } from './taon-session.models';\n//#endregion\n\n@Injectable()\nexport class TaonSessionApiService extends TaonBaseAngularService {\n private taonSessionController = this.injectController(TaonSessionController);\n\n usernameAvailable(username: string): Observable<boolean> {\n return this.taonSessionController.usernameAvailable(username)\n .request!().observable.pipe(map(resp => !!resp.body.booleanValue));\n }\n\n changeUsername(username: string): Observable<boolean> {\n return this.taonSessionController.changeUsername(username)\n .request!().observable.pipe(map(resp => !!resp.body.booleanValue));\n }\n\n connectPassword(email: string, password: string): Observable<boolean> {\n return this.taonSessionController.connectIdentity({ email, password })\n .request!().observable.pipe(map(resp => !!resp.body.booleanValue));\n }\n\n //#region login\n\n login(data: TaonLoginData): Observable<boolean> {\n return this.taonSessionController.login(data).request!().observable.pipe(\n map(resp => {\n return !!resp.body.booleanValue;\n }),\n catchError(() => {\n return of(false);\n }),\n );\n }\n //#endregion\n\n //#region logout\n logout(): Observable<boolean> {\n return this.taonSessionController.logout().request!().observable.pipe(\n map(resp => {\n return !!resp.body.booleanValue;\n }),\n catchError(() => {\n return of(false);\n }),\n );\n }\n //#endregion\n\n //#region connect idenitty\n connectIdentity(data: TaonLoginData): Observable<boolean> {\n return this.taonSessionController.connectIdentity(data)\n .request!().observable.pipe(\n map(resp => {\n return !!resp.body.booleanValue;\n }),\n catchError(() => {\n return of(false);\n }),\n );\n }\n //#endregion\n\n //#region disconnect idenitty\n disconnectIdentity(\n provider: TaonSessionIdentityProvider,\n ): Observable<boolean> {\n return this.taonSessionController.disconnectIdentity(provider)\n .request!().observable.pipe(\n map(resp => {\n return !!resp.body.booleanValue;\n }),\n catchError(() => {\n return of(false);\n }),\n );\n }\n //#endregion\n\n //#region me\n context(): Observable<TaonAuthContextEntity> {\n return this.taonSessionController.context().request!().observable.pipe(\n map(resp => {\n return resp.body.json;\n }),\n catchError(() => {\n return of(null);\n }),\n );\n }\n\n emptyContext(): Observable<TaonAuthContextEntity> {\n return this.taonSessionController.emptyContext().request!().observable.pipe(\n map(resp => {\n return resp.body.json;\n }),\n catchError(() => {\n return of(null);\n }),\n );\n }\n //#endregion\n\n //#region get current user id\n getCurrentUserId(): Observable<number> {\n return this.taonSessionController.getCurrentUserId()\n .request!().observable.pipe(\n map(resp => {\n const userId = resp.body.numericValue;\n return userId;\n }),\n catchError(() => {\n return of(null);\n }),\n share(),\n );\n }\n //#endregion\n\n //#region get current user id\n userExists(\n email: string,\n opt: {\n goToPreviouseState: () => void;\n },\n ): Observable<boolean> {\n return this.taonSessionController.userExists(email)\n .request!().observable.pipe(\n map(resp => {\n const userExists = resp.body.booleanValue;\n return userExists;\n }),\n catchError(() => {\n opt.goToPreviouseState();\n return NEVER;\n }),\n );\n }\n //#endregion\n\n //#region get current user id\n createUser(\n email: string,\n password: string,\n ): Observable<TaonSessionUserEntity | undefined> {\n return this.taonSessionController.createUser(email, password)\n .request!().observable.pipe(\n map(resp => {\n const userExists = resp.body.json;\n return userExists;\n }),\n catchError(() => {\n return of(null);\n }),\n );\n }\n //#endregion\n\n //#region refresh\n refresh(): Observable<boolean> {\n return this.taonSessionController.refresh().request!().observable.pipe(\n map(resp => {\n return !!resp.body.booleanValue;\n }),\n catchError(() => {\n return of(false);\n }),\n );\n }\n //#endregion\n}","//#region imports\nimport { Injectable } from '@angular/core';\nimport { NEVER, Observable, of } from 'rxjs';\nimport { catchError, map, tap } from 'rxjs/operators';\nimport { TaonBaseAngularService, ClassHelpers__NS__asyncHandler, ClassHelpers__NS__ensureClassConfig, ClassHelpers__NS__ensureMethodConfig, ClassHelpers__NS__getClassConfig, ClassHelpers__NS__getClassFnFromObject, ClassHelpers__NS__getControllerConfigs, ClassHelpers__NS__getFullInternalName, ClassHelpers__NS__getMethodsNames, ClassHelpers__NS__getName, ClassHelpers__NS__getOrginalClass, ClassHelpers__NS__getUniqueKey, ClassHelpers__NS__hasParentClassWithName, ClassHelpers__NS__isContextClassObject, ClassHelpers__NS__mapFnError, ClassHelpers__NS__setName, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\n\nimport { TaonSessionUserEntity } from '../taon-session-user/taon-session-user.entity';\n\nimport { TaonSessionController } from './taon-session.controller';\nimport {\n TaonSessionConfig,\n TaonSessionProvider,\n} from './taon-session.provider';\n//#endregion\n\n@Injectable()\nexport class TaonSessionConfigService extends TaonBaseAngularService {\n private taonSessionProvider = this.injectProvider(TaonSessionProvider);\n\n clone(): TaonSessionConfig {\n const cloned = this.taonSessionProvider.clone();\n return cloned;\n }\n}","import { Translation } from '@taon-dev/i18n/browser-prod';\nimport { Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\n\nconst t = Translation.for('src/lib/taon-session/taon-session.models.ts', {} as any);\n\nexport interface TaonLoginData {\n email?: string;\n password?: string;\n googleCode?: string;\n}\n\nexport interface GoogleCodeResponse {\n code?: string;\n error?: string;\n error_description?: string;\n}\n\nexport enum TaonSessionState {\n LOADING_INITIAL_AUTH_INFO = 'LOADING_INITIAL_AUTH_INFO',\n LOGIN_OR_REGISTER = 'LOGIN_OR_REGISTER',\n ENTER_PASSWORD = 'ENTER_PASSWORD',\n ENTER_REGISTRATION_PASSWORDS = 'ENTER_REGISTRATION_PASSWORDS',\n LOADING_AUTH = 'LOADING_AUTH',\n LOADING_CHECK_USER_EMAIL_EXISTS = 'LOADING_CHECK_USER_EMAIL_EXISTS',\n LOADING_CREATING_USER = 'LOADING_CREATING_USER',\n LOADING_LOGOUT_INFO = 'LOADING_LOGOUT_INFO',\n TWO_FA_EMAIL = 'TWO_FA_EMAIL',\n TWO_FA_SMS = 'TWO_FA_SMS',\n TWO_FA_AUTHENTICATOR = 'TWO_FA_AUTHENTICATOR',\n LOGIN_SUCCESS = 'LOGIN_SUCCESS',\n PROFILE_INFO = 'PROFILE_INFO',\n PASSWORD_CHANGE = 'PASSWORD_CHANGE',\n AVATAR_CHANGE = 'AVATAR_CHANGE',\n}\n\nexport enum TaonLoginErrors {\n INVALID_PASSWORD = 'INVALID_PASSWORD',\n INVALID_SOCIAL_LOGIN = 'INVALID_SOCIAL_LOGIN',\n PASSWORDS_DO_NOT_MATCH = 'PASSWORDS_DO_NOT_MATCH',\n}\n\nexport const TaonErorsMap = new Map([\n [TaonLoginErrors.INVALID_PASSWORD, t.gettext('Invalid Password')],\n [\n TaonLoginErrors.INVALID_SOCIAL_LOGIN,\n t.gettext('Not able to login with social account'),\n ],\n [\n TaonLoginErrors.PASSWORDS_DO_NOT_MATCH,\n t.gettext('Passwords do not match each other'),\n ],\n]);","//#region imports\n\nimport { inject, Injectable } from '@angular/core'; // @browser\n\nimport {\n BehaviorSubject,\n catchError,\n combineLatest,\n finalize,\n map,\n NEVER,\n Observable,\n of,\n shareReplay,\n switchMap,\n take,\n tap,\n} from 'rxjs';\n\nimport { TaonBaseProvider, TaonProvider } from 'taon/browser-prod';\nimport { signal } from 'tnp-core/browser-prod';\nimport { TaonStateMachine } from 'tnp-core/browser-prod';\n\nimport { TaonAuthContextEntity } from '../taon-auth-context/taon-auth-context.entity';\n\nimport type { TaonSessionComponent } from './taon-session/taon-session.component'; // @browser\nimport { TaonSessionApiService } from './taon-session.api.service'; // @browser\nimport {\n TaonErorsMap,\n TaonLoginErrors,\n TaonSessionState,\n} from './taon-session.models';\n\n//#endregion\n\n/* */\n/* */\n/* */\n/* */\n \n//#region @browser\n@Injectable()\n//#endregion\nexport class TaonSessionStateService extends TaonBaseProvider {\n //#region fields & getters\n\n //#region @browser\n protected readonly taonSessionApiService = inject(TaonSessionApiService);\n //#endregion\n\n /**\n * Refreshes session/authentication information.\n *\n * This causes getCurrentUserId() to be called again.\n */\n protected readonly refreshSrc = new BehaviorSubject<void>(void 0);\n\n /**\n * Refreshes authorization context without reloading\n * the current session/user.\n *\n * Useful when roles/groups/permissions change while\n * the currently authenticated user stays the same.\n */\n protected readonly contextRefreshSrc = new BehaviorSubject<void>(void 0);\n\n protected readonly userId = signal<number | undefined>(void 0);\n\n protected readonly currentSlide = signal(\n TaonSessionState.LOADING_INITIAL_AUTH_INFO,\n );\n\n private allowedStateMap = new Map<TaonSessionState, TaonSessionState[]>([\n [\n TaonSessionState.LOADING_INITIAL_AUTH_INFO,\n [TaonSessionState.LOGIN_OR_REGISTER, TaonSessionState.LOGIN_SUCCESS],\n ],\n [\n TaonSessionState.LOGIN_OR_REGISTER,\n [\n TaonSessionState.ENTER_PASSWORD,\n TaonSessionState.ENTER_REGISTRATION_PASSWORDS,\n TaonSessionState.LOADING_AUTH,\n TaonSessionState.LOADING_CHECK_USER_EMAIL_EXISTS,\n ],\n ],\n [\n TaonSessionState.LOADING_CHECK_USER_EMAIL_EXISTS,\n [\n TaonSessionState.ENTER_PASSWORD,\n TaonSessionState.ENTER_REGISTRATION_PASSWORDS,\n TaonSessionState.LOGIN_OR_REGISTER,\n ],\n ],\n [\n TaonSessionState.ENTER_REGISTRATION_PASSWORDS,\n [TaonSessionState.LOADING_AUTH, TaonSessionState.LOGIN_OR_REGISTER],\n ],\n [\n TaonSessionState.ENTER_PASSWORD,\n [\n TaonSessionState.LOGIN_OR_REGISTER,\n TaonSessionState.ENTER_PASSWORD,\n TaonSessionState.LOADING_AUTH,\n TaonSessionState.TWO_FA_AUTHENTICATOR,\n TaonSessionState.TWO_FA_EMAIL,\n TaonSessionState.TWO_FA_SMS,\n ],\n ],\n [\n TaonSessionState.LOADING_AUTH,\n [\n TaonSessionState.ENTER_PASSWORD,\n TaonSessionState.LOGIN_OR_REGISTER,\n TaonSessionState.LOGIN_SUCCESS,\n ],\n ],\n [\n TaonSessionState.LOGIN_SUCCESS,\n [\n TaonSessionState.LOADING_LOGOUT_INFO,\n TaonSessionState.ENTER_PASSWORD,\n TaonSessionState.PROFILE_INFO,\n ],\n ],\n [\n TaonSessionState.PROFILE_INFO,\n [\n TaonSessionState.LOGIN_SUCCESS,\n TaonSessionState.LOADING_LOGOUT_INFO,\n TaonSessionState.ENTER_PASSWORD,\n ],\n ],\n [\n TaonSessionState.LOADING_LOGOUT_INFO,\n [TaonSessionState.LOGIN_OR_REGISTER, TaonSessionState.LOGIN_SUCCESS],\n ],\n ]);\n\n public state = new TaonStateMachine<TaonSessionState>({\n defaultValue: this.currentSlide(),\n allowedStateMap: this.allowedStateMap,\n effect: (nextState, previousState, debugMode) => {\n this.currentSlide.set(nextState);\n },\n });\n\n /**\n * Current authenticated user.\n *\n * Shared because multiple consumers may depend on userId$,\n * isLoggedIn$ and context$ at the same time.\n *\n * One refresh => one getCurrentUserId() request.\n */\n protected readonly userId$ = this.refreshSrc.pipe(\n switchMap(() => {\n/* */\n/* */\n \n\n //#region @browser\n return this.taonSessionApiService.getCurrentUserId().pipe(\n catchError(() => {\n this.state.set(TaonSessionState.LOGIN_OR_REGISTER);\n return of(void 0);\n }),\n );\n //#endregion\n }),\n\n tap(userId => {\n this.userId.set(userId);\n\n if (userId) {\n this.state.set(TaonSessionState.LOGIN_SUCCESS);\n } else {\n this.state.set(TaonSessionState.LOGIN_OR_REGISTER);\n }\n }),\n\n shareReplay({\n bufferSize: 1,\n refCount: true,\n }),\n );\n\n /**\n * Projection of userId$.\n *\n * Does NOT cause another getCurrentUserId() call because\n * userId$ is shared.\n */\n public readonly isLoggedIn$ = this.userId$.pipe(map(userId => !!userId));\n\n //#region @browser\n\n /**\n * Current authorization context.\n *\n * Reloaded when:\n *\n * 1. session/user changes\n * 2. refreshContext() is explicitly called\n *\n * Multiple subscribers share the same context request.\n */\n public readonly context$: Observable<TaonAuthContextEntity> = combineLatest([\n this.userId$,\n this.contextRefreshSrc,\n ]).pipe(\n switchMap(([userId]) => {\n if (!userId) {\n return this.taonSessionApiService.emptyContext();\n }\n\n return this.taonSessionApiService.context();\n }),\n\n shareReplay({\n bufferSize: 1,\n refCount: true,\n }),\n );\n\n //#endregion\n\n //#endregion\n\n public executeActionForState(\n //#region @browser\n form: TaonSessionComponent['form'],\n //#endregion\n ): void {\n //#region @browser\n\n form.updateValueAndValidity();\n\n if (form.invalid) {\n return;\n }\n\n const googleCodeField = form.controls.googleCode;\n const isSocialLogin = googleCodeField.value!;\n\n //#region login action\n\n const loginAction = (): void => {\n const passwordField = form.controls.password;\n\n if (!isSocialLogin) {\n passwordField.markAsTouched();\n }\n\n this.state.set(TaonSessionState.LOADING_AUTH);\n\n this.taonSessionApiService\n .login({\n email: form.controls.email.value!,\n password: passwordField.value!,\n googleCode: googleCodeField.value!,\n })\n .pipe(\n take(1),\n\n tap(okLogin => {\n googleCodeField.reset();\n\n if (okLogin) {\n this.state.set(TaonSessionState.LOGIN_SUCCESS);\n\n if (!isSocialLogin) {\n passwordField.markAsUntouched();\n }\n } else {\n if (isSocialLogin) {\n this.state.set(TaonSessionState.LOGIN_OR_REGISTER);\n\n googleCodeField.setErrors({\n [TaonLoginErrors.INVALID_SOCIAL_LOGIN]: true,\n });\n } else {\n this.state.set(TaonSessionState.ENTER_PASSWORD);\n\n passwordField.setErrors({\n ...(passwordField.errors ?? {}),\n [TaonLoginErrors.INVALID_PASSWORD]: true,\n });\n\n passwordField.markAsTouched();\n }\n }\n }),\n\n finalize(() => {\n this.refresh();\n }),\n )\n .subscribe();\n };\n\n //#endregion\n\n switch (this.state.currentValue) {\n //#region LOGIN_OR_REGISTER\n\n case TaonSessionState.LOGIN_OR_REGISTER:\n if (isSocialLogin) {\n loginAction();\n } else {\n this.state.set(TaonSessionState.LOADING_CHECK_USER_EMAIL_EXISTS);\n\n this.taonSessionApiService\n .userExists(form.controls.email.value!, {\n goToPreviouseState: () => {\n this.state.set(TaonSessionState.LOGIN_OR_REGISTER);\n },\n })\n .pipe(\n take(1),\n\n tap(userExists => {\n if (userExists) {\n this.state.set(TaonSessionState.ENTER_PASSWORD);\n } else {\n this.state.set(TaonSessionState.ENTER_REGISTRATION_PASSWORDS);\n }\n }),\n\n catchError(err => {\n this.state.set(TaonSessionState.LOGIN_OR_REGISTER);\n return NEVER;\n }),\n )\n .subscribe();\n }\n\n return;\n\n //#endregion\n\n //#region ENTER_REGISTRATION_PASSWORDS\n\n case TaonSessionState.ENTER_REGISTRATION_PASSWORDS:\n this.state.set(TaonSessionState.LOADING_CREATING_USER);\n\n this.taonSessionApiService\n .createUser(form.controls.email.value!, form.controls.password.value!)\n .pipe(\n take(1),\n\n tap(user => {\n if (user) {\n loginAction();\n } else {\n this.state.set(TaonSessionState.ENTER_REGISTRATION_PASSWORDS);\n }\n }),\n\n catchError(err => {\n this.state.set(TaonSessionState.ENTER_REGISTRATION_PASSWORDS);\n\n return NEVER;\n }),\n )\n .subscribe();\n\n return;\n\n //#endregion\n\n //#region ENTER_PASSWORD\n\n case TaonSessionState.ENTER_PASSWORD:\n loginAction();\n return;\n\n //#endregion\n\n default:\n break;\n }\n\n //#endregion\n }\n\n public logout(successCallback?: () => void): void {\n this.state.set(TaonSessionState.LOADING_LOGOUT_INFO);\n\n //#region @browser\n\n this.taonSessionApiService\n .logout()\n .pipe(\n take(1),\n\n tap(logoutOk => {\n if (logoutOk) {\n this.state.set(TaonSessionState.LOGIN_OR_REGISTER);\n successCallback?.();\n } else {\n this.state.set(TaonSessionState.LOGIN_SUCCESS);\n }\n }),\n\n finalize(() => {\n this.refresh();\n }),\n )\n .subscribe();\n\n //#endregion\n }\n\n /**\n * Reload complete authentication/session state.\n *\n * This causes:\n *\n * getCurrentUserId()\n * -> userId$\n * -> isLoggedIn$\n * -> context$\n */\n public refresh(): void {\n this.refreshSrc.next(void 0);\n }\n\n /**\n * Reload authorization context only.\n *\n * Does NOT call getCurrentUserId().\n */\n public refreshContext(): void {\n this.contextRefreshSrc.next(void 0);\n }\n}\n","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms'; // browser\n\nimport { TaonLoginErrors, TaonSessionState } from './taon-session.models';\n\n//namespace TaonSessionValidator\n\n //#region @browser\n export const TaonSessionValidator__NS__passwordMatchValidator: ValidatorFn = (\n control: AbstractControl,\n ): ValidationErrors | null => {\n const password = control.get('password');\n const passwordRepeat = control.get('passwordRepeat');\n const state = control.get('state');\n if (state.value !== TaonSessionState.ENTER_REGISTRATION_PASSWORDS) {\n return null;\n }\n\n if (!password || !passwordRepeat) {\n return null;\n }\n\n return password.value === passwordRepeat.value\n ? null\n : { [TaonLoginErrors.PASSWORDS_DO_NOT_MATCH]: true };\n };\n //#endregion\n\n//end of namespace TaonSessionValidator\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Output } from '@angular/core';\nimport { MatRippleModule } from '@angular/material/core'; // Optional: for Material ripple effect\nimport { Translation } from '@taon-dev/i18n/browser-prod';\nimport { Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\n\nconst t = Translation.for('src/lib/taon-session/taon-session/social-buttons/google-login-register-button.component.ts', {} as any);\n\n@Component({\n selector: 'google-login-register-button',\n standalone: true,\n imports: [CommonModule, MatRippleModule],\n templateUrl: './google-login-register-button.component.html',\n})\nexport class GoogleLoginRegisterButtonComponent {\n t = t.for(this);\n\n @Output() googleSignIn = new EventEmitter<void>();\n\n onClick() {\n this.googleSignIn.emit();\n }\n}","<button\n type=\"button\"\n matRipple\n (click)=\"onClick()\"\n class=\"flex w-full items-center justify-center gap-3 px-4 py-2.5 border border-slate-300 rounded-full font-medium text-slate-700 bg-white hover:bg-slate-50 hover:border-slate-400 active:bg-slate-100 shadow-sm transition-all duration-200 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500 cursor-pointer\">\n <!-- Google SVG Logo -->\n <svg\n class=\"w-5 h-5\"\n viewBox=\"0 0 24 24\">\n <path\n fill=\"#4285F4\"\n d=\"M23.745 12.27c0-.7-.06-1.4-.19-2.07H12v4.51h6.6c-.29 1.52-1.14 2.82-2.4 3.68v3.05h3.88c2.27-2.09 3.66-5.17 3.66-9.17z\" />\n <path\n fill=\"#34A853\"\n d=\"M12 24c3.24 0 5.95-1.08 7.93-2.91l-3.88-3.05c-1.08.72-2.45 1.16-4.05 1.16-3.12 0-5.77-2.1-6.72-4.93H1.19v3.15C3.17 21.32 7.25 24 12 24z\" />\n <path\n fill=\"#FBBC05\"\n d=\"M5.28 14.27c-.25-.72-.38-1.49-.38-2.27s.13-1.55.38-2.27V6.58H1.19C.43 8.1 0 9.8 0 12s.43 3.9 1.19 5.42l4.09-3.15z\" />\n <path\n fill=\"#EA4335\"\n d=\"M12 4.75c1.77 0 3.35.61 4.6 1.8l3.42-3.42C17.95 1.19 15.24 0 12 0 7.25 0 3.17 2.68 1.19 6.58l4.09 3.15c.95-2.83 3.6-4.98 6.72-4.98z\" />\n </svg>\n <span class=\"text-sm font-semibold tracking-wide\">{{\n t.gettext('Sign in with Google')\n }}</span>\n </button>\n","//#region imports\nimport { AsyncPipe } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n inject,\n Input,\n Output,\n signal,\n} from '@angular/core';\nimport { FormControl, FormGroup, ReactiveFormsModule, Validators } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\nimport { MatDialog } from '@angular/material/dialog';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { RouterOutlet } from '@angular/router';\nimport { Translation } from '@taon-dev/i18n/browser-prod';\nimport {\n TaonConfirmDialogComponent,\n TaonHorizontalWheelScrollDirective,\n} from '@taon-dev/ui/browser-prod';\nimport { firstValueFrom, map, shareReplay } from 'rxjs';\nimport { Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\n\nimport { GoogleCodeResponse, TaonSessionConfig } from '../../../index';\n// import { TaonProfilePictureComponent } from '../../../taon-session/taon-profile/taon-profile-picture/taon-profile-picture.component';\nimport { TaonSessionApiService } from '../../../taon-session/taon-session.api.service';\nimport { TaonSessionStateService } from '../../../taon-session/taon-session.state.service';\nimport { TaonSessionUserEntity } from '../../../taon-session-user/taon-session-user.entity';\nimport { TaonSessionIdentityProvider } from '../../../taon-session-user/taon-session-user.models';\n\n//#endregion\n\ndeclare const google: any;\n\nconst t = Translation.for('src/lib/taon-session/taon-session/taon-session-profile/taon-session-profile.component.ts', {} as any);\n\n@Component({\n selector: 'taon-session-profile',\n templateUrl: './taon-session-profile.component.html',\n styleUrls: ['./taon-session-profile.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n AsyncPipe,\n RouterOutlet,\n MatButtonModule,\n MatButtonToggleModule,\n MatTabsModule,\n MatIconModule,\n MatDividerModule,\n MatInputModule,\n MatFormFieldModule,\n ReactiveFormsModule,\n TaonHorizontalWheelScrollDirective,\n // TaonProfilePictureComponent,\n ],\n})\nexport class TaonSessionProfileComponent {\n //#region fields & getters\n t = t.for(this);\n\n TaonSessionIdentityProvider = TaonSessionIdentityProvider;\n\n @Input()\n public config: TaonSessionConfig;\n\n protected readonly taonSessionApiService = inject(TaonSessionApiService);\n\n public readonly taonSessionStateService = inject(TaonSessionStateService);\n\n readonly context$ = this.taonSessionStateService.context$.pipe(\n shareReplay({ bufferSize: 1, refCount: true }),\n );\n\n readonly usernameForm = new FormGroup({\n username: new FormControl('', { nonNullable: true, validators: [\n Validators.required, Validators.maxLength(255), Validators.pattern(/\\S/),\n ] }),\n });\n\n readonly passwordForm = new FormGroup({\n email: new FormControl('', { nonNullable: true, validators: [Validators.required, Validators.email] }),\n password: new FormControl('', { nonNullable: true, validators: [\n Validators.required, Validators.minLength(8), Validators.maxLength(128),\n ] }),\n passwordRepeat: new FormControl('', { nonNullable: true, validators: [Validators.required] }),\n });\n\n readonly savingUsername = signal(false);\n\n readonly usernameError = signal('');\n\n readonly usernameSaved = signal(false);\n\n readonly showPasswordForm = signal(false);\n\n readonly savingPassword = signal(false);\n\n readonly passwordError = signal('');\n\n get isVisibleGoogle(): boolean {\n return this.config?.socialLogin?.google?.enabled;\n }\n\n get isVisibleApple(): boolean {\n return this.config?.socialLogin?.apple?.enabled;\n }\n\n get isVisibleMicrosoft(): boolean {\n return this.config?.socialLogin?.microsoft?.enabled;\n }\n\n get isVisibleFacebook(): boolean {\n return this.config?.socialLogin?.facebook?.enabled;\n }\n\n get isVisibleGithub(): boolean {\n return this.config?.socialLogin?.github?.enabled;\n }\n\n /**\n * Email/password can be connected only when the user currently\n * has no PASSWORD identity.\n *\n * In practice this means an account created purely through\n * social authentication.\n */\n readonly canConnectEmail$ = this.context$.pipe(\n map(context => {\n const identities = context?.user?.identities || [];\n\n return !identities.some(\n identity => identity.provider === TaonSessionIdentityProvider.PASSWORD,\n );\n }),\n );\n\n readonly canConnectGoogle$ = this.context$.pipe(\n map(context => {\n const identities = context?.user?.identities || [];\n\n return !identities.some(\n identity => identity.provider === TaonSessionIdentityProvider.GOOGLE,\n );\n }),\n );\n\n readonly canConnectGithub$ = this.context$.pipe(\n map(context => {\n const identities = context?.user?.identities || [];\n\n return !identities.some(\n identity => identity.provider === TaonSessionIdentityProvider.GITHUB,\n );\n }),\n );\n\n readonly canConnectApple$ = this.context$.pipe(\n map(context => {\n const identities = context?.user?.identities || [];\n\n return !identities.some(\n identity => identity.provider === TaonSessionIdentityProvider.APPLE,\n );\n }),\n );\n\n readonly canConnectMicrosoft$ = this.context$.pipe(\n map(context => {\n const identities = context?.user?.identities || [];\n\n return !identities.some(\n identity => identity.provider === TaonSessionIdentityProvider.MICROSOFT,\n );\n }),\n );\n\n readonly canConnectFacebook$ = this.context$.pipe(\n map(context => {\n const identities = context?.user?.identities || [];\n\n return !identities.some(\n identity => identity.provider === TaonSessionIdentityProvider.FACEBOOK,\n );\n }),\n );\n\n @Output()\n readonly logout = new EventEmitter<void>();\n\n readonly dialog = inject(MatDialog);\n //#endregion\n\n onLogout(): void {\n this.logout.next();\n }\n\n //#region disconnect\n\n public disconnect(provider: TaonSessionIdentityProvider): void {\n const ref = this.dialog.open(TaonConfirmDialogComponent, {\n width: '376px',\n data: {\n title: this.t.gettext('Are you sure? '),\n message: this.t.gettext('Disconnecting provider [[ provider ]].', {\n provider,\n }),\n confirmText: this.t.gettext('OK'),\n cancelText: this.t.gettext('Cancel'),\n },\n });\n\n ref.afterClosed().subscribe(async confirmed => {\n if (!confirmed) return;\n\n this.taonSessionApiService\n .disconnectIdentity(provider)\n .subscribe(connectedToGoogle => {\n if (connectedToGoogle) {\n this.taonSessionStateService.refresh();\n }\n });\n });\n }\n //#endregion\n\n //#region connect email\n connectEmail(user?: TaonSessionUserEntity | null): void {\n const identity = user?.identities?.find(identity =>\n identity.isEmailVerified === true && !!identity.email,\n );\n if (!identity) {\n this.passwordError.set(this.t.gettext('Connect a sign-in method with a verified email first.'));\n return;\n }\n this.passwordForm.reset({ email: identity.email, password: '', passwordRepeat: '' });\n this.passwordError.set('');\n this.showPasswordForm.set(true);\n }\n //#endregion\n\n async savePassword(): Promise<void> {\n this.passwordForm.markAllAsTouched();\n this.passwordError.set('');\n if (this.passwordForm.invalid || this.savingPassword()) {\n return;\n }\n const { email, password, passwordRepeat } = this.passwordForm.getRawValue();\n if (password !== passwordRepeat) {\n this.passwordError.set(this.t.gettext('Passwords do not match each other'));\n return;\n }\n this.savingPassword.set(true);\n try {\n const connected = await firstValueFrom(this.taonSessionApiService.connectPassword(email, password));\n if (!connected) {\n this.passwordError.set(this.t.gettext('Unable to connect email/password.'));\n return;\n }\n this.passwordForm.reset();\n this.showPasswordForm.set(false);\n this.taonSessionStateService.refreshContext();\n } catch (error) {\n console.error('[connect-email]', error);\n this.passwordError.set(this.t.gettext('Unable to connect email/password. The email may already belong to another account.'));\n } finally {\n this.savingPassword.set(false);\n }\n }\n\n async saveUsername(): Promise<void> {\n this.usernameForm.markAllAsTouched();\n this.usernameError.set('');\n this.usernameSaved.set(false);\n if (this.usernameForm.invalid || this.savingUsername()) {\n return;\n }\n const username = this.usernameForm.controls.username.value.trim();\n this.savingUsername.set(true);\n try {\n const available = await firstValueFrom(this.taonSessionApiService.usernameAvailable(username));\n if (!available) {\n this.usernameError.set(this.t.gettext('This username is already taken.'));\n return;\n }\n const saved = await firstValueFrom(this.taonSessionApiService.changeUsername(username));\n if (!saved) {\n this.usernameError.set(this.t.gettext('Unable to update username.'));\n return;\n }\n this.usernameForm.reset();\n this.usernameSaved.set(true);\n this.taonSessionStateService.refreshContext();\n } catch (error) {\n console.error('[change-username]', error);\n this.usernameError.set(this.t.gettext('Unable to update username. It may already be taken.'));\n } finally {\n this.savingUsername.set(false);\n }\n }\n\n //#region connect google\n private googleCodeClient?: any;\n\n public connectGoogle(): void {\n if (!this.googleCodeClient) {\n this.initGoogleLogin();\n }\n\n this.googleCodeClient.requestCode();\n }\n\n private initGoogleLogin(): void {\n this.googleCodeClient = google.accounts.oauth2.initCodeClient({\n client_id: this.config.socialLogin.google.googleClientId,\n\n scope: 'openid email profile',\n\n ux_mode: 'popup',\n\n callback: async (response: GoogleCodeResponse) => {\n if (response.error) {\n console.error('[google-login]', response);\n return;\n }\n\n if (!response.code) {\n return;\n }\n\n await this.connectGoogleIdenitty(response.code);\n },\n\n error_callback: (error: any) => {\n console.error('[google-login-popup]', error);\n },\n });\n }\n\n private connectGoogleIdenitty(googleCode: string): void {\n this.taonSessionApiService\n .connectIdentity({\n googleCode,\n })\n .subscribe(connectedToGoogle => {\n if (connectedToGoogle) {\n this.taonSessionStateService.refresh();\n }\n });\n }\n //#endregion\n\n //#region connect apple\n connectApple(): void {\n // TODO replace with proper Apple authorization flow\n console.log('Connect Apple');\n }\n //#endregion\n\n //#region connect microsoft\n connectMicrosoft(): void {\n // TODO replace with proper Microsoft authorization flow\n console.log('Connect Microsoft');\n }\n //#endregion\n\n //#region connect facebook\n connectFacebook(): void {\n // TODO replace with proper Facebook authorization flow\n console.log('Connect Facebook');\n }\n //#endregion\n}","@let context = context$ | async;\n<mat-tab-group taonHorizontalWheelScroll>\n <!-- CONNECT IDENTITIES -->\n <mat-tab [label]=\"t.gettext('Connect')\">\n <div class=\"tab-content\">\n <h3>{{ t.gettext('Connect sign-in method') }}</h3>\n\n <p class=\"description\">\n {{\n t.gettext('Connect additional ways of signing in to your account.')\n }}\n </p>\n\n <mat-button-toggle-group\n class=\"identity-buttons\"\n [hideSingleSelectionIndicator]=\"true\">\n @if (canConnectEmail$ | async) {\n <mat-button-toggle\n [disabled]=\"config?.login?.diableLoginByEmail\"\n (click)=\"connectEmail(context?.user)\">\n <mat-icon>email</mat-icon>\n Email\n </mat-button-toggle>\n } @else {\n <mat-button-toggle\n (click)=\"disconnect(TaonSessionIdentityProvider.PASSWORD)\">\n <mat-icon>email</mat-icon>\n Disconnect Email\n </mat-button-toggle>\n }\n\n @if (canConnectGoogle$ | async) {\n <mat-button-toggle (click)=\"connectGoogle()\">\n <mat-icon>account_circle</mat-icon>\n Google\n </mat-button-toggle>\n } @else {\n <mat-button-toggle\n (click)=\"disconnect(TaonSessionIdentityProvider.GOOGLE)\">\n <mat-icon>close</mat-icon>\n Disconnect Google\n </mat-button-toggle>\n }\n\n <!-- TODO -->\n <!-- <mat-button-toggle\n [disabled]=\"true\"\n (click)=\"connectApple()\">\n <mat-icon>apple</mat-icon>\n Apple\n </mat-button-toggle>\n\n <mat-button-toggle\n [disabled]=\"true\"\n (click)=\"connectMicrosoft()\">\n <mat-icon>window</mat-icon>\n Microsoft\n </mat-button-toggle>\n\n <mat-button-toggle\n [disabled]=\"true\"\n (click)=\"connectFacebook()\">\n <mat-icon>public</mat-icon>\n Facebook\n </mat-button-toggle>\n\n <mat-button-toggle\n [disabled]=\"true\"\n (click)=\"connectGithub()\">\n <mat-icon>public</mat-icon>\n Github\n </mat-button-toggle> -->\n </mat-button-toggle-group>\n @if (showPasswordForm()) {\n <form [formGroup]=\"passwordForm\" (ngSubmit)=\"savePassword()\">\n <mat-form-field>\n <mat-label>{{ t.gettext('Verified email') }}</mat-label>\n <input matInput formControlName=\"email\" readonly />\n </mat-form-field>\n <mat-form-field>\n <mat-label>{{ t.gettext('Password') }}</mat-label>\n <input matInput type=\"password\" formControlName=\"password\" autocomplete=\"new-password\" />\n <mat-error>{{ t.gettext('Password must contain between 8 and 128 characters.') }}</mat-error>\n </mat-form-field>\n <mat-form-field>\n <mat-label>{{ t.gettext('Repeat password') }}</mat-label>\n <input matInput type=\"password\" formControlName=\"passwordRepeat\" autocomplete=\"new-password\" />\n </mat-form-field>\n <button mat-button type=\"submit\" [disabled]=\"savingPassword() || passwordForm.invalid\">\n {{ t.gettext('Save password') }}\n </button>\n </form>\n }\n @if (passwordError()) {\n <p role=\"alert\">{{ passwordError() }}</p>\n }\n </div>\n </mat-tab>\n\n <!-- CHANGE PICTURE -->\n <!-- <mat-tab label=\"Change Picture\">\n <div class=\"tab-content\">\n <taon-profile-picture />\n\n </div>\n </mat-tab> -->\n\n <!-- CHANGE PASSWORD -->\n <mat-tab label=\"Change Password\">\n <div class=\"tab-content\">\n <!-- TODO change password -->\n </div>\n </mat-tab>\n <mat-tab [label]=\"t.gettext('Change Username')\">\n <div class=\"tab-content\">\n <p>{{ t.gettext('Current username') }}: {{ context?.user?.username || '-' }}</p>\n <form [formGroup]=\"usernameForm\" (ngSubmit)=\"saveUsername()\">\n <mat-form-field>\n <mat-label>{{ t.gettext('New username') }}</mat-label>\n <input matInput formControlName=\"username\" autocomplete=\"username\" [readonly]=\"savingUsername()\"\n (input)=\"usernameError.set(''); usernameSaved.set(false)\" />\n <mat-error>{{ t.gettext('Username must contain between 1 and 255 characters.') }}</mat-error>\n </mat-form-field>\n <button mat-button type=\"submit\" [disabled]=\"savingUsername() || usernameForm.invalid\">\n {{ t.gettext('Save username') }}\n </button>\n </form>\n @if (usernameError()) {\n <p role=\"alert\">{{ usernameError() }}</p>\n }\n @if (usernameSaved()) {\n <p role=\"status\">{{ t.gettext('Username updated.') }}</p>\n }\n </div>\n </mat-tab>\n</mat-tab-group>\n\n<mat-divider></mat-divider>\n\n<div class=\"profile-actions\">\n <button\n mat-button\n (click)=\"onLogout()\">\n <mat-icon>logout</mat-icon>\n {{ t.gettext('Logout') }}\n </button>\n</div>\n","//#region imports\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { AsyncPipe, CommonModule, JsonPipe } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n inject,\n AfterViewInit,\n Input,\n ViewChild,\n OnInit,\n OnDestroy,\n ElementRef,\n forwardRef,\n} from '@angular/core';\nimport {\n ReactiveFormsModule,\n FormsModule,\n FormGroup,\n FormControl,\n Validators,\n} from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDialogModule, MatDialogRef } from '@angular/material/dialog';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { RouterOutlet } from '@angular/router';\nimport { MtxLoaderModule } from '@ng-matero/extensions/loader';\nimport { Translation, TranslateDirective } from '@taon-dev/i18n/browser-prod';\nimport { walk } from 'lodash-walk-object/browser-prod';\nimport { Subscription, take } from 'rxjs';\nimport { Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\nimport {\n TaonSlideContentContentChildComponent,\n TaonSlideContentComponent,\n} from 'taon-ui/browser-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n\nimport { TaonProfilePictureComponent } from '../taon-profile/taon-profile-picture';\nimport { TaonSessionApiService } from '../taon-session.api.service';\nimport { TaonSessionConfigService } from '../taon-session.config.service';\nimport {\n GoogleCodeResponse,\n TaonErorsMap,\n TaonLoginErrors,\n TaonSessionState,\n} from '../taon-session.models';\nimport {\n TaonSessionConfig,\n TaonSessionProvider,\n} from '../taon-session.provider';\nimport { TaonSessionStateService } from '../taon-session.state.service';\nimport { TaonSessionValidator__NS__passwordMatchValidator } from '../taon-session.validators';\n\nimport { GoogleLoginRegisterButtonComponent } from './social-buttons/google-login-register-button.component';\nimport { TaonSessionProfileComponent } from './taon-session-profile/taon-session-profile.component';\n//#endregion\n\ndeclare const google: any;\n\nconst t = Translation.for('src/lib/taon-session/taon-session/taon-session.component.ts', {} as any);\n\n@Component({\n selector: 'taon-session',\n templateUrl: './taon-session.component.html',\n styleUrls: ['./taon-session.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n forwardRef(() => TaonSessionApiService),\n TaonSessionStateService,\n TaonSessionProvider,\n TaonSessionConfigService,\n ],\n imports: [\n //#region imports\n AsyncPipe,\n RouterOutlet,\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n JsonPipe,\n CommonModule,\n MatDialogModule,\n MatButtonModule,\n MatIconModule,\n MatDividerModule,\n MatInputModule,\n MatFormFieldModule,\n MatProgressSpinnerModule,\n MatProgressBarModule,\n MtxLoaderModule,\n ReactiveFormsModule,\n FormsModule,\n TranslateDirective,\n TaonSlideContentComponent,\n TaonSlideContentContentChildComponent,\n A11yModule,\n GoogleLoginRegisterButtonComponent,\n TaonSessionProfileComponent,\n TaonProfilePictureComponent,\n //#endregion\n ],\n})\nexport class TaonSessionComponent implements AfterViewInit, OnInit, OnDestroy {\n //#region fields & getters\n\n @Input()\n public config: TaonSessionConfig;\n\n @ViewChild('emailInput')\n private emailInput?: ElementRef<HTMLInputElement>;\n\n @ViewChild('passwordInput')\n private passwordInput?: ElementRef<HTMLInputElement>;\n\n @ViewChild('registrationPasswordInput')\n private registrationPasswordInput?: ElementRef<HTMLInputElement>;\n\n @ViewChild('slide')\n protected slide!: TaonSlideContentComponent;\n\n protected readonly t = t.for(this);\n\n protected readonly TaonSessionState = TaonSessionState;\n\n protected readonly TaonLoginErrors = TaonLoginErrors;\n\n protected readonly TaonErorsMap = TaonErorsMap;\n\n protected emailRegex = /^[a-zA-Z0-9._%+-]+@(?:[a-zA-Z0-9-]+\\.)+[a-zA-Z]{2,}$/;\n\n public taonSessionStateService: TaonSessionStateService = inject(\n TaonSessionStateService,\n );\n\n protected readonly taonSessionConfigService: TaonSessionConfigService =\n inject(TaonSessionConfigService);\n\n protected form = new FormGroup(\n {\n email: new FormControl('', []),\n password: new FormControl('', []),\n passwordRepeat: new FormControl('', []),\n googleCode: new FormControl('', []),\n state: new FormControl(\n this.taonSessionStateService.state.currentValue,\n [],\n ),\n },\n {\n validators: [TaonSessionValidator__NS__passwordMatchValidator],\n },\n );\n\n protected readonly dialogRef = inject(MatDialogRef<TaonSessionComponent>, {\n optional: true,\n });\n\n isLoggedIn$ = this.taonSessionStateService.isLoggedIn$;\n\n context$ = this.taonSessionStateService.context$; // TODO @LAST\n\n protected sub = new Subscription();\n\n protected googleButtonLoaded = false;\n\n public whenAllowedAnimationMap = new Map<\n TaonSessionState,\n TaonSessionState[]\n >([\n [\n TaonSessionState.LOGIN_OR_REGISTER,\n [\n TaonSessionState.ENTER_PASSWORD,\n TaonSessionState.ENTER_REGISTRATION_PASSWORDS,\n TaonSessionState.LOADING_AUTH,\n ],\n ],\n [TaonSessionState.LOADING_AUTH, [TaonSessionState.LOGIN_SUCCESS]],\n ]);\n\n public get isInsideDialog(): boolean {\n return !!this.dialogRef;\n }\n\n get googleClientId(): string {\n return this.config.socialLogin.google.googleClientId;\n }\n\n get microsoftClientId(): string {\n return this.config.socialLogin.microsoft.microsoftClientId;\n }\n\n get isAnySocialLoginEnabled(): boolean {\n return this.config.socialLogin.isAnySocialLoginEnabled;\n }\n\n get diableLoginByEmail(): boolean {\n return this.config.login.diableLoginByEmail;\n }\n\n //#endregion\n\n //#region reload me\n public reloadMe(): void {\n this.taonSessionStateService.refresh();\n }\n //#endregion\n\n //#region execute action for state\n public executeActionForState(): void {\n this.taonSessionStateService.executeActionForState(this.form);\n }\n //#endregion\n\n //#region goto\n public goTo(action: TaonSessionState): void {\n this.taonSessionStateService.state.set(action);\n }\n //#endregion\n\n //#region logout\n public logout(): void {\n this.taonSessionStateService.logout(() => {\n this.close();\n });\n }\n //#endregion\n\n //#region close\n protected close(): void {\n if (this.isInsideDialog) {\n this.dialogRef.close();\n }\n }\n //#endregion\n\n //#region set focus main input\n private focusMainInput(state: TaonSessionState): void {\n switch (state) {\n case TaonSessionState.LOGIN_OR_REGISTER:\n if (!this.config.socialLogin.isAnySocialLoginEnabled) {\n this.emailInput?.nativeElement.focus();\n }\n break;\n\n case TaonSessionState.ENTER_PASSWORD:\n this.passwordInput?.nativeElement.focus();\n break;\n\n case TaonSessionState.ENTER_REGISTRATION_PASSWORDS:\n this.registrationPasswordInput?.nativeElement.focus();\n break;\n\n // later:\n // case TaonSessionState.TWO_FA_AUTHENTICATOR:\n // this.twoFaInput?.nativeElement.focus();\n // break;\n }\n }\n //#endregion\n\n //#region google login\n private googleCodeClient?: any;\n\n private initGoogleLogin(): void {\n this.googleCodeClient = google.accounts.oauth2.initCodeClient({\n client_id: this.config.socialLogin.google.googleClientId,\n\n scope: 'openid email profile',\n\n ux_mode: 'popup',\n\n callback: async (response: GoogleCodeResponse) => {\n if (response.error) {\n console.error('[google-login]', response);\n return;\n }\n\n if (!response.code) {\n return;\n }\n\n await this.loginWithGoogleCode(response.code);\n },\n\n error_callback: (error: any) => {\n console.error('[google-login-popup]', error);\n },\n });\n }\n\n public loginWithGoogle(): void {\n this.form.controls.googleCode.setErrors({});\n if (!this.googleCodeClient) {\n this.initGoogleLogin();\n }\n\n this.googleCodeClient.requestCode();\n }\n\n private async loginWithGoogleCode(code: string): Promise<void> {\n this.form.controls.googleCode.setValue(code);\n // this.taonSessionStateService.state.set(TaonSessionState.LOADING_AUTH);\n this.form.controls.email.reset();\n this.form.controls.email.setValidators([]);\n this.form.controls.email.setErrors({});\n this.form.controls.email.updateValueAndValidity();\n this.executeActionForState();\n }\n //#endregion\n\n //#region hooks\n\n //#region hooks / on init\n ngOnInit(): void {\n const config = this.taonSessionConfigService.clone();\n walk.Object(\n this.config || {},\n (value, lodashPath) => {\n ___NS__set(config, lodashPath, value);\n },\n {\n walkGetters: false,\n },\n );\n this.config = config;\n\n this.isLoggedIn$.pipe(take(1)).subscribe();\n //Called after the constructor, initializing input properties, and the first call to ngOnChanges.\n //Add 'implements OnInit' to the class.\n if (!this.config.login.linkToDashboard) {\n throw `Please provide config input to taon-session (or taon-session-button) component`;\n }\n if (this.config.login.defaultEmail) {\n this.form.controls.email.setValue(this.config.login.defaultEmail);\n }\n\n this.resetPasswordScreen();\n }\n //#endregion\n\n //#region hooks / on destroy\n ngOnDestroy(): void {\n this.sub.unsubscribe();\n }\n //#endregion\n\n //#region hooks / after view init\n ngAfterViewInit(): void {\n this.sub.add(\n this.taonSessionStateService.state.currentState$.subscribe(\n ({ currentState, previousState }) => {\n if (\n currentState === TaonSessionState.LOGIN_SUCCESS &&\n this.isInsideDialog\n ) {\n this.close();\n }\n this.form.controls.state.setValue(currentState);\n if (currentState === TaonSessionState.LOGIN_OR_REGISTER) {\n this.form.controls.googleCode.setValue('');\n }\n this.updateValidatorsFor(currentState);\n // console.log({ newState });\n if (this.slide) {\n this.slide.goTo(currentState);\n setTimeout(() => {\n // console.log(`FOCUS: ${newState}`);\n this.focusMainInput(currentState);\n }, 500);\n }\n },\n ),\n );\n }\n //#endregion\n\n //#endregion\n\n //#region reset password field\n public resetPasswordScreen() {\n this.form.controls.password.reset();\n this.form.controls.password.setValue(\n this.config.login.defaultPassword || '',\n );\n this.form.controls.passwordRepeat.reset();\n this.form.controls.passwordRepeat.setValue(\n this.config.login.defaultPassword || '',\n );\n }\n //#endregion\n\n //#region update validators for\n private updateValidatorsFor(state: TaonSessionState): void {\n const { email, password, passwordRepeat } = this.form.controls;\n\n email.setValidators(\n state === TaonSessionState.LOGIN_OR_REGISTER &&\n !this.config?.login.diableLoginByEmail\n ? [Validators.required, Validators.pattern(this.emailRegex)]\n : [],\n );\n\n password.setValidators(\n state === TaonSessionState.ENTER_PASSWORD ||\n state === TaonSessionState.ENTER_REGISTRATION_PASSWORDS\n ? [Validators.required]\n : [],\n );\n\n passwordRepeat.setValidators(\n state === TaonSessionState.ENTER_REGISTRATION_PASSWORDS\n ? [Validators.required]\n : [],\n );\n\n if (!this.config?.login.diableLoginByEmail) {\n email.updateValueAndValidity();\n }\n\n password.updateValueAndValidity();\n passwordRepeat.updateValueAndValidity();\n }\n //#endregion\n}","<!-- #region close button -->\n<div\n class=\"absolute top-1 right-1 pointer z-1\"\n *ngIf=\"isInsideDialog\">\n <button\n mat-icon-button\n aria-label=\"Close dialog\"\n (click)=\"close()\">\n <mat-icon>close</mat-icon>\n </button>\n</div>\n<!-- #endregion -->\n<!-- STATE: {{ state.currentValue }} <br /> -->\n<!-- ERRORS: {{ form.errors | json }} <br /> -->\n<!-- IS LOGGED IN: {{ isLoggedIn$ | async }}<br /> -->\n<!-- {{ context$ | async | json }} -->\n<!-- <button (click)=\"test()\" >test</button> -->\n<h1 class=\"flex items-center justify-center pt-10\">\n <taon-profile-picture [hideButtons]=\"!(isLoggedIn$ | async)\" />\n <!-- <mat-icon\n class=\"!w-[100px] !h-[100px] !text-[100px] !leading-[100px]\"\n fontIcon=\"account_circle\">\n </mat-icon> -->\n</h1>\n<taon-slide-content\n #slide\n [whenAllowedAnimationMap]=\"whenAllowedAnimationMap\">\n <taon-slide-content-child\n [assignToState]=\"TaonSessionState.LOADING_INITIAL_AUTH_INFO\">\n <!-- #region login success -->\n <div class=\"p-5\">\n <h4\n class=\"mb-3\"\n translate [translate-t]=\"t\">\n Loading authenticaiton info..\n </h4>\n\n <div class=\"w-full pt-3\">\n <!-- success stuff -->\n </div>\n </div>\n <!-- #endregion -->\n </taon-slide-content-child>\n\n <taon-slide-content-child\n [assignToState]=\"TaonSessionState.LOADING_CHECK_USER_EMAIL_EXISTS\">\n <!-- #region LOADING_CHECK_USER_EMAIL_EXISTS -->\n <div class=\"p-5\">\n <h4\n class=\"mb-3\"\n translate [translate-t]=\"t\">\n Loading...\n </h4>\n\n <div class=\"w-full pt-3\">\n <!-- success stuff -->\n </div>\n </div>\n <!-- #endregion -->\n </taon-slide-content-child>\n\n <taon-slide-content-child [assignToState]=\"TaonSessionState.LOADING_AUTH\">\n <!-- #region LOADING_AUTH -->\n <div class=\"p-5\">\n <h4\n class=\"mb-3\"\n translate [translate-t]=\"t\">\n Loading authentication info...\n </h4>\n\n <div class=\"w-full pt-3\">\n <!-- success stuff -->\n </div>\n </div>\n <!-- #endregion -->\n </taon-slide-content-child>\n\n <taon-slide-content-child\n [assignToState]=\"TaonSessionState.LOGIN_OR_REGISTER\">\n <!-- #region login or register -->\n <div class=\"p-5\">\n <h4\n class=\"mb-3\"\n translate [translate-t]=\"t\">\n Login or Register\n </h4>\n\n <div class=\"w-full pt-3\">\n <!-- #region normal email -->\n <form\n [formGroup]=\"form\"\n (ngSubmit)=\"executeActionForState()\"\n class=\"w-full\">\n <mat-form-field\n [ngClass]=\"{\n 'cursor-not-allowed pointer-events-none select-none':\n diableLoginByEmail,\n }\"\n appearance=\"outline\"\n class=\"w-full email-field\">\n <mat-label *ngIf=\"!diableLoginByEmail\">Email</mat-label>\n\n <input\n #emailInput\n matInput\n formControlName=\"email\"\n class=\"pl-1\"\n type=\"email\"\n [placeholder]=\"\n diableLoginByEmail ? t.gettext('Login by email (disabled)') : ''\n \" />\n\n <button\n mat-icon-button\n [disabled]=\"diableLoginByEmail\"\n matSuffix\n color=\"primary\">\n <mat-icon>mail</mat-icon>\n </button>\n <mat-error\n *ngIf=\"\n form.get('email')?.hasError('pattern') &&\n form.get('email')?.touched\n \"\n translate [translate-t]=\"t\" [translate-t]=\"t\">\n Please enter a valid email address\n </mat-error>\n\n <mat-error\n *ngIf=\"\n form.get('email')?.hasError('required') &&\n form.get('email')?.touched\n \">\n {{ t.gettext('Email is') }} <strong translate [translate-t]=\"t\">required</strong>\n </mat-error>\n </mat-form-field>\n </form>\n <!-- #endregion -->\n\n @if (isAnySocialLoginEnabled) {\n <div class=\"divider\">\n <span translate [translate-t]=\"t\">or</span>\n </div>\n }\n\n <!-- GOOGLE BUTTON -->\n @if (googleClientId) {\n <google-login-register-button\n (googleSignIn)=\"loginWithGoogle()\"></google-login-register-button>\n\n <mat-error\n *ngIf=\"\n form\n .get('googleCode')\n ?.hasError(TaonLoginErrors.INVALID_SOCIAL_LOGIN)\n \">\n {{ TaonErorsMap.get(TaonLoginErrors.INVALID_SOCIAL_LOGIN) }}\n </mat-error>\n }\n\n <!-- <div\n *ngIf=\"googleClientId\"\n #googleBtn\n class=\"google-container\">\n <span\n *ngIf=\"!googleButtonLoaded\"\n class=\"text-300 p-2\"\n translate\n >loading google button..</span\n >\n <mat-progress-bar\n *ngIf=\"!googleButtonLoaded\"\n mode=\"indeterminate\"\n class=\"auth-progress\" />\n </div> -->\n\n <!-- MICROSOFT BUTTON -->\n <div\n *ngIf=\"microsoftClientId\"\n #microsoftBtn\n class=\"microsoft-container\">\n <button\n mat-stroked-button\n color=\"primary\"\n class=\"w-full microsoft-btn\"\n (click)=\"loginWithMicrosoft()\">\n <mat-icon class=\"mr-2\">login</mat-icon>\n {{ t.gettext('Continue with Microsoft') }}\n </button>\n </div>\n </div>\n\n <br />\n\n <div class=\"flex justify-content-end\">\n <!-- <button mat-button>\n {{ t.gettext('Login') }}\n </button> -->\n\n <!-- <button\n *ngIf=\"isInsideDialog\"\n mat-button\n mat-dialog-close>\n {{ t.gettext('Cancel') }}\n </button> -->\n </div>\n </div>\n <!-- #endregion -->\n </taon-slide-content-child>\n\n <taon-slide-content-child [assignToState]=\"TaonSessionState.ENTER_PASSWORD\">\n <!-- #region password -->\n <div class=\"p-5\">\n <h4 class=\"mb-3 flex items-center\">\n <button\n (click)=\"\n resetPasswordScreen(); goTo(TaonSessionState.LOGIN_OR_REGISTER)\n \"\n mat-icon-button\n type=\"button\">\n <mat-icon>keyboard_arrow_left</mat-icon>\n </button>\n <span class=\"flex\">{{ t.gettext('Enter Password') }}</span>\n </h4>\n <div class=\"w-full pt-3\">\n <form\n [formGroup]=\"form\"\n (ngSubmit)=\"executeActionForState()\"\n class=\"w-full\">\n <mat-form-field\n appearance=\"outline\"\n class=\"w-full email-field\">\n <mat-label>Password</mat-label>\n\n <input\n #passwordInput\n matInput\n formControlName=\"password\"\n class=\"pl-1\"\n type=\"password\" />\n\n <button\n mat-icon-button\n matSuffix\n color=\"primary\">\n <mat-icon>lock</mat-icon>\n </button>\n <mat-error\n *ngIf=\"\n form\n .get('password')\n ?.hasError(TaonLoginErrors.INVALID_PASSWORD) &&\n form.get('password')?.touched\n \">\n {{ TaonErorsMap.get(TaonLoginErrors.INVALID_PASSWORD) }}\n </mat-error>\n\n <mat-error\n *ngIf=\"\n form.get('password')?.hasError('required') &&\n form.get('password')?.touched\n \">\n {{ t.gettext('Password is') }} <strong translate [translate-t]=\"t\">required</strong>\n </mat-error>\n </mat-form-field>\n </form>\n </div>\n </div>\n <!-- #endregion -->\n </taon-slide-content-child>\n\n <taon-slide-content-child\n [assignToState]=\"TaonSessionState.ENTER_REGISTRATION_PASSWORDS\">\n <!-- #region registration passwords -->\n <div class=\"p-5\">\n <h4 class=\"mb-3 flex items-center\">\n <button\n (click)=\"\n resetPasswordScreen(); goTo(TaonSessionState.LOGIN_OR_REGISTER)\n \"\n mat-icon-button\n type=\"button\">\n <mat-icon>keyboard_arrow_left</mat-icon>\n </button>\n <span class=\"flex\">{{ t.gettext('Enter Registration Password') }}</span>\n </h4>\n <div class=\"w-full pt-3\">\n <form\n [formGroup]=\"form\"\n (ngSubmit)=\"executeActionForState()\"\n class=\"w-full\">\n <mat-form-field\n appearance=\"outline\"\n class=\"w-full email-field\">\n <mat-label>Enter Password For New Account</mat-label>\n\n <input\n #registrationPasswordInput\n matInput\n formControlName=\"password\"\n class=\"pl-1\"\n type=\"password\" />\n\n <mat-error\n *ngIf=\"\n form\n .get('password')\n ?.hasError(TaonLoginErrors.INVALID_PASSWORD) &&\n form.get('password')?.touched\n \">\n {{ TaonErorsMap.get(TaonLoginErrors.INVALID_PASSWORD) }}\n </mat-error>\n\n <mat-error\n *ngIf=\"\n form.get('password')?.hasError('required') &&\n form.get('password')?.touched\n \">\n {{ t.gettext('Password is') }} <strong translate [translate-t]=\"t\">required</strong>\n </mat-error>\n </mat-form-field>\n\n <mat-form-field\n appearance=\"outline\"\n class=\"w-full email-field\">\n <mat-label>Repeat Password</mat-label>\n\n <input\n matInput\n formControlName=\"passwordRepeat\"\n class=\"pl-1\"\n type=\"password\" />\n\n <button\n mat-icon-button\n matSuffix\n color=\"primary\">\n <mat-icon>key_vertical</mat-icon>\n </button>\n <mat-error\n *ngIf=\"\n form\n .get('passwordRepeat')\n ?.hasError(TaonLoginErrors.INVALID_PASSWORD) &&\n form.get('passwordRepeat')?.touched\n \">\n {{ TaonErorsMap.get(TaonLoginErrors.INVALID_PASSWORD) }}\n </mat-error>\n\n <mat-error\n *ngIf=\"\n form.get('passwordRepeat')?.hasError('required') &&\n form.get('passwordRepeat')?.touched\n \">\n {{ t.gettext('Repeated Password is ') }}\n <strong translate [translate-t]=\"t\">required</strong>\n </mat-error>\n </mat-form-field>\n <mat-error\n *ngIf=\"\n form.get('passwordRepeat').valid &&\n form.get('password').valid &&\n form.hasError(TaonLoginErrors.PASSWORDS_DO_NOT_MATCH)\n \">\n {{ TaonErorsMap.get(TaonLoginErrors.PASSWORDS_DO_NOT_MATCH) }}\n </mat-error>\n </form>\n </div>\n </div>\n <!-- #endregion -->\n </taon-slide-content-child>\n\n <taon-slide-content-child [assignToState]=\"TaonSessionState.LOGIN_SUCCESS\">\n <!-- #region login success -->\n <div class=\"p-5\">\n <h4\n class=\"mb-3\"\n translate [translate-t]=\"t\">\n Login Successfully\n </h4>\n\n @if (!isInsideDialog) {\n <div class=\"w-full pt-3\">\n <!-- success stuff -->\n <button\n mat-button\n (click)=\"logout()\">\n Logout\n </button>\n </div>\n }\n </div>\n <!-- #endregion -->\n </taon-slide-content-child>\n\n <taon-slide-content-child [assignToState]=\"TaonSessionState.PROFILE_INFO\">\n <!-- #region profile info -->\n <div class=\"p-5\">\n <h4\n class=\"mb-3\"\n translate [translate-t]=\"t\">\n Welcome\n </h4>\n\n <div class=\"w-full pt-3\">\n <!-- success stuff -->\n\n <taon-session-profile\n [config]=\"config\"\n (logout)=\"logout()\" />\n <!-- context -->\n </div>\n </div>\n <!-- #endregion -->\n </taon-slide-content-child>\n</taon-slide-content>\n","//#region @browser\nimport { Injectable, inject } from '@angular/core';\nimport { ActivatedRoute, PRIMARY_OUTLET, Router, UrlTree } from '@angular/router';\n\nexport type TaonBackofficeEntity = 'user' | 'group' | 'role' | 'permission' | 'session';\n\n@Injectable()\nexport class TaonBackofficeNavigationService {\n private readonly router = inject(Router);\n\n private readonly route = inject(ActivatedRoute);\n\n detailsLink(entity: TaonBackofficeEntity, id: number | string): UrlTree {\n const ancestry = this.route.snapshot.pathFromRoot;\n const outletRoot = ancestry.find(route => route.outlet !== PRIMARY_OUTLET);\n if (!outletRoot) {\n throw new Error('Session backoffice details require an admin outlet');\n }\n //#endregion\n\n const scope = ancestry.find(route =>\n route.routeConfig?.children?.some(child => child.path === 'authorization'),\n );\n if (!scope) {\n throw new Error(\n 'Session backoffice authorization routes are not configured',\n );\n }\n\n const base = scope.pathFromRoot\n .slice(ancestry.indexOf(outletRoot))\n .flatMap(route => route.url.map(segment => segment.path));\n const userPath = scope.routeConfig.children.some(\n child => child.path === 'users',\n )\n ? ['users']\n : ['session', 'user'];\n const target =\n entity === 'user'\n ? userPath\n : entity === 'session'\n ? ['session']\n : ['authorization', `${entity}s`];\n const [first, ...rest] = [...base, ...target, String(id)];\n const currentOutlet =\n this.router.parseUrl(this.router.url).root.children[outletRoot.outlet];\n\n // Match the admin layout: replace only its outlet and retain its base matrix parameters.\n return this.router.createUrlTree([\n {\n outlets: {\n [outletRoot.outlet]: [\n first,\n { ...currentOutlet?.segments[0]?.parameters },\n ...rest,\n ],\n },\n },\n ]);\n }\n\n openDetails(entity: TaonBackofficeEntity, id: number | string): void {\n void this.router.navigateByUrl(this.detailsLink(entity, id));\n }\n}\n","import { GET, Query, TaonBaseCrudController, TaonController, TaonPaginationQuery, getStatusCode, HttpStatusEnum, Models__NS__ClassType, Models__NS__ClassTypeKey, Models__NS__ConnectionOptionsLogs, Models__NS__ContextOptions, Models__NS__DatabaseConfig, Models__NS__DatabaseConfigTypeOrm, Models__NS__DatabasesFolder, Models__NS__DBRecreateMode, Models__NS__DBRecreateModeType, Models__NS__FrameworkMode, Models__NS__Http__NS__AsyncResponse, Models__NS__Http__NS__ClientAction, Models__NS__Http__NS__ContextENDPOINT, Models__NS__Http__NS__ExpressContext, Models__NS__Http__NS__FormlyFromType, Models__NS__Http__NS__MixResponse, Models__NS__Http__NS__PromiseObservableMix, Models__NS__Http__NS__RequestResults, Models__NS__Http__NS__Response, Models__NS__Http__NS__ResponseFuncOpt, Models__NS__Http__NS__SyncResponse, Models__NS__Http__NS__SyncResponseFunc, Models__NS__Http__NS__TaonResponseStream, Models__NS__KVDatabaseConfig, Models__NS__MiddlewareType, Models__NS__StartParams, Models__NS__TaonCtrlBeforeEachRequestParams, Models__NS__TaonCtxCloneParams, Models__NS__TaonInitializeParams, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\nimport { Brackets } from 'taon-typeorm/browser-prod';\nimport { Translation } from '@taon-dev/i18n/browser-prod';\n\nimport { TaonAuthContextRepository } from '../../taon-auth-context/taon-auth-context.repository';\nimport { TaonSessionUserIdentityRepository } from '../../taon-session-user/taon-session-user-identity.repository';\nimport { TaonSessionUserRepository } from '../../taon-session-user/taon-session-user.repository';\nimport { TaonSessionEntity } from '../taon-session.entity';\nimport { TaonSessionRepository } from '../taon-session.repository';\n\nimport { TaonSessionBackofficeModels__NS__SessionDetails, TaonSessionBackofficeModels__NS__SessionRow } from './taon-session-backoffice.models';\n\nconst t = Translation.for('src/lib/taon-session/taon-session-backoffice/taon-session-backoffice.controller.ts', {} as any);\n\n@TaonController({\n className: 'TaonSessionBackofficeController',\n allowedMethods: ['paginationQuery', 'getBy'],\n})\nexport class TaonSessionBackofficeController extends TaonBaseCrudController<\n TaonSessionBackofficeModels__NS__SessionRow,\n {},\n TaonSessionBackofficeController\n> {\n entityClassResolveFn = () => TaonSessionEntity;\n\n private readonly taonSessionRepository = this.injectCustomRepo(\n TaonSessionRepository,\n );\n\n private readonly taonAuthContextRepository = this.injectCustomRepo(\n TaonAuthContextRepository,\n );\n\n private readonly taonSessionUserRepository = this.injectCustomRepo(\n TaonSessionUserRepository,\n );\n\n private readonly taonSessionUserIdentityRepository = this.injectCustomRepo(\n TaonSessionUserIdentityRepository,\n );\n\n async beforeEachRequest({\n req,\n res,\n }: Models__NS__TaonCtrlBeforeEachRequestParams<TaonSessionBackofficeController>): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n protected async defaultPaginationQuery(\n query: TaonPaginationQuery<TaonSessionBackofficeController>,\n ): Promise<[TaonSessionBackofficeModels__NS__SessionRow[], number]> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n @GET()\n getBy(\n @Query('id') id: number | string,\n ): Taon__NS__Response<TaonSessionBackofficeModels__NS__SessionDetails> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n}","import { Injectable } from '@angular/core';\nimport { TaonBaseAngularService } from 'taon/browser-prod';\n\nimport { TaonSessionBackofficeController } from './taon-session-backoffice.controller';\nimport { TaonSessionBackofficeModels__NS__SessionDetails, TaonSessionBackofficeModels__NS__SessionRow } from './taon-session-backoffice.models';\n\n@Injectable()\nexport class TaonSessionBackofficeApiService extends TaonBaseAngularService {\n readonly taonSessionBackofficeController = this.injectController(\n TaonSessionBackofficeController,\n );\n\n async getSessionDetails(\n id: number,\n ): Promise<TaonSessionBackofficeModels__NS__SessionDetails> {\n const response = await this.taonSessionBackofficeController\n .getBy(id)\n .request();\n return response.body.json;\n }\n}","import { DatePipe } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n Input,\n OnChanges,\n inject,\n signal,\n} from '@angular/core';\nimport { RouterLink } from '@angular/router';\nimport { Translation } from '@taon-dev/i18n/browser-prod';\nimport { Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\n\nimport { TaonBackofficeNavigationService } from './taon-backoffice-navigation.service';\nimport { TaonSessionBackofficeApiService } from './taon-session-backoffice.api.service';\nimport { TaonSessionBackofficeModels__NS__SessionDetails, TaonSessionBackofficeModels__NS__SessionRow } from './taon-session-backoffice.models';\n\nconst t = Translation.for('src/lib/taon-session/taon-session-backoffice/taon-session-details.component.ts', {} as any);\n\n@Component({\n selector: 'taon-session-details',\n templateUrl: './taon-session-details.component.html',\n styleUrls: ['./taon-session-backoffice.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [DatePipe, RouterLink],\n providers: [\n TaonSessionBackofficeApiService,\n TaonBackofficeNavigationService,\n ],\n})\nexport class TaonSessionDetailsComponent implements OnChanges {\n readonly t = t.for(this);\n\n @Input({ required: true }) sessionId!: number;\n\n @Input() detail?: TaonSessionBackofficeModels__NS__SessionDetails;\n\n readonly taonBackofficeNavigationService = inject(TaonBackofficeNavigationService);\n\n private readonly taonSessionBackofficeApiService = inject(TaonSessionBackofficeApiService);\n\n readonly session = signal<TaonSessionBackofficeModels__NS__SessionDetails | null>(null);\n\n readonly loading = signal(false);\n\n readonly error = signal('');\n\n private requestId = 0;\n\n ngOnChanges(): void {\n const requestId = ++this.requestId;\n this.session.set(this.detail ?? null);\n this.error.set('');\n this.loading.set(!this.detail);\n if (!this.detail) {\n void this.loadDetails(requestId);\n }\n }\n\n private async loadDetails(requestId: number): Promise<void> {\n try {\n const detail = await this.taonSessionBackofficeApiService.getSessionDetails(\n Number(this.sessionId),\n );\n if (requestId === this.requestId) {\n this.session.set(detail);\n }\n } catch (error) {\n if (requestId === this.requestId) {\n console.error('[session-details]', error);\n this.error.set(this.t.gettext('Unable to load session details.'));\n }\n } finally {\n if (requestId === this.requestId) {\n this.loading.set(false);\n }\n }\n }\n}","@if (loading()) {\n <p role=\"status\">{{ t.gettext('Loading session details...') }}</p>\n}\n@if (error()) {\n <p role=\"alert\">{{ error() }}</p>\n}\n@if (session(); as detail) {\n <dl class=\"grid grid-cols-[auto_1fr] gap-x-4 gap-y-2 p-4\">\n <dt>{{ t.gettext('Session ID') }}</dt>\n <dd>{{ detail.id }}</dd>\n <dt>{{ t.gettext('User ID') }}</dt>\n <dd>{{ detail.userId }}</dd>\n <dt>{{ t.gettext('Username') }}</dt>\n <dd>\n @if (detail.user; as user) {\n <a [routerLink]=\"taonBackofficeNavigationService.detailsLink('user', user.id)\">\n {{ user.username || 'User #' + user.id }}\n </a>\n } @else {\n {{ t.gettext('Unavailable') }}\n }\n </dd>\n <dt>{{ t.gettext('Email') }}</dt>\n <dd>{{ detail.identity?.email || t.gettext('Unavailable') }}</dd>\n <dt>{{ t.gettext('Provider') }}</dt>\n <dd>{{ detail.authenticationProvider || detail.identity?.provider || t.gettext('Unavailable') }}</dd>\n @if (detail.identityId) {\n <dt>{{ t.gettext('Identity ID') }}</dt>\n <dd>{{ detail.identityId }}</dd>\n }\n <dt>{{ t.gettext('Device') }}</dt>\n <dd>{{ detail.deviceName || t.gettext('Unknown') }}</dd>\n <dt>{{ t.gettext('IP') }}</dt>\n <dd>{{ detail.ip || t.gettext('Unknown') }}</dd>\n <dt>{{ t.gettext('User agent') }}</dt>\n <dd class=\"break-all\">{{ detail.userAgent || t.gettext('Unknown') }}</dd>\n <dt>{{ t.gettext('Logged in') }}</dt>\n <dd>{{ (detail.createdAt | date: 'medium') || t.gettext('Unknown') }}</dd>\n <dt>{{ t.gettext('Last activity') }}</dt>\n <dd>{{ (detail.lastActivityAt | date: 'medium') || t.gettext('Unknown') }}</dd>\n <dt>{{ t.gettext('Expires') }}</dt>\n <dd>{{ (detail.expiresAt | date: 'medium') || t.gettext('Unknown') }}</dd>\n <dt>{{ t.gettext('Revoked') }}</dt>\n <dd>{{ (detail.revokedAt | date: 'medium') || t.gettext('Not revoked') }}</dd>\n @if (detail.revokeReason) {\n <dt>{{ t.gettext('Revocation reason') }}</dt>\n <dd>{{ detail.revokeReason }}</dd>\n }\n </dl>\n}\n","//#region imports\nimport { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { MtxGridColumn } from '@ng-matero/extensions/grid';\nimport { TaonDatatableComponent } from '@taon-dev/ui/browser-prod';\nimport { Translation } from '@taon-dev/i18n/browser-prod';\nimport { Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\n\nimport { TaonBackofficeNavigationService } from './taon-backoffice-navigation.service';\nimport { TaonSessionBackofficeApiService } from './taon-session-backoffice.api.service';\nimport { TaonSessionBackofficeModels__NS__SessionDetails, TaonSessionBackofficeModels__NS__SessionRow } from './taon-session-backoffice.models';\nimport { TaonSessionDetailsComponent } from './taon-session-details.component';\n\n//#endregion\n\nconst t = Translation.for('src/lib/taon-session/taon-session-backoffice/taon-session-backoffice.component.ts', {} as any);\n\n@Component({\n selector: 'app-taon-session-backoffice',\n templateUrl: './taon-session-backoffice.component.html',\n styleUrls: ['./taon-session-backoffice.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [TaonDatatableComponent, TaonSessionDetailsComponent],\n providers: [\n TaonSessionBackofficeApiService,\n TaonBackofficeNavigationService,\n ],\n})\nexport class TaonSessionBackofficeComponent {\n readonly t = t.for(this);\n\n readonly taonSessionBackofficeApiService = inject(TaonSessionBackofficeApiService);\n\n readonly taonBackofficeNavigationService = inject(TaonBackofficeNavigationService);\n\n public get crud() {\n return this.taonSessionBackofficeApiService.taonSessionBackofficeController;\n }\n\n readonly columns: MtxGridColumn[] = [\n { header: this.t.gettext('User ID'), field: 'userId', sortable: true, showExpand: true },\n { header: this.t.gettext('Device'), field: 'deviceName', sortable: true },\n { header: this.t.gettext('IP'), field: 'ip', sortable: true },\n {\n header: this.t.gettext('Actions'),\n field: 'actions',\n type: 'button',\n buttons: [\n {\n type: 'icon',\n icon: 'open_in_new',\n tooltip: this.t.gettext('Session details'),\n click: (session: TaonSessionBackofficeModels__NS__SessionRow) =>\n this.taonBackofficeNavigationService.openDetails('session', session.id),\n },\n ],\n },\n ];\n}","<h2>{{ t.gettext('Active sessions') }}</h2>\n<taon-datatable\n [entityCrudController]=\"crud\"\n [columns]=\"columns\"\n [allowedColumns]=\"['userId', 'deviceName', 'ip']\"\n [hideAddButton]=\"true\"\n searchMode=\"advanced\"\n [expansionTemplate]=\"expansionTemplate\">\n</taon-datatable>\n<ng-template #expansionTemplate let-session>\n <taon-session-details [sessionId]=\"session.id\"></taon-session-details>\n</ng-template>\n","//#region imports\nimport { TaonController, TaonBaseCrudController, Query, GET, POST, DELETE, Body, ClassHelpers__NS__asyncHandler, ClassHelpers__NS__ensureClassConfig, ClassHelpers__NS__ensureMethodConfig, ClassHelpers__NS__getClassConfig, ClassHelpers__NS__getClassFnFromObject, ClassHelpers__NS__getControllerConfigs, ClassHelpers__NS__getFullInternalName, ClassHelpers__NS__getMethodsNames, ClassHelpers__NS__getName, ClassHelpers__NS__getOrginalClass, ClassHelpers__NS__getUniqueKey, ClassHelpers__NS__hasParentClassWithName, ClassHelpers__NS__isContextClassObject, ClassHelpers__NS__mapFnError, ClassHelpers__NS__setName, Models__NS__ClassType, Models__NS__ClassTypeKey, Models__NS__ConnectionOptionsLogs, Models__NS__ContextOptions, Models__NS__DatabaseConfig, Models__NS__DatabaseConfigTypeOrm, Models__NS__DatabasesFolder, Models__NS__DBRecreateMode, Models__NS__DBRecreateModeType, Models__NS__FrameworkMode, Models__NS__Http__NS__AsyncResponse, Models__NS__Http__NS__ClientAction, Models__NS__Http__NS__ContextENDPOINT, Models__NS__Http__NS__ExpressContext, Models__NS__Http__NS__FormlyFromType, Models__NS__Http__NS__MixResponse, Models__NS__Http__NS__PromiseObservableMix, Models__NS__Http__NS__RequestResults, Models__NS__Http__NS__Response, Models__NS__Http__NS__ResponseFuncOpt, Models__NS__Http__NS__SyncResponse, Models__NS__Http__NS__SyncResponseFunc, Models__NS__Http__NS__TaonResponseStream, Models__NS__KVDatabaseConfig, Models__NS__MiddlewareType, Models__NS__StartParams, Models__NS__TaonCtrlBeforeEachRequestParams, Models__NS__TaonCtxCloneParams, Models__NS__TaonInitializeParams, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n\nimport { TaonRoleEntity } from '../taon-role/taon-role.entity';\nimport { TaonSessionRepository } from '../taon-session/taon-session.repository';\nimport { TaonSessionUserGroupRepository } from '../taon-session-user/taon-session-user-group.repository';\nimport { TaonSessionUserController } from '../taon-session-user/taon-session-user.controller';\n\nimport { TaonGroupRoleRepository } from './taon-group-role.repository';\nimport { TaonGroupEntity } from './taon-group.entity';\nimport { TaonGroupRepository } from './taon-group.repository';\n//#endregion\n\n@TaonController({\n className: 'TaonGroupController',\n allowedMethods: [\n //#region allowed methods\n 'paginationQuery',\n 'getAll',\n 'getBy',\n 'getGroupsForUser',\n 'assignGroupToUser',\n 'unassignGroupFromUser',\n 'getRolesForGroup',\n 'assignRoleToGroup',\n 'unassignRoleFromGroup',\n //#endregion\n ],\n})\nexport class TaonGroupController extends TaonBaseCrudController<\n TaonGroupEntity,\n {},\n TaonGroupController\n> {\n entityClassResolveFn: () => typeof TaonGroupEntity = () => TaonGroupEntity;\n\n taonGroupRepository = this.injectCustomRepo(TaonGroupRepository);\n\n private readonly taonGroupRoleRepository = this.injectCustomRepo(\n TaonGroupRoleRepository,\n );\n\n private readonly taonSessionUserGroupRepository = this.injectCustomRepo(\n TaonSessionUserGroupRepository,\n );\n\n private readonly taonSessionRepository = this.injectCustomRepo(\n TaonSessionRepository,\n );\n\n //#region methods & getters / before each request\n protected async beforeEachRequest({\n req,\n res,\n methodConfig,\n }: Models__NS__TaonCtrlBeforeEachRequestParams<TaonSessionUserController>): Promise<void> {\n await this.taonSessionRepository.throwIfNotAuthenticated({\n req,\n res,\n });\n }\n //#endregion\n\n //#region methods & getters / groups assigned to user\n @GET()\n getGroupsForUser(\n @Query('userId') userId: number,\n ): Taon__NS__Response<TaonGroupEntity[]> {\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / assign group to user\n @POST()\n assignGroupToUser(\n @Body('userId') userId: number,\n @Body('groupId') groupId: number,\n ): Taon__NS__Response<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / unassign group from user\n @DELETE()\n unassignGroupFromUser(\n @Query('userId') userId: number,\n @Query('groupId') groupId: number,\n ): Taon__NS__Response<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / roles assigned to group\n @GET()\n getRolesForGroup(\n @Query('groupId') groupId: number,\n ): Taon__NS__Response<TaonRoleEntity[]> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / assign role to group\n @POST()\n assignRoleToGroup(\n @Body('groupId') groupId: number,\n @Body('roleId') roleId: number,\n ): Taon__NS__Response<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / unassign role from group\n @DELETE()\n unassignRoleFromGroup(\n @Query('groupId') groupId: number,\n @Query('roleId') roleId: number,\n ): Taon__NS__Response<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n}","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { TaonBaseAngularService, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\n\nimport type { TaonRoleEntity } from '../taon-role/taon-role.entity';\n\nimport { TaonGroupController } from './taon-group.controller';\nimport type { TaonGroupEntity } from './taon-group.entity';\n\n@Injectable()\nexport class TaonGroupApiService extends TaonBaseAngularService {\n public taonGroupController = this.injectController(TaonGroupController);\n\n public get allMyEntities$(): Observable<TaonGroupEntity[]> {\n return this.taonGroupController.getAll().request!().observable.pipe(\n map(res => res.body?.json),\n );\n }\n\n //#region methods / all groups\n\n async getAllGroups(): Promise<TaonGroupEntity[]> {\n const response = await this.taonGroupController.getAll().request();\n\n return response.body?.json ?? [];\n }\n\n //#endregion\n\n //#region methods / user groups\n\n async getGroupsForUser(userId: number): Promise<TaonGroupEntity[]> {\n const response = await this.taonGroupController\n .getGroupsForUser(userId)\n .request();\n\n return response.body?.json ?? [];\n }\n\n async assignGroupToUser(userId: number, groupId: number): Promise<void> {\n await this.taonGroupController.assignGroupToUser(userId, groupId).request();\n }\n\n async unassignGroupFromUser(userId: number, groupId: number): Promise<void> {\n await this.taonGroupController\n .unassignGroupFromUser(userId, groupId)\n .request();\n }\n\n //#endregion\n\n //#region methods / group roles\n\n async getRolesForGroup(groupId: number): Promise<TaonRoleEntity[]> {\n const response = await this.taonGroupController\n .getRolesForGroup(groupId)\n .request();\n\n return response.body?.json ?? [];\n }\n\n async assignRoleToGroup(groupId: number, roleId: number): Promise<void> {\n await this.taonGroupController.assignRoleToGroup(groupId, roleId).request();\n }\n\n async unassignRoleFromGroup(groupId: number, roleId: number): Promise<void> {\n await this.taonGroupController\n .unassignRoleFromGroup(groupId, roleId)\n .request();\n }\n\n //#endregion\n}","//#region imports\nimport { TaonController, TaonBaseCrudController, Query, GET, POST, DELETE, Body, ClassHelpers__NS__asyncHandler, ClassHelpers__NS__ensureClassConfig, ClassHelpers__NS__ensureMethodConfig, ClassHelpers__NS__getClassConfig, ClassHelpers__NS__getClassFnFromObject, ClassHelpers__NS__getControllerConfigs, ClassHelpers__NS__getFullInternalName, ClassHelpers__NS__getMethodsNames, ClassHelpers__NS__getName, ClassHelpers__NS__getOrginalClass, ClassHelpers__NS__getUniqueKey, ClassHelpers__NS__hasParentClassWithName, ClassHelpers__NS__isContextClassObject, ClassHelpers__NS__mapFnError, ClassHelpers__NS__setName, Models__NS__ClassType, Models__NS__ClassTypeKey, Models__NS__ConnectionOptionsLogs, Models__NS__ContextOptions, Models__NS__DatabaseConfig, Models__NS__DatabaseConfigTypeOrm, Models__NS__DatabasesFolder, Models__NS__DBRecreateMode, Models__NS__DBRecreateModeType, Models__NS__FrameworkMode, Models__NS__Http__NS__AsyncResponse, Models__NS__Http__NS__ClientAction, Models__NS__Http__NS__ContextENDPOINT, Models__NS__Http__NS__ExpressContext, Models__NS__Http__NS__FormlyFromType, Models__NS__Http__NS__MixResponse, Models__NS__Http__NS__PromiseObservableMix, Models__NS__Http__NS__RequestResults, Models__NS__Http__NS__Response, Models__NS__Http__NS__ResponseFuncOpt, Models__NS__Http__NS__SyncResponse, Models__NS__Http__NS__SyncResponseFunc, Models__NS__Http__NS__TaonResponseStream, Models__NS__KVDatabaseConfig, Models__NS__MiddlewareType, Models__NS__StartParams, Models__NS__TaonCtrlBeforeEachRequestParams, Models__NS__TaonCtxCloneParams, Models__NS__TaonInitializeParams, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n\nimport { TaonPermissionEntity } from '../taon-permission/taon-permission.entity';\nimport { TaonSessionRepository } from '../taon-session/taon-session.repository';\nimport { TaonSessionUserController } from '../taon-session-user/taon-session-user.controller';\n\nimport { TaonRolePermissionRepository } from './taon-role-permission.repository';\nimport { TaonRoleEntity } from './taon-role.entity';\nimport { TaonRoleRepository } from './taon-role.repository';\n//#endregion\n\n@TaonController({\n className: 'TaonRoleController',\n allowedMethods: [\n //#region allowed methods\n 'paginationQuery',\n 'getAll',\n 'getBy',\n 'getPermissionsForRole',\n 'assignPermissionToRole',\n 'unassignPermissionFromRole',\n //#endregion\n ],\n})\nexport class TaonRoleController extends TaonBaseCrudController<TaonRoleEntity> {\n entityClassResolveFn: () => typeof TaonRoleEntity = () => TaonRoleEntity;\n\n taonRoleRepository = this.injectCustomRepo(TaonRoleRepository);\n\n private readonly taonRolePermissionRepository = this.injectCustomRepo(\n TaonRolePermissionRepository,\n );\n\n private readonly taonSessionRepository = this.injectCustomRepo(\n TaonSessionRepository,\n );\n\n async beforeEachRequest({\n req,\n res,\n methodConfig,\n }: Models__NS__TaonCtrlBeforeEachRequestParams<TaonSessionUserController>): Promise<void> {\n await this.taonSessionRepository.throwIfNotAuthenticated({\n req,\n res,\n });\n }\n\n //#region methods & getters / permissions assigned to role\n @GET()\n getPermissionsForRole(\n @Query('roleId') roleId: number,\n ): Taon__NS__Response<TaonPermissionEntity[]> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / assign permission to role\n @POST()\n assignPermissionToRole(\n @Body('roleId') roleId: number,\n @Body('permissionId') permissionId: number,\n ): Taon__NS__Response<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / unassign permission from role\n @DELETE()\n unassignPermissionFromRole(\n @Query('roleId') roleId: number,\n @Query('permissionId') permissionId: number,\n ): Taon__NS__Response<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n}","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { TaonBaseAngularService, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\n\nimport type { TaonPermissionEntity } from '../taon-permission/taon-permission.entity';\n\nimport type { TaonRoleEntity } from './taon-role.entity';\nimport { TaonRoleController } from './taon-role.controller';\n\n@Injectable()\nexport class TaonRoleApiService extends TaonBaseAngularService {\n public taonRoleController = this.injectController(TaonRoleController);\n\n public get allMyEntities$(): Observable<TaonRoleEntity[]> {\n return this.taonRoleController.getAll().request!().observable.pipe(\n map(res => res.body?.json),\n );\n }\n\n //#region methods / all roles\n\n async getAllRoles(): Promise<TaonRoleEntity[]> {\n const response = await this.taonRoleController.getAll().request();\n\n return response.body?.json ?? [];\n }\n\n //#endregion\n\n //#region methods / role permissions\n\n async getPermissionsForRole(roleId: number): Promise<TaonPermissionEntity[]> {\n const response = await this.taonRoleController\n .getPermissionsForRole(roleId)\n .request();\n\n return response.body?.json ?? [];\n }\n\n async assignPermissionToRole(\n roleId: number,\n permissionId: number,\n ): Promise<void> {\n await this.taonRoleController\n .assignPermissionToRole(roleId, permissionId)\n .request();\n }\n\n async unassignPermissionFromRole(\n roleId: number,\n permissionId: number,\n ): Promise<void> {\n await this.taonRoleController\n .unassignPermissionFromRole(roleId, permissionId)\n .request();\n }\n\n //#endregion\n}","//#region imports\nimport { TaonSessionUserController } from '../taon-session-user/taon-session-user.controller';\nimport { TaonSessionRepository } from '../taon-session/taon-session.repository';\nimport { TaonController, TaonBaseCrudController, Query, GET, PUT, Body, ClassHelpers__NS__asyncHandler, ClassHelpers__NS__ensureClassConfig, ClassHelpers__NS__ensureMethodConfig, ClassHelpers__NS__getClassConfig, ClassHelpers__NS__getClassFnFromObject, ClassHelpers__NS__getControllerConfigs, ClassHelpers__NS__getFullInternalName, ClassHelpers__NS__getMethodsNames, ClassHelpers__NS__getName, ClassHelpers__NS__getOrginalClass, ClassHelpers__NS__getUniqueKey, ClassHelpers__NS__hasParentClassWithName, ClassHelpers__NS__isContextClassObject, ClassHelpers__NS__mapFnError, ClassHelpers__NS__setName, Models__NS__ClassType, Models__NS__ClassTypeKey, Models__NS__ConnectionOptionsLogs, Models__NS__ContextOptions, Models__NS__DatabaseConfig, Models__NS__DatabaseConfigTypeOrm, Models__NS__DatabasesFolder, Models__NS__DBRecreateMode, Models__NS__DBRecreateModeType, Models__NS__FrameworkMode, Models__NS__Http__NS__AsyncResponse, Models__NS__Http__NS__ClientAction, Models__NS__Http__NS__ContextENDPOINT, Models__NS__Http__NS__ExpressContext, Models__NS__Http__NS__FormlyFromType, Models__NS__Http__NS__MixResponse, Models__NS__Http__NS__PromiseObservableMix, Models__NS__Http__NS__RequestResults, Models__NS__Http__NS__Response, Models__NS__Http__NS__ResponseFuncOpt, Models__NS__Http__NS__SyncResponse, Models__NS__Http__NS__SyncResponseFunc, Models__NS__Http__NS__TaonResponseStream, Models__NS__KVDatabaseConfig, Models__NS__MiddlewareType, Models__NS__StartParams, Models__NS__TaonCtrlBeforeEachRequestParams, Models__NS__TaonCtxCloneParams, Models__NS__TaonInitializeParams, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n\n\nimport { TaonPermissionEntity } from './taon-permission.entity';\nimport { TaonPermissionRepository } from './taon-permission.repository';\n//#endregion\n\n@TaonController({\n className: 'TaonPermissionController',\n allowedMethods: [\n //#region allowed methods\n 'paginationQuery',\n 'getAll',\n 'getBy',\n 'updateDescription',\n //#endregion\n ],\n})\nexport class TaonPermissionController extends TaonBaseCrudController<TaonPermissionEntity> {\n entityClassResolveFn: () => typeof TaonPermissionEntity = () =>\n TaonPermissionEntity;\n\n taonPermissionRepository = this.injectCustomRepo(TaonPermissionRepository);\n\n private readonly taonSessionRepository = this.injectCustomRepo(\n TaonSessionRepository,\n );\n\n async beforeEachRequest({\n req,\n res,\n methodConfig,\n }: Models__NS__TaonCtrlBeforeEachRequestParams<TaonSessionUserController>): Promise<void> {\n await this.taonSessionRepository.throwIfNotAuthenticated({\n req,\n res,\n });\n }\n\n //#region methods & getters / update description\n @PUT()\n updateDescription(\n @Body('permissionId') permissionId: number,\n @Body('description') description: string,\n ): Taon__NS__Response<TaonPermissionEntity> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n}","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { TaonBaseAngularService, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\n\nimport type { TaonPermissionEntity } from './taon-permission.entity';\nimport { TaonPermissionController } from './taon-permission.controller';\n\n@Injectable()\nexport class TaonPermissionApiService extends TaonBaseAngularService {\n public taonPermissionController = this.injectController(\n TaonPermissionController,\n );\n\n public get allMyEntities$(): Observable<TaonPermissionEntity[]> {\n return this.taonPermissionController.getAll().request!().observable.pipe(\n map(res => res.body?.json),\n );\n }\n\n //#region methods / all permissions\n\n async getAllPermissions(): Promise<TaonPermissionEntity[]> {\n const response = await this.taonPermissionController.getAll().request();\n\n return response.body?.json ?? [];\n }\n\n //#endregion\n\n //#region methods / description\n\n async updateDescription(\n permissionId: number,\n description: string,\n ): Promise<TaonPermissionEntity> {\n const response = await this.taonPermissionController\n .updateDescription(permissionId, description)\n .request();\n\n return response.body?.json;\n }\n\n //#endregion\n}","//#region @browser\nimport { inject } from '@angular/core';\nimport { ResolveFn } from '@angular/router';\n\nimport { TaonGroupApiService } from '../../taon-group/taon-group-api.service';\nimport type { TaonGroupEntity } from '../../taon-group/taon-group.entity';\nimport { TaonRoleApiService } from '../../taon-role/taon-role-api.service';\nimport type { TaonRoleEntity } from '../../taon-role/taon-role.entity';\nimport { TaonPermissionApiService } from '../../taon-permission/taon-permission-api.service';\nimport type { TaonPermissionEntity } from '../../taon-permission/taon-permission.entity';\nimport { TaonSessionUserApiService } from '../../taon-session-user/taon-session-user-api.service';\nimport type { TaonSessionUserEntity } from '../../taon-session-user/taon-session-user.entity';\nimport { TaonSessionBackofficeApiService } from './taon-session-backoffice.api.service';\nimport type { TaonSessionBackofficeModels__NS__SessionDetails, TaonSessionBackofficeModels__NS__SessionRow } from './taon-session-backoffice.models';\n\nexport type TaonBackofficeDetail =\n | { kind: 'user'; entity: TaonSessionUserEntity }\n | { kind: 'group'; entity: TaonGroupEntity }\n | { kind: 'role'; entity: TaonRoleEntity }\n | { kind: 'permission'; entity: TaonPermissionEntity }\n | { kind: 'session'; entity: TaonSessionBackofficeModels__NS__SessionDetails };\n\nexport const taonBackofficeDetailsResolver: ResolveFn<\n TaonBackofficeDetail\n> = async route => {\n const id = Number(route.paramMap.get('id'));\n if (!Number.isSafeInteger(id) || id <= 0) {\n throw new Error('Invalid backoffice entity ID');\n }\n\n let detail: TaonBackofficeDetail;\n switch (route.data['kind']) {\n case 'session':\n detail = {\n kind: 'session',\n entity: await inject(TaonSessionBackofficeApiService).getSessionDetails(id),\n };\n break;\n case 'user':\n detail = {\n kind: 'user',\n entity: (await inject(TaonSessionUserApiService)\n .taonSessionUserController.getBy(id).request()).body.json,\n };\n break;\n case 'group':\n detail = {\n kind: 'group',\n entity: (await inject(TaonGroupApiService)\n .taonGroupController.getBy(id).request()).body.json,\n };\n break;\n case 'role':\n detail = {\n kind: 'role',\n entity: (await inject(TaonRoleApiService)\n .taonRoleController.getBy(id).request()).body.json,\n };\n break;\n case 'permission':\n detail = {\n kind: 'permission',\n entity: (await inject(TaonPermissionApiService)\n .taonPermissionController.getBy(id).request()).body.json,\n };\n break;\n default:\n throw new Error('Unknown backoffice entity');\n }\n if (!detail.entity) {\n throw new Error('Backoffice entity not found');\n }\n return detail;\n};\n\n//#endregion","//#region imports\nimport { Routes } from '@angular/router';\nimport { adminLazyRoute } from '@taon-dev/ui/browser-prod';\nimport { taonBackofficeDetailsResolver } from './taon-backoffice-details.resolver';\nimport { TaonSessionBackofficeApiService } from './taon-session-backoffice.api.service';\n//#endregion\n\nexport const TaonSessionBackofficeRoutes: Routes = [\n {\n path: '',\n pathMatch: 'full',\n loadComponent: () =>\n import('./taon-session-backoffice.component').then(\n m => m.TaonSessionBackofficeComponent,\n ),\n },\n adminLazyRoute({\n path: 'user',\n menuItem: 'Users',\n icon: 'account_circle',\n expandable: true,\n loader: () =>\n import('../../taon-session-user/taon-session-backoffice-users/taon-session-backoffice-users.routes').then(\n m => m.TaonSessionBackofficeUsersRoutes,\n ),\n }),\n {\n path: ':id',\n data: { kind: 'session', hideInNavigation: true },\n providers: [TaonSessionBackofficeApiService],\n resolve: { detail: taonBackofficeDetailsResolver },\n loadComponent: () =>\n import('./taon-backoffice-details-page.component').then(\n m => m.TaonBackofficeDetailsPageComponent,\n ),\n },\n];\n\n/**\n * By default exporting TaonSessionBackofficeRoutes,\n * the command `taon generate:app:routes`\n * will automatically add them to the root routes in ./src/app.ts.\n */\n// export default TaonSessionBackofficeRoutes;\n","import type { TaonSessionUserIdentityEntity } from '../../taon-session-user/taon-session-user-identity.entity';\nimport type { TaonSessionUserEntity } from '../../taon-session-user/taon-session-user.entity';\nimport type { TaonSessionEntity } from '../taon-session.entity';\n\n//namespace TaonSessionBackofficeModels\n\n export type TaonSessionBackofficeModels__NS__SessionRow = Pick<\n TaonSessionEntity,\n 'id' | 'userId' | 'deviceName' | 'ip'\n >;\n\n export type TaonSessionBackofficeModels__NS__SessionDetails = TaonSessionBackofficeModels__NS__SessionRow &\n Pick<\n TaonSessionEntity,\n | 'identityId'\n | 'authenticationProvider'\n | 'userAgent'\n | 'createdAt'\n | 'lastActivityAt'\n | 'expiresAt'\n | 'revokedAt'\n | 'revokeReason'\n > & {\n user: Pick<TaonSessionUserEntity, 'id' | 'username'> | null;\n identity: Pick<\n TaonSessionUserIdentityEntity,\n 'id' | 'email' | 'provider'\n > | null;\n };\n\n//end of namespace TaonSessionBackofficeModels\n","//#region imports\nimport { AsyncPipe, CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n forwardRef,\n inject,\n Input,\n OnInit,\n} from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDialog } from '@angular/material/dialog';\nimport { MatIconModule } from '@angular/material/icon';\nimport { Router, RouterOutlet } from '@angular/router';\nimport { walk } from 'lodash-walk-object/browser-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n\nimport { TaonSessionComponent } from '../taon-session/taon-session.component';\nimport { TaonSessionApiService } from '../taon-session.api.service';\nimport { TaonSessionConfigService } from '../taon-session.config.service';\nimport { TaonSessionState } from '../taon-session.models';\nimport { TaonSessionConfig } from '../taon-session.provider';\nimport { TaonSessionStateService } from '../taon-session.state.service';\n\n//#endregion\n\n@Component({\n selector: 'taon-session-button',\n templateUrl: './taon-session-button.component.html',\n styleUrls: ['./taon-session-button.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n forwardRef(() => TaonSessionApiService),\n TaonSessionStateService,\n TaonSessionConfigService,\n ],\n imports: [\n AsyncPipe,\n RouterOutlet,\n MatButtonModule,\n MatIconModule,\n CommonModule,\n ],\n})\nexport class TaonSessionButtonComponent implements OnInit {\n //#region fields & getters\n\n protected readonly taonSessionStateService = inject(TaonSessionStateService);\n\n protected readonly taonSessionConfigService = inject(\n TaonSessionConfigService,\n );\n\n @Input()\n config: TaonSessionConfig;\n\n private readonly dialog = inject(MatDialog);\n\n private readonly router = inject(Router);\n\n //#endregion\n\n constructor() {}\n\n //#region methods / open login dialog\n\n openLogin(): void {\n const instance = this.dialog.open(TaonSessionComponent, {\n width: '410px',\n data: null,\n autoFocus: true,\n });\n const classInstance = instance.componentInstance;\n classInstance.config = this.config;\n classInstance.taonSessionStateService = this.taonSessionStateService;\n }\n //#endregion\n\n //#region go to dashboard\n goDashboard(): void {\n if (this.config.login.linkToDashboard) {\n void this.router.navigateByUrl(this.config.login.linkToDashboard);\n }\n }\n //#endregion\n\n //#region logout\n profile(): void {\n const instance = this.dialog.open(TaonSessionComponent, {\n width: '410px',\n data: null,\n autoFocus: true,\n });\n const classInstance = instance.componentInstance;\n classInstance.config = this.config;\n classInstance.taonSessionStateService = this.taonSessionStateService;\n\n this.taonSessionStateService.state.set(TaonSessionState.PROFILE_INFO);\n }\n //#endregion\n\n //#region hooks / ngOnInit\n ngOnInit(): void {\n const config = this.taonSessionConfigService.clone();\n walk.Object(\n this.config || {},\n (value, lodashPath) => {\n ___NS__set(config, lodashPath, value);\n },\n {\n walkGetters: false,\n },\n );\n this.config = config;\n\n if (\n this.config.socialLogin.microsoft.enabled &&\n !this.config.socialLogin.microsoft.microsoftClientId\n ) {\n console.warn(\n '[taon-session-button] Microsoft client id missing [microsoftClientId]',\n );\n }\n if (\n this.config.socialLogin.google.enabled &&\n !this.config.socialLogin.google.googleClientId\n ) {\n console.warn(\n '[taon-session-button] Google client id missing [googleClientId]',\n );\n }\n //Called after the constructor, initializing input properties, and the first call to ngOnChanges.\n //Add 'implements OnInit' to the class.\n // console.log('this.displayDashboardButton', this.displayDashboardButton);\n this.config.login.displayDashboardButton = ___NS__isBoolean(\n this.config.login.displayDashboardButton,\n )\n ? this.config.login.displayDashboardButton\n : true;\n }\n //#endregion\n}","<div class=\"flex align-items-center gap-2\">\n <ng-container\n *ngIf=\"\n (taonSessionStateService.isLoggedIn$ | async) === false;\n else loggedIn\n \">\n <button\n mat-button\n (click)=\"openLogin()\">\n Login\n </button>\n </ng-container>\n\n <ng-template #loggedIn>\n <button\n *ngIf=\"displayDashboardButton\"\n mat-button\n color=\"primary\"\n class=\"auth-btn\"\n (click)=\"goDashboard()\">\n <mat-icon>dashboard</mat-icon>\n Dashboard\n </button>\n\n <button\n mat-button\n class=\"ml-2\"\n (click)=\"profile()\">\n Welcome user: {{ taonSessionStateService.userId() }}\n </button>\n </ng-template>\n</div>\n","//#region imports\nimport { TaonSessionUserEntity } from '../taon-session-user/taon-session-user.entity';\nimport { TaonSessionEntity } from '../taon-session/taon-session.entity';\nimport { CustomColumn, TaonBaseAbstractEntity, TaonBaseEntity, TaonEntity, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n\n//#endregion\n\nexport interface TaonAuthorizationSchema {\n group: string;\n role: string;\n permission: string;\n}\n\n@TaonEntity({\n className: 'TaonAuthContextEntity',\n createTable: false,\n})\nexport class TaonAuthContextEntity<\n AUTH extends TaonAuthorizationSchema = {\n group: string;\n role: string;\n permission: string;\n },\n> extends TaonBaseEntity<TaonAuthContextEntity> {\n user!: TaonSessionUserEntity;\n\n isSuperUser: boolean = false;\n\n isLocalhostBackend: boolean = false;\n\n session!: TaonSessionEntity;\n\n groups: AUTH['group'][] = [];\n\n roles: AUTH['role'][] = [];\n\n permissions: AUTH['permission'][] = [];\n\n hasPermission(permission: AUTH['permission']): boolean {\n if (this.isSuperUser) {\n return true;\n }\n return this.permissions.includes(permission);\n }\n\n hasRole(role: AUTH['role']): boolean {\n if (this.isSuperUser) {\n return true;\n }\n return this.roles.includes(role);\n }\n\n isInGroup(group: AUTH['group']): boolean {\n if (this.isSuperUser) {\n return true;\n }\n return this.groups.includes(group);\n }\n}","//#region imports\nimport { createContext, TaonBaseContext } from 'taon/browser-prod';\n\nimport { TaonAuthContextEntity } from './taon-auth-context.entity';\nimport { TaonAuthContextRepository } from './taon-auth-context.repository';\n//#endregion\n\nexport const TaonAuthContextContext = createContext(() => ({\n contextName: 'TaonAuthContextContext',\n abstract: true,\n contexts: { TaonBaseContext },\n entities: { TaonAuthContextEntity },\n repositories: { TaonAuthContextRepository },\n}));\n","//#region imports\nimport { TaonBaseMiddleware, TaonMiddleware, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n//#endregion\n\n@TaonMiddleware({\n className: 'TaonGroupMiddleware',\n})\nexport class TaonGroupMiddleware extends TaonBaseMiddleware {}","//#region imports\nimport { TaonBaseProvider, TaonProvider, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n//#endregion\n\n@TaonProvider({\n className: 'TaonGroupProvider',\n})\nexport class TaonGroupProvider extends TaonBaseProvider {\n\n\n\n}","//#region imports\nimport { createContext, TaonBaseContext } from 'taon/browser-prod';\n\nimport { TaonGroupRoleEntity } from './taon-group-role.entity';\nimport { TaonGroupRoleRepository } from './taon-group-role.repository';\nimport { TaonGroupController } from './taon-group.controller';\nimport { TaonGroupEntity } from './taon-group.entity';\nimport { TaonGroupMiddleware } from './taon-group.middleware';\nimport { TaonGroupProvider } from './taon-group.provider';\nimport { TaonGroupRepository } from './taon-group.repository';\n//#endregion\n\nexport const TaonGroupContext = createContext(() => ({\n contextName: 'TaonGroupContext',\n abstract: true,\n contexts: { TaonBaseContext },\n entities: {\n TaonGroupEntity: TaonGroupEntity,\n TaonGroupRoleEntity: TaonGroupRoleEntity,\n },\n controllers: { TaonGroupController },\n repositories: { TaonGroupRepository, TaonGroupRoleRepository },\n providers: { TaonGroupProvider },\n middlewares: { TaonGroupMiddleware },\n}));\n","//#region imports\nimport { TaonBaseMiddleware, TaonMiddleware, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n//#endregion\n\n@TaonMiddleware({\n className: 'TaonPermissionMiddleware',\n})\nexport class TaonPermissionMiddleware extends TaonBaseMiddleware {}","//#region imports\nimport { TaonBaseProvider, TaonProvider, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n//#endregion\n\n@TaonProvider({\n className: 'TaonPermissionProvider',\n})\nexport class TaonPermissionProvider extends TaonBaseProvider {\n\n\n\n}","//#region imports\nimport { TaonBaseSubscriberForEntity, TaonSubscriber } from 'taon/browser-prod';\nimport { TaonPermissionEntity } from './taon-permission.entity';\nimport { TaonPermissionProvider } from './taon-permission.provider';\n//#endregion\n\n@TaonSubscriber<TaonPermissionSubscriber>({\n className: 'TaonPermissionSubscriber',\n // allowedEvents: ['afterUpdate'],\n})\nexport class TaonPermissionSubscriber extends TaonBaseSubscriberForEntity {\n taonPermissionProvider = this.injectProvider(TaonPermissionProvider);\n listenTo(): typeof TaonPermissionEntity {\n return TaonPermissionEntity;\n }\n}\n","//#region imports\nimport { createContext, TaonBaseContext } from 'taon/browser-prod';\n\nimport { TaonPermissionController } from './taon-permission.controller';\nimport { TaonPermissionEntity } from './taon-permission.entity';\nimport { TaonPermissionMiddleware } from './taon-permission.middleware';\nimport { TaonPermissionProvider } from './taon-permission.provider';\nimport { TaonPermissionRepository } from './taon-permission.repository';\nimport { TaonPermissionSubscriber } from './taon-permission.subscriber';\n//#endregion\n\nexport const TaonPermissionContext = createContext(() => ({\n contextName: 'TaonPermissionContext',\n abstract: true,\n contexts: { TaonBaseContext },\n entities: { TaonPermissionEntity },\n controllers: { TaonPermissionController },\n repositories: { TaonPermissionRepository },\n providers: { TaonPermissionProvider },\n middlewares: { TaonPermissionMiddleware },\n subscribers: { TaonPermissionSubscriber },\n}));\n","//#region imports\nimport { TaonBaseProvider, TaonProvider, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n//#endregion\n\n@TaonProvider({\n className: 'TaonRoleProvider',\n})\nexport class TaonRoleProvider extends TaonBaseProvider {\n\n\n\n}","//#region imports\nimport { TaonRolePermissionRepository } from '../taon-role/taon-role-permission.repository';\nimport { createContext, TaonBaseContext } from 'taon/browser-prod';\n\n\nimport { TaonRolePermissionEntity } from './taon-role-permission.entity';\nimport { TaonRoleController } from './taon-role.controller';\nimport { TaonRoleEntity } from './taon-role.entity';\n// import { TaonRoleMiddleware } from './taon-role.middleware';/\nimport { TaonRoleProvider } from './taon-role.provider';\nimport { TaonRoleRepository } from './taon-role.repository';\n// import { TaonRoleSubscriber } from './taon-role.subscriber';\n//#endregion\n\nexport const TaonRoleContext = createContext(() => ({\n contextName: 'TaonRoleContext',\n abstract: true,\n contexts: { TaonBaseContext },\n entities: {\n TaonRoleEntity: TaonRoleEntity,\n TaonRolePermissionEntity: TaonRolePermissionEntity,\n },\n controllers: { TaonRoleController },\n repositories: { TaonRoleRepository, TaonRolePermissionRepository },\n providers: { TaonRoleProvider },\n // middlewares: { TaonRoleMiddleware },\n // subscribers: { TaonRoleSubscriber },\n}));\n","//#region imports\nimport { CustomColumn, Column, TaonBaseAbstractEntity, TaonEntity, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n\nimport { TaonProfileDefaultsValues } from './taon-profile.constants';\n//#endregion\n\n@TaonEntity<TaonProfileEntity>({\n className: 'TaonProfileEntity',\n createTable: false,\n // defaultModelMapping: () => ({\n // '': TaonProfileEntity,\n // nestedObjectField: ClassField,\n // nestedArrField: [ClassObjArrField],\n // }),\n})\nexport class TaonProfileEntity extends TaonBaseAbstractEntity<TaonProfileEntity> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n description?: string;\n}","//#region imports\nimport { TaonBaseClass, TaonBaseProvider, TaonProvider, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n//#endregion\n\nexport class TaonTaonProfileConfig extends TaonBaseClass {\n declare name: string;\n}\n\n@TaonProvider({\n className: 'TaonProfileProvider',\n})\nexport class TaonProfileProvider extends TaonBaseProvider {\n enabledTaonProfileOption: boolean = true;\n\n config = new TaonTaonProfileConfig();\n\n clone() {\n return {\n enabledTaonProfileOption: this.enabledTaonProfileOption,\n config: this.config.clone(),\n };\n }\n}","//#region imports\nimport { createContext, TaonBaseContext } from 'taon/browser-prod';\n\nimport { TaonProfileController } from './taon-profile.controller';\nimport { TaonProfileEntity } from './taon-profile.entity';\nimport { TaonProfileProvider } from './taon-profile.provider';\n// import { TaonProfileRepository } from './taon-profile.repository';\n// import { TaonProfileKvRepository } from './taon-profile.kv.repository';\n// import { TaonProfileMiddleware } from './taon-profile.middleware';\n// import { TaonProfileSubscriber } from './taon-profile.subscriber';\n//#endregion\n\nexport const TaonProfileAbstractContext = createContext(() => ({\n contextName: 'TaonProfileAbstractContext',\n abstract: true,\n contexts: { TaonBaseContext },\n entities: { TaonProfileEntity },\n controllers: { TaonProfileController },\n // repositories: {\n // // TaonProfileKvRepository\n // TaonProfileRepository,\n // },\n providers: { TaonProfileProvider },\n // middlewares: { TaonProfileMiddleware },\n // subscribers: { TaonProfileSubscriber },\n}));\n","//#region imports\nimport { TaonEmailsAbstractContext } from '@taon-dev/emails/browser-prod';\nimport { createContext, TaonBaseContext } from 'taon/browser-prod';\n\nimport { TaonAuditEventsContext, TaonNotificationContext } from '../index';\nimport { TaonAuthContextContext } from '../taon-auth-context/taon-auth-context.abstract.context';\nimport { TaonGroupContext } from '../taon-group/taon-group.abstract.context';\nimport { TaonPermissionContext } from '../taon-permission/taon-permission.abstract.context';\nimport { TaonRoleContext } from '../taon-role/taon-role.abstract.context';\nimport { TaonProfileAbstractContext } from '../taon-session/taon-profile/taon-profile.abstract.context';\nimport { TaonSessionRepository } from '../taon-session/taon-session.repository';\nimport { TaonSessionUserContext } from '../taon-session-user/taon-session-user.abstract.context';\n\nimport { TaonSessionBackofficeController } from './taon-session-backoffice/taon-session-backoffice.controller';\nimport { TaonSessionController } from './taon-session.controller';\nimport { TaonSessionEntity } from './taon-session.entity';\nimport { TaonSessionKvRepository } from './taon-session.kv.repository';\nimport { TaonSessionMiddleware } from './taon-session.middleware';\nimport { TaonSessionProvider } from './taon-session.provider';\nimport { TaonSessionStateService } from './taon-session.state.service';\n//#endregion\n\nexport const TaonSessionAbstractContext = createContext(() => ({\n contextName: 'TaonSessionAbstractContext',\n abstract: true,\n contexts: {\n TaonBaseContext,\n TaonEmailsAbstractContext,\n TaonSessionUserContext,\n TaonAuthContextContext,\n TaonGroupContext,\n TaonPermissionContext,\n TaonRoleContext,\n TaonNotificationContext,\n TaonAuditEventsContext,\n TaonProfileAbstractContext,\n },\n entities: { TaonSessionEntity: TaonSessionEntity },\n controllers: { TaonSessionController, TaonSessionBackofficeController },\n repositories: { TaonSessionKvRepository, TaonSessionRepository },\n providers: {\n TaonSessionProvider,\n /**\n * TODO somehow inject(TaonSessionApiService)\n * when creating manuall instace of TaonSessionStateService.\n * This state service could usefull on backend\n */\n // TaonSessionStateService,\n },\n logs: true,\n disabledRealtime: true,\n middlewares: { TaonSessionMiddleware },\n subscribers: {},\n}));\n","import { TaonServerMiddlewareInterceptOptions } from 'ng2-rest/browser-prod';\n\n//namespace TaonSessionUtils\n\n export const TaonSessionUtils__NS__getRequestMetadata = (\n req: TaonServerMiddlewareInterceptOptions['req'],\n ): { userAgent?: string; ip?: string; deviceName?: string } => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n };\n\n interface GoogleTokenResponse {\n access_token?: string;\n expires_in?: number;\n refresh_token?: string;\n scope?: string;\n token_type?: string;\n id_token?: string;\n error?: string;\n error_description?: string;\n }\n\n interface GoogleIdTokenPayload {\n iss: string;\n aud: string | string[];\n sub: string;\n email?: string;\n email_verified?: boolean;\n name?: string;\n picture?: string;\n exp: number;\n iat: number;\n }\n\n interface GoogleJwk extends JsonWebKey {\n kid?: string;\n alg?: string;\n }\n\n //#region verify google authorization code\n export async function TaonSessionUtils__NS__verifyGoogleAuthorizationCode(\n GOOGLE_CLIENT_ID: string,\n GOOGLE_CLIENT_SECRET: string,\n code: string,\n ) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region verify google id token\n async function verifyGoogleIdToken(\n idToken: string,\n expectedAudience: string,\n ): Promise<GoogleIdTokenPayload> {\n const parts = idToken.split('.');\n\n if (parts.length !== 3) {\n throw new Error('Invalid Google ID token.');\n }\n\n const [encodedHeader, encodedPayload, encodedSignature] = parts;\n\n const header = JSON.parse(decodeBase64UrlToString(encodedHeader)) as {\n alg?: string;\n kid?: string;\n };\n\n if (header.alg !== 'RS256') {\n throw new Error(`Unsupported Google JWT algorithm: ${header.alg}`);\n }\n\n if (!header.kid) {\n throw new Error('Google ID token does not contain kid.');\n }\n\n // ---------------------------------------------------------\n // Google's public signing keys\n // ---------------------------------------------------------\n\n const jwksResponse = await fetch(\n 'https://www.googleapis.com/oauth2/v3/certs',\n );\n\n if (!jwksResponse.ok) {\n throw new Error('Unable to download Google signing keys.');\n }\n\n const jwks = (await jwksResponse.json()) as {\n keys: GoogleJwk[];\n };\n\n const jwk = jwks.keys.find(key => key.kid === header.kid);\n\n if (!jwk) {\n throw new Error('Google signing key not found.');\n }\n\n // ---------------------------------------------------------\n // Import RSA public key\n // ---------------------------------------------------------\n\n const publicKey = await crypto.subtle.importKey(\n 'jwk',\n jwk,\n {\n name: 'RSASSA-PKCS1-v1_5',\n hash: 'SHA-256',\n },\n false,\n ['verify'],\n );\n\n // ---------------------------------------------------------\n // Verify JWT signature\n // ---------------------------------------------------------\n\n const signedData = new TextEncoder().encode(\n `${encodedHeader}.${encodedPayload}`,\n );\n\n const signature = decodeBase64UrlToBytes(encodedSignature);\n\n const validSignature = await crypto.subtle.verify(\n 'RSASSA-PKCS1-v1_5',\n publicKey,\n // @ts-ignore\n signature,\n signedData,\n );\n\n if (!validSignature) {\n throw new Error('Invalid Google ID token signature.');\n }\n\n // ---------------------------------------------------------\n // Decode + validate claims\n // ---------------------------------------------------------\n\n const payload = JSON.parse(\n decodeBase64UrlToString(encodedPayload),\n ) as GoogleIdTokenPayload;\n\n if (\n payload.iss !== 'https://accounts.google.com' &&\n payload.iss !== 'accounts.google.com'\n ) {\n throw new Error(`Invalid Google token issuer: ${payload.iss}`);\n }\n\n const audiences = Array.isArray(payload.aud) ? payload.aud : [payload.aud];\n\n if (!audiences.includes(expectedAudience)) {\n throw new Error('Google ID token audience mismatch.');\n }\n\n const now = Math.floor(Date.now() / 1000);\n\n if (!payload.exp || payload.exp <= now) {\n throw new Error('Google ID token has expired.');\n }\n\n return payload;\n }\n //#endregion\n\n //#region base64 url\n function decodeBase64UrlToBytes(input: string): Uint8Array {\n let base64 = input.replace(/-/g, '+').replace(/_/g, '/');\n\n base64 += '='.repeat((4 - (base64.length % 4)) % 4);\n\n const binary = atob(base64);\n\n const result = new Uint8Array(binary.length);\n\n for (let i = 0; i < binary.length; i++) {\n result[i] = binary.charCodeAt(i);\n }\n\n return result;\n }\n\n function decodeBase64UrlToString(input: string): string {\n return new TextDecoder().decode(decodeBase64UrlToBytes(input));\n }\n //#endregion\n\n//end of namespace TaonSessionUtils\n","//#region imports\nimport { Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\nimport { UtilsJson__NS__AttrJsoncProp, UtilsJson__NS__getAtrributiesFromJsonWithComments, UtilsJson__NS__getAttributiesFromComment, UtilsJson__NS__getValue, UtilsJson__NS__readJson, UtilsJson__NS__readJsonWithComments, UtilsJson__NS__setValue, UtilsJson__NS__validateLodashPath, UtilsOs__NS__commandExistsAsync, UtilsOs__NS__commandExistsSync, UtilsOs__NS__detectEditor, UtilsOs__NS__drawHorizontalLine, UtilsOs__NS__drawVerticalLine, UtilsOs__NS__Editor, UtilsOs__NS__EDITOR_PROCESSES, UtilsOs__NS__EditorArr, UtilsOs__NS__EditorProcess, UtilsOs__NS__getEditorKeybindingPath, UtilsOs__NS__getEditorSettingsJsonPath, UtilsOs__NS__getInotifyWatchCount, UtilsOs__NS__getRealHomeDir, UtilsOs__NS__isBrowser, UtilsOs__NS__isDockerAvailable, UtilsOs__NS__isElectron, UtilsOs__NS__isNode, UtilsOs__NS__isNodeVersionOk, UtilsOs__NS__isPortInUse, UtilsOs__NS__isRunningInBrowser, UtilsOs__NS__isRunningInCliMode, UtilsOs__NS__isRunningInCloudflareWorker, UtilsOs__NS__isRunningInDocker, UtilsOs__NS__isRunningInElectron, UtilsOs__NS__isRunningInLinuxDistro, UtilsOs__NS__isRunningInLinuxGraphicsCapableEnvironment, UtilsOs__NS__isRunningInMochaTest, UtilsOs__NS__isRunningInNode, UtilsOs__NS__isRunningInOsWithGraphicsCapableEnvironment, UtilsOs__NS__isRunningInSSRMode, UtilsOs__NS__isRunningInVscodeExtension, UtilsOs__NS__isRunningInWebSQL, UtilsOs__NS__isRunningInWindows, UtilsOs__NS__isRunningInWindowsCmd, UtilsOs__NS__isRunningInWindowsGitBash, UtilsOs__NS__isRunningInWindowsPowerShell, UtilsOs__NS__isRunningInWsl, UtilsOs__NS__isRunningNodeDebugger, UtilsOs__NS__isSSRMode, UtilsOs__NS__isVscodeExtension, UtilsOs__NS__isWebSQL, UtilsOs__NS__killAllEditor, UtilsOs__NS__openFolderInFileExplorer, UtilsOs__NS__pipxNestedPackageExists, UtilsOs__NS__pipxPackageExists, UtilsOs__NS__pythonModuleExists, UtilsOs__NS__safeExitProgramCleanUp, UtilsOs__NS__sendNotification, UtilsOs__NS__whichOrWherePackageLocated, UtilsTerminal__NS__basicYesNo, UtilsTerminal__NS__canUseInteractiveToggle, UtilsTerminal__NS__clearConsole, UtilsTerminal__NS__confirm, UtilsTerminal__NS__drawBigText, UtilsTerminal__NS__drawHorizontalLine, UtilsTerminal__NS__drawVerticalLine, UtilsTerminal__NS__fetchAndDisplay, UtilsTerminal__NS__getTerminalHeight, UtilsTerminal__NS__input, UtilsTerminal__NS__isVerboseModeTaon, UtilsTerminal__NS__multiselect, UtilsTerminal__NS__multiselectActionAndExecute, UtilsTerminal__NS__password, UtilsTerminal__NS__pipeEnterToStdin, UtilsTerminal__NS__pressAnyKey, UtilsTerminal__NS__pressAnyKeyToContinueAsync, UtilsTerminal__NS__pressAnyKeyToTryAgainErrorOccurred, UtilsTerminal__NS__pressKeyAndContinueSync, UtilsTerminal__NS__previewLongList, UtilsTerminal__NS__previewLongListGitLogLike, UtilsTerminal__NS__select, UtilsTerminal__NS__selectActionAndExecute, UtilsTerminal__NS__SelectChoice, UtilsTerminal__NS__SelectChoiceValue, UtilsTerminal__NS__wait, UtilsTerminal__NS__waitForUserAnyKey, UtilsTerminal__NS__waitMilliseconds } from 'tnp-core/browser-prod';\nimport { BaseCommandLineFeature, Helpers__NS___fixCommand, Helpers__NS__ActionInstance, Helpers__NS__actionStarted, Helpers__NS__bigMaxBuffer, Helpers__NS__checkProcess, Helpers__NS__cleanExit, Helpers__NS__clearConsole, Helpers__NS__command, Helpers__NS__commandOutputAsString, Helpers__NS__commandOutputAsStringAsync, Helpers__NS__contain, Helpers__NS__createFolder, Helpers__NS__createSymLink, Helpers__NS__error, Helpers__NS__execute, Helpers__NS__exists, Helpers__NS__filesFrom, Helpers__NS__foldersFrom, Helpers__NS__getFilesFrom, Helpers__NS__getFoldersFrom, Helpers__NS__getIsBrowser, Helpers__NS__getIsElectron, Helpers__NS__getIsNode, Helpers__NS__getIsRunningInGitBash, Helpers__NS__getIsSupportedTaonTerminal, Helpers__NS__getIsVerboseMode, Helpers__NS__getIsVerboseModeOrTnp, Helpers__NS__getIsWebSQL, Helpers__NS__getIsWsl, Helpers__NS__getStdio, Helpers__NS__hideNodeWarnings, Helpers__NS__info, Helpers__NS__isBlob, Helpers__NS__isBuffer, Helpers__NS__isClass, Helpers__NS__isExistedSymlink, Helpers__NS__isFile, Helpers__NS__isFolder, Helpers__NS__isRunningInDocker, Helpers__NS__isRunningInLinuxGraphicsCapableEnvironment, Helpers__NS__isSymlinkFileExitedOrUnexisted, Helpers__NS__isSymlinkThatMatchesUrl, Helpers__NS__isUnexistedLink, Helpers__NS__killOnPort, Helpers__NS__killProcess, Helpers__NS__killProcessByPort, Helpers__NS__linksToFolderFrom, Helpers__NS__linksToFoldersFrom, Helpers__NS__log, Helpers__NS__logError, Helpers__NS__logInfo, Helpers__NS__logProc, Helpers__NS__logSuccess, Helpers__NS__logTaskDone, Helpers__NS__logTaskStarted, Helpers__NS__logWarn, Helpers__NS__mediaTypeFromSrc, Helpers__NS__mkdirp, Helpers__NS__modifyLineByLine, Helpers__NS__msgCacheClear, Helpers__NS__openFolderInFileExplorer, Helpers__NS__parse, Helpers__NS__pathContainLink, Helpers__NS__questionYesNo, Helpers__NS__readFile, Helpers__NS__readJson, Helpers__NS__readJson5, Helpers__NS__readJsonC, Helpers__NS__relative, Helpers__NS__remove, Helpers__NS__removeEmptyLineFromString, Helpers__NS__removeFileIfExists, Helpers__NS__removeFolderIfExists, Helpers__NS__removeIfExists, Helpers__NS__removeSlashAtBegin, Helpers__NS__removeSlashAtEnd, Helpers__NS__removeSymlinks, Helpers__NS__renderError, Helpers__NS__replaceLinesInFile, Helpers__NS__run, Helpers__NS__runAsyncIn, Helpers__NS__runSyncIn, Helpers__NS__runSyncOrAsync, Helpers__NS__sleep, Helpers__NS__stopApplication, Helpers__NS__stringify, Helpers__NS__success, Helpers__NS__taskDone, Helpers__NS__taskStarted, Helpers__NS__throwError, Helpers__NS__timeout, Helpers__NS__tryCatchError, Helpers__NS__tryReadFile, Helpers__NS__tryRemoveDir, Helpers__NS__values, Helpers__NS__wait, Helpers__NS__warn, Helpers__NS__writeFile, Helpers__NS__writeJson, Helpers__NS__writeJson5, Helpers__NS__writeJsonC } from 'tnp-helpers/browser-prod';\n/* */ \n\nimport { TaonSessionAbstractContext, TaonSessionController } from './taon-session';\n\nimport { DEFAULT_SESSION_EMAIL, DEFAULT_SESSION_PASSWORD } from './index';\n\n//#endregion\n\n//#region create taon context\nconst host = UtilsOs__NS__isRunningInCloudflareWorker()\n ? ''\n : `http://localhost:${Number(\n Helpers__NS__readFile('.taon/libs-apps-ports/HOST_BACKEND_PORT_1'),\n )}`;\n// console.log({ overrideRemoteHost });\n\nconst TaonSessionActiveCtx = UtilsOs__NS__isRunningInCloudflareWorker()\n ? ({} as any)\n : !UtilsOs__NS__isRunningInCliMode()\n ? ({} as ReturnType<typeof Taon__NS__createContext>)\n : TaonSessionAbstractContext.cloneAsRemote({\n overrideRemoteHost: host,\n overrideContextName: 'SessionContext',\n });\n//#endregion\n\n//#region CLI / global scope\n/**\n * This class is for handling global arguments. *\n * Cli engine will parse: hello:world:from:global:arg to helloWorldFromGlobalArg\n * (lower case, camel case) .. so you don't need to worry about misspelling\n * arguments\n */\nclass $Global extends BaseCommandLineFeature<{}> {\n //#region initialize (before each method)\n protected async __initialize__() {\n/* */\n/* */\n/* */\n return (void 0);\n await super.__initialize__();\n }\n //#endregion\n\n //#region _\n /**\n * When you execute cli without arguments:`$ cli`\n */\n public _() {\n console.log(`Hello world from cli`);\n this._exit();\n }\n //#endregion\n\n //#region menu\n async menu() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region ping\n /**\n * When you execute: `$ cli hello:world:from:global:arg`\n * (or `$ cli helloWorldFromGlobalArg`)\n */\n async ping() {\n const taonSessionController = await TaonSessionActiveCtx.getClassInstance(\n TaonSessionController,\n );\n\n try {\n const data = await taonSessionController.helloWorld().request!();\n console.log(data.body.text);\n } catch (error) {\n console.error(error);\n }\n\n this._exit();\n }\n //#endregion\n}\n//#endregion\n\n//#region CLI / Version Scope\n/**\n *\n */\nclass $Version extends BaseCommandLineFeature<{\n anyCLIparamsHere: string;\n}> {\n /**\n * When you execute: `$ cli version`\n */\n public _() {\n console.log(`Hello world from version argument`);\n this._exit();\n }\n\n /**\n * When you execute: `$ cli version:getFromPackageJson`\n */\n public getFromPackageJson() {\n const ver = UtilsJson__NS__getValue(\n this.project.pathFor('package.json'),\n 'version',\n {\n defaultValue: '<not defined>',\n },\n );\n console.log(`Version from packageJson ${ver}`);\n this._exit(0);\n }\n}\n//#endregion\n\n//#region start cli\n/**\n *\n * @param argsv process.argsv\n * @param filename needed if you want ipc communicaiton\n */\nexport async function startCli(\n argsv: string[],\n filename: string,\n): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n}\n//#endregion\n\nexport default startCli;","//#region imports\nimport { Column, CreateDateColumn, CustomColumn, Index, TaonBaseAbstractEntity, TaonEntity, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n\nimport { TaonAuditEventsDefaultsValues } from './taon-audit-events.constants';\n//#endregion\n\n@TaonEntity({\n className: 'TaonAuditEventsEntity',\n createTable: true,\n})\nexport class TaonAuditEventsEntity extends TaonBaseAbstractEntity<TaonAuditEventsEntity> {\n/* */\n/* */\n \n\n/* */\n/* */\n \n type!: string;\n\n /**\n * Who performed the action.\n */\n\n/* */\n/* */\n \n actorUserId?: number;\n\n /**\n * Who/what was affected.\n */\n\n/* */\n/* */\n \n targetType?: string;\n\n/* */\n/* */\n \n targetId?: string;\n\n/* */\n/* */\n \n sessionId?: number;\n\n/* */\n/* */\n \n ip?: string;\n\n/* */\n/* */\n \n userAgent?: string;\n\n/* */\n/* */\n \n data?: Record<string, any>;\n\n/* */\n/* */\n \n createdAt!: Date;\n}","//#region imports\nimport { TaonBaseRepository, TaonRepository } from 'taon/browser-prod';\nimport { Raw } from 'taon-typeorm/browser-prod';\n\nimport { TaonAuditEventsEntity } from './taon-audit-events.entity';\n//#endregion\n\n@TaonRepository({\n className: 'TaonAuditEventsRepository',\n})\nexport class TaonAuditEventsRepository extends TaonBaseRepository<TaonAuditEventsEntity> {\n entityClassResolveFn: () => typeof TaonAuditEventsEntity = () => TaonAuditEventsEntity;\n\n /**\n * TODO remove this demo example method\n */\n async countEntitesWithEvenId(): Promise<number> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n}","//#region imports\nimport { TaonController, TaonBaseCrudController, Query, GET, ClassHelpers__NS__asyncHandler, ClassHelpers__NS__ensureClassConfig, ClassHelpers__NS__ensureMethodConfig, ClassHelpers__NS__getClassConfig, ClassHelpers__NS__getClassFnFromObject, ClassHelpers__NS__getControllerConfigs, ClassHelpers__NS__getFullInternalName, ClassHelpers__NS__getMethodsNames, ClassHelpers__NS__getName, ClassHelpers__NS__getOrginalClass, ClassHelpers__NS__getUniqueKey, ClassHelpers__NS__hasParentClassWithName, ClassHelpers__NS__isContextClassObject, ClassHelpers__NS__mapFnError, ClassHelpers__NS__setName, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n\nimport { TaonAuditEventsEntity } from './taon-audit-events.entity';\nimport { TaonAuditEventsRepository } from './taon-audit-events.repository';\n//#endregion\n\n@TaonController<TaonAuditEventsController>({\n className: 'TaonAuditEventsController',\n allowedMethods: [],\n})\nexport class TaonAuditEventsController extends TaonBaseCrudController<TaonAuditEventsEntity> {\n entityClassResolveFn: () => typeof TaonAuditEventsEntity = () =>\n TaonAuditEventsEntity;\n\n taonAuditEventsRepository = this.injectCustomRepo(TaonAuditEventsRepository);\n\n //#region methods & getters / hello world\n /**\n * TODO remove this demo example method\n */\n @GET()\n helloWord(@Query('yourName') yourName: string): Taon__NS__Response<string> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n}","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { TaonBaseAngularService, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\n\nimport { TaonAuditEventsController } from './taon-audit-events.controller';\nimport type { TaonAuditEventsEntity } from './taon-audit-events.entity';\n\n@Injectable()\nexport class TaonAuditEventsApiService extends TaonBaseAngularService {\n private taonAuditEventsController = this.injectController(TaonAuditEventsController);\n\n public get allMyEntities$(): Observable<TaonAuditEventsEntity[]> {\n return this.taonAuditEventsController.getAll().request!().observable.pipe(\n map(res => res.body?.json),\n );\n }\n\n public helloWorld(user:string): Observable<string> {\n return this.taonAuditEventsController.helloWord(user).request!().observable.pipe(\n map(res => res.responseText as string),\n );\n }\n}","//#region imports\nimport { TaonBaseProvider, TaonProvider, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n//#endregion\n\n@TaonProvider({\n className: 'TaonAuditEventsProvider',\n})\nexport class TaonAuditEventsProvider extends TaonBaseProvider {\n\n\n\n}","//#region imports\nimport { TaonBaseMiddleware, TaonMiddleware, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n//#endregion\n\n@TaonMiddleware({\n className: 'TaonAuditEventsMiddleware',\n})\nexport class TaonAuditEventsMiddleware extends TaonBaseMiddleware {}","//#region imports\nimport { TaonBaseSubscriberForEntity, TaonSubscriber } from 'taon/browser-prod';\nimport { TaonAuditEventsEntity } from './taon-audit-events.entity';\nimport { TaonAuditEventsProvider } from './taon-audit-events.provider';\n//#endregion\n\n@TaonSubscriber<TaonAuditEventsSubscriber>({\n className: 'TaonAuditEventsSubscriber',\n // allowedEvents: ['afterUpdate'],\n})\nexport class TaonAuditEventsSubscriber extends TaonBaseSubscriberForEntity {\n taonAuditEventsProvider = this.injectProvider(TaonAuditEventsProvider);\n listenTo(): typeof TaonAuditEventsEntity {\n return TaonAuditEventsEntity;\n }\n}","//#region imports\nimport { createContext, TaonBaseContext } from 'taon/browser-prod';\n\nimport { TaonAuditEventsEntity } from './taon-audit-events.entity';\nimport { TaonAuditEventsController } from './taon-audit-events.controller';\nimport { TaonAuditEventsRepository } from './taon-audit-events.repository';\nimport { TaonAuditEventsProvider } from './taon-audit-events.provider';\nimport { TaonAuditEventsMiddleware } from './taon-audit-events.middleware';\nimport { TaonAuditEventsSubscriber } from './taon-audit-events.subscriber';\n//#endregion\n\nexport const TaonAuditEventsContext = createContext(() => ({\n contextName: 'TaonAuditEventsContext',\n abstract: true,\n contexts: { TaonBaseContext },\n entities: { TaonAuditEventsEntity },\n controllers: { TaonAuditEventsController },\n repositories: { TaonAuditEventsRepository },\n providers: { TaonAuditEventsProvider },\n middlewares: { TaonAuditEventsMiddleware },\n subscribers: { TaonAuditEventsSubscriber },\n}));","import type { TaonAuditEventsEntity } from './taon-audit-events.entity';\n\nexport const TaonAuditEventsDefaultsValues = {\n description: '',\n version: 0,\n id: void 0,\n} as Partial<TaonAuditEventsEntity>;","export enum TaonAuditEventsState {\n Active = 'active',\n Inactive = 'inactive',\n}","import { TaonAuditEventsState } from './taon-audit-events.models';\n\n//namespace TaonAuditEventsUtils\n\n export function TaonAuditEventsUtils__NS__isActive(state: string): state is TaonAuditEventsState {\n return state === 'active';\n }\n\n//end of namespace TaonAuditEventsUtils\n","//#region imports\nimport { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { RouterOutlet } from '@angular/router';\n//#endregion\n\n@Component({\n selector: 'app-taon-authorization-backoffice',\n templateUrl: './taon-authorization-backoffice.component.html',\n styleUrls: ['./taon-authorization-backoffice.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [AsyncPipe, RouterOutlet],\n})\nexport class TaonAuthorizationBackofficeComponent {\n componentLoaded = false;\n\n onRouteActivate(component: any): void {\n this.componentLoaded = !!component;\n }\n\n onRouteDeactivate(component: any): void {\n this.componentLoaded = false;\n }\n}\n","@if (!componentLoaded) {\n <code>\n In authorization section you can manager Group, Roles and Persmission inside\n system.\n </code>\n}\n\n<router-outlet\n (activate)=\"onRouteActivate($event)\"\n (deactivate)=\"onRouteDeactivate($event)\"></router-outlet>\n","//namespace TaonAuthorizationBackofficeModels\n\n//end of namespace TaonAuthorizationBackofficeModels\n","//#region imports\nimport { Routes } from '@angular/router';\nimport { adminLazyRoute } from '@taon-dev/ui/browser-prod';\n//#endregion\n\nexport const TaonAuthorizationBackofficeRoutes: Routes = [\n {\n path: '',\n loadComponent: () =>\n import('./taon-authorization-backoffice.component').then(\n m => m.TaonAuthorizationBackofficeComponent,\n ),\n\n children: [\n adminLazyRoute({\n path: 'groups',\n menuItem: 'Groups',\n icon: 'groups',\n expandable: false,\n loader: () =>\n import('../taon-group/taon-group-backoffice/taon-group-backoffice.routes').then(\n m => m.TaonGroupBackofficeRoutes,\n ),\n }),\n adminLazyRoute({\n path: 'roles',\n menuItem: 'Roles',\n icon: 'recent_actors',\n expandable: false,\n loader: () =>\n import('../taon-role/taon-role-backoffice/taon-role-backoffice.routes').then(\n m => m.TaonRoleBackofficeRoutes,\n ),\n }),\n adminLazyRoute({\n path: 'permissions',\n menuItem: 'Permissions',\n icon: 'approval',\n expandable: false,\n loader: () =>\n import('../taon-permission/taon-permission-backoffice/taon-permission-backoffice.routes').then(\n m => m.TaonPermissionBackofficeRoutes,\n ),\n }),\n ],\n },\n];\n\n/**\n * By default exporting TaonAuthorizationBackofficeRoutes,\n * the command `taon generate:app:routes`\n * will automatically add them to the root routes in ./src/app.ts.\n */\n// export default TaonAuthorizationBackofficeRoutes;\n","import type { TaonGroupEntity } from './taon-group.entity';\n\nexport const TaonGroupDefaultsValues = {\n\n} as Partial<TaonGroupEntity>;\n","//#region imports\nimport { TaonSessionUserEntity } from '../taon-session-user/taon-session-user.entity';\nimport { TaonNotificationRecipientEntity } from '../taon-notification/taon-notification-recipient.entity';\nimport { Column, CreateDateColumn, CustomColumn, ManyToOne, OneToMany, TaonBaseAbstractEntity, TaonEntity, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n\nimport { TaonNotificationDefaultsValues } from './taon-notification.constants';\n//#endregion\n\n@TaonEntity({\n className: 'TaonNotificationEntity',\n createTable: true,\n})\nexport class TaonNotificationEntity extends TaonBaseAbstractEntity<TaonNotificationEntity> {\n /**\n * Stable machine-readable code.\n *\n * video.processing.finished\n * auth.session.revoked\n * payment.success\n */\n\n/* */\n/* */\n \n type!: string;\n\n/* */\n/* */\n \n title!: string;\n\n/* */\n/* */\n \n message?: string;\n\n /**\n * Optional route/action.\n *\n * /projects/123\n * /videos/abc\n */\n\n/* */\n/* */\n \n actionUrl?: string;\n\n /**\n * Arbitrary strongly-typed-by-your-code payload.\n */\n\n/* */\n/* */\n \n data?: Record<string, any>;\n\n/* */\n/* */\n \n createdByUserId?: number;\n\n/* */\n/* */\n \n createdAt!: Date;\n\n/* */\n/* */\n \n expiresAt?: Date;\n\n/* */\n/* */\n/* */\n/* */\n/* */\n \n recipients!: TaonNotificationRecipientEntity[];\n}","//#region imports\nimport { TaonBaseRepository, TaonRepository } from 'taon/browser-prod';\nimport { Raw } from 'taon-typeorm/browser-prod';\n\nimport { TaonNotificationEntity } from './taon-notification.entity';\n//#endregion\n\n@TaonRepository({\n className: 'TaonNotificationRepository',\n})\nexport class TaonNotificationRepository extends TaonBaseRepository<TaonNotificationEntity> {\n entityClassResolveFn: () => typeof TaonNotificationEntity = () => TaonNotificationEntity;\n\n /**\n * TODO remove this demo example method\n */\n async countEntitesWithEvenId(): Promise<number> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n}","//#region imports\nimport { TaonController, TaonBaseCrudController, Query, GET, ClassHelpers__NS__asyncHandler, ClassHelpers__NS__ensureClassConfig, ClassHelpers__NS__ensureMethodConfig, ClassHelpers__NS__getClassConfig, ClassHelpers__NS__getClassFnFromObject, ClassHelpers__NS__getControllerConfigs, ClassHelpers__NS__getFullInternalName, ClassHelpers__NS__getMethodsNames, ClassHelpers__NS__getName, ClassHelpers__NS__getOrginalClass, ClassHelpers__NS__getUniqueKey, ClassHelpers__NS__hasParentClassWithName, ClassHelpers__NS__isContextClassObject, ClassHelpers__NS__mapFnError, ClassHelpers__NS__setName, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n\nimport { TaonNotificationEntity } from './taon-notification.entity';\nimport { TaonNotificationRepository } from './taon-notification.repository';\n//#endregion\n\n@TaonController<TaonNotificationController>({\n className: 'TaonNotificationController',\n allowedMethods: [],\n})\nexport class TaonNotificationController extends TaonBaseCrudController<TaonNotificationEntity> {\n entityClassResolveFn: () => typeof TaonNotificationEntity = () =>\n TaonNotificationEntity;\n\n taonNotificationRepository = this.injectCustomRepo(\n TaonNotificationRepository,\n );\n\n //#region methods & getters / hello world\n /**\n * TODO remove this demo example method\n */\n @GET()\n helloWord(@Query('yourName') yourName: string): Taon__NS__Response<string> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n}","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { TaonBaseAngularService, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\n\nimport type { TaonNotificationEntity } from './taon-notification.entity';\nimport { TaonNotificationController } from './taon-notification.controller';\n\n@Injectable()\nexport class TaonNotificationApiService extends TaonBaseAngularService {\n private taonNotificationController = this.injectController(TaonNotificationController);\n\n public get allMyEntities$(): Observable<TaonNotificationEntity[]> {\n return this.taonNotificationController.getAll().request!().observable.pipe(\n map(res => res.body?.json),\n );\n }\n\n public helloWorld(user:string): Observable<string> {\n return this.taonNotificationController.helloWord(user).request!().observable.pipe(\n map(res => res.responseText as string),\n );\n }\n}","//#region imports\nimport { TaonSessionUserEntity } from '../taon-session-user/taon-session-user.entity';\nimport { TaonNotificationEntity } from '../taon-notification/taon-notification.entity';\nimport { Column, DateTimeColumn, ManyToOne, StringColumn, TaonBaseAbstractEntity, TaonEntity, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n\n//#endregion\n\n@TaonEntity({\n className: 'TaonNotificationRecipientEntity',\n createTable: true,\n})\nexport class TaonNotificationRecipientEntity extends TaonBaseAbstractEntity<TaonNotificationRecipientEntity> {\n/* */\n/* */\n/* */\n/* */\n \n notificationId!: number;\n\n/* */\n/* */\n \n userId!: number;\n\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n notification!: TaonNotificationEntity;\n\n/* */\n/* */\n/* */\n/* */\n \n user!: TaonSessionUserEntity;\n\n/* */\n/* */\n \n readAt?: Date;\n\n/* */\n/* */\n \n dismissedAt?: Date;\n\n/* */\n/* */\n \n deliveredAt?: Date;\n}","//#region imports\nimport { TaonBaseMiddleware, TaonMiddleware, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n//#endregion\n\n@TaonMiddleware({\n className: 'TaonNotificationMiddleware',\n})\nexport class TaonNotificationMiddleware extends TaonBaseMiddleware {}","//#region imports\nimport { TaonBaseProvider, TaonProvider, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n//#endregion\n\n@TaonProvider({\n className: 'TaonNotificationProvider',\n})\nexport class TaonNotificationProvider extends TaonBaseProvider {\n\n\n\n}","//#region imports\nimport { TaonBaseSubscriberForEntity, TaonSubscriber } from 'taon/browser-prod';\nimport { TaonNotificationEntity } from './taon-notification.entity';\nimport { TaonNotificationProvider } from './taon-notification.provider';\n//#endregion\n\n@TaonSubscriber<TaonNotificationSubscriber>({\n className: 'TaonNotificationSubscriber',\n // allowedEvents: ['afterUpdate'],\n})\nexport class TaonNotificationSubscriber extends TaonBaseSubscriberForEntity {\n taonNotificationProvider = this.injectProvider(TaonNotificationProvider);\n listenTo(): typeof TaonNotificationEntity {\n return TaonNotificationEntity;\n }\n}","//#region imports\nimport { createContext, TaonBaseContext } from 'taon/browser-prod';\n\nimport { TaonNotificationRecipientEntity } from './taon-notification-recipient.entity';\nimport { TaonNotificationController } from './taon-notification.controller';\nimport { TaonNotificationEntity } from './taon-notification.entity';\nimport { TaonNotificationMiddleware } from './taon-notification.middleware';\nimport { TaonNotificationProvider } from './taon-notification.provider';\nimport { TaonNotificationRepository } from './taon-notification.repository';\nimport { TaonNotificationSubscriber } from './taon-notification.subscriber';\n//#endregion\n\nexport const TaonNotificationContext = createContext(() => ({\n contextName: 'TaonNotificationContext',\n abstract: true,\n contexts: { TaonBaseContext },\n entities: { TaonNotificationEntity, TaonNotificationRecipientEntity },\n controllers: { TaonNotificationController },\n repositories: { TaonNotificationRepository },\n providers: { TaonNotificationProvider },\n middlewares: { TaonNotificationMiddleware },\n subscribers: { TaonNotificationSubscriber },\n}));\n","import type { TaonNotificationEntity } from './taon-notification.entity';\n\nexport const TaonNotificationDefaultsValues = {\n description: '',\n version: 0,\n id: void 0,\n} as Partial<TaonNotificationEntity>;","export enum TaonNotificationState {\n Active = 'active',\n Inactive = 'inactive',\n}","import { TaonNotificationState } from './taon-notification.models';\n\n//namespace TaonNotificationUtils\n\n export function TaonNotificationUtils__NS__isActive(state: string): state is TaonNotificationState {\n return state === 'active';\n }\n\n//end of namespace TaonNotificationUtils\n","import type { TaonPermissionEntity } from './taon-permission.entity';\n\nexport const TaonPermissionDefaultsValues = {\n description: '',\n version: 0,\n id: void 0,\n} as Partial<TaonPermissionEntity>;\n","export enum TaonPermissionState {\n Active = 'active',\n Inactive = 'inactive',\n}","import { TaonPermissionState } from './taon-permission.models';\n\n//namespace TaonPermissionUtils\n\n export function TaonPermissionUtils__NS__isActive(state: string): state is TaonPermissionState {\n return state === 'active';\n }\n\n//end of namespace TaonPermissionUtils\n","import type { TaonRoleEntity } from './taon-role.entity';\n\nexport const TaonRoleDefaultsValues = {\n description: '',\n version: 0,\n id: void 0,\n} as Partial<TaonRoleEntity>;\n","export enum TaonRoleState {\n Active = 'active',\n Inactive = 'inactive',\n}","//#region imports\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n inject,\n signal,\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatSelectModule } from '@angular/material/select';\n\nimport { TaonGroupApiService } from '../../taon-group/taon-group-api.service';\nimport { TaonRoleApiService } from '../taon-role-api.service';\nimport type { TaonRoleEntity } from '../taon-role.entity';\n//#endregion\n\n@Component({\n selector: 'taon-role-chooser',\n templateUrl: './taon-role-chooser.component.html',\n styleUrls: ['./taon-role-chooser.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n FormsModule,\n MatButtonModule,\n MatFormFieldModule,\n MatIconModule,\n MatSelectModule,\n ],\n providers: [TaonRoleApiService, TaonGroupApiService],\n})\nexport class TaonRoleChooserComponent {\n //#region inject\n\n private readonly taonRoleApiService = inject(TaonRoleApiService);\n\n private readonly taonGroupApiService = inject(TaonGroupApiService);\n\n //#endregion\n\n //#region inputs & outputs\n\n @Input({ required: true }) groupId!: number;\n\n @Input() excludedRoleIds: number[] = [];\n\n @Output() readonly assigned = new EventEmitter<number>();\n\n @Output() readonly cancelled = new EventEmitter<void>();\n\n //#endregion\n\n //#region state\n\n readonly roles = signal<TaonRoleEntity[]>([]);\n\n readonly loading = signal(false);\n\n readonly saving = signal(false);\n\n selectedRoleId?: number;\n\n //#endregion\n\n //#region constructor\n\n constructor() {\n void this.loadRoles();\n }\n\n //#endregion\n\n //#region getters\n\n get availableRoles(): TaonRoleEntity[] {\n return this.roles().filter(\n role => !this.excludedRoleIds.includes(role.id as number),\n );\n }\n\n //#endregion\n\n //#region methods\n\n async loadRoles(): Promise<void> {\n this.loading.set(true);\n\n try {\n this.roles.set(await this.taonRoleApiService.getAllRoles());\n } catch {\n this.roles.set([]);\n } finally {\n this.loading.set(false);\n }\n }\n\n async assign(): Promise<void> {\n const roleId = this.selectedRoleId;\n\n if (!roleId || !this.groupId) {\n return;\n }\n\n this.saving.set(true);\n\n try {\n await this.taonGroupApiService.assignRoleToGroup(this.groupId, roleId);\n\n this.selectedRoleId = undefined;\n\n this.assigned.emit(roleId);\n } finally {\n this.saving.set(false);\n }\n }\n\n cancel(): void {\n this.selectedRoleId = undefined;\n\n this.cancelled.emit();\n }\n\n //#endregion\n}\n","<div class=\"taon-role-chooser\">\n <mat-form-field\n appearance=\"outline\"\n subscriptSizing=\"dynamic\"\n class=\"taon-role-chooser__field\">\n <mat-label> Role </mat-label>\n\n <mat-select\n [(ngModel)]=\"selectedRoleId\"\n [disabled]=\"loading() || saving()\">\n @for (role of availableRoles; track role.id) {\n <mat-option [value]=\"role.id\">\n {{ role.name }} ({{ role.code }})\n </mat-option>\n } @empty {\n <mat-option [disabled]=\"true\"> No roles available </mat-option>\n }\n </mat-select>\n </mat-form-field>\n\n <button\n mat-flat-button\n color=\"primary\"\n type=\"button\"\n [disabled]=\"!selectedRoleId || saving()\"\n (click)=\"assign()\">\n <mat-icon> add </mat-icon>\n\n Assign\n </button>\n\n <button\n mat-button\n type=\"button\"\n [disabled]=\"saving()\"\n (click)=\"cancel()\">\n Cancel\n </button>\n</div>\n","//#region imports\nimport {\n ChangeDetectionStrategy,\n Component,\n Input,\n OnChanges,\n inject,\n signal,\n} from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { RouterLink } from '@angular/router';\nimport { MtxGridColumn } from '@ng-matero/extensions/grid';\nimport { TaonDatatableComponent } from '@taon-dev/ui/browser-prod';\n\nimport { TaonRoleChooserComponent } from '../../taon-role/taon-role-chooser/taon-role-chooser.component';\nimport { TaonBackofficeNavigationService } from '../../taon-session/taon-session-backoffice/taon-backoffice-navigation.service';\nimport { TaonGroupApiService } from '../taon-group-api.service';\nimport type { TaonGroupEntity } from '../taon-group.entity';\n\nimport { TaonGroupBackofficeModels__NS__AssignedRoleRow } from './taon-group-backoffice.models';\n//#endregion\n\n@Component({\n selector: 'taon-group-details',\n templateUrl: './taon-group-details.component.html',\n styleUrls: ['./taon-group-backoffice.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n RouterLink,\n MatButtonModule,\n MatIconModule,\n TaonDatatableComponent,\n TaonRoleChooserComponent,\n ],\n providers: [TaonGroupApiService, TaonBackofficeNavigationService],\n})\nexport class TaonGroupDetailsComponent implements OnChanges {\n @Input({ required: true }) group!: TaonGroupEntity;\n\n readonly navigation = inject(TaonBackofficeNavigationService);\n\n ngOnChanges(): void {\n void this.loadRolesForGroup(Number(this.group.id));\n }\n //#region inject\n\n taonGroupApiService = inject(TaonGroupApiService);\n\n //#endregion\n\n //#region state\n\n readonly roleRowsByGroupId = signal<\n Record<number, TaonGroupBackofficeModels__NS__AssignedRoleRow[]>\n >({});\n\n readonly roleChooserGroupId = signal<number | undefined>(undefined);\n\n /**\n * Stable reference, so that nested datatables do not reload on every\n * change detection cycle while roles are not loaded yet.\n */\n private readonly emptyRoleRows: TaonGroupBackofficeModels__NS__AssignedRoleRow[] =\n [];\n\n private readonly emptyIds: number[] = [];\n\n private readonly assignedRoleIdsByGroupId = signal<Record<number, number[]>>(\n {},\n );\n\n //#endregion\n\n //#region columns\n\n roleColumns: MtxGridColumn[] = [\n {\n header: 'ID',\n field: 'roleId',\n },\n {\n header: 'Name',\n field: 'name',\n },\n {\n header: 'Code',\n field: 'code',\n },\n {\n header: 'Description',\n field: 'description',\n },\n {\n header: 'Actions',\n field: 'actions',\n type: 'button',\n buttons: [\n {\n type: 'icon',\n icon: 'open_in_new',\n tooltip: 'Role details',\n click: (row: TaonGroupBackofficeModels__NS__AssignedRoleRow) =>\n this.navigation.openDetails('role', row.roleId),\n },\n {\n type: 'icon',\n icon: 'delete',\n color: 'warn',\n tooltip: 'Remove role from group',\n click: (row: TaonGroupBackofficeModels__NS__AssignedRoleRow) =>\n void this.unassignRole(row),\n },\n ],\n },\n ];\n\n //#endregion\n\n //#region methods\n\n roleRowsFor(groupId: number): TaonGroupBackofficeModels__NS__AssignedRoleRow[] {\n return this.roleRowsByGroupId()[groupId] ?? this.emptyRoleRows;\n }\n\n assignedRoleIds(groupId: number): number[] {\n return this.assignedRoleIdsByGroupId()[groupId] ?? this.emptyIds;\n }\n\n openRoleChooser(groupId: number): void {\n this.roleChooserGroupId.set(groupId);\n }\n\n closeRoleChooser(): void {\n this.roleChooserGroupId.set(undefined);\n }\n\n roleAssigned(groupId: number): void {\n this.closeRoleChooser();\n\n void this.loadRolesForGroup(groupId);\n }\n\n async loadRolesForGroup(groupId: number): Promise<void> {\n if (!groupId) {\n return;\n }\n\n const roles = await this.taonGroupApiService.getRolesForGroup(groupId);\n\n const rows = roles.map(role => ({\n groupId,\n roleId: role.id as number,\n name: role.name,\n code: role.code,\n description: role.description,\n }));\n\n this.roleRowsByGroupId.set({\n ...this.roleRowsByGroupId(),\n [groupId]: rows,\n });\n\n this.assignedRoleIdsByGroupId.set({\n ...this.assignedRoleIdsByGroupId(),\n [groupId]: rows.map(row => row.roleId),\n });\n }\n\n async unassignRole(\n row: TaonGroupBackofficeModels__NS__AssignedRoleRow,\n ): Promise<void> {\n await this.taonGroupApiService.unassignRoleFromGroup(\n row.groupId,\n row.roleId,\n );\n\n await this.loadRolesForGroup(row.groupId);\n }\n\n //#endregion\n}","<a [routerLink]=\"navigation.detailsLink('group', group.id)\">Group details #{{ group.id }}</a>\n <div class=\"group-details__section\">\n <div class=\"group-details__section-header\">\n <h4 class=\"group-details__section-title\">Group roles</h4>\n\n @if (roleChooserGroupId() !== group.id) {\n <button\n mat-flat-button\n color=\"primary\"\n type=\"button\"\n (click)=\"openRoleChooser(group.id)\">\n <mat-icon> add_moderator </mat-icon>\n\n Assign role\n </button>\n }\n </div>\n\n @if (roleChooserGroupId() === group.id) {\n <taon-role-chooser\n [groupId]=\"group.id\"\n [excludedRoleIds]=\"assignedRoleIds(group.id)\"\n (assigned)=\"roleAssigned(group.id)\"\n (cancelled)=\"closeRoleChooser()\">\n </taon-role-chooser>\n }\n\n <taon-datatable\n [data]=\"roleRowsFor(group.id)\"\n [columns]=\"roleColumns\"\n [pageSize]=\"5\"\n [hideSearch]=\"true\"\n [hideAddButton]=\"true\"\n [showPaginator]=\"false\"\n searchMode=\"simple\">\n </taon-datatable>\n </div>\n","import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { MtxGridColumn } from '@ng-matero/extensions/grid';\nimport { TaonDatatableComponent } from '@taon-dev/ui/browser-prod';\n\nimport { TaonBackofficeNavigationService } from '../../taon-session/taon-session-backoffice/taon-backoffice-navigation.service';\nimport { TaonGroupApiService } from '../taon-group-api.service';\nimport type { TaonGroupEntity } from '../taon-group.entity';\n\nimport { TaonGroupDetailsComponent } from './taon-group-details.component';\n\n@Component({\n selector: 'app-taon-group-backoffice',\n templateUrl: './taon-group-backoffice.component.html',\n styleUrls: ['./taon-group-backoffice.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [TaonDatatableComponent, TaonGroupDetailsComponent],\n providers: [TaonGroupApiService, TaonBackofficeNavigationService],\n})\nexport class TaonGroupBackofficeComponent {\n readonly taonGroupApiService = inject(TaonGroupApiService);\n\n readonly navigation = inject(TaonBackofficeNavigationService);\n\n public get crud() {\n return this.taonGroupApiService.taonGroupController;\n }\n\n readonly columns: MtxGridColumn[] = [\n { header: 'ID', field: 'id', sortable: true, showExpand: true },\n { header: 'Name', field: 'name', sortable: true },\n { header: 'Code', field: 'code', sortable: true },\n {\n header: 'Actions',\n field: 'actions',\n type: 'button',\n buttons: [\n {\n type: 'icon',\n icon: 'open_in_new',\n tooltip: 'Group details',\n click: (group: TaonGroupEntity) =>\n this.navigation.openDetails('group', group.id),\n },\n ],\n },\n ];\n\n add(): void {}\n}\n","<taon-datatable\n [entityCrudController]=\"crud\"\n [columns]=\"columns\"\n [allowedColumns]=\"['id', 'name', 'code']\"\n searchMode=\"advanced\"\n (addingItem)=\"add()\"\n [expansionTemplate]=\"expansionTemplate\">\n</taon-datatable>\n<ng-template #expansionTemplate let-group>\n <taon-group-details [group]=\"group\"></taon-group-details>\n</ng-template>\n","//namespace TaonGroupBackofficeModels\n\n export type TaonGroupBackofficeModels__NS__AssignedRoleRow = {\n groupId: number;\n roleId: number;\n name: string;\n code: string;\n description?: string;\n };\n\n//end of namespace TaonGroupBackofficeModels\n","//#region imports\nimport { Routes } from '@angular/router';\n\nimport { taonBackofficeDetailsResolver } from '../../taon-session/taon-session-backoffice/taon-backoffice-details.resolver';\nimport { TaonGroupApiService } from '../taon-group-api.service';\n//#endregion\n\nexport const TaonGroupBackofficeRoutes: Routes = [\n {\n path: '',\n pathMatch: 'full',\n loadComponent: () =>\n import('./taon-group-backoffice.component').then(\n m => m.TaonGroupBackofficeComponent,\n ),\n },\n {\n path: ':id',\n data: { kind: 'group', hideInNavigation: true },\n providers: [TaonGroupApiService],\n resolve: { detail: taonBackofficeDetailsResolver },\n loadComponent: () =>\n import('../../taon-session/taon-session-backoffice/taon-backoffice-details-page.component').then(\n m => m.TaonBackofficeDetailsPageComponent,\n ),\n },\n];\n\n/**\n * By default exporting TaonGroupBackofficeRoutes,\n * the command `taon generate:app:routes`\n * will automatically add them to the root routes in ./src/app.ts.\n */\n// export default TaonGroupBackofficeRoutes;\n","//#region imports\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n inject,\n signal,\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatSelectModule } from '@angular/material/select';\n\nimport { TaonGroupApiService } from '../taon-group-api.service';\nimport type { TaonGroupEntity } from '../taon-group.entity';\n//#endregion\n\n@Component({\n selector: 'taon-group-chooser',\n templateUrl: './taon-group-chooser.component.html',\n styleUrls: ['./taon-group-chooser.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n FormsModule,\n MatButtonModule,\n MatFormFieldModule,\n MatIconModule,\n MatSelectModule,\n ],\n providers: [TaonGroupApiService],\n})\nexport class TaonGroupChooserComponent {\n //#region inject\n\n private readonly taonGroupApiService = inject(TaonGroupApiService);\n\n //#endregion\n\n //#region inputs & outputs\n\n @Input({ required: true }) userId!: number;\n\n @Input() excludedGroupIds: number[] = [];\n\n @Output() readonly assigned = new EventEmitter<number>();\n\n @Output() readonly cancelled = new EventEmitter<void>();\n\n //#endregion\n\n //#region state\n\n readonly groups = signal<TaonGroupEntity[]>([]);\n\n readonly loading = signal(false);\n\n readonly saving = signal(false);\n\n selectedGroupId?: number;\n\n //#endregion\n\n //#region constructor\n\n constructor() {\n void this.loadGroups();\n }\n\n //#endregion\n\n //#region getters\n\n get availableGroups(): TaonGroupEntity[] {\n return this.groups().filter(\n group => !this.excludedGroupIds.includes(group.id as number),\n );\n }\n\n //#endregion\n\n //#region methods\n\n async loadGroups(): Promise<void> {\n this.loading.set(true);\n\n try {\n this.groups.set(await this.taonGroupApiService.getAllGroups());\n } catch {\n this.groups.set([]);\n } finally {\n this.loading.set(false);\n }\n }\n\n async assign(): Promise<void> {\n const groupId = this.selectedGroupId;\n\n if (!groupId || !this.userId) {\n return;\n }\n\n this.saving.set(true);\n\n try {\n await this.taonGroupApiService.assignGroupToUser(this.userId, groupId);\n\n this.selectedGroupId = undefined;\n\n this.assigned.emit(groupId);\n } finally {\n this.saving.set(false);\n }\n }\n\n cancel(): void {\n this.selectedGroupId = undefined;\n\n this.cancelled.emit();\n }\n\n //#endregion\n}\n","<div class=\"taon-group-chooser\">\n <mat-form-field\n appearance=\"outline\"\n subscriptSizing=\"dynamic\"\n class=\"taon-group-chooser__field\">\n <mat-label> Group </mat-label>\n\n <mat-select\n [(ngModel)]=\"selectedGroupId\"\n [disabled]=\"loading() || saving()\">\n @for (group of availableGroups; track group.id) {\n <mat-option [value]=\"group.id\">\n {{ group.name }} ({{ group.code }})\n </mat-option>\n } @empty {\n <mat-option [disabled]=\"true\"> No groups available </mat-option>\n }\n </mat-select>\n </mat-form-field>\n\n <button\n mat-flat-button\n color=\"primary\"\n type=\"button\"\n [disabled]=\"!selectedGroupId || saving()\"\n (click)=\"assign()\">\n <mat-icon> add </mat-icon>\n\n Assign\n </button>\n\n <button\n mat-button\n type=\"button\"\n [disabled]=\"saving()\"\n (click)=\"cancel()\">\n Cancel\n </button>\n</div>\n","//#region imports\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n inject,\n signal,\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\n\nimport { TaonPermissionApiService } from '../taon-permission-api.service';\nimport type { TaonPermissionEntity } from '../taon-permission.entity';\n//#endregion\n\n@Component({\n selector: 'taon-permission-view-edit',\n templateUrl: './taon-permission-view-edit.component.html',\n styleUrls: ['./taon-permission-view-edit.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n FormsModule,\n MatButtonModule,\n MatFormFieldModule,\n MatIconModule,\n MatInputModule,\n ],\n providers: [TaonPermissionApiService],\n})\nexport class TaonPermissionViewEditComponent {\n //#region inject\n\n private readonly taonPermissionApiService = inject(TaonPermissionApiService);\n\n //#endregion\n\n //#region inputs & outputs\n\n @Input({ required: true })\n set permission(value: TaonPermissionEntity) {\n this._permission = value;\n\n this.description.set(value?.description ?? '');\n\n this.editMode.set(false);\n }\n\n get permission(): TaonPermissionEntity {\n return this._permission;\n }\n\n @Output() readonly descriptionChanged = new EventEmitter<string>();\n\n //#endregion\n\n //#region state\n\n private _permission!: TaonPermissionEntity;\n\n readonly description = signal('');\n\n readonly draftDescription = signal('');\n\n readonly editMode = signal(false);\n\n readonly saving = signal(false);\n\n //#endregion\n\n //#region methods\n\n edit(): void {\n this.draftDescription.set(this.description());\n\n this.editMode.set(true);\n }\n\n cancel(): void {\n this.draftDescription.set(this.description());\n\n this.editMode.set(false);\n }\n\n async save(): Promise<void> {\n if (!this.permission?.id) {\n return;\n }\n\n const newDescription = this.draftDescription();\n\n this.saving.set(true);\n\n try {\n await this.taonPermissionApiService.updateDescription(\n this.permission.id as number,\n newDescription,\n );\n\n this.permission.description = newDescription;\n\n this.description.set(newDescription);\n\n this.editMode.set(false);\n\n this.descriptionChanged.emit(newDescription);\n } finally {\n this.saving.set(false);\n }\n }\n\n //#endregion\n}\n","<div class=\"taon-permission-view-edit\">\n @if (editMode()) {\n <mat-form-field\n appearance=\"outline\"\n subscriptSizing=\"dynamic\"\n class=\"taon-permission-view-edit__field\">\n <mat-label> Description </mat-label>\n\n <textarea\n matInput\n rows=\"4\"\n [ngModel]=\"draftDescription()\"\n (ngModelChange)=\"draftDescription.set($event)\"\n [disabled]=\"saving()\">\n </textarea>\n </mat-form-field>\n\n <div class=\"taon-permission-view-edit__actions\">\n <button\n mat-flat-button\n color=\"primary\"\n type=\"button\"\n [disabled]=\"saving()\"\n (click)=\"save()\">\n <mat-icon> save </mat-icon>\n\n Save\n </button>\n\n <button\n mat-button\n type=\"button\"\n [disabled]=\"saving()\"\n (click)=\"cancel()\">\n Cancel\n </button>\n </div>\n } @else {\n <div class=\"taon-permission-view-edit__description\">\n {{ description() || 'No description' }}\n </div>\n\n <div class=\"taon-permission-view-edit__actions\">\n <button\n mat-stroked-button\n type=\"button\"\n (click)=\"edit()\">\n <mat-icon> edit </mat-icon>\n\n Edit\n </button>\n </div>\n }\n</div>\n","import { ChangeDetectionStrategy, Component, Input, inject } from '@angular/core';\nimport { RouterLink } from '@angular/router';\n\nimport { TaonBackofficeNavigationService } from '../../taon-session/taon-session-backoffice/taon-backoffice-navigation.service';\nimport { TaonPermissionViewEditComponent } from '../taon-permission-view-edit/taon-permission-view-edit.component';\nimport type { TaonPermissionEntity } from '../taon-permission.entity';\n\n@Component({\n selector: 'taon-permission-details',\n template: `\n <a [routerLink]=\"navigation.detailsLink('permission', permission.id)\">Permission details #{{ permission.id }}</a>\n <div class=\"permission-details__section\">\n <h4 class=\"permission-details__section-title\">Description</h4>\n <taon-permission-view-edit [permission]=\"permission\"></taon-permission-view-edit>\n </div>\n `,\n styleUrls: ['./taon-permission-backoffice.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [RouterLink, TaonPermissionViewEditComponent],\n providers: [TaonBackofficeNavigationService],\n})\nexport class TaonPermissionDetailsComponent {\n @Input({ required: true }) permission!: TaonPermissionEntity;\n\n readonly navigation = inject(TaonBackofficeNavigationService);\n}\n","//#region imports\nimport { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { MtxGridColumn } from '@ng-matero/extensions/grid';\nimport { TaonDatatableComponent } from '@taon-dev/ui/browser-prod';\n\nimport { TaonBackofficeNavigationService } from '../../taon-session/taon-session-backoffice/taon-backoffice-navigation.service';\nimport { TaonPermissionApiService } from '../taon-permission-api.service';\nimport type { TaonPermissionEntity } from '../taon-permission.entity';\n\nimport { TaonPermissionDetailsComponent } from './taon-permission-details.component';\n//#endregion\n\n@Component({\n selector: 'app-taon-permission-backoffice',\n templateUrl: './taon-permission-backoffice.component.html',\n styleUrls: ['./taon-permission-backoffice.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n TaonDatatableComponent,\n TaonPermissionDetailsComponent,\n ],\n providers: [TaonPermissionApiService, TaonBackofficeNavigationService],\n})\nexport class TaonPermissionBackofficeComponent {\n readonly navigation = inject(TaonBackofficeNavigationService);\n\n taonPermissionApiService = inject(TaonPermissionApiService);\n\n // eslint-disable-next-line @typescript-eslint/explicit-function-return-type\n public get crud() {\n return this.taonPermissionApiService.taonPermissionController;\n }\n\n columns: MtxGridColumn[] = [\n {\n header: 'ID',\n field: 'id',\n sortable: true,\n showExpand: true,\n },\n {\n header: 'Name',\n field: 'name',\n sortable: true,\n },\n {\n header: 'Code',\n field: 'code',\n sortable: true,\n },\n {\n header: 'Actions',\n field: 'actions',\n type: 'button',\n buttons: [\n {\n type: 'icon',\n icon: 'open_in_new',\n tooltip: 'Permission details',\n click: (permission: TaonPermissionEntity) =>\n this.navigation.openDetails('permission', permission.id),\n },\n ],\n },\n ];\n\n add(): void {}\n}\n","<taon-datatable\n [entityCrudController]=\"crud\"\n [columns]=\"columns\"\n [allowedColumns]=\"['id', 'name', 'code']\"\n searchMode=\"advanced\"\n (addingItem)=\"add()\"\n [expansionTemplate]=\"expansionTemplate\">\n</taon-datatable>\n\n<ng-template\n #expansionTemplate\n let-permission>\n <taon-permission-details [permission]=\"permission\"></taon-permission-details>\n</ng-template>\n","//namespace TaonPermissionBackofficeModels\n\n//end of namespace TaonPermissionBackofficeModels\n","//#region imports\nimport { Routes } from '@angular/router';\n\nimport { taonBackofficeDetailsResolver } from '../../taon-session/taon-session-backoffice/taon-backoffice-details.resolver';\nimport { TaonPermissionApiService } from '../taon-permission-api.service';\n//#endregion\n\nexport const TaonPermissionBackofficeRoutes: Routes = [\n {\n path: '',\n pathMatch: 'full',\n loadComponent: () =>\n import('./taon-permission-backoffice.component').then(\n m => m.TaonPermissionBackofficeComponent,\n ),\n },\n {\n path: ':id',\n data: { kind: 'permission', hideInNavigation: true },\n providers: [TaonPermissionApiService],\n resolve: { detail: taonBackofficeDetailsResolver },\n loadComponent: () =>\n import('../../taon-session/taon-session-backoffice/taon-backoffice-details-page.component').then(\n m => m.TaonBackofficeDetailsPageComponent,\n ),\n },\n];\n\n/**\n * By default exporting TaonPermissionBackofficeRoutes,\n * the command `taon generate:app:routes`\n * will automatically add them to the root routes in ./src/app.ts.\n */\n// export default TaonPermissionBackofficeRoutes;\n","//#region imports\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n inject,\n signal,\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatSelectModule } from '@angular/material/select';\n\nimport { TaonRoleApiService } from '../../taon-role/taon-role-api.service';\nimport { TaonPermissionApiService } from '../taon-permission-api.service';\nimport type { TaonPermissionEntity } from '../taon-permission.entity';\n//#endregion\n\n@Component({\n selector: 'taon-permission-chooser',\n templateUrl: './taon-permission-chooser.component.html',\n styleUrls: ['./taon-permission-chooser.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n FormsModule,\n MatButtonModule,\n MatFormFieldModule,\n MatIconModule,\n MatSelectModule,\n ],\n providers: [TaonPermissionApiService, TaonRoleApiService],\n})\nexport class TaonPermissionChooserComponent {\n //#region inject\n\n private readonly taonPermissionApiService = inject(TaonPermissionApiService);\n\n private readonly taonRoleApiService = inject(TaonRoleApiService);\n\n //#endregion\n\n //#region inputs & outputs\n\n @Input({ required: true }) roleId!: number;\n\n @Input() excludedPermissionIds: number[] = [];\n\n @Output() readonly assigned = new EventEmitter<number>();\n\n @Output() readonly cancelled = new EventEmitter<void>();\n\n //#endregion\n\n //#region state\n\n readonly permissions = signal<TaonPermissionEntity[]>([]);\n\n readonly loading = signal(false);\n\n readonly saving = signal(false);\n\n selectedPermissionId?: number;\n\n //#endregion\n\n //#region constructor\n\n constructor() {\n void this.loadPermissions();\n }\n\n //#endregion\n\n //#region getters\n\n get availablePermissions(): TaonPermissionEntity[] {\n return this.permissions().filter(\n permission =>\n !this.excludedPermissionIds.includes(permission.id as number),\n );\n }\n\n //#endregion\n\n //#region methods\n\n async loadPermissions(): Promise<void> {\n this.loading.set(true);\n\n try {\n this.permissions.set(\n await this.taonPermissionApiService.getAllPermissions(),\n );\n } catch {\n this.permissions.set([]);\n } finally {\n this.loading.set(false);\n }\n }\n\n async assign(): Promise<void> {\n const permissionId = this.selectedPermissionId;\n\n if (!permissionId || !this.roleId) {\n return;\n }\n\n this.saving.set(true);\n\n try {\n await this.taonRoleApiService.assignPermissionToRole(\n this.roleId,\n permissionId,\n );\n\n this.selectedPermissionId = undefined;\n\n this.assigned.emit(permissionId);\n } finally {\n this.saving.set(false);\n }\n }\n\n cancel(): void {\n this.selectedPermissionId = undefined;\n\n this.cancelled.emit();\n }\n\n //#endregion\n}\n","<div class=\"taon-permission-chooser\">\n <mat-form-field\n appearance=\"outline\"\n subscriptSizing=\"dynamic\"\n class=\"taon-permission-chooser__field\">\n <mat-label> Permission </mat-label>\n\n <mat-select\n [(ngModel)]=\"selectedPermissionId\"\n [disabled]=\"loading() || saving()\">\n @for (permission of availablePermissions; track permission.id) {\n <mat-option [value]=\"permission.id\">\n {{ permission.name }} ({{ permission.code }})\n </mat-option>\n } @empty {\n <mat-option [disabled]=\"true\"> No permissions available </mat-option>\n }\n </mat-select>\n </mat-form-field>\n\n <button\n mat-flat-button\n color=\"primary\"\n type=\"button\"\n [disabled]=\"!selectedPermissionId || saving()\"\n (click)=\"assign()\">\n <mat-icon> add </mat-icon>\n\n Assign\n </button>\n\n <button\n mat-button\n type=\"button\"\n [disabled]=\"saving()\"\n (click)=\"cancel()\">\n Cancel\n </button>\n</div>\n","//#region imports\nimport {\n ChangeDetectionStrategy,\n Component,\n Input,\n OnChanges,\n inject,\n signal,\n} from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { RouterLink } from '@angular/router';\nimport { MtxGridColumn } from '@ng-matero/extensions/grid';\nimport { TaonDatatableComponent } from '@taon-dev/ui/browser-prod';\n\nimport { TaonPermissionChooserComponent } from '../../taon-permission/taon-permission-chooser/taon-permission-chooser.component';\nimport { TaonBackofficeNavigationService } from '../../taon-session/taon-session-backoffice/taon-backoffice-navigation.service';\nimport { TaonRoleApiService } from '../taon-role-api.service';\nimport type { TaonRoleEntity } from '../taon-role.entity';\n\nimport { TaonRoleBackofficeModels__NS__AssignedPermissionRow } from './taon-role-backoffice.models';\n//#endregion\n\n@Component({\n selector: 'taon-role-details',\n templateUrl: './taon-role-details.component.html',\n styleUrls: ['./taon-role-backoffice.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n RouterLink,\n MatButtonModule,\n MatIconModule,\n TaonDatatableComponent,\n TaonPermissionChooserComponent,\n ],\n providers: [TaonRoleApiService, TaonBackofficeNavigationService],\n})\nexport class TaonRoleDetailsComponent implements OnChanges {\n @Input({ required: true }) role!: TaonRoleEntity;\n\n readonly navigation = inject(TaonBackofficeNavigationService);\n\n ngOnChanges(): void {\n void this.loadPermissionsForRole(Number(this.role.id));\n }\n //#region inject\n\n taonRoleApiService = inject(TaonRoleApiService);\n\n //#endregion\n\n //#region state\n\n readonly permissionRowsByRoleId = signal<\n Record<number, TaonRoleBackofficeModels__NS__AssignedPermissionRow[]>\n >({});\n\n readonly permissionChooserRoleId = signal<number | undefined>(undefined);\n\n /**\n * Stable reference, so that nested datatables do not reload on every\n * change detection cycle while permissions are not loaded yet.\n */\n private readonly emptyPermissionRows: TaonRoleBackofficeModels__NS__AssignedPermissionRow[] =\n [];\n\n private readonly emptyIds: number[] = [];\n\n private readonly assignedPermissionIdsByRoleId = signal<\n Record<number, number[]>\n >({});\n\n //#endregion\n\n //#region columns\n\n permissionColumns: MtxGridColumn[] = [\n {\n header: 'ID',\n field: 'permissionId',\n },\n {\n header: 'Name',\n field: 'name',\n },\n {\n header: 'Code',\n field: 'code',\n },\n {\n header: 'Description',\n field: 'description',\n },\n {\n header: 'Actions',\n field: 'actions',\n type: 'button',\n buttons: [\n {\n type: 'icon',\n icon: 'open_in_new',\n tooltip: 'Permission details',\n click: (row: TaonRoleBackofficeModels__NS__AssignedPermissionRow) =>\n this.navigation.openDetails('permission', row.permissionId),\n },\n {\n type: 'icon',\n icon: 'delete',\n color: 'warn',\n tooltip: 'Remove permission from role',\n click: (row: TaonRoleBackofficeModels__NS__AssignedPermissionRow) =>\n void this.unassignPermission(row),\n },\n ],\n },\n ];\n\n //#endregion\n\n //#region methods\n\n permissionRowsFor(\n roleId: number,\n ): TaonRoleBackofficeModels__NS__AssignedPermissionRow[] {\n return this.permissionRowsByRoleId()[roleId] ?? this.emptyPermissionRows;\n }\n\n assignedPermissionIds(roleId: number): number[] {\n return this.assignedPermissionIdsByRoleId()[roleId] ?? this.emptyIds;\n }\n\n openPermissionChooser(roleId: number): void {\n this.permissionChooserRoleId.set(roleId);\n }\n\n closePermissionChooser(): void {\n this.permissionChooserRoleId.set(undefined);\n }\n\n permissionAssigned(roleId: number): void {\n this.closePermissionChooser();\n\n void this.loadPermissionsForRole(roleId);\n }\n\n async loadPermissionsForRole(roleId: number): Promise<void> {\n if (!roleId) {\n return;\n }\n\n const permissions =\n await this.taonRoleApiService.getPermissionsForRole(roleId);\n\n const rows = permissions.map(permission => ({\n roleId,\n permissionId: permission.id as number,\n name: permission.name,\n code: permission.code,\n description: permission.description,\n }));\n\n this.permissionRowsByRoleId.set({\n ...this.permissionRowsByRoleId(),\n [roleId]: rows,\n });\n\n this.assignedPermissionIdsByRoleId.set({\n ...this.assignedPermissionIdsByRoleId(),\n [roleId]: rows.map(row => row.permissionId),\n });\n }\n\n async unassignPermission(\n row: TaonRoleBackofficeModels__NS__AssignedPermissionRow,\n ): Promise<void> {\n await this.taonRoleApiService.unassignPermissionFromRole(\n row.roleId,\n row.permissionId,\n );\n\n await this.loadPermissionsForRole(row.roleId);\n }\n\n //#endregion\n}","<a [routerLink]=\"navigation.detailsLink('role', role.id)\">Role details #{{ role.id }}</a>\n <div class=\"role-details__section\">\n <div class=\"role-details__section-header\">\n <h4 class=\"role-details__section-title\">Role permissions</h4>\n\n @if (permissionChooserRoleId() !== role.id) {\n <button\n mat-flat-button\n color=\"primary\"\n type=\"button\"\n (click)=\"openPermissionChooser(role.id)\">\n <mat-icon> add </mat-icon>\n\n Assign permission\n </button>\n }\n </div>\n\n @if (permissionChooserRoleId() === role.id) {\n <taon-permission-chooser\n [roleId]=\"role.id\"\n [excludedPermissionIds]=\"assignedPermissionIds(role.id)\"\n (assigned)=\"permissionAssigned(role.id)\"\n (cancelled)=\"closePermissionChooser()\">\n </taon-permission-chooser>\n }\n\n <taon-datatable\n [data]=\"permissionRowsFor(role.id)\"\n [columns]=\"permissionColumns\"\n [pageSize]=\"5\"\n [hideSearch]=\"true\"\n [hideAddButton]=\"true\"\n [showPaginator]=\"false\"\n searchMode=\"simple\">\n </taon-datatable>\n </div>\n","import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { MtxGridColumn } from '@ng-matero/extensions/grid';\nimport { TaonDatatableComponent } from '@taon-dev/ui/browser-prod';\n\nimport { TaonBackofficeNavigationService } from '../../taon-session/taon-session-backoffice/taon-backoffice-navigation.service';\nimport { TaonRoleApiService } from '../taon-role-api.service';\nimport type { TaonRoleEntity } from '../taon-role.entity';\n\nimport { TaonRoleDetailsComponent } from './taon-role-details.component';\n\n@Component({\n selector: 'app-taon-role-backoffice',\n templateUrl: './taon-role-backoffice.component.html',\n styleUrls: ['./taon-role-backoffice.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [TaonDatatableComponent, TaonRoleDetailsComponent],\n providers: [TaonRoleApiService, TaonBackofficeNavigationService],\n})\nexport class TaonRoleBackofficeComponent {\n readonly taonRoleApiService = inject(TaonRoleApiService);\n\n readonly navigation = inject(TaonBackofficeNavigationService);\n\n public get crud() {\n return this.taonRoleApiService.taonRoleController;\n }\n\n readonly columns: MtxGridColumn[] = [\n { header: 'ID', field: 'id', sortable: true, showExpand: true },\n { header: 'Name', field: 'name', sortable: true },\n { header: 'Code', field: 'code', sortable: true },\n {\n header: 'Actions',\n field: 'actions',\n type: 'button',\n buttons: [\n {\n type: 'icon',\n icon: 'open_in_new',\n tooltip: 'Role details',\n click: (role: TaonRoleEntity) =>\n this.navigation.openDetails('role', role.id),\n },\n ],\n },\n ];\n\n add(): void {}\n}\n","<taon-datatable\n [entityCrudController]=\"crud\"\n [columns]=\"columns\"\n [allowedColumns]=\"['id', 'name', 'code']\"\n searchMode=\"advanced\"\n (addingItem)=\"add()\"\n [expansionTemplate]=\"expansionTemplate\">\n</taon-datatable>\n<ng-template #expansionTemplate let-role>\n <taon-role-details [role]=\"role\"></taon-role-details>\n</ng-template>\n","//namespace TaonRoleBackofficeModels\n\n export type TaonRoleBackofficeModels__NS__AssignedPermissionRow = {\n roleId: number;\n permissionId: number;\n name: string;\n code: string;\n description?: string;\n };\n\n//end of namespace TaonRoleBackofficeModels\n","//#region imports\nimport { Routes } from '@angular/router';\nimport { TaonRoleApiService } from '../taon-role-api.service';\nimport { taonBackofficeDetailsResolver } from '../../taon-session/taon-session-backoffice/taon-backoffice-details.resolver';\n//#endregion\n\nexport const TaonRoleBackofficeRoutes: Routes = [\n {\n path: '',\n pathMatch: 'full',\n loadComponent: () =>\n import('./taon-role-backoffice.component').then(\n m => m.TaonRoleBackofficeComponent,\n ),\n },\n {\n path: ':id',\n data: { kind: 'role', hideInNavigation: true },\n providers: [TaonRoleApiService],\n resolve: { detail: taonBackofficeDetailsResolver },\n loadComponent: () =>\n import('../../taon-session/taon-session-backoffice/taon-backoffice-details-page.component').then(\n m => m.TaonBackofficeDetailsPageComponent,\n ),\n },\n];\n\n/**\n * By default exporting TaonRoleBackofficeRoutes,\n * the command `taon generate:app:routes`\n * will automatically add them to the root routes in ./src/app.ts.\n */\n// export default TaonRoleBackofficeRoutes;\n","//#region imports\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { TaonBaseAngularService, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\n\nimport { TaonProfileProvider } from './taon-profile.provider';\n//#endregion\n\n@Injectable()\nexport class TaonProfileConfigService extends TaonBaseAngularService {\n private taonProfileProvider = this.injectProvider(TaonProfileProvider);\n\n clone(): Partial<TaonProfileProvider> {\n const cloned = this.taonProfileProvider.clone();\n return cloned;\n }\n}","import type { TaonProfileEntity } from './taon-profile.entity';\nimport { Translation } from '@taon-dev/i18n/browser-prod';\nimport { Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';\n\nconst t = Translation.for('src/lib/taon-session/taon-profile/taon-profile.constants.ts', {} as any);\n\nexport const TaonProfileDefaultsValues = {\n description: '',\n version: 0,\n id: void 0,\n} as Partial<TaonProfileEntity>;\n\nexport enum TaonProfileErrors {\n INVALID_PASSWORD_EXAMPLE_ERROR = 'INVALID_PASSWORD_EXAMPLE_ERROR',\n}\n\nexport const TaonProfileTranslationErorsMap = new Map([\n [TaonProfileErrors.INVALID_PASSWORD_EXAMPLE_ERROR, t.gettext('Invalid Password')],\n]);","//#region imports\nimport {\n TaonBaseRepository,\n TaonBaseKvRepository,\n TaonRepository,\n} from 'taon/browser-prod';\n\nimport { TaonProfileEntity } from './taon-profile.entity';\n//#endregion\n\n@TaonRepository({\n className: 'TaonProfileKvRepository',\n})\nexport class TaonProfileKvRepository extends TaonBaseKvRepository<{\n usersToNotify: TaonProfileEntity[];\n}> {\n async notifyUsers(users: TaonProfileEntity[]) {\n this.set('usersToNotify', users);\n }\n}","//#region imports\nimport { AsyncPipe } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n Input,\n OnChanges,\n forwardRef,\n inject,\n signal,\n} from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { RouterLink } from '@angular/router';\nimport { MtxGridColumn } from '@ng-matero/extensions/grid';\nimport { TaonDatatableComponent } from '@taon-dev/ui/browser-prod';\n\nimport { TaonGroupApiService } from '../../taon-group/taon-group-api.service';\nimport { TaonGroupChooserComponent } from '../../taon-group/taon-group-chooser/taon-group-chooser.component';\nimport type { TaonGroupEntity } from '../../taon-group/taon-group.entity';\nimport { TaonProfilePictureComponent } from '../../taon-session/taon-profile/taon-profile-picture/taon-profile-picture.component';\nimport { TaonBackofficeNavigationService } from '../../taon-session/taon-session-backoffice/taon-backoffice-navigation.service';\nimport { TaonSessionApiService } from '../../taon-session/taon-session.api.service';\nimport type { TaonSessionUserEntity } from '../taon-session-user.entity';\n\nimport { TaonSessionBackofficeUsersModels__NS__AssignedGroupRoleRow, TaonSessionBackofficeUsersModels__NS__AssignedGroupRow } from './taon-session-backoffice-users.models';\nimport { of } from 'rxjs';\n//#endregion\n\n@Component({\n selector: 'taon-session-user-details',\n templateUrl: './taon-session-user-details.component.html',\n styleUrls: ['./taon-session-backoffice-users.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n AsyncPipe,\n RouterLink,\n MatButtonModule,\n MatIconModule,\n TaonDatatableComponent,\n TaonGroupChooserComponent,\n TaonProfilePictureComponent,\n ],\n providers: [\n TaonGroupApiService,\n TaonBackofficeNavigationService,\n forwardRef(() => TaonSessionApiService),\n ],\n})\nexport class TaonSessionUserDetailsComponent implements OnChanges {\n @Input({ required: true }) user!: TaonSessionUserEntity;\n\n readonly navigation = inject(TaonBackofficeNavigationService);\n\n readonly taonSessionApiService = inject(TaonSessionApiService);\n\n context$ = this.taonSessionApiService.context();\n\n ngOnChanges(): void {\n void this.loadGroupsForUser(Number(this.user.id));\n }\n //#region inject\n\n private readonly taonGroupApiService = inject(TaonGroupApiService);\n\n //#endregion\n\n //#region state\n\n readonly groupRowsByUserId = signal<\n Record<number, TaonSessionBackofficeUsersModels__NS__AssignedGroupRow[]>\n >({});\n\n readonly groupChooserUserId = signal<number | undefined>(undefined);\n\n /**\n * Stable reference, so that nested datatables do not reload on every\n * change detection cycle while groups are not loaded yet.\n */\n private readonly emptyGroupRows: TaonSessionBackofficeUsersModels__NS__AssignedGroupRow[] =\n [];\n\n private readonly emptyIds: number[] = [];\n\n private readonly assignedGroupIdsByUserId = signal<Record<number, number[]>>(\n {},\n );\n\n //#endregion\n\n //#region columns\n\n identityColumns: MtxGridColumn[] = [\n {\n header: 'Provider',\n field: 'provider',\n },\n {\n header: 'Email',\n field: 'email',\n },\n ];\n\n groupColumns: MtxGridColumn[] = [\n {\n header: 'ID',\n field: 'groupId',\n showExpand: true,\n },\n {\n header: 'Name',\n field: 'name',\n },\n {\n header: 'Code',\n field: 'code',\n },\n {\n header: 'Description',\n field: 'description',\n },\n {\n header: 'Actions',\n field: 'actions',\n type: 'button',\n buttons: [\n {\n type: 'icon',\n icon: 'open_in_new',\n tooltip: 'Group details',\n click: (row: TaonSessionBackofficeUsersModels__NS__AssignedGroupRow) =>\n this.navigation.openDetails('group', row.groupId),\n },\n {\n type: 'icon',\n icon: 'delete',\n color: 'warn',\n tooltip: 'Remove group from user',\n click: (row: TaonSessionBackofficeUsersModels__NS__AssignedGroupRow) =>\n void this.unassignGroup(row),\n },\n ],\n },\n ];\n\n //#endregion\n\n //#region methods\n\n groupRowsFor(\n userId: number,\n ): TaonSessionBackofficeUsersModels__NS__AssignedGroupRow[] {\n return this.groupRowsByUserId()[userId] ?? this.emptyGroupRows;\n }\n\n assignedGroupIds(userId: number): number[] {\n return this.assignedGroupIdsByUserId()[userId] ?? this.emptyIds;\n }\n\n openGroupChooser(userId: number): void {\n this.groupChooserUserId.set(userId);\n }\n\n closeGroupChooser(): void {\n this.groupChooserUserId.set(undefined);\n }\n\n groupAssigned(userId: number): void {\n this.closeGroupChooser();\n\n void this.loadGroupsForUser(userId);\n }\n\n async loadGroupsForUser(userId: number): Promise<void> {\n if (!userId) {\n return;\n }\n\n const groups = await this.taonGroupApiService.getGroupsForUser(userId);\n\n const rows = groups.map(group => ({\n userId,\n groupId: group.id as number,\n name: group.name,\n code: group.code,\n description: group.description,\n roles: this.roleRowsFromGroup(group),\n }));\n\n this.groupRowsByUserId.set({\n ...this.groupRowsByUserId(),\n [userId]: rows,\n });\n\n this.assignedGroupIdsByUserId.set({\n ...this.assignedGroupIdsByUserId(),\n [userId]: rows.map(row => row.groupId),\n });\n }\n\n async unassignGroup(\n row: TaonSessionBackofficeUsersModels__NS__AssignedGroupRow,\n ): Promise<void> {\n await this.taonGroupApiService.unassignGroupFromUser(\n row.userId,\n row.groupId,\n );\n\n await this.loadGroupsForUser(row.userId);\n }\n\n //#endregion\n\n //#region private methods\n\n private roleRowsFromGroup(\n group: TaonGroupEntity,\n ): TaonSessionBackofficeUsersModels__NS__AssignedGroupRoleRow[] {\n const rolesById = new Map<\n number,\n TaonSessionBackofficeUsersModels__NS__AssignedGroupRoleRow\n >();\n\n for (const groupRole of group.groupRoles ?? []) {\n const role = groupRole.role;\n if (role) {\n rolesById.set(Number(role.id), {\n roleId: Number(role.id),\n name: role.name,\n });\n }\n }\n\n return [...rolesById.values()];\n }\n\n //#endregion\n}","<a [routerLink]=\"navigation.detailsLink('user', user.id)\">User details #{{ user.id }}</a>\n <!-- profile -->\n <div class=\"user-details__profile\">\n <div class=\"user-details__profile-picture\">\n <taon-profile-picture\n [userId]=\"user.id\"\n [readOnly]=\"!(context$ | async)?.isSuperUser\">\n </taon-profile-picture>\n </div>\n\n <div class=\"user-details__profile-fields\">\n <div class=\"user-details__profile-field\">\n <span class=\"user-details__profile-label\"> First Name </span>\n\n <span class=\"user-details__profile-value\"> - </span>\n </div>\n\n <div class=\"user-details__profile-field\">\n <span class=\"user-details__profile-label\"> Surname </span>\n\n <span class=\"user-details__profile-value\"> - </span>\n </div>\n </div>\n </div>\n\n <!-- groups -->\n <div class=\"user-details__section\">\n <div class=\"user-details__section-header\">\n <h4 class=\"user-details__section-title\">User groups</h4>\n\n @if (groupChooserUserId() !== user.id) {\n <button\n mat-flat-button\n color=\"primary\"\n type=\"button\"\n (click)=\"openGroupChooser(user.id)\">\n <mat-icon> group_add </mat-icon>\n\n Assign group\n </button>\n }\n </div>\n\n @if (groupChooserUserId() === user.id) {\n <taon-group-chooser\n [userId]=\"user.id\"\n [excludedGroupIds]=\"assignedGroupIds(user.id)\"\n (assigned)=\"groupAssigned(user.id)\"\n (cancelled)=\"closeGroupChooser()\">\n </taon-group-chooser>\n }\n\n <taon-datatable\n [data]=\"groupRowsFor(user.id)\"\n [columns]=\"groupColumns\"\n [pageSize]=\"5\"\n [hideSearch]=\"true\"\n [hideAddButton]=\"true\"\n [showPaginator]=\"false\"\n searchMode=\"simple\"\n [expansionTemplate]=\"groupExpansionTemplate\">\n </taon-datatable>\n </div>\n\n <!-- providers -->\n <div class=\"user-details__section\">\n <h4 class=\"user-details__section-title\">Providers</h4>\n\n <taon-datatable\n [data]=\"user.identities\"\n [columns]=\"identityColumns\"\n [pageSize]=\"5\"\n [hideSearch]=\"true\"\n [hideAddButton]=\"true\"\n [showPaginator]=\"false\"\n searchMode=\"simple\">\n </taon-datatable>\n </div>\n\n\n<ng-template\n #groupExpansionTemplate\n let-group>\n <div class=\"user-details__group-roles\">\n <span class=\"user-details__section-title\"> Roles from groups </span>\n\n <ul class=\"user-details__role-list\">\n @for (role of group.roles; track role.roleId) {\n <li class=\"user-details__role-item\">\n <a [routerLink]=\"navigation.detailsLink('role', role.roleId)\">{{ role.name }}</a>\n </li>\n } @empty {\n <li class=\"user-details__role-item\">\n No roles available through this group\n </li>\n }\n </ul>\n </div>\n</ng-template>\n","import { AsyncPipe } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n forwardRef,\n inject,\n} from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { map } from 'rxjs';\n\nimport { TaonGroupDetailsComponent } from '../../taon-group/taon-group-backoffice/taon-group-details.component';\nimport { TaonPermissionDetailsComponent } from '../../taon-permission/taon-permission-backoffice/taon-permission-details.component';\nimport { TaonRoleDetailsComponent } from '../../taon-role/taon-role-backoffice/taon-role-details.component';\nimport { TaonSessionUserDetailsComponent } from '../../taon-session-user/taon-session-backoffice-users/taon-session-user-details.component';\n\nimport type { TaonBackofficeDetail } from './taon-backoffice-details.resolver';\nimport { TaonSessionDetailsComponent } from './taon-session-details.component';\n\n@Component({\n selector: 'taon-backoffice-details-page',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n AsyncPipe,\n forwardRef(() => TaonSessionUserDetailsComponent),\n forwardRef(() => TaonGroupDetailsComponent),\n forwardRef(() => TaonRoleDetailsComponent),\n forwardRef(() => TaonPermissionDetailsComponent),\n forwardRef(() => TaonSessionDetailsComponent),\n ],\n template: `\n @if (detail$ | async; as detail) {\n @switch (detail.kind) {\n @case ('session') {\n <h2>Session #{{ detail.entity.id }}</h2>\n <taon-session-details\n [sessionId]=\"detail.entity.id\"\n [detail]=\"detail.entity\"></taon-session-details>\n }\n @case ('user') {\n <h2>User: {{ detail.entity.username }} (#{{ detail.entity.id }})</h2>\n <taon-session-user-details\n [user]=\"detail.entity\"></taon-session-user-details>\n }\n @case ('group') {\n <h2>Group: {{ detail.entity.name }} (#{{ detail.entity.id }})</h2>\n <taon-group-details [group]=\"detail.entity\"></taon-group-details>\n }\n @case ('role') {\n <h2>Role: {{ detail.entity.name }} (#{{ detail.entity.id }})</h2>\n <taon-role-details [role]=\"detail.entity\"></taon-role-details>\n }\n @case ('permission') {\n <h2>\n Permission: {{ detail.entity.name }} (#{{ detail.entity.id }})\n </h2>\n <taon-permission-details\n [permission]=\"detail.entity\"></taon-permission-details>\n }\n }\n }\n `,\n})\nexport class TaonBackofficeDetailsPageComponent {\n readonly detail$ = inject(ActivatedRoute).data.pipe(\n map(data => data['detail'] as TaonBackofficeDetail),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n forwardRef,\n inject,\n} from '@angular/core';\nimport { MtxGridColumn } from '@ng-matero/extensions/grid';\nimport { TaonDatatableComponent } from '@taon-dev/ui/browser-prod';\n\nimport { TaonBackofficeNavigationService } from '../../taon-session/taon-session-backoffice/taon-backoffice-navigation.service';\nimport { TaonSessionUserApiService } from '../taon-session-user-api.service';\nimport type { TaonSessionUserEntity } from '../taon-session-user.entity';\n\nimport { TaonSessionUserDetailsComponent } from './taon-session-user-details.component';\n\n@Component({\n selector: 'app-taon-session-backoffice-users',\n templateUrl: './taon-session-backoffice-users.component.html',\n styleUrls: ['./taon-session-backoffice-users.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n TaonDatatableComponent,\n forwardRef(() => TaonSessionUserDetailsComponent),\n ],\n providers: [TaonSessionUserApiService, TaonBackofficeNavigationService],\n})\nexport class TaonSessionBackofficeUsersComponent {\n readonly userApiService = inject(TaonSessionUserApiService);\n\n readonly navigation = inject(TaonBackofficeNavigationService);\n\n public get crud() {\n return this.userApiService.taonSessionUserController;\n }\n\n readonly columns: MtxGridColumn[] = [\n { header: 'ID', field: 'id', sortable: true, showExpand: true },\n { header: 'Username', field: 'username', sortable: true },\n {\n header: 'Actions',\n field: 'actions',\n type: 'button',\n buttons: [\n {\n type: 'icon',\n icon: 'open_in_new',\n tooltip: 'User details',\n click: (user: TaonSessionUserEntity) =>\n this.navigation.openDetails('user', user.id),\n },\n ],\n },\n ];\n\n add(): void {}\n}\n","<taon-datatable\n [entityCrudController]=\"crud\"\n [columns]=\"columns\"\n [allowedColumns]=\"['id', 'username']\"\n searchMode=\"advanced\"\n (addingItem)=\"add()\"\n [expansionTemplate]=\"expansionTemplate\">\n</taon-datatable>\n<ng-template #expansionTemplate let-user>\n <taon-session-user-details [user]=\"user\"></taon-session-user-details>\n</ng-template>\n","//namespace TaonSessionBackofficeUsersModels\n\n export type TaonSessionBackofficeUsersModels__NS__AssignedGroupRoleRow = {\n roleId: number;\n name: string;\n };\n\n export type TaonSessionBackofficeUsersModels__NS__AssignedGroupRow = {\n userId: number;\n groupId: number;\n name: string;\n code: string;\n description?: string;\n roles: TaonSessionBackofficeUsersModels__NS__AssignedGroupRoleRow[];\n };\n\n//end of namespace TaonSessionBackofficeUsersModels\n","//#region imports\nimport { Routes } from '@angular/router';\nimport { TaonSessionUserApiService } from '../taon-session-user-api.service';\nimport { taonBackofficeDetailsResolver } from '../../taon-session/taon-session-backoffice/taon-backoffice-details.resolver';\n//#endregion\n\nexport const TaonSessionBackofficeUsersRoutes: Routes = [\n {\n path: '',\n pathMatch: 'full',\n loadComponent: () =>\n import('./taon-session-backoffice-users.component').then(\n m => m.TaonSessionBackofficeUsersComponent,\n ),\n },\n {\n path: ':id',\n data: { kind: 'user', hideInNavigation: true },\n providers: [TaonSessionUserApiService],\n resolve: { detail: taonBackofficeDetailsResolver },\n loadComponent: () =>\n import('../../taon-session/taon-session-backoffice/taon-backoffice-details-page.component').then(\n m => m.TaonBackofficeDetailsPageComponent,\n ),\n },\n];\n\n/**\n * By default exporting TaonSessionBackofficeUsersRoutes,\n * the command `taon generate:app:routes`\n * will automatically add them to the root routes in ./src/app.ts.\n */\n// export default TaonSessionBackofficeUsersRoutes;\n","//namespace TaonProfilePictureModels\n\n//end of namespace TaonProfilePictureModels\n","//#region imports\nimport { Routes } from '@angular/router';\nimport { adminLazyRoute } from '@taon-dev/ui/browser-prod';\n//#endregion\n\nexport const TaonProfilePictureRoutes: Routes = [\n {\n path: '',\n loadComponent: () =>\n import('./taon-profile-picture.component').then(m => m.TaonProfilePictureComponent),\n\n children: [\n // adminLazyRoute({\n // path: 'dashboard',\n // menuItem: 'Dashboard',\n // icon: 'dashboard',\n // expandable: false,\n // loader: () =>\n // import('./anothermodule.routes').then(m => m.DashboardRoutes),\n // }),\n ],\n },\n];\n\n/**\n * By default exporting TaonProfilePictureRoutes,\n * the command `taon generate:app:routes`\n * will automatically add them to the root routes in ./src/app.ts.\n */\n// export default TaonProfilePictureRoutes;","//namespace TaonSessionProfileModels\n\n//end of namespace TaonSessionProfileModels\n","// @ts-nocheck\n// This file is auto-generated during init process. Do not modify.\n// This disable this auto generate file.\n// set property \"shouldGenerateAutogenIndexFile: false\" \n// in taon.jsonc of your project. \nexport * from './build-info._auto-generated_'; \nexport * from './my-organization-proj'; \nexport * from './start-cli'; \nexport * from './taon-audit-events/taon-audit-events-api.service'; // @browser\nexport * from './taon-audit-events/taon-audit-events.abstract.context'; \nexport * from './taon-audit-events/taon-audit-events.constants'; \nexport * from './taon-audit-events/taon-audit-events.controller'; \nexport * from './taon-audit-events/taon-audit-events.entity'; \nexport * from './taon-audit-events/taon-audit-events.middleware'; \nexport * from './taon-audit-events/taon-audit-events.models'; \nexport * from './taon-audit-events/taon-audit-events.provider'; \nexport * from './taon-audit-events/taon-audit-events.repository'; \nexport * from './taon-audit-events/taon-audit-events.subscriber'; \nexport * from './taon-audit-events/taon-audit-events.utils'; \nexport * from './taon-auth-context/taon-auth-context.abstract.context'; \nexport * from './taon-auth-context/taon-auth-context.entity'; \nexport * from './taon-auth-context/taon-auth-context.repository'; \nexport * from './taon-authorization-backoffice/taon-authorization-backoffice.component'; // @browser\nexport * from './taon-authorization-backoffice/taon-authorization-backoffice.models'; \nexport * from './taon-authorization-backoffice/taon-authorization-backoffice.routes'; // @browser\nexport * from './taon-group/taon-group-api.service'; // @browser\nexport * from './taon-group/taon-group-role.entity'; \nexport * from './taon-group/taon-group-role.repository'; \nexport * from './taon-group/taon-group.abstract.context'; \nexport * from './taon-group/taon-group.constants'; \nexport * from './taon-group/taon-group.controller'; \nexport * from './taon-group/taon-group.entity'; \nexport * from './taon-group/taon-group.middleware'; \nexport * from './taon-group/taon-group.provider'; \nexport * from './taon-group/taon-group.repository'; \nexport * from './taon-notification/taon-notification-api.service'; // @browser\nexport * from './taon-notification/taon-notification-recipient.entity'; \nexport * from './taon-notification/taon-notification.abstract.context'; \nexport * from './taon-notification/taon-notification.constants'; \nexport * from './taon-notification/taon-notification.controller'; \nexport * from './taon-notification/taon-notification.entity'; \nexport * from './taon-notification/taon-notification.middleware'; \nexport * from './taon-notification/taon-notification.models'; \nexport * from './taon-notification/taon-notification.provider'; \nexport * from './taon-notification/taon-notification.repository'; \nexport * from './taon-notification/taon-notification.subscriber'; \nexport * from './taon-notification/taon-notification.utils'; \nexport * from './taon-permission/taon-permission-api.service'; // @browser\nexport * from './taon-permission/taon-permission.abstract.context'; \nexport * from './taon-permission/taon-permission.constants'; \nexport * from './taon-permission/taon-permission.controller'; \nexport * from './taon-permission/taon-permission.entity'; \nexport * from './taon-permission/taon-permission.middleware'; \nexport * from './taon-permission/taon-permission.models'; \nexport * from './taon-permission/taon-permission.provider'; \nexport * from './taon-permission/taon-permission.repository'; \nexport * from './taon-permission/taon-permission.subscriber'; \nexport * from './taon-permission/taon-permission.utils'; \nexport * from './taon-role/taon-role-api.service'; // @browser\nexport * from './taon-role/taon-role-permission.entity'; \nexport * from './taon-role/taon-role-permission.repository'; \nexport * from './taon-role/taon-role.abstract.context'; \nexport * from './taon-role/taon-role.constants'; \nexport * from './taon-role/taon-role.controller'; \nexport * from './taon-role/taon-role.entity'; \nexport * from './taon-role/taon-role.models'; \nexport * from './taon-role/taon-role.provider'; \nexport * from './taon-role/taon-role.repository'; \nexport * from './taon-session/taon-session.abstract.context'; \nexport * from './taon-session/taon-session.api.service'; // @browser\nexport * from './taon-session/taon-session.config.service'; // @browser\nexport * from './taon-session/taon-session.controller'; \nexport * from './taon-session/taon-session.entity'; \nexport * from './taon-session/taon-session.kv.repository'; \nexport * from './taon-session/taon-session.middleware'; \nexport * from './taon-session/taon-session.models'; \nexport * from './taon-session/taon-session.provider'; \nexport * from './taon-session/taon-session.repository'; \nexport * from './taon-session/taon-session.state.service'; // @browser\nexport * from './taon-session/taon-session.utils'; \nexport * from './taon-session/taon-session.validators'; \nexport * from './taon-session-user/taon-session-user-api.service'; // @browser\nexport * from './taon-session-user/taon-session-user-group.entity'; \nexport * from './taon-session-user/taon-session-user-group.repository'; \nexport * from './taon-session-user/taon-session-user-identity.entity'; \nexport * from './taon-session-user/taon-session-user-identity.repository'; \nexport * from './taon-session-user/taon-session-user-role.entity'; \nexport * from './taon-session-user/taon-session-user.abstract.context'; \nexport * from './taon-session-user/taon-session-user.constants'; \nexport * from './taon-session-user/taon-session-user.controller'; \nexport * from './taon-session-user/taon-session-user.entity'; \nexport * from './taon-session-user/taon-session-user.middleware'; \nexport * from './taon-session-user/taon-session-user.models'; \nexport * from './taon-session-user/taon-session-user.provider'; \nexport * from './taon-session-user/taon-session-user.repository'; \nexport * from './taon-session-user/taon-session-user.subscriber'; \nexport * from './taon-session-user/taon-session-user.utils'; \nexport * from './taon-group/taon-group-backoffice/taon-group-backoffice.component'; // @browser\nexport * from './taon-group/taon-group-backoffice/taon-group-backoffice.models'; \nexport * from './taon-group/taon-group-backoffice/taon-group-backoffice.routes'; // @browser\nexport * from './taon-group/taon-group-backoffice/taon-group-details.component'; // @browser\nexport * from './taon-group/taon-group-chooser/taon-group-chooser.component'; // @browser\nexport * from './taon-permission/taon-permission-backoffice/taon-permission-backoffice.component'; // @browser\nexport * from './taon-permission/taon-permission-backoffice/taon-permission-backoffice.models'; \nexport * from './taon-permission/taon-permission-backoffice/taon-permission-backoffice.routes'; // @browser\nexport * from './taon-permission/taon-permission-backoffice/taon-permission-details.component'; // @browser\nexport * from './taon-permission/taon-permission-chooser/taon-permission-chooser.component'; // @browser\nexport * from './taon-permission/taon-permission-view-edit/taon-permission-view-edit.component'; // @browser\nexport * from './taon-role/taon-role-backoffice/taon-role-backoffice.component'; // @browser\nexport * from './taon-role/taon-role-backoffice/taon-role-backoffice.models'; \nexport * from './taon-role/taon-role-backoffice/taon-role-backoffice.routes'; // @browser\nexport * from './taon-role/taon-role-backoffice/taon-role-details.component'; // @browser\nexport * from './taon-role/taon-role-chooser/taon-role-chooser.component'; // @browser\nexport * from './taon-session/taon-profile/taon-profile.abstract.context'; \nexport * from './taon-session/taon-profile/taon-profile.api.service'; // @browser\nexport * from './taon-session/taon-profile/taon-profile.config.service'; // @browser\nexport * from './taon-session/taon-profile/taon-profile.constants'; \nexport * from './taon-session/taon-profile/taon-profile.controller'; \nexport * from './taon-session/taon-profile/taon-profile.entity'; \nexport * from './taon-session/taon-profile/taon-profile.kv.repository'; \nexport * from './taon-session/taon-profile/taon-profile.models'; \nexport * from './taon-session/taon-profile/taon-profile.provider'; \nexport * from './taon-session/taon-session/taon-session.component'; // @browser\nexport * from './taon-session/taon-session-backoffice/taon-backoffice-details-page.component'; // @browser\nexport * from './taon-session/taon-session-backoffice/taon-backoffice-details.resolver'; // @browser\nexport * from './taon-session/taon-session-backoffice/taon-backoffice-navigation.service'; // @browser\nexport * from './taon-session/taon-session-backoffice/taon-session-backoffice.api.service'; // @browser\nexport * from './taon-session/taon-session-backoffice/taon-session-backoffice.component'; // @browser\nexport * from './taon-session/taon-session-backoffice/taon-session-backoffice.controller'; \nexport * from './taon-session/taon-session-backoffice/taon-session-backoffice.models'; \nexport * from './taon-session/taon-session-backoffice/taon-session-backoffice.routes'; // @browser\nexport * from './taon-session/taon-session-backoffice/taon-session-details.component'; // @browser\nexport * from './taon-session/taon-session-button/taon-session-button.component'; // @browser\nexport * from './taon-session-user/taon-session-backoffice-users/taon-session-backoffice-users.component'; // @browser\nexport * from './taon-session-user/taon-session-backoffice-users/taon-session-backoffice-users.models'; \nexport * from './taon-session-user/taon-session-backoffice-users/taon-session-backoffice-users.routes'; // @browser\nexport * from './taon-session-user/taon-session-backoffice-users/taon-session-user-details.component'; // @browser\nexport * from './taon-session/taon-profile/taon-profile-picture/taon-profile-picture.component'; // @browser\nexport * from './taon-session/taon-profile/taon-profile-picture/taon-profile-picture.models'; \nexport * from './taon-session/taon-profile/taon-profile-picture/taon-profile-picture.routes'; // @browser\nexport * from './taon-session/taon-session/social-buttons/google-login-register-button.component'; // @browser\nexport * from './taon-session/taon-session/taon-session-profile/taon-session-profile.component'; // @browser\nexport * from './taon-session/taon-session/taon-session-profile/taon-session-profile.models'; ","export * from './migrations';\nexport * from './env';\nexport * from './index._auto-generated_';\n/* */ \nexport default {};\n\nexport const DEFAULT_SESSION_PASSWORD = 'ddd';\n\nexport const DEFAULT_SESSION_EMAIL = 'test@test.com';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["t","i1","signal","catchError","map","i6","i7","i2","i3","i5"],"mappings":"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"}