@taon-dev/cms 21.0.4 → 21.0.6

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 (423) hide show
  1. package/VERIFIED-BUILD-DATA.jsonc +3 -3
  2. package/browser/fesm2022/cms-browser.mjs +2864 -433
  3. package/browser/fesm2022/cms-browser.mjs.map +1 -1
  4. package/browser/package.json +1 -1
  5. package/browser/types/cms-browser.d.ts +439 -70
  6. package/browser-prod/fesm2022/cms-browser-prod.mjs +2866 -432
  7. package/browser-prod/fesm2022/cms-browser-prod.mjs.map +1 -1
  8. package/browser-prod/package.json +1 -1
  9. package/browser-prod/types/cms-browser-prod.d.ts +437 -70
  10. package/html/app/baseline-backoffice/taon-baseline-backoffice.component.html +23 -0
  11. package/html/app/cms-example/cms-example.component.html +2 -0
  12. package/html/app/session-example/session-example.component.html +2 -0
  13. package/html/assets/generated/pwa/html-pwa.html +53 -53
  14. package/html/lib/taon-cms-backoffice/taon-cms-backoffice.component.html +9 -4
  15. package/html/lib/taon-posts/taon-cms-post/taon-cms-post.component.html +183 -0
  16. package/html/lib/taon-posts/taon-cms-post-edit-dialog/taon-cms-post-edit-dialog.component.html +12 -0
  17. package/html/lib/taon-posts/taon-cms-posts-backoffice/taon-cms-posts-backoffice.component.html +14 -0
  18. package/html/lib/taon-posts/taon-cms-revision-chooser/taon-cms-revision-chooser.component.html +35 -0
  19. package/html/lib/taon-posts/taon-related-post-chooser/taon-related-post-chooser.component.html +27 -0
  20. package/i18n/app.ts.en-US.i18n.data.d.ts +0 -8
  21. package/i18n/app.ts.pl-PL.i18n.data.d.ts +0 -8
  22. package/lib/app.data.d.ts +22 -0
  23. package/lib/app.data.js +23 -0
  24. package/lib/app.data.js.map +1 -0
  25. package/lib/build-info._auto-generated_.d.ts +1 -1
  26. package/lib/build-info._auto-generated_.js +1 -1
  27. package/lib/env/env.angular-node-app.d.ts +3 -0
  28. package/lib/env/env.angular-node-app.js +10 -2
  29. package/lib/env/env.angular-node-app.js.map +1 -1
  30. package/lib/env/env.docs-webapp.d.ts +3 -0
  31. package/lib/env/env.docs-webapp.js +10 -2
  32. package/lib/env/env.docs-webapp.js.map +1 -1
  33. package/lib/env/env.electron-app.d.ts +3 -0
  34. package/lib/env/env.electron-app.js +10 -2
  35. package/lib/env/env.electron-app.js.map +1 -1
  36. package/lib/env/env.mobile-app.d.ts +3 -0
  37. package/lib/env/env.mobile-app.js +10 -2
  38. package/lib/env/env.mobile-app.js.map +1 -1
  39. package/lib/env/env.npm-lib-and-cli-tool.d.ts +3 -0
  40. package/lib/env/env.npm-lib-and-cli-tool.js +10 -2
  41. package/lib/env/env.npm-lib-and-cli-tool.js.map +1 -1
  42. package/lib/env/env.vscode-plugin.d.ts +3 -0
  43. package/lib/env/env.vscode-plugin.js +10 -2
  44. package/lib/env/env.vscode-plugin.js.map +1 -1
  45. package/lib/index._auto-generated_.d.ts +18 -1
  46. package/lib/index._auto-generated_.js +17 -0
  47. package/lib/index._auto-generated_.js.map +1 -1
  48. package/lib/index.d.ts +3 -1
  49. package/lib/index.js +2 -0
  50. package/lib/index.js.map +1 -1
  51. package/lib/migrations/1791132517216_initial.d.ts +7 -0
  52. package/lib/migrations/1791132517216_initial.js +74 -0
  53. package/lib/migrations/1791132517216_initial.js.map +1 -0
  54. package/lib/migrations/migrations_index._auto-generated_.d.ts +4 -0
  55. package/lib/migrations/migrations_index._auto-generated_.js +7 -0
  56. package/lib/migrations/migrations_index._auto-generated_.js.map +1 -1
  57. package/lib/package.json +1 -1
  58. package/lib/taon-cms-assets-backoffice/taon-cms-assets-backoffice.component.d.ts +10 -0
  59. package/lib/taon-cms-assets-backoffice/taon-cms-assets-backoffice.routes.d.ts +2 -0
  60. package/lib/taon-cms-backoffice/index.js +2 -2
  61. package/lib/taon-cms-backoffice/taon-cms-backoffice.component.d.ts +3 -0
  62. package/lib/taon-cms-category/taon-cms-category-api.service.d.ts +0 -1
  63. package/lib/taon-cms-category/taon-cms-category.controller.d.ts +1 -5
  64. package/lib/taon-cms-category/taon-cms-category.controller.js +3 -33
  65. package/lib/taon-cms-category/taon-cms-category.controller.js.map +1 -1
  66. package/lib/taon-cms-category/taon-cms-category.repository.d.ts +2 -4
  67. package/lib/taon-cms-category/taon-cms-category.repository.js +8 -11
  68. package/lib/taon-cms-category/taon-cms-category.repository.js.map +1 -1
  69. package/lib/taon-cms-content/index.d.ts +1 -0
  70. package/lib/taon-cms-content/index.js +1 -0
  71. package/lib/taon-cms-content/index.js.map +1 -1
  72. package/lib/taon-cms-content/taon-cms-content-api.service.d.ts +18 -3
  73. package/lib/taon-cms-content/taon-cms-content-storage.controller.d.ts +7 -0
  74. package/lib/taon-cms-content/taon-cms-content-storage.controller.js +41 -0
  75. package/lib/taon-cms-content/taon-cms-content-storage.controller.js.map +1 -0
  76. package/lib/taon-cms-content/taon-cms-content.abstract.context.js +16 -5
  77. package/lib/taon-cms-content/taon-cms-content.abstract.context.js.map +1 -1
  78. package/lib/taon-cms-content/taon-cms-content.config.service.d.ts +5 -0
  79. package/lib/taon-cms-content/taon-cms-content.constants.js +5 -0
  80. package/lib/taon-cms-content/taon-cms-content.constants.js.map +1 -1
  81. package/lib/taon-cms-content/taon-cms-content.controller.d.ts +12 -4
  82. package/lib/taon-cms-content/taon-cms-content.controller.js +125 -21
  83. package/lib/taon-cms-content/taon-cms-content.controller.js.map +1 -1
  84. package/lib/taon-cms-content/taon-cms-content.entity.d.ts +8 -1
  85. package/lib/taon-cms-content/taon-cms-content.entity.js +59 -3
  86. package/lib/taon-cms-content/taon-cms-content.entity.js.map +1 -1
  87. package/lib/taon-cms-content/taon-cms-content.models.d.ts +40 -0
  88. package/lib/taon-cms-content/taon-cms-content.models.js +8 -1
  89. package/lib/taon-cms-content/taon-cms-content.models.js.map +1 -1
  90. package/lib/taon-cms-content/taon-cms-content.provider.js.map +1 -1
  91. package/lib/taon-cms-content/taon-cms-content.repository.d.ts +27 -0
  92. package/lib/taon-cms-content/taon-cms-content.repository.js +326 -0
  93. package/lib/taon-cms-content/taon-cms-content.repository.js.map +1 -1
  94. package/lib/taon-cms-content/taon-cms-content.validation.d.ts +9 -0
  95. package/lib/taon-cms-content/taon-cms-content.validation.js +79 -0
  96. package/lib/taon-cms-content/taon-cms-content.validation.js.map +1 -0
  97. package/lib/taon-cms-content-revision/taon-cms-content-revision-api.service.d.ts +5 -1
  98. package/lib/taon-cms-content-revision/taon-cms-content-revision.controller.d.ts +1 -5
  99. package/lib/taon-cms-content-revision/taon-cms-content-revision.controller.js +3 -33
  100. package/lib/taon-cms-content-revision/taon-cms-content-revision.controller.js.map +1 -1
  101. package/lib/taon-cms-content-revision/taon-cms-content-revision.entity.d.ts +2 -0
  102. package/lib/taon-cms-content-revision/taon-cms-content-revision.entity.js +9 -0
  103. package/lib/taon-cms-content-revision/taon-cms-content-revision.entity.js.map +1 -1
  104. package/lib/taon-cms-content-revision/taon-cms-content-revision.repository.d.ts +6 -4
  105. package/lib/taon-cms-content-revision/taon-cms-content-revision.repository.js +33 -10
  106. package/lib/taon-cms-content-revision/taon-cms-content-revision.repository.js.map +1 -1
  107. package/lib/taon-cms-content-tag/taon-cms-content-tag-api.service.d.ts +0 -1
  108. package/lib/taon-cms-content-tag/taon-cms-content-tag.controller.d.ts +1 -5
  109. package/lib/taon-cms-content-tag/taon-cms-content-tag.controller.js +3 -33
  110. package/lib/taon-cms-content-tag/taon-cms-content-tag.controller.js.map +1 -1
  111. package/lib/taon-cms-content-tag/taon-cms-content-tag.repository.d.ts +3 -4
  112. package/lib/taon-cms-content-tag/taon-cms-content-tag.repository.js +15 -11
  113. package/lib/taon-cms-content-tag/taon-cms-content-tag.repository.js.map +1 -1
  114. package/lib/taon-cms-tag/taon-cms-tag.repository.d.ts +2 -0
  115. package/lib/taon-cms-tag/taon-cms-tag.repository.js +13 -0
  116. package/lib/taon-cms-tag/taon-cms-tag.repository.js.map +1 -1
  117. package/lib/taon-cms.abstract.context.js +4 -2
  118. package/lib/taon-cms.abstract.context.js.map +1 -1
  119. package/lib/taon-posts/taon-cms-post/index.d.ts +1 -0
  120. package/lib/taon-posts/taon-cms-post/index.js +5 -0
  121. package/lib/taon-posts/taon-cms-post/index.js.map +1 -0
  122. package/lib/taon-posts/taon-cms-post/taon-cms-editable.directive.d.ts +19 -0
  123. package/lib/taon-posts/taon-cms-post/taon-cms-post.component.d.ts +84 -0
  124. package/lib/taon-posts/taon-cms-post/taon-cms-post.models.d.ts +8 -0
  125. package/lib/taon-posts/taon-cms-post/taon-cms-post.models.js +3 -0
  126. package/lib/taon-posts/taon-cms-post/taon-cms-post.models.js.map +1 -0
  127. package/lib/taon-posts/taon-cms-post/taon-cms-post.routes.d.ts +7 -0
  128. package/lib/taon-posts/taon-cms-post-details-page/taon-cms-post-details-page.component.d.ts +4 -0
  129. package/lib/taon-posts/taon-cms-post-edit-dialog/index.d.ts +1 -0
  130. package/lib/taon-posts/taon-cms-post-edit-dialog/index.js +5 -0
  131. package/lib/taon-posts/taon-cms-post-edit-dialog/index.js.map +1 -0
  132. package/lib/taon-posts/taon-cms-post-edit-dialog/taon-cms-post-edit-dialog.component.d.ts +15 -0
  133. package/lib/taon-posts/taon-cms-posts-backoffice/index.d.ts +1 -0
  134. package/lib/taon-posts/taon-cms-posts-backoffice/index.js +5 -0
  135. package/lib/taon-posts/taon-cms-posts-backoffice/index.js.map +1 -0
  136. package/lib/taon-posts/taon-cms-posts-backoffice/taon-cms-posts-backoffice.component.d.ts +26 -0
  137. package/lib/taon-posts/taon-cms-posts-backoffice/taon-cms-posts-backoffice.models.d.ts +1 -0
  138. package/lib/taon-posts/taon-cms-posts-backoffice/taon-cms-posts-backoffice.models.js +3 -0
  139. package/lib/taon-posts/taon-cms-posts-backoffice/taon-cms-posts-backoffice.models.js.map +1 -0
  140. package/lib/taon-posts/taon-cms-posts-backoffice/taon-cms-posts-backoffice.routes.d.ts +7 -0
  141. package/lib/taon-posts/taon-cms-revision-chooser/index.d.ts +1 -0
  142. package/lib/taon-posts/taon-cms-revision-chooser/index.js +5 -0
  143. package/lib/taon-posts/taon-cms-revision-chooser/index.js.map +1 -0
  144. package/lib/taon-posts/taon-cms-revision-chooser/taon-cms-revision-chooser.component.d.ts +17 -0
  145. package/lib/taon-posts/taon-related-post-chooser/index.d.ts +1 -0
  146. package/lib/taon-posts/taon-related-post-chooser/index.js +5 -0
  147. package/lib/taon-posts/taon-related-post-chooser/index.js.map +1 -0
  148. package/lib/taon-posts/taon-related-post-chooser/taon-related-post-chooser.component.d.ts +22 -0
  149. package/lib-esm/app/baseline-backoffice/index.d.ts +0 -0
  150. package/lib-esm/app/baseline-backoffice/index.js +2 -0
  151. package/lib-esm/app/baseline-backoffice/index.js.map +1 -0
  152. package/lib-esm/app/baseline-backoffice/taon-baseline-backoffice.component.d.ts +0 -0
  153. package/lib-esm/app/baseline-backoffice/taon-baseline-backoffice.component.js +2 -0
  154. package/lib-esm/app/baseline-backoffice/taon-baseline-backoffice.component.js.map +1 -0
  155. package/lib-esm/app/baseline-backoffice/taon-baseline-backoffice.models.d.ts +0 -0
  156. package/lib-esm/app/baseline-backoffice/taon-baseline-backoffice.models.js +2 -0
  157. package/lib-esm/app/baseline-backoffice/taon-baseline-backoffice.models.js.map +1 -0
  158. package/lib-esm/app/baseline-backoffice/taon-baseline-backoffice.routes.d.ts +0 -0
  159. package/lib-esm/app/baseline-backoffice/taon-baseline-backoffice.routes.js +2 -0
  160. package/lib-esm/app/baseline-backoffice/taon-baseline-backoffice.routes.js.map +1 -0
  161. package/lib-esm/app/cms-example/cms-example.component.d.ts +0 -0
  162. package/lib-esm/app/cms-example/cms-example.component.js +2 -0
  163. package/lib-esm/app/cms-example/cms-example.component.js.map +1 -0
  164. package/lib-esm/app/cms-example/cms-example.models.d.ts +0 -0
  165. package/lib-esm/app/cms-example/cms-example.models.js +2 -0
  166. package/lib-esm/app/cms-example/cms-example.models.js.map +1 -0
  167. package/lib-esm/app/cms-example/cms-example.routes.d.ts +0 -0
  168. package/lib-esm/app/cms-example/cms-example.routes.js +2 -0
  169. package/lib-esm/app/cms-example/cms-example.routes.js.map +1 -0
  170. package/lib-esm/app/cms-example/index.d.ts +0 -0
  171. package/lib-esm/app/cms-example/index.js +2 -0
  172. package/lib-esm/app/cms-example/index.js.map +1 -0
  173. package/lib-esm/app/session-example/index.d.ts +0 -0
  174. package/lib-esm/app/session-example/index.js +2 -0
  175. package/lib-esm/app/session-example/index.js.map +1 -0
  176. package/lib-esm/app/session-example/session-example.component.d.ts +0 -0
  177. package/lib-esm/app/session-example/session-example.component.js +2 -0
  178. package/lib-esm/app/session-example/session-example.component.js.map +1 -0
  179. package/lib-esm/app/session-example/session-example.models.d.ts +0 -0
  180. package/lib-esm/app/session-example/session-example.models.js +2 -0
  181. package/lib-esm/app/session-example/session-example.models.js.map +1 -0
  182. package/lib-esm/app/session-example/session-example.routes.d.ts +0 -0
  183. package/lib-esm/app/session-example/session-example.routes.js +2 -0
  184. package/lib-esm/app/session-example/session-example.routes.js.map +1 -0
  185. package/lib-esm/lib/app.data.d.ts +22 -0
  186. package/lib-esm/lib/app.data.js +20 -0
  187. package/lib-esm/lib/app.data.js.map +1 -0
  188. package/lib-esm/lib/build-info._auto-generated_.d.ts +1 -1
  189. package/lib-esm/lib/build-info._auto-generated_.js +1 -1
  190. package/lib-esm/lib/env/env.angular-node-app.d.ts +3 -0
  191. package/lib-esm/lib/env/env.angular-node-app.js +6 -0
  192. package/lib-esm/lib/env/env.angular-node-app.js.map +1 -1
  193. package/lib-esm/lib/env/env.docs-webapp.d.ts +3 -0
  194. package/lib-esm/lib/env/env.docs-webapp.js +6 -0
  195. package/lib-esm/lib/env/env.docs-webapp.js.map +1 -1
  196. package/lib-esm/lib/env/env.electron-app.d.ts +3 -0
  197. package/lib-esm/lib/env/env.electron-app.js +6 -0
  198. package/lib-esm/lib/env/env.electron-app.js.map +1 -1
  199. package/lib-esm/lib/env/env.mobile-app.d.ts +3 -0
  200. package/lib-esm/lib/env/env.mobile-app.js +6 -0
  201. package/lib-esm/lib/env/env.mobile-app.js.map +1 -1
  202. package/lib-esm/lib/env/env.npm-lib-and-cli-tool.d.ts +3 -0
  203. package/lib-esm/lib/env/env.npm-lib-and-cli-tool.js +6 -0
  204. package/lib-esm/lib/env/env.npm-lib-and-cli-tool.js.map +1 -1
  205. package/lib-esm/lib/env/env.vscode-plugin.d.ts +3 -0
  206. package/lib-esm/lib/env/env.vscode-plugin.js +6 -0
  207. package/lib-esm/lib/env/env.vscode-plugin.js.map +1 -1
  208. package/lib-esm/lib/index._auto-generated_.d.ts +5 -0
  209. package/lib-esm/lib/index._auto-generated_.js +17 -0
  210. package/lib-esm/lib/index._auto-generated_.js.map +1 -1
  211. package/lib-esm/lib/index.d.ts +1 -0
  212. package/lib-esm/lib/index.js +2 -0
  213. package/lib-esm/lib/index.js.map +1 -1
  214. package/lib-esm/lib/migrations/1791132517216_initial.d.ts +7 -0
  215. package/lib-esm/lib/migrations/1791132517216_initial.js +65 -0
  216. package/lib-esm/lib/migrations/1791132517216_initial.js.map +1 -0
  217. package/lib-esm/lib/migrations/migrations_index._auto-generated_.d.ts +4 -0
  218. package/lib-esm/lib/migrations/migrations_index._auto-generated_.js +4 -0
  219. package/lib-esm/lib/migrations/migrations_index._auto-generated_.js.map +1 -1
  220. package/lib-esm/lib/taon-cms-backoffice/index.d.ts +1 -1
  221. package/lib-esm/lib/taon-cms-backoffice/index.js +1 -1
  222. package/lib-esm/lib/taon-cms-category/taon-cms-category.controller.d.ts +1 -5
  223. package/lib-esm/lib/taon-cms-category/taon-cms-category.controller.js +4 -28
  224. package/lib-esm/lib/taon-cms-category/taon-cms-category.controller.js.map +1 -1
  225. package/lib-esm/lib/taon-cms-category/taon-cms-category.repository.d.ts +2 -4
  226. package/lib-esm/lib/taon-cms-category/taon-cms-category.repository.js +8 -11
  227. package/lib-esm/lib/taon-cms-category/taon-cms-category.repository.js.map +1 -1
  228. package/lib-esm/lib/taon-cms-content/index.d.ts +1 -0
  229. package/lib-esm/lib/taon-cms-content/index.js +1 -0
  230. package/lib-esm/lib/taon-cms-content/index.js.map +1 -1
  231. package/lib-esm/lib/taon-cms-content/taon-cms-content-storage.controller.d.ts +7 -0
  232. package/lib-esm/lib/taon-cms-content/taon-cms-content-storage.controller.js +32 -0
  233. package/lib-esm/lib/taon-cms-content/taon-cms-content-storage.controller.js.map +1 -0
  234. package/lib-esm/lib/taon-cms-content/taon-cms-content.abstract.context.js +16 -5
  235. package/lib-esm/lib/taon-cms-content/taon-cms-content.abstract.context.js.map +1 -1
  236. package/lib-esm/lib/taon-cms-content/taon-cms-content.constants.js +5 -0
  237. package/lib-esm/lib/taon-cms-content/taon-cms-content.constants.js.map +1 -1
  238. package/lib-esm/lib/taon-cms-content/taon-cms-content.controller.d.ts +12 -4
  239. package/lib-esm/lib/taon-cms-content/taon-cms-content.controller.js +126 -22
  240. package/lib-esm/lib/taon-cms-content/taon-cms-content.controller.js.map +1 -1
  241. package/lib-esm/lib/taon-cms-content/taon-cms-content.entity.d.ts +8 -1
  242. package/lib-esm/lib/taon-cms-content/taon-cms-content.entity.js +60 -4
  243. package/lib-esm/lib/taon-cms-content/taon-cms-content.entity.js.map +1 -1
  244. package/lib-esm/lib/taon-cms-content/taon-cms-content.models.d.ts +40 -0
  245. package/lib-esm/lib/taon-cms-content/taon-cms-content.models.js +7 -0
  246. package/lib-esm/lib/taon-cms-content/taon-cms-content.models.js.map +1 -1
  247. package/lib-esm/lib/taon-cms-content/taon-cms-content.provider.js.map +1 -1
  248. package/lib-esm/lib/taon-cms-content/taon-cms-content.repository.d.ts +27 -0
  249. package/lib-esm/lib/taon-cms-content/taon-cms-content.repository.js +327 -1
  250. package/lib-esm/lib/taon-cms-content/taon-cms-content.repository.js.map +1 -1
  251. package/lib-esm/lib/taon-cms-content/taon-cms-content.validation.d.ts +9 -0
  252. package/lib-esm/lib/taon-cms-content/taon-cms-content.validation.js +73 -0
  253. package/lib-esm/lib/taon-cms-content/taon-cms-content.validation.js.map +1 -0
  254. package/lib-esm/lib/taon-cms-content-revision/taon-cms-content-revision.controller.d.ts +1 -5
  255. package/lib-esm/lib/taon-cms-content-revision/taon-cms-content-revision.controller.js +4 -28
  256. package/lib-esm/lib/taon-cms-content-revision/taon-cms-content-revision.controller.js.map +1 -1
  257. package/lib-esm/lib/taon-cms-content-revision/taon-cms-content-revision.entity.d.ts +2 -0
  258. package/lib-esm/lib/taon-cms-content-revision/taon-cms-content-revision.entity.js +9 -0
  259. package/lib-esm/lib/taon-cms-content-revision/taon-cms-content-revision.entity.js.map +1 -1
  260. package/lib-esm/lib/taon-cms-content-revision/taon-cms-content-revision.repository.d.ts +6 -4
  261. package/lib-esm/lib/taon-cms-content-revision/taon-cms-content-revision.repository.js +33 -10
  262. package/lib-esm/lib/taon-cms-content-revision/taon-cms-content-revision.repository.js.map +1 -1
  263. package/lib-esm/lib/taon-cms-content-tag/taon-cms-content-tag.controller.d.ts +1 -5
  264. package/lib-esm/lib/taon-cms-content-tag/taon-cms-content-tag.controller.js +4 -28
  265. package/lib-esm/lib/taon-cms-content-tag/taon-cms-content-tag.controller.js.map +1 -1
  266. package/lib-esm/lib/taon-cms-content-tag/taon-cms-content-tag.repository.d.ts +3 -4
  267. package/lib-esm/lib/taon-cms-content-tag/taon-cms-content-tag.repository.js +15 -11
  268. package/lib-esm/lib/taon-cms-content-tag/taon-cms-content-tag.repository.js.map +1 -1
  269. package/lib-esm/lib/taon-cms-tag/taon-cms-tag.repository.d.ts +2 -0
  270. package/lib-esm/lib/taon-cms-tag/taon-cms-tag.repository.js +13 -0
  271. package/lib-esm/lib/taon-cms-tag/taon-cms-tag.repository.js.map +1 -1
  272. package/lib-esm/lib/taon-cms.abstract.context.js +2 -0
  273. package/lib-esm/lib/taon-cms.abstract.context.js.map +1 -1
  274. package/lib-esm/lib/taon-posts/taon-cms-post/index.d.ts +1 -0
  275. package/lib-esm/lib/taon-posts/taon-cms-post/index.js +2 -0
  276. package/lib-esm/lib/taon-posts/taon-cms-post/index.js.map +1 -0
  277. package/lib-esm/lib/taon-posts/taon-cms-post/taon-cms-post.models.d.ts +8 -0
  278. package/lib-esm/lib/taon-posts/taon-cms-post/taon-cms-post.models.js +2 -0
  279. package/lib-esm/lib/taon-posts/taon-cms-post/taon-cms-post.models.js.map +1 -0
  280. package/lib-esm/lib/taon-posts/taon-cms-post-edit-dialog/index.d.ts +1 -0
  281. package/lib-esm/lib/taon-posts/taon-cms-post-edit-dialog/index.js +2 -0
  282. package/lib-esm/lib/taon-posts/taon-cms-post-edit-dialog/index.js.map +1 -0
  283. package/lib-esm/lib/taon-posts/taon-cms-posts-backoffice/index.d.ts +1 -0
  284. package/lib-esm/lib/taon-posts/taon-cms-posts-backoffice/index.js +2 -0
  285. package/lib-esm/lib/taon-posts/taon-cms-posts-backoffice/index.js.map +1 -0
  286. package/lib-esm/lib/taon-posts/taon-cms-posts-backoffice/taon-cms-posts-backoffice.models.d.ts +1 -0
  287. package/lib-esm/lib/taon-posts/taon-cms-posts-backoffice/taon-cms-posts-backoffice.models.js +2 -0
  288. package/lib-esm/lib/taon-posts/taon-cms-posts-backoffice/taon-cms-posts-backoffice.models.js.map +1 -0
  289. package/lib-esm/lib/taon-posts/taon-cms-revision-chooser/index.d.ts +1 -0
  290. package/lib-esm/lib/taon-posts/taon-cms-revision-chooser/index.js +2 -0
  291. package/lib-esm/lib/taon-posts/taon-cms-revision-chooser/index.js.map +1 -0
  292. package/lib-esm/lib/taon-posts/taon-related-post-chooser/index.d.ts +1 -0
  293. package/lib-esm/lib/taon-posts/taon-related-post-chooser/index.js +2 -0
  294. package/lib-esm/lib/taon-posts/taon-related-post-chooser/index.js.map +1 -0
  295. package/lib-prod/app.data.d.ts +22 -0
  296. package/lib-prod/app.data.js +20 -0
  297. package/lib-prod/app.data.js.map +1 -0
  298. package/lib-prod/build-info._auto-generated_.d.ts +1 -1
  299. package/lib-prod/build-info._auto-generated_.js +1 -1
  300. package/lib-prod/env/env.angular-node-app.d.ts +3 -0
  301. package/lib-prod/env/env.angular-node-app.js +6 -0
  302. package/lib-prod/env/env.angular-node-app.js.map +1 -1
  303. package/lib-prod/env/env.docs-webapp.d.ts +3 -0
  304. package/lib-prod/env/env.docs-webapp.js +6 -0
  305. package/lib-prod/env/env.docs-webapp.js.map +1 -1
  306. package/lib-prod/env/env.electron-app.d.ts +3 -0
  307. package/lib-prod/env/env.electron-app.js +6 -0
  308. package/lib-prod/env/env.electron-app.js.map +1 -1
  309. package/lib-prod/env/env.mobile-app.d.ts +3 -0
  310. package/lib-prod/env/env.mobile-app.js +6 -0
  311. package/lib-prod/env/env.mobile-app.js.map +1 -1
  312. package/lib-prod/env/env.npm-lib-and-cli-tool.d.ts +3 -0
  313. package/lib-prod/env/env.npm-lib-and-cli-tool.js +6 -0
  314. package/lib-prod/env/env.npm-lib-and-cli-tool.js.map +1 -1
  315. package/lib-prod/env/env.vscode-plugin.d.ts +3 -0
  316. package/lib-prod/env/env.vscode-plugin.js +6 -0
  317. package/lib-prod/env/env.vscode-plugin.js.map +1 -1
  318. package/lib-prod/index._auto-generated_.d.ts +5 -0
  319. package/lib-prod/index._auto-generated_.js +17 -0
  320. package/lib-prod/index._auto-generated_.js.map +1 -1
  321. package/lib-prod/index.d.ts +1 -0
  322. package/lib-prod/index.js +2 -0
  323. package/lib-prod/index.js.map +1 -1
  324. package/lib-prod/migrations/1791132517216_initial.d.ts +7 -0
  325. package/lib-prod/migrations/1791132517216_initial.js +65 -0
  326. package/lib-prod/migrations/1791132517216_initial.js.map +1 -0
  327. package/lib-prod/migrations/migrations_index._auto-generated_.d.ts +4 -0
  328. package/lib-prod/migrations/migrations_index._auto-generated_.js +4 -0
  329. package/lib-prod/migrations/migrations_index._auto-generated_.js.map +1 -1
  330. package/lib-prod/package.json +1 -1
  331. package/lib-prod/taon-cms-backoffice/index.d.ts +1 -1
  332. package/lib-prod/taon-cms-backoffice/index.js +1 -1
  333. package/lib-prod/taon-cms-category/taon-cms-category.controller.d.ts +1 -5
  334. package/lib-prod/taon-cms-category/taon-cms-category.controller.js +4 -28
  335. package/lib-prod/taon-cms-category/taon-cms-category.controller.js.map +1 -1
  336. package/lib-prod/taon-cms-category/taon-cms-category.repository.d.ts +2 -4
  337. package/lib-prod/taon-cms-category/taon-cms-category.repository.js +8 -11
  338. package/lib-prod/taon-cms-category/taon-cms-category.repository.js.map +1 -1
  339. package/lib-prod/taon-cms-content/index.d.ts +1 -0
  340. package/lib-prod/taon-cms-content/index.js +1 -0
  341. package/lib-prod/taon-cms-content/index.js.map +1 -1
  342. package/lib-prod/taon-cms-content/taon-cms-content-storage.controller.d.ts +7 -0
  343. package/lib-prod/taon-cms-content/taon-cms-content-storage.controller.js +32 -0
  344. package/lib-prod/taon-cms-content/taon-cms-content-storage.controller.js.map +1 -0
  345. package/lib-prod/taon-cms-content/taon-cms-content.abstract.context.js +16 -5
  346. package/lib-prod/taon-cms-content/taon-cms-content.abstract.context.js.map +1 -1
  347. package/lib-prod/taon-cms-content/taon-cms-content.constants.js +5 -0
  348. package/lib-prod/taon-cms-content/taon-cms-content.constants.js.map +1 -1
  349. package/lib-prod/taon-cms-content/taon-cms-content.controller.d.ts +12 -4
  350. package/lib-prod/taon-cms-content/taon-cms-content.controller.js +126 -22
  351. package/lib-prod/taon-cms-content/taon-cms-content.controller.js.map +1 -1
  352. package/lib-prod/taon-cms-content/taon-cms-content.entity.d.ts +8 -1
  353. package/lib-prod/taon-cms-content/taon-cms-content.entity.js +60 -4
  354. package/lib-prod/taon-cms-content/taon-cms-content.entity.js.map +1 -1
  355. package/lib-prod/taon-cms-content/taon-cms-content.models.d.ts +40 -0
  356. package/lib-prod/taon-cms-content/taon-cms-content.models.js +7 -0
  357. package/lib-prod/taon-cms-content/taon-cms-content.models.js.map +1 -1
  358. package/lib-prod/taon-cms-content/taon-cms-content.provider.js.map +1 -1
  359. package/lib-prod/taon-cms-content/taon-cms-content.repository.d.ts +27 -0
  360. package/lib-prod/taon-cms-content/taon-cms-content.repository.js +327 -1
  361. package/lib-prod/taon-cms-content/taon-cms-content.repository.js.map +1 -1
  362. package/lib-prod/taon-cms-content/taon-cms-content.validation.d.ts +9 -0
  363. package/lib-prod/taon-cms-content/taon-cms-content.validation.js +73 -0
  364. package/lib-prod/taon-cms-content/taon-cms-content.validation.js.map +1 -0
  365. package/lib-prod/taon-cms-content-revision/taon-cms-content-revision.controller.d.ts +1 -5
  366. package/lib-prod/taon-cms-content-revision/taon-cms-content-revision.controller.js +4 -28
  367. package/lib-prod/taon-cms-content-revision/taon-cms-content-revision.controller.js.map +1 -1
  368. package/lib-prod/taon-cms-content-revision/taon-cms-content-revision.entity.d.ts +2 -0
  369. package/lib-prod/taon-cms-content-revision/taon-cms-content-revision.entity.js +9 -0
  370. package/lib-prod/taon-cms-content-revision/taon-cms-content-revision.entity.js.map +1 -1
  371. package/lib-prod/taon-cms-content-revision/taon-cms-content-revision.repository.d.ts +6 -4
  372. package/lib-prod/taon-cms-content-revision/taon-cms-content-revision.repository.js +33 -10
  373. package/lib-prod/taon-cms-content-revision/taon-cms-content-revision.repository.js.map +1 -1
  374. package/lib-prod/taon-cms-content-tag/taon-cms-content-tag.controller.d.ts +1 -5
  375. package/lib-prod/taon-cms-content-tag/taon-cms-content-tag.controller.js +4 -28
  376. package/lib-prod/taon-cms-content-tag/taon-cms-content-tag.controller.js.map +1 -1
  377. package/lib-prod/taon-cms-content-tag/taon-cms-content-tag.repository.d.ts +3 -4
  378. package/lib-prod/taon-cms-content-tag/taon-cms-content-tag.repository.js +15 -11
  379. package/lib-prod/taon-cms-content-tag/taon-cms-content-tag.repository.js.map +1 -1
  380. package/lib-prod/taon-cms-tag/taon-cms-tag.repository.d.ts +2 -0
  381. package/lib-prod/taon-cms-tag/taon-cms-tag.repository.js +13 -0
  382. package/lib-prod/taon-cms-tag/taon-cms-tag.repository.js.map +1 -1
  383. package/lib-prod/taon-cms.abstract.context.js +2 -0
  384. package/lib-prod/taon-cms.abstract.context.js.map +1 -1
  385. package/lib-prod/taon-posts/taon-cms-post/index.d.ts +1 -0
  386. package/lib-prod/taon-posts/taon-cms-post/index.js +2 -0
  387. package/lib-prod/taon-posts/taon-cms-post/index.js.map +1 -0
  388. package/lib-prod/taon-posts/taon-cms-post/taon-cms-post.models.d.ts +8 -0
  389. package/lib-prod/taon-posts/taon-cms-post/taon-cms-post.models.js +2 -0
  390. package/lib-prod/taon-posts/taon-cms-post/taon-cms-post.models.js.map +1 -0
  391. package/lib-prod/taon-posts/taon-cms-post-edit-dialog/index.d.ts +1 -0
  392. package/lib-prod/taon-posts/taon-cms-post-edit-dialog/index.js +2 -0
  393. package/lib-prod/taon-posts/taon-cms-post-edit-dialog/index.js.map +1 -0
  394. package/lib-prod/taon-posts/taon-cms-posts-backoffice/index.d.ts +1 -0
  395. package/lib-prod/taon-posts/taon-cms-posts-backoffice/index.js +2 -0
  396. package/lib-prod/taon-posts/taon-cms-posts-backoffice/index.js.map +1 -0
  397. package/lib-prod/taon-posts/taon-cms-posts-backoffice/taon-cms-posts-backoffice.models.d.ts +0 -0
  398. package/lib-prod/taon-posts/taon-cms-posts-backoffice/taon-cms-posts-backoffice.models.js +3 -0
  399. package/lib-prod/taon-posts/taon-cms-posts-backoffice/taon-cms-posts-backoffice.models.js.map +1 -0
  400. package/lib-prod/taon-posts/taon-cms-revision-chooser/index.d.ts +1 -0
  401. package/lib-prod/taon-posts/taon-cms-revision-chooser/index.js +2 -0
  402. package/lib-prod/taon-posts/taon-cms-revision-chooser/index.js.map +1 -0
  403. package/lib-prod/taon-posts/taon-related-post-chooser/index.d.ts +1 -0
  404. package/lib-prod/taon-posts/taon-related-post-chooser/index.js +2 -0
  405. package/lib-prod/taon-posts/taon-related-post-chooser/index.js.map +1 -0
  406. package/package.json +1 -1
  407. package/scss/app/baseline-backoffice/taon-baseline-backoffice.component.scss +3 -0
  408. package/scss/app/cms-example/cms-example.component.scss +3 -0
  409. package/scss/app/session-example/session-example.component.scss +3 -0
  410. package/scss/global.scss +4 -1
  411. package/scss/lib/taon-posts/taon-cms-post/taon-cms-post.component.scss +132 -0
  412. package/scss/lib/taon-posts/taon-cms-post-edit-dialog/taon-cms-post-edit-dialog.component.scss +19 -0
  413. package/scss/lib/taon-posts/taon-cms-posts-backoffice/taon-cms-posts-backoffice.component.scss +3 -0
  414. package/scss/lib/taon-posts/taon-cms-revision-chooser/taon-cms-revision-chooser.component.scss +15 -0
  415. package/scss/lib/taon-posts/taon-related-post-chooser/taon-related-post-chooser.component.scss +25 -0
  416. package/websql/fesm2022/cms-websql.mjs +2992 -600
  417. package/websql/fesm2022/cms-websql.mjs.map +1 -1
  418. package/websql/package.json +1 -1
  419. package/websql/types/cms-websql.d.ts +439 -70
  420. package/websql-prod/fesm2022/cms-websql-prod.mjs +2995 -600
  421. package/websql-prod/fesm2022/cms-websql-prod.mjs.map +1 -1
  422. package/websql-prod/package.json +1 -1
  423. package/websql-prod/types/cms-websql-prod.d.ts +437 -70
@@ -1,21 +1,113 @@
1
+ import { __decorate, __param, __metadata } from 'tslib';
2
+ import { TaonAuthContextRepository, TaonSessionAbstractContext, TaonPermissionApiService } from '@taon-dev/session/browser';
3
+ import { TaonBaseMigration, TaonMigration, TaonBaseAbstractEntity, TaonEntity, TaonBaseRepository, TaonRepository, TaonBaseCrudController, TaonController, TaonBaseProvider, TaonProvider, TaonBaseMiddleware, TaonMiddleware, TaonBaseSubscriberForEntity, TaonSubscriber, createContext, TaonBaseContext, TaonBaseEntity, GET, Query, Taon, POST, Body, PUT, DELETE, TaonBaseStorageController, PrimaryGeneratedColumn, Column, TaonBaseAngularService } from 'taon/browser';
1
4
  import { decodeEnv, UtilsJson } from 'tnp-core/browser';
2
5
  import { Translation } from '@taon-dev/i18n/browser';
3
6
  import { BaseCommandLineFeature } from 'tnp-helpers/browser';
4
- import { TaonBaseAbstractEntity, TaonEntity, TaonBaseRepository, TaonRepository, TaonBaseCrudController, GET, Query, TaonController, TaonBaseProvider, TaonProvider, TaonBaseMiddleware, TaonMiddleware, TaonBaseSubscriberForEntity, TaonSubscriber, createContext, TaonBaseContext, TaonBaseEntity, PrimaryGeneratedColumn, Column, TaonBaseAngularService } from 'taon/browser';
5
- import { __decorate, __param, __metadata } from 'tslib';
6
7
  import * as i0 from '@angular/core';
7
- import { Injectable, ChangeDetectionStrategy, Component } from '@angular/core';
8
- import { AsyncPipe } from '@angular/common';
9
- import { RouterOutlet } from '@angular/router';
8
+ import { Injectable, ChangeDetectionStrategy, Component, inject, ElementRef, EventEmitter, SecurityContext, HostListener, Input, Output, Directive, signal, DestroyRef, computed, input, model, output, effect, untracked, viewChild, ViewChild } from '@angular/core';
9
+ import { MtxGrid } from '@ng-matero/extensions/grid';
10
+ import { AsyncPipe, DatePipe } from '@angular/common';
11
+ import { RouterOutlet, ActivatedRoute, RouterLink, Router } from '@angular/router';
12
+ import { adminLazyRoute, TaonConfirmDialogComponent, TaonDatatableComponent } from '@taon-dev/ui/browser';
10
13
  import { map } from 'rxjs/operators';
14
+ import { DomSanitizer } from '@angular/platform-browser';
15
+ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
16
+ import * as i1 from '@angular/material/button';
17
+ import { MatButtonModule } from '@angular/material/button';
18
+ import * as i2 from '@angular/material/dialog';
19
+ import { MAT_DIALOG_DATA, MatDialogRef, MatDialogModule, MatDialog } from '@angular/material/dialog';
20
+ import * as i2$1 from '@angular/material/form-field';
21
+ import { MatFormFieldModule } from '@angular/material/form-field';
22
+ import * as i3$1 from '@angular/material/icon';
23
+ import { MatIconModule } from '@angular/material/icon';
24
+ import * as i3 from '@angular/material/radio';
25
+ import { MatRadioModule } from '@angular/material/radio';
26
+ import * as i5 from '@angular/material/select';
27
+ import { MatSelectModule } from '@angular/material/select';
28
+ import { finalize, map as map$1, Subject, takeUntil } from 'rxjs';
29
+
30
+ //#region Migration class for context "CmsContext"
31
+ let CmsContext_1791132517216_initial = class CmsContext_1791132517216_initial extends TaonBaseMigration {
32
+ constructor() {
33
+ super(...arguments);
34
+ this.taonAuthContextRepository = this.injectCustomRepo((TaonAuthContextRepository));
35
+ //#endregion
36
+ }
37
+ //#region up
38
+ async up(queryRunner) {
39
+ await queryRunner.startTransaction();
40
+ try {
41
+ await this.taonAuthContextRepository.persistTree({
42
+ enums: {
43
+ groups: MyAppGroup,
44
+ roles: MyAppRole,
45
+ permissions: MyAppPermission,
46
+ },
47
+ tree: {
48
+ groupAndRoles: {
49
+ [MyAppGroup.Administrator]: '*',
50
+ [MyAppGroup.Customers]: [MyAppRole.BlogReader],
51
+ },
52
+ rolesAndPermissions: {
53
+ [MyAppRole.Customer]: [
54
+ MyAppPermission.AccessCourseP2,
55
+ MyAppPermission.AccessCourseP2,
56
+ ],
57
+ [MyAppRole.CustomerPremium]: '*',
58
+ },
59
+ },
60
+ });
61
+ await queryRunner.commitTransaction();
62
+ }
63
+ catch (error) {
64
+ console.error('Error in migration:', error);
65
+ await queryRunner.rollbackTransaction();
66
+ }
67
+ finally {
68
+ await queryRunner.release();
69
+ }
70
+ }
71
+ //#endregion
72
+ //#region down
73
+ async down(queryRunner) {
74
+ await queryRunner.startTransaction();
75
+ try {
76
+ await this.taonAuthContextRepository.clearRolesGroupPermissions();
77
+ await queryRunner.commitTransaction();
78
+ }
79
+ catch (error) {
80
+ console.error('Error in migration:', error);
81
+ await queryRunner.rollbackTransaction();
82
+ }
83
+ finally {
84
+ await queryRunner.release();
85
+ }
86
+ }
87
+ };
88
+ CmsContext_1791132517216_initial = __decorate([
89
+ TaonMigration({
90
+ className: 'CmsContext_1791132517216_initial',
91
+ })
92
+ ], CmsContext_1791132517216_initial);
93
+ //#endregion
11
94
 
12
95
  // THIS FILE IS GENERATED - DO NOT MODIFY
13
96
  // THIS FILE IS GENERATED - DO NOT MODIFY
97
+ const MIGRATIONS_CLASSES_FOR_CmsContext = {
98
+ /* 04-10-2026 18:48:37 */ CmsContext_1791132517216_initial,
99
+ };
14
100
  // THIS FILE IS GENERATED - DO NOT MODIFY
15
101
 
16
102
  //@ts-nocheck
17
103
 
18
104
  // THIS FILE IS GENERATED - DO NOT MODIFY
105
+ // config.superUsers
106
+ const ENV_ANGULAR_NODE_APP_CONFIG_SUPER_USERS = () => decodeEnv("dariusz@taon.dev");
107
+ // config.googleSecret
108
+ const ENV_ANGULAR_NODE_APP_CONFIG_GOOGLE_SECRET = () => decodeEnv("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");
109
+ // config.googleClientId
110
+ const ENV_ANGULAR_NODE_APP_CONFIG_GOOGLE_CLIENT_ID = '289576612173-2mh31b67pmq2qdes5jedno9tr1m542es.apps.googleusercontent.com';
19
111
  // loading.preAngularBootstrap.background
20
112
  const ENV_ANGULAR_NODE_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_BACKGROUND = '#fdebed';
21
113
  // loading.preAngularBootstrap.loader.name
@@ -155,6 +247,12 @@ const ENV_ANGULAR_NODE_APP_DOCKER_SKIP_USING_MYSQL_DB = undefined;
155
247
  // THIS FILE IS GENERATED - DO NOT MODIFY
156
248
 
157
249
  // THIS FILE IS GENERATED - DO NOT MODIFY
250
+ // config.superUsers
251
+ const ENV_DOCS_WEBAPP_CONFIG_SUPER_USERS = () => decodeEnv("dariusz@taon.dev");
252
+ // config.googleSecret
253
+ const ENV_DOCS_WEBAPP_CONFIG_GOOGLE_SECRET = () => decodeEnv("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");
254
+ // config.googleClientId
255
+ const ENV_DOCS_WEBAPP_CONFIG_GOOGLE_CLIENT_ID = '289576612173-2mh31b67pmq2qdes5jedno9tr1m542es.apps.googleusercontent.com';
158
256
  // loading.preAngularBootstrap.background
159
257
  const ENV_DOCS_WEBAPP_LOADING_PRE_ANGULAR_BOOTSTRAP_BACKGROUND = '#fdebed';
160
258
  // loading.preAngularBootstrap.loader.name
@@ -294,6 +392,12 @@ const ENV_DOCS_WEBAPP_DOCKER_SKIP_USING_MYSQL_DB = undefined;
294
392
  // THIS FILE IS GENERATED - DO NOT MODIFY
295
393
 
296
394
  // THIS FILE IS GENERATED - DO NOT MODIFY
395
+ // config.superUsers
396
+ const ENV_ELECTRON_APP_CONFIG_SUPER_USERS = () => decodeEnv("dariusz@taon.dev");
397
+ // config.googleSecret
398
+ const ENV_ELECTRON_APP_CONFIG_GOOGLE_SECRET = () => decodeEnv("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");
399
+ // config.googleClientId
400
+ const ENV_ELECTRON_APP_CONFIG_GOOGLE_CLIENT_ID = '289576612173-2mh31b67pmq2qdes5jedno9tr1m542es.apps.googleusercontent.com';
297
401
  // build.ssr
298
402
  const ENV_ELECTRON_APP_BUILD_SSR = false;
299
403
  // loading.preAngularBootstrap.background
@@ -433,6 +537,12 @@ const ENV_ELECTRON_APP_DOCKER_SKIP_USING_MYSQL_DB = undefined;
433
537
  // THIS FILE IS GENERATED - DO NOT MODIFY
434
538
 
435
539
  // THIS FILE IS GENERATED - DO NOT MODIFY
540
+ // config.superUsers
541
+ const ENV_MOBILE_APP_CONFIG_SUPER_USERS = () => decodeEnv("dariusz@taon.dev");
542
+ // config.googleSecret
543
+ const ENV_MOBILE_APP_CONFIG_GOOGLE_SECRET = () => decodeEnv("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");
544
+ // config.googleClientId
545
+ const ENV_MOBILE_APP_CONFIG_GOOGLE_CLIENT_ID = '289576612173-2mh31b67pmq2qdes5jedno9tr1m542es.apps.googleusercontent.com';
436
546
  // loading.preAngularBootstrap.background
437
547
  const ENV_MOBILE_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_BACKGROUND = '#fdebed';
438
548
  // loading.preAngularBootstrap.loader.name
@@ -572,6 +682,12 @@ const ENV_MOBILE_APP_DOCKER_SKIP_USING_MYSQL_DB = undefined;
572
682
  // THIS FILE IS GENERATED - DO NOT MODIFY
573
683
 
574
684
  // THIS FILE IS GENERATED - DO NOT MODIFY
685
+ // config.superUsers
686
+ const ENV_NPM_LIB_AND_CLI_TOOL_CONFIG_SUPER_USERS = () => decodeEnv("dariusz@taon.dev");
687
+ // config.googleSecret
688
+ const ENV_NPM_LIB_AND_CLI_TOOL_CONFIG_GOOGLE_SECRET = () => decodeEnv("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");
689
+ // config.googleClientId
690
+ const ENV_NPM_LIB_AND_CLI_TOOL_CONFIG_GOOGLE_CLIENT_ID = '289576612173-2mh31b67pmq2qdes5jedno9tr1m542es.apps.googleusercontent.com';
575
691
  // loading.preAngularBootstrap.background
576
692
  const ENV_NPM_LIB_AND_CLI_TOOL_LOADING_PRE_ANGULAR_BOOTSTRAP_BACKGROUND = '#fdebed';
577
693
  // loading.preAngularBootstrap.loader.name
@@ -711,6 +827,12 @@ const ENV_NPM_LIB_AND_CLI_TOOL_DOCKER_SKIP_USING_MYSQL_DB = undefined;
711
827
  // THIS FILE IS GENERATED - DO NOT MODIFY
712
828
 
713
829
  // THIS FILE IS GENERATED - DO NOT MODIFY
830
+ // config.superUsers
831
+ const ENV_VSCODE_PLUGIN_CONFIG_SUPER_USERS = () => decodeEnv("dariusz@taon.dev");
832
+ // config.googleSecret
833
+ const ENV_VSCODE_PLUGIN_CONFIG_GOOGLE_SECRET = () => decodeEnv("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");
834
+ // config.googleClientId
835
+ const ENV_VSCODE_PLUGIN_CONFIG_GOOGLE_CLIENT_ID = '289576612173-2mh31b67pmq2qdes5jedno9tr1m542es.apps.googleusercontent.com';
714
836
  // loading.preAngularBootstrap.background
715
837
  const ENV_VSCODE_PLUGIN_LOADING_PRE_ANGULAR_BOOTSTRAP_BACKGROUND = '#fdebed';
716
838
  // loading.preAngularBootstrap.loader.name
@@ -849,6 +971,26 @@ const ENV_VSCODE_PLUGIN_DOCKER_SKIP_START_IN_ORDER = undefined;
849
971
  const ENV_VSCODE_PLUGIN_DOCKER_SKIP_USING_MYSQL_DB = undefined;
850
972
  // THIS FILE IS GENERATED - DO NOT MODIFY
851
973
 
974
+ var MyAppGroup;
975
+ (function (MyAppGroup) {
976
+ MyAppGroup["Administrator"] = "administrator";
977
+ MyAppGroup["Customers"] = "customers";
978
+ })(MyAppGroup || (MyAppGroup = {}));
979
+ var MyAppRole;
980
+ (function (MyAppRole) {
981
+ MyAppRole["MangePosts"] = "manage-posts";
982
+ MyAppRole["Customer"] = "Customer";
983
+ MyAppRole["CustomerPremium"] = "CustomerPremium";
984
+ MyAppRole["BlogReader"] = "BlogReader";
985
+ })(MyAppRole || (MyAppRole = {}));
986
+ var MyAppPermission;
987
+ (function (MyAppPermission) {
988
+ MyAppPermission["AccessToAllEmails"] = "AccessToAllEmails";
989
+ MyAppPermission["AccessCourseP1"] = "AccessCourseP1";
990
+ MyAppPermission["AccessCourseP2"] = "AccessCourseP2";
991
+ MyAppPermission["AccessCoursePremium"] = "AccessCoursePremium";
992
+ })(MyAppPermission || (MyAppPermission = {}));
993
+
852
994
  // THIS FILE IS GENERATED - DO NOT MODIFY
853
995
  /**
854
996
  * Autogenerated by current cli tool
@@ -873,7 +1015,7 @@ const CURRENT_PACKAGE_TAON_VERSION = 'v21';
873
1015
  /**
874
1016
  * Autogenerated by current cli tool. Use *tnp release* to bump version.
875
1017
  */
876
- const CURRENT_PACKAGE_VERSION = '21.0.4';
1018
+ const CURRENT_PACKAGE_VERSION = '21.0.6';
877
1019
  // THIS FILE IS GENERATED - DO NOT MODIFY
878
1020
 
879
1021
  const t = Translation.for('src/lib/my-organization-proj.ts', { "src/lib/my-organization-proj.ts": { "en-US": async () => (await import('./cms-browser-my-organization-proj.ts.en-US.i18n.data-CoSik70Y.mjs')).default, "pl-PL": async () => (await import('./cms-browser-my-organization-proj.ts.pl-PL.i18n.data-BZPsT3Zk.mjs')).default } });
@@ -986,10 +1128,7 @@ let TaonCmsCategoryRepository = class TaonCmsCategoryRepository extends TaonBase
986
1128
  super(...arguments);
987
1129
  this.entityClassResolveFn = () => TaonCmsCategoryEntity;
988
1130
  }
989
- /**
990
- * TODO remove this demo example method
991
- */
992
- async countEntitesWithEvenId() {
1131
+ async requireCategory(id, manager) {
993
1132
  /* */
994
1133
  /* */
995
1134
  /* */
@@ -1012,37 +1151,12 @@ let TaonCmsCategoryController = class TaonCmsCategoryController extends TaonBase
1012
1151
  super(...arguments);
1013
1152
  this.entityClassResolveFn = () => TaonCmsCategoryEntity;
1014
1153
  this.taonCmsCategoryRepository = this.injectCustomRepo(TaonCmsCategoryRepository);
1015
- //#endregion
1016
- }
1017
- //#region methods & getters / hello world
1018
- /**
1019
- * TODO remove this demo example method
1020
- */
1021
- helloWord(yourName) {
1022
- /* */
1023
- /* */
1024
- /* */
1025
- /* */
1026
- /* */
1027
- /* */
1028
- /* */
1029
- /* */
1030
- /* */
1031
- /* */
1032
- return (void 0);
1033
1154
  }
1034
1155
  };
1035
- __decorate([
1036
- GET(),
1037
- __param(0, Query('yourName')),
1038
- __metadata("design:type", Function),
1039
- __metadata("design:paramtypes", [String]),
1040
- __metadata("design:returntype", Object)
1041
- ], TaonCmsCategoryController.prototype, "helloWord", null);
1042
1156
  TaonCmsCategoryController = __decorate([
1043
1157
  TaonController({
1044
1158
  className: 'TaonCmsCategoryController',
1045
- allowedMethods: []
1159
+ allowedMethods: [],
1046
1160
  })
1047
1161
  ], TaonCmsCategoryController);
1048
1162
 
@@ -1233,25 +1347,22 @@ const TaonCmsCommentAbstractContext = createContext(() => ({
1233
1347
  }));
1234
1348
 
1235
1349
  //#endregion
1236
- let TaonCmsContentEntity = class TaonCmsContentEntity extends TaonBaseEntity {
1350
+ let TaonCmsContentRevisionEntity = class TaonCmsContentRevisionEntity extends TaonBaseEntity {
1237
1351
  };
1238
- TaonCmsContentEntity = __decorate([
1352
+ TaonCmsContentRevisionEntity = __decorate([
1239
1353
  TaonEntity({
1240
- className: 'TaonCmsContentEntity',
1354
+ className: 'TaonCmsContentRevisionEntity',
1241
1355
  createTable: true,
1242
1356
  })
1243
- ], TaonCmsContentEntity);
1357
+ ], TaonCmsContentRevisionEntity);
1244
1358
 
1245
1359
  //#endregion
1246
- let TaonCmsContentRepository = class TaonCmsContentRepository extends TaonBaseRepository {
1360
+ let TaonCmsContentRevisionRepository = class TaonCmsContentRevisionRepository extends TaonBaseRepository {
1247
1361
  constructor() {
1248
1362
  super(...arguments);
1249
- this.entityClassResolveFn = () => TaonCmsContentEntity;
1363
+ this.entityClassResolveFn = () => TaonCmsContentRevisionEntity;
1250
1364
  }
1251
- /**
1252
- * TODO remove this demo example method
1253
- */
1254
- async countEntitesWithEvenId() {
1365
+ async listForContent(contentId, manager) {
1255
1366
  /* */
1256
1367
  /* */
1257
1368
  /* */
@@ -1261,26 +1372,27 @@ let TaonCmsContentRepository = class TaonCmsContentRepository extends TaonBaseRe
1261
1372
  /* */
1262
1373
  return (void 0);
1263
1374
  }
1264
- };
1265
- TaonCmsContentRepository = __decorate([
1266
- TaonRepository({
1267
- className: 'TaonCmsContentRepository',
1268
- })
1269
- ], TaonCmsContentRepository);
1270
-
1271
- //#endregion
1272
- let TaonCmsContentController = class TaonCmsContentController extends TaonBaseCrudController {
1273
- constructor() {
1274
- super(...arguments);
1275
- this.entityClassResolveFn = () => TaonCmsContentEntity;
1276
- this.taonCmsContentRepository = this.injectCustomRepo(TaonCmsContentRepository);
1277
- //#endregion
1375
+ async requireRevision(contentId, revisionNumber, manager) {
1376
+ /* */
1377
+ /* */
1378
+ /* */
1379
+ /* */
1380
+ /* */
1381
+ /* */
1382
+ /* */
1383
+ /* */
1384
+ /* */
1385
+ /* */
1386
+ /* */
1387
+ return (void 0);
1278
1388
  }
1279
- //#region methods & getters / hello world
1280
- /**
1281
- * TODO remove this demo example method
1282
- */
1283
- helloWord(yourName) {
1389
+ async recordContent(content, snapshot, manager) {
1390
+ /* */
1391
+ /* */
1392
+ /* */
1393
+ /* */
1394
+ /* */
1395
+ /* */
1284
1396
  /* */
1285
1397
  /* */
1286
1398
  /* */
@@ -1294,97 +1406,99 @@ let TaonCmsContentController = class TaonCmsContentController extends TaonBaseCr
1294
1406
  return (void 0);
1295
1407
  }
1296
1408
  };
1297
- __decorate([
1298
- GET(),
1299
- __param(0, Query('yourName')),
1300
- __metadata("design:type", Function),
1301
- __metadata("design:paramtypes", [String]),
1302
- __metadata("design:returntype", Object)
1303
- ], TaonCmsContentController.prototype, "helloWord", null);
1304
- TaonCmsContentController = __decorate([
1409
+ TaonCmsContentRevisionRepository = __decorate([
1410
+ TaonRepository({
1411
+ className: 'TaonCmsContentRevisionRepository',
1412
+ })
1413
+ ], TaonCmsContentRevisionRepository);
1414
+
1415
+ //#endregion
1416
+ let TaonCmsContentRevisionController = class TaonCmsContentRevisionController extends TaonBaseCrudController {
1417
+ constructor() {
1418
+ super(...arguments);
1419
+ this.entityClassResolveFn = () => TaonCmsContentRevisionEntity;
1420
+ this.taonCmsContentRevisionRepository = this.injectCustomRepo(TaonCmsContentRevisionRepository);
1421
+ }
1422
+ };
1423
+ TaonCmsContentRevisionController = __decorate([
1305
1424
  TaonController({
1306
- className: 'TaonCmsContentController',
1425
+ className: 'TaonCmsContentRevisionController',
1307
1426
  allowedMethods: [],
1308
1427
  })
1309
- ], TaonCmsContentController);
1428
+ ], TaonCmsContentRevisionController);
1310
1429
 
1311
1430
  //#endregion
1312
- let TaonCmsContentProvider = class TaonCmsContentProvider extends TaonBaseProvider {
1313
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsContentProvider, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
1314
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsContentProvider }); }
1431
+ let TaonCmsContentRevisionProvider = class TaonCmsContentRevisionProvider extends TaonBaseProvider {
1432
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsContentRevisionProvider, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
1433
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsContentRevisionProvider }); }
1315
1434
  };
1316
- TaonCmsContentProvider = __decorate([
1435
+ TaonCmsContentRevisionProvider = __decorate([
1317
1436
  TaonProvider({
1318
- className: 'TaonCmsContentProvider',
1437
+ className: 'TaonCmsContentRevisionProvider',
1319
1438
  })
1320
1439
  //#region @browser
1321
- ], TaonCmsContentProvider);
1322
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsContentProvider, decorators: [{
1440
+ ], TaonCmsContentRevisionProvider);
1441
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsContentRevisionProvider, decorators: [{
1323
1442
  type: Injectable
1324
1443
  }] });
1325
1444
 
1326
1445
  //#endregion
1327
- let TaonCmsContentMiddleware = class TaonCmsContentMiddleware extends TaonBaseMiddleware {
1446
+ let TaonCmsContentRevisionMiddleware = class TaonCmsContentRevisionMiddleware extends TaonBaseMiddleware {
1328
1447
  };
1329
- TaonCmsContentMiddleware = __decorate([
1448
+ TaonCmsContentRevisionMiddleware = __decorate([
1330
1449
  TaonMiddleware({
1331
- className: 'TaonCmsContentMiddleware',
1450
+ className: 'TaonCmsContentRevisionMiddleware',
1332
1451
  })
1333
- ], TaonCmsContentMiddleware);
1452
+ ], TaonCmsContentRevisionMiddleware);
1334
1453
 
1335
1454
  //#endregion
1336
- let TaonCmsContentSubscriber = class TaonCmsContentSubscriber extends TaonBaseSubscriberForEntity {
1455
+ let TaonCmsContentRevisionSubscriber = class TaonCmsContentRevisionSubscriber extends TaonBaseSubscriberForEntity {
1337
1456
  constructor() {
1338
1457
  super(...arguments);
1339
- this.taonCmsContentProvider = this.injectProvider(TaonCmsContentProvider);
1458
+ this.taonCmsContentRevisionProvider = this.injectProvider(TaonCmsContentRevisionProvider);
1340
1459
  }
1341
1460
  listenTo() {
1342
- return TaonCmsContentEntity;
1461
+ return TaonCmsContentRevisionEntity;
1343
1462
  }
1344
1463
  };
1345
- TaonCmsContentSubscriber = __decorate([
1464
+ TaonCmsContentRevisionSubscriber = __decorate([
1346
1465
  TaonSubscriber({
1347
- className: 'TaonCmsContentSubscriber',
1466
+ className: 'TaonCmsContentRevisionSubscriber',
1348
1467
  // allowedEvents: ['afterUpdate'],
1349
1468
  })
1350
- ], TaonCmsContentSubscriber);
1469
+ ], TaonCmsContentRevisionSubscriber);
1351
1470
 
1352
1471
  //#region imports
1353
1472
  //#endregion
1354
- const TaonCmsContentAbstractContext = createContext(() => ({
1355
- contextName: 'TaonCmsContentAbstractContext',
1473
+ const TaonCmsContentRevisionAbstractContext = createContext(() => ({
1474
+ contextName: 'TaonCmsContentRevisionAbstractContext',
1356
1475
  abstract: true,
1357
1476
  contexts: { TaonBaseContext },
1358
- entities: { TaonCmsContentEntity },
1359
- controllers: { TaonCmsContentController },
1360
- repositories: { TaonCmsContentRepository },
1361
- providers: { TaonCmsContentProvider },
1362
- middlewares: { TaonCmsContentMiddleware },
1363
- subscribers: { TaonCmsContentSubscriber },
1477
+ entities: { TaonCmsContentRevisionEntity },
1478
+ controllers: { TaonCmsContentRevisionController },
1479
+ repositories: { TaonCmsContentRevisionRepository },
1480
+ providers: { TaonCmsContentRevisionProvider },
1481
+ middlewares: { TaonCmsContentRevisionMiddleware },
1482
+ subscribers: { TaonCmsContentRevisionSubscriber },
1364
1483
  }));
1365
1484
 
1366
1485
  //#endregion
1367
- let TaonCmsContentAssetEntity = class TaonCmsContentAssetEntity extends TaonBaseEntity {
1486
+ let TaonCmsContentTagEntity = class TaonCmsContentTagEntity extends TaonBaseAbstractEntity {
1368
1487
  };
1369
- TaonCmsContentAssetEntity = __decorate([
1488
+ TaonCmsContentTagEntity = __decorate([
1370
1489
  TaonEntity({
1371
- className: 'TaonCmsContentAssetEntity',
1490
+ className: 'TaonCmsContentTagEntity',
1372
1491
  createTable: true,
1373
1492
  })
1374
- ], TaonCmsContentAssetEntity);
1493
+ ], TaonCmsContentTagEntity);
1375
1494
 
1376
1495
  //#endregion
1377
- let TaonCmsContentAssetRepository = class TaonCmsContentAssetRepository extends TaonBaseRepository {
1496
+ let TaonCmsContentTagRepository = class TaonCmsContentTagRepository extends TaonBaseRepository {
1378
1497
  constructor() {
1379
1498
  super(...arguments);
1380
- this.entityClassResolveFn = () => TaonCmsContentAssetEntity;
1499
+ this.entityClassResolveFn = () => TaonCmsContentTagEntity;
1381
1500
  }
1382
- /**
1383
- * TODO remove this demo example method
1384
- */
1385
- async countEntitesWithEvenId() {
1386
- /* */
1387
- /* */
1501
+ async findTagIds(contentId, manager) {
1388
1502
  /* */
1389
1503
  /* */
1390
1504
  /* */
@@ -1392,26 +1506,8 @@ let TaonCmsContentAssetRepository = class TaonCmsContentAssetRepository extends
1392
1506
  /* */
1393
1507
  return (void 0);
1394
1508
  }
1395
- };
1396
- TaonCmsContentAssetRepository = __decorate([
1397
- TaonRepository({
1398
- className: 'TaonCmsContentAssetRepository',
1399
- })
1400
- ], TaonCmsContentAssetRepository);
1401
-
1402
- //#endregion
1403
- let TaonCmsContentAssetController = class TaonCmsContentAssetController extends TaonBaseCrudController {
1404
- constructor() {
1405
- super(...arguments);
1406
- this.entityClassResolveFn = () => TaonCmsContentAssetEntity;
1407
- this.taonCmsContentAssetRepository = this.injectCustomRepo(TaonCmsContentAssetRepository);
1408
- //#endregion
1409
- }
1410
- //#region methods & getters / hello world
1411
- /**
1412
- * TODO remove this demo example method
1413
- */
1414
- helloWord(yourName) {
1509
+ async replaceTags(contentId, tagIds, manager) {
1510
+ /* */
1415
1511
  /* */
1416
1512
  /* */
1417
1513
  /* */
@@ -1425,130 +1521,109 @@ let TaonCmsContentAssetController = class TaonCmsContentAssetController extends
1425
1521
  return (void 0);
1426
1522
  }
1427
1523
  };
1428
- __decorate([
1429
- GET(),
1430
- __param(0, Query('yourName')),
1431
- __metadata("design:type", Function),
1432
- __metadata("design:paramtypes", [String]),
1433
- __metadata("design:returntype", Object)
1434
- ], TaonCmsContentAssetController.prototype, "helloWord", null);
1435
- TaonCmsContentAssetController = __decorate([
1524
+ TaonCmsContentTagRepository = __decorate([
1525
+ TaonRepository({
1526
+ className: 'TaonCmsContentTagRepository',
1527
+ })
1528
+ ], TaonCmsContentTagRepository);
1529
+
1530
+ //#endregion
1531
+ let TaonCmsContentTagController = class TaonCmsContentTagController extends TaonBaseCrudController {
1532
+ constructor() {
1533
+ super(...arguments);
1534
+ this.entityClassResolveFn = () => TaonCmsContentTagEntity;
1535
+ this.taonCmsContentTagRepository = this.injectCustomRepo(TaonCmsContentTagRepository);
1536
+ }
1537
+ };
1538
+ TaonCmsContentTagController = __decorate([
1436
1539
  TaonController({
1437
- className: 'TaonCmsContentAssetController',
1438
- allowedMethods: []
1540
+ className: 'TaonCmsContentTagController',
1541
+ allowedMethods: [],
1439
1542
  })
1440
- ], TaonCmsContentAssetController);
1543
+ ], TaonCmsContentTagController);
1441
1544
 
1442
1545
  //#endregion
1443
- let TaonCmsContentAssetProvider = class TaonCmsContentAssetProvider extends TaonBaseProvider {
1444
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsContentAssetProvider, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
1445
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsContentAssetProvider }); }
1546
+ let TaonCmsContentTagProvider = class TaonCmsContentTagProvider extends TaonBaseProvider {
1547
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsContentTagProvider, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
1548
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsContentTagProvider }); }
1446
1549
  };
1447
- TaonCmsContentAssetProvider = __decorate([
1550
+ TaonCmsContentTagProvider = __decorate([
1448
1551
  TaonProvider({
1449
- className: 'TaonCmsContentAssetProvider',
1552
+ className: 'TaonCmsContentTagProvider',
1450
1553
  })
1451
1554
  //#region @browser
1452
- ], TaonCmsContentAssetProvider);
1453
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsContentAssetProvider, decorators: [{
1555
+ ], TaonCmsContentTagProvider);
1556
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsContentTagProvider, decorators: [{
1454
1557
  type: Injectable
1455
1558
  }] });
1456
1559
 
1457
1560
  //#endregion
1458
- let TaonCmsContentAssetMiddleware = class TaonCmsContentAssetMiddleware extends TaonBaseMiddleware {
1561
+ let TaonCmsContentTagMiddleware = class TaonCmsContentTagMiddleware extends TaonBaseMiddleware {
1459
1562
  };
1460
- TaonCmsContentAssetMiddleware = __decorate([
1563
+ TaonCmsContentTagMiddleware = __decorate([
1461
1564
  TaonMiddleware({
1462
- className: 'TaonCmsContentAssetMiddleware',
1565
+ className: 'TaonCmsContentTagMiddleware',
1463
1566
  })
1464
- ], TaonCmsContentAssetMiddleware);
1567
+ ], TaonCmsContentTagMiddleware);
1465
1568
 
1466
1569
  //#endregion
1467
- let TaonCmsContentAssetSubscriber = class TaonCmsContentAssetSubscriber extends TaonBaseSubscriberForEntity {
1570
+ let TaonCmsContentTagSubscriber = class TaonCmsContentTagSubscriber extends TaonBaseSubscriberForEntity {
1468
1571
  constructor() {
1469
1572
  super(...arguments);
1470
- this.taonCmsContentAssetProvider = this.injectProvider(TaonCmsContentAssetProvider);
1573
+ this.taonCmsContentTagProvider = this.injectProvider(TaonCmsContentTagProvider);
1471
1574
  }
1472
1575
  listenTo() {
1473
- return TaonCmsContentAssetEntity;
1576
+ return TaonCmsContentTagEntity;
1474
1577
  }
1475
1578
  };
1476
- TaonCmsContentAssetSubscriber = __decorate([
1579
+ TaonCmsContentTagSubscriber = __decorate([
1477
1580
  TaonSubscriber({
1478
- className: 'TaonCmsContentAssetSubscriber',
1581
+ className: 'TaonCmsContentTagSubscriber',
1479
1582
  // allowedEvents: ['afterUpdate'],
1480
1583
  })
1481
- ], TaonCmsContentAssetSubscriber);
1584
+ ], TaonCmsContentTagSubscriber);
1482
1585
 
1483
1586
  //#region imports
1484
1587
  //#endregion
1485
- const TaonCmsContentAssetAbstractContext = createContext(() => ({
1486
- contextName: 'TaonCmsContentAssetAbstractContext',
1588
+ const TaonCmsContentTagAbstractContext = createContext(() => ({
1589
+ contextName: 'TaonCmsContentTagAbstractContext',
1487
1590
  abstract: true,
1488
1591
  contexts: { TaonBaseContext },
1489
- entities: { TaonCmsContentAssetEntity },
1490
- controllers: { TaonCmsContentAssetController },
1491
- repositories: { TaonCmsContentAssetRepository },
1492
- providers: { TaonCmsContentAssetProvider },
1493
- middlewares: { TaonCmsContentAssetMiddleware },
1494
- subscribers: { TaonCmsContentAssetSubscriber },
1592
+ entities: { TaonCmsContentTagEntity },
1593
+ controllers: { TaonCmsContentTagController },
1594
+ repositories: { TaonCmsContentTagRepository },
1595
+ providers: { TaonCmsContentTagProvider },
1596
+ middlewares: { TaonCmsContentTagMiddleware },
1597
+ subscribers: { TaonCmsContentTagSubscriber },
1495
1598
  }));
1496
1599
 
1497
1600
  //#endregion
1498
- let TaonCmsContentPermissionEntity = class TaonCmsContentPermissionEntity extends TaonBaseEntity {
1601
+ let TaonCmsTagEntity = class TaonCmsTagEntity extends TaonBaseAbstractEntity {
1499
1602
  };
1500
- __decorate([
1501
- PrimaryGeneratedColumn(),
1502
- __metadata("design:type", Number)
1503
- ], TaonCmsContentPermissionEntity.prototype, "id", void 0);
1504
- __decorate([
1505
- Column({ type: 'integer', default: 0 }),
1506
- __metadata("design:type", Number)
1507
- ], TaonCmsContentPermissionEntity.prototype, "version", void 0);
1508
- __decorate([
1509
- Column({ type: 'integer' }),
1510
- __metadata("design:type", Number)
1511
- ], TaonCmsContentPermissionEntity.prototype, "contentId", void 0);
1512
- __decorate([
1513
- Column({ type: 'varchar' }),
1514
- __metadata("design:type", String)
1515
- ], TaonCmsContentPermissionEntity.prototype, "type", void 0);
1516
- __decorate([
1517
- Column({ type: 'integer', nullable: true }),
1518
- __metadata("design:type", Number)
1519
- ], TaonCmsContentPermissionEntity.prototype, "permissionId", void 0);
1520
- __decorate([
1521
- Column({ type: 'integer', nullable: true }),
1522
- __metadata("design:type", Number)
1523
- ], TaonCmsContentPermissionEntity.prototype, "roleId", void 0);
1524
- __decorate([
1525
- Column({ type: 'integer', nullable: true }),
1526
- __metadata("design:type", Number)
1527
- ], TaonCmsContentPermissionEntity.prototype, "productId", void 0);
1528
- __decorate([
1529
- Column({ type: 'varchar', nullable: true }),
1530
- __metadata("design:type", String)
1531
- ], TaonCmsContentPermissionEntity.prototype, "stripePriceId", void 0);
1532
- __decorate([
1533
- Column({ type: 'simple-json', nullable: true }),
1534
- __metadata("design:type", Object)
1535
- ], TaonCmsContentPermissionEntity.prototype, "config", void 0);
1536
- __decorate([
1537
- Column({ type: 'datetime' }),
1538
- __metadata("design:type", Date)
1539
- ], TaonCmsContentPermissionEntity.prototype, "createdAt", void 0);
1540
- TaonCmsContentPermissionEntity = __decorate([
1603
+ TaonCmsTagEntity = __decorate([
1541
1604
  TaonEntity({
1542
- className: 'TaonCmsContentPermissionEntity',
1605
+ className: 'TaonCmsTagEntity',
1543
1606
  createTable: true,
1544
1607
  })
1545
- ], TaonCmsContentPermissionEntity);
1608
+ ], TaonCmsTagEntity);
1546
1609
 
1547
1610
  //#endregion
1548
- let TaonCmsContentPermissionRepository = class TaonCmsContentPermissionRepository extends TaonBaseRepository {
1611
+ let TaonCmsTagRepository = class TaonCmsTagRepository extends TaonBaseRepository {
1549
1612
  constructor() {
1550
1613
  super(...arguments);
1551
- this.entityClassResolveFn = () => TaonCmsContentPermissionEntity;
1614
+ this.entityClassResolveFn = () => TaonCmsTagEntity;
1615
+ }
1616
+ async requireTags(ids, manager) {
1617
+ /* */
1618
+ /* */
1619
+ /* */
1620
+ /* */
1621
+ /* */
1622
+ /* */
1623
+ /* */
1624
+ /* */
1625
+ /* */
1626
+ return (void 0);
1552
1627
  }
1553
1628
  /**
1554
1629
  * TODO remove this demo example method
@@ -1564,18 +1639,18 @@ let TaonCmsContentPermissionRepository = class TaonCmsContentPermissionRepositor
1564
1639
  return (void 0);
1565
1640
  }
1566
1641
  };
1567
- TaonCmsContentPermissionRepository = __decorate([
1642
+ TaonCmsTagRepository = __decorate([
1568
1643
  TaonRepository({
1569
- className: 'TaonCmsContentPermissionRepository',
1644
+ className: 'TaonCmsTagRepository',
1570
1645
  })
1571
- ], TaonCmsContentPermissionRepository);
1646
+ ], TaonCmsTagRepository);
1572
1647
 
1573
1648
  //#endregion
1574
- let TaonCmsContentPermissionController = class TaonCmsContentPermissionController extends TaonBaseCrudController {
1649
+ let TaonCmsTagController = class TaonCmsTagController extends TaonBaseCrudController {
1575
1650
  constructor() {
1576
1651
  super(...arguments);
1577
- this.entityClassResolveFn = () => TaonCmsContentPermissionEntity;
1578
- this.taonCmsContentPermissionRepository = this.injectCustomRepo(TaonCmsContentPermissionRepository);
1652
+ this.entityClassResolveFn = () => TaonCmsTagEntity;
1653
+ this.taonCmsTagRepository = this.injectCustomRepo(TaonCmsTagRepository);
1579
1654
  //#endregion
1580
1655
  }
1581
1656
  //#region methods & getters / hello world
@@ -1602,118 +1677,212 @@ __decorate([
1602
1677
  __metadata("design:type", Function),
1603
1678
  __metadata("design:paramtypes", [String]),
1604
1679
  __metadata("design:returntype", Object)
1605
- ], TaonCmsContentPermissionController.prototype, "helloWord", null);
1606
- TaonCmsContentPermissionController = __decorate([
1680
+ ], TaonCmsTagController.prototype, "helloWord", null);
1681
+ TaonCmsTagController = __decorate([
1607
1682
  TaonController({
1608
- className: 'TaonCmsContentPermissionController',
1683
+ className: 'TaonCmsTagController',
1609
1684
  allowedMethods: []
1610
1685
  })
1611
- ], TaonCmsContentPermissionController);
1686
+ ], TaonCmsTagController);
1612
1687
 
1613
1688
  //#endregion
1614
- let TaonCmsContentPermissionProvider = class TaonCmsContentPermissionProvider extends TaonBaseProvider {
1615
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsContentPermissionProvider, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
1616
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsContentPermissionProvider }); }
1689
+ let TaonCmsTagProvider = class TaonCmsTagProvider extends TaonBaseProvider {
1690
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsTagProvider, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
1691
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsTagProvider }); }
1617
1692
  };
1618
- TaonCmsContentPermissionProvider = __decorate([
1693
+ TaonCmsTagProvider = __decorate([
1619
1694
  TaonProvider({
1620
- className: 'TaonCmsContentPermissionProvider',
1695
+ className: 'TaonCmsTagProvider',
1621
1696
  })
1622
1697
  //#region @browser
1623
- ], TaonCmsContentPermissionProvider);
1624
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsContentPermissionProvider, decorators: [{
1698
+ ], TaonCmsTagProvider);
1699
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsTagProvider, decorators: [{
1625
1700
  type: Injectable
1626
1701
  }] });
1627
1702
 
1628
1703
  //#endregion
1629
- let TaonCmsContentPermissionMiddleware = class TaonCmsContentPermissionMiddleware extends TaonBaseMiddleware {
1704
+ let TaonCmsTagMiddleware = class TaonCmsTagMiddleware extends TaonBaseMiddleware {
1630
1705
  };
1631
- TaonCmsContentPermissionMiddleware = __decorate([
1706
+ TaonCmsTagMiddleware = __decorate([
1632
1707
  TaonMiddleware({
1633
- className: 'TaonCmsContentPermissionMiddleware',
1708
+ className: 'TaonCmsTagMiddleware',
1634
1709
  })
1635
- ], TaonCmsContentPermissionMiddleware);
1710
+ ], TaonCmsTagMiddleware);
1636
1711
 
1637
1712
  //#endregion
1638
- let TaonCmsContentPermissionSubscriber = class TaonCmsContentPermissionSubscriber extends TaonBaseSubscriberForEntity {
1713
+ let TaonCmsTagSubscriber = class TaonCmsTagSubscriber extends TaonBaseSubscriberForEntity {
1639
1714
  constructor() {
1640
1715
  super(...arguments);
1641
- this.taonCmsContentPermissionProvider = this.injectProvider(TaonCmsContentPermissionProvider);
1716
+ this.taonCmsTagProvider = this.injectProvider(TaonCmsTagProvider);
1642
1717
  }
1643
1718
  listenTo() {
1644
- return TaonCmsContentPermissionEntity;
1719
+ return TaonCmsTagEntity;
1645
1720
  }
1646
1721
  };
1647
- TaonCmsContentPermissionSubscriber = __decorate([
1722
+ TaonCmsTagSubscriber = __decorate([
1648
1723
  TaonSubscriber({
1649
- className: 'TaonCmsContentPermissionSubscriber',
1724
+ className: 'TaonCmsTagSubscriber',
1650
1725
  // allowedEvents: ['afterUpdate'],
1651
1726
  })
1652
- ], TaonCmsContentPermissionSubscriber);
1727
+ ], TaonCmsTagSubscriber);
1653
1728
 
1654
1729
  //#region imports
1655
1730
  //#endregion
1656
- const TaonCmsContentPermissionAbstractContext = createContext(() => ({
1657
- contextName: 'TaonCmsContentPermissionAbstractContext',
1731
+ const TaonCmsTagAbstractContext = createContext(() => ({
1732
+ contextName: 'TaonCmsTagAbstractContext',
1658
1733
  abstract: true,
1659
1734
  contexts: { TaonBaseContext },
1660
- entities: { TaonCmsContentPermissionEntity },
1661
- controllers: { TaonCmsContentPermissionController },
1662
- repositories: { TaonCmsContentPermissionRepository },
1663
- providers: { TaonCmsContentPermissionProvider },
1664
- middlewares: { TaonCmsContentPermissionMiddleware },
1665
- subscribers: { TaonCmsContentPermissionSubscriber },
1735
+ entities: { TaonCmsTagEntity },
1736
+ controllers: { TaonCmsTagController },
1737
+ repositories: { TaonCmsTagRepository },
1738
+ providers: { TaonCmsTagProvider },
1739
+ middlewares: { TaonCmsTagMiddleware },
1740
+ subscribers: { TaonCmsTagSubscriber },
1666
1741
  }));
1667
1742
 
1668
- //#endregion
1669
- let TaonCmsContentRevisionEntity = class TaonCmsContentRevisionEntity extends TaonBaseEntity {
1670
- };
1671
- TaonCmsContentRevisionEntity = __decorate([
1672
- TaonEntity({
1673
- className: 'TaonCmsContentRevisionEntity',
1674
- createTable: true,
1675
- })
1676
- ], TaonCmsContentRevisionEntity);
1743
+ var TaonCmsContentType;
1744
+ (function (TaonCmsContentType) {
1745
+ TaonCmsContentType["Normal"] = "normal";
1746
+ TaonCmsContentType["Video"] = "video";
1747
+ TaonCmsContentType["Audio"] = "audio";
1748
+ TaonCmsContentType["Attachment"] = "attachment";
1749
+ })(TaonCmsContentType || (TaonCmsContentType = {}));
1750
+ var TaonCmsContentState;
1751
+ (function (TaonCmsContentState) {
1752
+ TaonCmsContentState["Active"] = "active";
1753
+ TaonCmsContentState["Inactive"] = "inactive";
1754
+ })(TaonCmsContentState || (TaonCmsContentState = {}));
1677
1755
 
1678
1756
  //#endregion
1679
- let TaonCmsContentRevisionRepository = class TaonCmsContentRevisionRepository extends TaonBaseRepository {
1757
+ let TaonCmsContentEntity = class TaonCmsContentEntity extends TaonBaseEntity {
1680
1758
  constructor() {
1759
+ /* */
1760
+ /* */
1681
1761
  super(...arguments);
1682
- this.entityClassResolveFn = () => TaonCmsContentRevisionEntity;
1683
- }
1684
- /**
1685
- * TODO remove this demo example method
1686
- */
1687
- async countEntitesWithEvenId() {
1688
1762
  /* */
1689
1763
  /* */
1764
+ this.type = TaonCmsContentType.Normal;
1690
1765
  /* */
1691
1766
  /* */
1767
+ this.videoKey = null;
1692
1768
  /* */
1693
1769
  /* */
1770
+ this.audioKey = null;
1694
1771
  /* */
1695
- return (void 0);
1772
+ /* */
1773
+ this.attachmentKey = null;
1696
1774
  }
1697
1775
  };
1698
- TaonCmsContentRevisionRepository = __decorate([
1699
- TaonRepository({
1700
- className: 'TaonCmsContentRevisionRepository',
1776
+ TaonCmsContentEntity = __decorate([
1777
+ TaonEntity({
1778
+ className: 'TaonCmsContentEntity',
1779
+ createTable: true,
1701
1780
  })
1702
- ], TaonCmsContentRevisionRepository);
1781
+ ], TaonCmsContentEntity);
1782
+
1783
+ function contentError(message, status = 400) {
1784
+ Taon.error({ message, status });
1785
+ throw new Error(message);
1786
+ }
1787
+ function requireContentId(value, name = 'contentId') {
1788
+ if (!Number.isSafeInteger(value) || value <= 0) {
1789
+ contentError(`${name} must be a positive integer.`);
1790
+ }
1791
+ }
1792
+ function requireContentVersion(value, name = 'expectedVersion') {
1793
+ if (!Number.isSafeInteger(value) || value < 0) {
1794
+ contentError(`${name} must be a non-negative integer.`);
1795
+ }
1796
+ }
1797
+ function validateContentInput(input, creating = false) {
1798
+ if (!input || typeof input !== 'object' || Array.isArray(input)) {
1799
+ contentError('Content must be an object.');
1800
+ }
1801
+ if (input.type !== undefined &&
1802
+ !Object.values(TaonCmsContentType).includes(input.type)) {
1803
+ contentError('type must be normal, video, audio, or attachment.');
1804
+ }
1805
+ for (const field of ['title', 'slug']) {
1806
+ if (creating || input[field] !== undefined) {
1807
+ if (typeof input[field] !== 'string' || !input[field].trim()) {
1808
+ contentError(`${field} must be a non-empty string.`);
1809
+ }
1810
+ }
1811
+ }
1812
+ for (const field of [
1813
+ 'body', 'excerpt', 'videoKey', 'audioKey', 'attachmentKey',
1814
+ ]) {
1815
+ if (input[field] !== undefined &&
1816
+ input[field] !== null &&
1817
+ typeof input[field] !== 'string') {
1818
+ contentError(`${field} must be a string or null.`);
1819
+ }
1820
+ }
1821
+ for (const field of ['categoryId', 'authorUserId']) {
1822
+ if (input[field] !== undefined && input[field] !== null) {
1823
+ requireContentId(input[field], field);
1824
+ }
1825
+ }
1826
+ if (input.status !== undefined &&
1827
+ !['draft', 'published', 'archived'].includes(input.status)) {
1828
+ contentError('status must be draft, published, or archived.');
1829
+ }
1830
+ if (input.publishedAt !== undefined && input.publishedAt !== null) {
1831
+ if (!(input.publishedAt instanceof Date ||
1832
+ typeof input.publishedAt === 'string') ||
1833
+ Number.isNaN(new Date(input.publishedAt).getTime())) {
1834
+ contentError('publishedAt must be a valid date or null.');
1835
+ }
1836
+ }
1837
+ for (const field of ['tagIds', 'relatedPostIds', 'permissionIds']) {
1838
+ const ids = input[field];
1839
+ if (ids !== undefined) {
1840
+ if (!Array.isArray(ids)) {
1841
+ contentError(`${field} must be an array.`);
1842
+ }
1843
+ for (const id of ids) {
1844
+ requireContentId(id, field === 'tagIds'
1845
+ ? 'tagId'
1846
+ : field === 'relatedPostIds'
1847
+ ? 'relatedPostId'
1848
+ : 'permissionId');
1849
+ }
1850
+ }
1851
+ }
1852
+ }
1703
1853
 
1704
1854
  //#endregion
1705
- let TaonCmsContentRevisionController = class TaonCmsContentRevisionController extends TaonBaseCrudController {
1855
+ let TaonCmsContentRepository = class TaonCmsContentRepository extends TaonBaseRepository {
1706
1856
  constructor() {
1707
1857
  super(...arguments);
1708
- this.entityClassResolveFn = () => TaonCmsContentRevisionEntity;
1858
+ this.entityClassResolveFn = () => TaonCmsContentEntity;
1709
1859
  this.taonCmsContentRevisionRepository = this.injectCustomRepo(TaonCmsContentRevisionRepository);
1710
- //#endregion
1860
+ this.taonCmsContentTagRepository = this.injectCustomRepo(TaonCmsContentTagRepository);
1861
+ this.taonCmsCategoryRepository = this.injectCustomRepo(TaonCmsCategoryRepository);
1862
+ this.tags = this.injectCustomRepo(TaonCmsTagRepository);
1711
1863
  }
1712
- //#region methods & getters / hello world
1713
- /**
1714
- * TODO remove this demo example method
1715
- */
1716
- helloWord(yourName) {
1864
+ async createContent(input) {
1865
+ /* */
1866
+ /* */
1867
+ /* */
1868
+ /* */
1869
+ /* */
1870
+ /* */
1871
+ /* */
1872
+ /* */
1873
+ /* */
1874
+ /* */
1875
+ /* */
1876
+ /* */
1877
+ /* */
1878
+ /* */
1879
+ /* */
1880
+ /* */
1881
+ /* */
1882
+ /* */
1883
+ /* */
1884
+ /* */
1885
+ /* */
1717
1886
  /* */
1718
1887
  /* */
1719
1888
  /* */
@@ -1726,91 +1895,622 @@ let TaonCmsContentRevisionController = class TaonCmsContentRevisionController ex
1726
1895
  /* */
1727
1896
  return (void 0);
1728
1897
  }
1729
- };
1730
- __decorate([
1731
- GET(),
1732
- __param(0, Query('yourName')),
1733
- __metadata("design:type", Function),
1734
- __metadata("design:paramtypes", [String]),
1898
+ async updateContent(id, input) {
1899
+ /* */
1900
+ /* */
1901
+ /* */
1902
+ /* */
1903
+ /* */
1904
+ /* */
1905
+ /* */
1906
+ /* */
1907
+ /* */
1908
+ /* */
1909
+ /* */
1910
+ /* */
1911
+ /* */
1912
+ /* */
1913
+ /* */
1914
+ /* */
1915
+ /* */
1916
+ /* */
1917
+ /* */
1918
+ /* */
1919
+ /* */
1920
+ /* */
1921
+ /* */
1922
+ /* */
1923
+ /* */
1924
+ /* */
1925
+ /* */
1926
+ return (void 0);
1927
+ }
1928
+ async archiveContent(id, expectedVersion) {
1929
+ /* */
1930
+ /* */
1931
+ return (void 0);
1932
+ }
1933
+ async restoreContent(id, input) {
1934
+ /* */
1935
+ /* */
1936
+ /* */
1937
+ /* */
1938
+ /* */
1939
+ /* */
1940
+ /* */
1941
+ /* */
1942
+ /* */
1943
+ /* */
1944
+ /* */
1945
+ /* */
1946
+ /* */
1947
+ /* */
1948
+ /* */
1949
+ /* */
1950
+ /* */
1951
+ /* */
1952
+ /* */
1953
+ /* */
1954
+ /* */
1955
+ /* */
1956
+ /* */
1957
+ /* */
1958
+ /* */
1959
+ /* */
1960
+ /* */
1961
+ /* */
1962
+ /* */
1963
+ /* */
1964
+ /* */
1965
+ /* */
1966
+ /* */
1967
+ /* */
1968
+ /* */
1969
+ /* */
1970
+ /* */
1971
+ /* */
1972
+ /* */
1973
+ /* */
1974
+ /* */
1975
+ /* */
1976
+ /* */
1977
+ /* */
1978
+ /* */
1979
+ /* */
1980
+ /* */
1981
+ /* */
1982
+ /* */
1983
+ /* */
1984
+ /* */
1985
+ /* */
1986
+ /* */
1987
+ /* */
1988
+ return (void 0);
1989
+ }
1990
+ async listRevisions(id) {
1991
+ /* */
1992
+ /* */
1993
+ /* */
1994
+ /* */
1995
+ /* */
1996
+ /* */
1997
+ return (void 0);
1998
+ }
1999
+ async listRelatedPosts(id) {
2000
+ /* */
2001
+ /* */
2002
+ /* */
2003
+ /* */
2004
+ /* */
2005
+ return (void 0);
2006
+ }
2007
+ async listPermissions(id) {
2008
+ /* */
2009
+ /* */
2010
+ /* */
2011
+ /* */
2012
+ /* */
2013
+ return (void 0);
2014
+ }
2015
+ async addRelatedPost(id, relatedPostId, expectedVersion) {
2016
+ /* */
2017
+ /* */
2018
+ return (void 0);
2019
+ }
2020
+ async deleteRelatedPost(id, relatedPostId, expectedVersion) {
2021
+ /* */
2022
+ /* */
2023
+ return (void 0);
2024
+ }
2025
+ async changeRelatedPost(id, relatedPostId, expectedVersion, adding) {
2026
+ /* */
2027
+ /* */
2028
+ /* */
2029
+ /* */
2030
+ /* */
2031
+ /* */
2032
+ /* */
2033
+ /* */
2034
+ /* */
2035
+ /* */
2036
+ /* */
2037
+ /* */
2038
+ /* */
2039
+ /* */
2040
+ /* */
2041
+ /* */
2042
+ /* */
2043
+ return (void 0);
2044
+ }
2045
+ async requireContent(id, manager) {
2046
+ /* */
2047
+ /* */
2048
+ /* */
2049
+ /* */
2050
+ /* */
2051
+ /* */
2052
+ /* */
2053
+ /* */
2054
+ /* */
2055
+ /* */
2056
+ /* */
2057
+ return (void 0);
2058
+ }
2059
+ contentFields(input, current) {
2060
+ const type = input.type ?? current?.type ?? TaonCmsContentType.Normal;
2061
+ const title = input.title ?? current?.title;
2062
+ const slug = input.slug ?? current?.slug;
2063
+ if (title === undefined || slug === undefined) {
2064
+ contentError('title and slug are required.');
2065
+ }
2066
+ const publishedAt = input.publishedAt === undefined
2067
+ ? (current?.publishedAt ?? null)
2068
+ : input.publishedAt;
2069
+ return {
2070
+ type,
2071
+ title,
2072
+ slug,
2073
+ body: input.body === undefined ? (current?.body ?? null) : input.body,
2074
+ videoKey: input.videoKey === undefined ? (current?.videoKey ?? null) : input.videoKey,
2075
+ audioKey: input.audioKey === undefined ? (current?.audioKey ?? null) : input.audioKey,
2076
+ attachmentKey: input.attachmentKey === undefined
2077
+ ? (current?.attachmentKey ?? null)
2078
+ : input.attachmentKey,
2079
+ excerpt: input.excerpt === undefined
2080
+ ? (current?.excerpt ?? null)
2081
+ : input.excerpt,
2082
+ categoryId: input.categoryId === undefined
2083
+ ? (current?.categoryId ?? null)
2084
+ : input.categoryId,
2085
+ authorUserId: input.authorUserId === undefined
2086
+ ? (current?.authorUserId ?? null)
2087
+ : input.authorUserId,
2088
+ status: input.status ?? current?.status ?? 'draft',
2089
+ publishedAt: publishedAt === null ? null : new Date(publishedAt),
2090
+ };
2091
+ }
2092
+ async snapshotOf(content, manager) {
2093
+ /* */
2094
+ /* */
2095
+ /* */
2096
+ /* */
2097
+ /* */
2098
+ /* */
2099
+ /* */
2100
+ /* */
2101
+ /* */
2102
+ /* */
2103
+ return (void 0);
2104
+ }
2105
+ contentStatus(status) {
2106
+ if (status !== 'draft' && status !== 'published' && status !== 'archived') {
2107
+ contentError(`Unsupported stored content status: ${status}.`, 409);
2108
+ }
2109
+ return status;
2110
+ }
2111
+ async validateReferences(fields, tagIds, permissionIds, manager) {
2112
+ /* */
2113
+ /* */
2114
+ /* */
2115
+ /* */
2116
+ /* */
2117
+ /* */
2118
+ return (void 0);
2119
+ }
2120
+ async requirePermissions(permissionIds, manager) {
2121
+ /* */
2122
+ /* */
2123
+ /* */
2124
+ /* */
2125
+ /* */
2126
+ /* */
2127
+ /* */
2128
+ /* */
2129
+ /* */
2130
+ /* */
2131
+ /* */
2132
+ /* */
2133
+ return (void 0);
2134
+ }
2135
+ async requireAvailableSlug(slug, manager, contentId) {
2136
+ /* */
2137
+ /* */
2138
+ /* */
2139
+ /* */
2140
+ /* */
2141
+ /* */
2142
+ /* */
2143
+ return (void 0);
2144
+ }
2145
+ async replaceRelatedPosts(id, relatedPostIds, previousIds, manager) {
2146
+ /* */
2147
+ /* */
2148
+ /* */
2149
+ /* */
2150
+ /* */
2151
+ /* */
2152
+ /* */
2153
+ /* */
2154
+ /* */
2155
+ /* */
2156
+ /* */
2157
+ /* */
2158
+ /* */
2159
+ /* */
2160
+ /* */
2161
+ /* */
2162
+ /* */
2163
+ /* */
2164
+ /* */
2165
+ /* */
2166
+ /* */
2167
+ return (void 0);
2168
+ }
2169
+ async replacePermissions(id, permissionIds, previousIds, manager) {
2170
+ /* */
2171
+ /* */
2172
+ /* */
2173
+ /* */
2174
+ /* */
2175
+ /* */
2176
+ /* */
2177
+ /* */
2178
+ /* */
2179
+ /* */
2180
+ /* */
2181
+ return (void 0);
2182
+ }
2183
+ async commitUpdate(current, expectedVersion, snapshot, manager) {
2184
+ /* */
2185
+ /* */
2186
+ /* */
2187
+ /* */
2188
+ /* */
2189
+ /* */
2190
+ /* */
2191
+ /* */
2192
+ /* */
2193
+ /* */
2194
+ /* */
2195
+ /* */
2196
+ /* */
2197
+ /* */
2198
+ /* */
2199
+ /* */
2200
+ /* */
2201
+ /* */
2202
+ /* */
2203
+ /* */
2204
+ /* */
2205
+ /* */
2206
+ /* */
2207
+ /* */
2208
+ /* */
2209
+ /* */
2210
+ /* */
2211
+ /* */
2212
+ /* */
2213
+ /* */
2214
+ /* */
2215
+ /* */
2216
+ /* */
2217
+ /* */
2218
+ /* */
2219
+ /* */
2220
+ /* */
2221
+ /* */
2222
+ /* */
2223
+ /* */
2224
+ /* */
2225
+ /* */
2226
+ /* */
2227
+ /* */
2228
+ /* */
2229
+ /* */
2230
+ /* */
2231
+ /* */
2232
+ /* */
2233
+ /* */
2234
+ /* */
2235
+ /* */
2236
+ /* */
2237
+ /* */
2238
+ /* */
2239
+ /* */
2240
+ return (void 0);
2241
+ }
2242
+ /**
2243
+ * TODO remove this demo example method
2244
+ */
2245
+ async countEntitesWithEvenId() {
2246
+ /* */
2247
+ /* */
2248
+ /* */
2249
+ /* */
2250
+ /* */
2251
+ /* */
2252
+ /* */
2253
+ return (void 0);
2254
+ }
2255
+ };
2256
+ TaonCmsContentRepository = __decorate([
2257
+ TaonRepository({
2258
+ className: 'TaonCmsContentRepository',
2259
+ })
2260
+ ], TaonCmsContentRepository);
2261
+
2262
+ //#endregion
2263
+ let TaonCmsContentController = class TaonCmsContentController extends TaonBaseCrudController {
2264
+ constructor() {
2265
+ super(...arguments);
2266
+ this.entityClassResolveFn = () => TaonCmsContentEntity;
2267
+ this.taonCmsContentRepository = this.injectCustomRepo(TaonCmsContentRepository);
2268
+ }
2269
+ createContent(input) {
2270
+ /* */
2271
+ /* */
2272
+ return (void 0);
2273
+ }
2274
+ updateContent(id, input) {
2275
+ /* */
2276
+ /* */
2277
+ return (void 0);
2278
+ }
2279
+ deleteContent(id, expectedVersion) {
2280
+ /* */
2281
+ /* */
2282
+ /* */
2283
+ return (void 0);
2284
+ }
2285
+ restoreContent(id, input) {
2286
+ /* */
2287
+ /* */
2288
+ return (void 0);
2289
+ }
2290
+ listRelatedPosts(id) {
2291
+ /* */
2292
+ /* */
2293
+ return (void 0);
2294
+ }
2295
+ listPermissions(id) {
2296
+ /* */
2297
+ /* */
2298
+ return (void 0);
2299
+ }
2300
+ addRelatedPost(id, relatedPostId, expectedVersion) {
2301
+ /* */
2302
+ /* */
2303
+ /* */
2304
+ /* */
2305
+ return (void 0);
2306
+ }
2307
+ deleteRelatedPost(id, relatedPostId, expectedVersion) {
2308
+ /* */
2309
+ /* */
2310
+ /* */
2311
+ /* */
2312
+ return (void 0);
2313
+ }
2314
+ listRevisions(id) {
2315
+ /* */
2316
+ /* */
2317
+ return (void 0);
2318
+ }
2319
+ };
2320
+ __decorate([
2321
+ POST(),
2322
+ __param(0, Body()),
2323
+ __metadata("design:type", Function),
2324
+ __metadata("design:paramtypes", [Object]),
1735
2325
  __metadata("design:returntype", Object)
1736
- ], TaonCmsContentRevisionController.prototype, "helloWord", null);
1737
- TaonCmsContentRevisionController = __decorate([
1738
- TaonController({
1739
- className: 'TaonCmsContentRevisionController',
1740
- allowedMethods: []
2326
+ ], TaonCmsContentController.prototype, "createContent", null);
2327
+ __decorate([
2328
+ PUT(),
2329
+ __param(0, Query('id')),
2330
+ __param(1, Body()),
2331
+ __metadata("design:type", Function),
2332
+ __metadata("design:paramtypes", [Number, Object]),
2333
+ __metadata("design:returntype", Object)
2334
+ ], TaonCmsContentController.prototype, "updateContent", null);
2335
+ __decorate([
2336
+ DELETE(),
2337
+ __param(0, Query('id')),
2338
+ __param(1, Query('expectedVersion')),
2339
+ __metadata("design:type", Function),
2340
+ __metadata("design:paramtypes", [Number, Number]),
2341
+ __metadata("design:returntype", Object)
2342
+ ], TaonCmsContentController.prototype, "deleteContent", null);
2343
+ __decorate([
2344
+ POST(),
2345
+ __param(0, Query('id')),
2346
+ __param(1, Body()),
2347
+ __metadata("design:type", Function),
2348
+ __metadata("design:paramtypes", [Number, Object]),
2349
+ __metadata("design:returntype", Object)
2350
+ ], TaonCmsContentController.prototype, "restoreContent", null);
2351
+ __decorate([
2352
+ GET(),
2353
+ __param(0, Query('id')),
2354
+ __metadata("design:type", Function),
2355
+ __metadata("design:paramtypes", [Number]),
2356
+ __metadata("design:returntype", Object)
2357
+ ], TaonCmsContentController.prototype, "listRelatedPosts", null);
2358
+ __decorate([
2359
+ GET(),
2360
+ __param(0, Query('id')),
2361
+ __metadata("design:type", Function),
2362
+ __metadata("design:paramtypes", [Number]),
2363
+ __metadata("design:returntype", Object)
2364
+ ], TaonCmsContentController.prototype, "listPermissions", null);
2365
+ __decorate([
2366
+ POST(),
2367
+ __param(0, Query('id')),
2368
+ __param(1, Query('relatedPostId')),
2369
+ __param(2, Query('expectedVersion')),
2370
+ __metadata("design:type", Function),
2371
+ __metadata("design:paramtypes", [Number, Number, Number]),
2372
+ __metadata("design:returntype", Object)
2373
+ ], TaonCmsContentController.prototype, "addRelatedPost", null);
2374
+ __decorate([
2375
+ DELETE(),
2376
+ __param(0, Query('id')),
2377
+ __param(1, Query('relatedPostId')),
2378
+ __param(2, Query('expectedVersion')),
2379
+ __metadata("design:type", Function),
2380
+ __metadata("design:paramtypes", [Number, Number, Number]),
2381
+ __metadata("design:returntype", Object)
2382
+ ], TaonCmsContentController.prototype, "deleteRelatedPost", null);
2383
+ __decorate([
2384
+ GET(),
2385
+ __param(0, Query('id')),
2386
+ __metadata("design:type", Function),
2387
+ __metadata("design:paramtypes", [Number]),
2388
+ __metadata("design:returntype", Object)
2389
+ ], TaonCmsContentController.prototype, "listRevisions", null);
2390
+ TaonCmsContentController = __decorate([
2391
+ TaonController({
2392
+ className: 'TaonCmsContentController',
2393
+ allowedMethods: [
2394
+ 'getAll',
2395
+ 'getBy',
2396
+ 'createContent',
2397
+ 'updateContent',
2398
+ 'deleteContent',
2399
+ 'restoreContent',
2400
+ 'listRevisions',
2401
+ 'listRelatedPosts',
2402
+ 'listPermissions',
2403
+ 'addRelatedPost',
2404
+ 'deleteRelatedPost',
2405
+ 'paginationQuery'
2406
+ ],
1741
2407
  })
1742
- ], TaonCmsContentRevisionController);
2408
+ ], TaonCmsContentController);
1743
2409
 
1744
2410
  //#endregion
1745
- let TaonCmsContentRevisionProvider = class TaonCmsContentRevisionProvider extends TaonBaseProvider {
1746
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsContentRevisionProvider, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
1747
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsContentRevisionProvider }); }
2411
+ let TaonCmsContentMiddleware = class TaonCmsContentMiddleware extends TaonBaseMiddleware {
1748
2412
  };
1749
- TaonCmsContentRevisionProvider = __decorate([
1750
- TaonProvider({
1751
- className: 'TaonCmsContentRevisionProvider',
2413
+ TaonCmsContentMiddleware = __decorate([
2414
+ TaonMiddleware({
2415
+ className: 'TaonCmsContentMiddleware',
1752
2416
  })
1753
- //#region @browser
1754
- ], TaonCmsContentRevisionProvider);
1755
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsContentRevisionProvider, decorators: [{
1756
- type: Injectable
1757
- }] });
2417
+ ], TaonCmsContentMiddleware);
1758
2418
 
1759
2419
  //#endregion
1760
- let TaonCmsContentRevisionMiddleware = class TaonCmsContentRevisionMiddleware extends TaonBaseMiddleware {
2420
+ let TaonCmsContentProvider = class TaonCmsContentProvider extends TaonBaseProvider {
2421
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsContentProvider, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
2422
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsContentProvider }); }
1761
2423
  };
1762
- TaonCmsContentRevisionMiddleware = __decorate([
1763
- TaonMiddleware({
1764
- className: 'TaonCmsContentRevisionMiddleware',
2424
+ TaonCmsContentProvider = __decorate([
2425
+ TaonProvider({
2426
+ className: 'TaonCmsContentProvider',
1765
2427
  })
1766
- ], TaonCmsContentRevisionMiddleware);
2428
+ //#region @browser
2429
+ ], TaonCmsContentProvider);
2430
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsContentProvider, decorators: [{
2431
+ type: Injectable
2432
+ }] });
1767
2433
 
1768
2434
  //#endregion
1769
- let TaonCmsContentRevisionSubscriber = class TaonCmsContentRevisionSubscriber extends TaonBaseSubscriberForEntity {
2435
+ let TaonCmsContentSubscriber = class TaonCmsContentSubscriber extends TaonBaseSubscriberForEntity {
1770
2436
  constructor() {
1771
2437
  super(...arguments);
1772
- this.taonCmsContentRevisionProvider = this.injectProvider(TaonCmsContentRevisionProvider);
2438
+ this.taonCmsContentProvider = this.injectProvider(TaonCmsContentProvider);
1773
2439
  }
1774
2440
  listenTo() {
1775
- return TaonCmsContentRevisionEntity;
2441
+ return TaonCmsContentEntity;
1776
2442
  }
1777
2443
  };
1778
- TaonCmsContentRevisionSubscriber = __decorate([
2444
+ TaonCmsContentSubscriber = __decorate([
1779
2445
  TaonSubscriber({
1780
- className: 'TaonCmsContentRevisionSubscriber',
2446
+ className: 'TaonCmsContentSubscriber',
1781
2447
  // allowedEvents: ['afterUpdate'],
1782
2448
  })
1783
- ], TaonCmsContentRevisionSubscriber);
2449
+ ], TaonCmsContentSubscriber);
2450
+
2451
+ //#endregion
2452
+ let TaonCmsContentStorageController = class TaonCmsContentStorageController extends TaonBaseStorageController {
2453
+ async handleUploadFiles(files, queryParams, req, res) {
2454
+ /* */
2455
+ /* */
2456
+ /* */
2457
+ /* */
2458
+ /* */
2459
+ /* */
2460
+ /* */
2461
+ /* */
2462
+ return (void 0);
2463
+ }
2464
+ afterFileUploadHook() { }
2465
+ buildStorageDownloadUrl() {
2466
+ throw new Error('Use the download endpoint for CMS media.');
2467
+ }
2468
+ async createStorageDownloadToken() {
2469
+ throw new Error('CMS media download tokens are not enabled.');
2470
+ }
2471
+ };
2472
+ TaonCmsContentStorageController = __decorate([
2473
+ TaonController({
2474
+ className: 'TaonCmsContentStorageController',
2475
+ allowedMethods: ['exists', 'download', 'getMetadata', 'uploadFormDataToServer'],
2476
+ })
2477
+ ], TaonCmsContentStorageController);
1784
2478
 
1785
2479
  //#region imports
1786
2480
  //#endregion
1787
- const TaonCmsContentRevisionAbstractContext = createContext(() => ({
1788
- contextName: 'TaonCmsContentRevisionAbstractContext',
2481
+ const TaonCmsContentAbstractContext = createContext(() => ({
2482
+ contextName: 'TaonCmsContentAbstractContext',
1789
2483
  abstract: true,
1790
- contexts: { TaonBaseContext },
1791
- entities: { TaonCmsContentRevisionEntity },
1792
- controllers: { TaonCmsContentRevisionController },
1793
- repositories: { TaonCmsContentRevisionRepository },
1794
- providers: { TaonCmsContentRevisionProvider },
1795
- middlewares: { TaonCmsContentRevisionMiddleware },
1796
- subscribers: { TaonCmsContentRevisionSubscriber },
2484
+ contexts: {
2485
+ TaonBaseContext,
2486
+ TaonCmsCategoryAbstractContext,
2487
+ TaonCmsTagAbstractContext,
2488
+ TaonCmsContentTagAbstractContext,
2489
+ TaonCmsContentRevisionAbstractContext,
2490
+ },
2491
+ entities: { TaonCmsContentEntity },
2492
+ controllers: { TaonCmsContentController, TaonCmsContentStorageController },
2493
+ repositories: { TaonCmsContentRepository },
2494
+ providers: { TaonCmsContentProvider },
2495
+ middlewares: { TaonCmsContentMiddleware },
2496
+ subscribers: { TaonCmsContentSubscriber },
1797
2497
  }));
1798
2498
 
1799
2499
  //#endregion
1800
- let TaonCmsContentTagEntity = class TaonCmsContentTagEntity extends TaonBaseAbstractEntity {
2500
+ let TaonCmsContentAssetEntity = class TaonCmsContentAssetEntity extends TaonBaseEntity {
1801
2501
  };
1802
- TaonCmsContentTagEntity = __decorate([
2502
+ TaonCmsContentAssetEntity = __decorate([
1803
2503
  TaonEntity({
1804
- className: 'TaonCmsContentTagEntity',
2504
+ className: 'TaonCmsContentAssetEntity',
1805
2505
  createTable: true,
1806
2506
  })
1807
- ], TaonCmsContentTagEntity);
2507
+ ], TaonCmsContentAssetEntity);
1808
2508
 
1809
2509
  //#endregion
1810
- let TaonCmsContentTagRepository = class TaonCmsContentTagRepository extends TaonBaseRepository {
2510
+ let TaonCmsContentAssetRepository = class TaonCmsContentAssetRepository extends TaonBaseRepository {
1811
2511
  constructor() {
1812
2512
  super(...arguments);
1813
- this.entityClassResolveFn = () => TaonCmsContentTagEntity;
2513
+ this.entityClassResolveFn = () => TaonCmsContentAssetEntity;
1814
2514
  }
1815
2515
  /**
1816
2516
  * TODO remove this demo example method
@@ -1826,18 +2526,18 @@ let TaonCmsContentTagRepository = class TaonCmsContentTagRepository extends Taon
1826
2526
  return (void 0);
1827
2527
  }
1828
2528
  };
1829
- TaonCmsContentTagRepository = __decorate([
2529
+ TaonCmsContentAssetRepository = __decorate([
1830
2530
  TaonRepository({
1831
- className: 'TaonCmsContentTagRepository',
2531
+ className: 'TaonCmsContentAssetRepository',
1832
2532
  })
1833
- ], TaonCmsContentTagRepository);
2533
+ ], TaonCmsContentAssetRepository);
1834
2534
 
1835
2535
  //#endregion
1836
- let TaonCmsContentTagController = class TaonCmsContentTagController extends TaonBaseCrudController {
2536
+ let TaonCmsContentAssetController = class TaonCmsContentAssetController extends TaonBaseCrudController {
1837
2537
  constructor() {
1838
2538
  super(...arguments);
1839
- this.entityClassResolveFn = () => TaonCmsContentTagEntity;
1840
- this.taonCmsContentTagRepository = this.injectCustomRepo(TaonCmsContentTagRepository);
2539
+ this.entityClassResolveFn = () => TaonCmsContentAssetEntity;
2540
+ this.taonCmsContentAssetRepository = this.injectCustomRepo(TaonCmsContentAssetRepository);
1841
2541
  //#endregion
1842
2542
  }
1843
2543
  //#region methods & getters / hello world
@@ -1864,84 +2564,124 @@ __decorate([
1864
2564
  __metadata("design:type", Function),
1865
2565
  __metadata("design:paramtypes", [String]),
1866
2566
  __metadata("design:returntype", Object)
1867
- ], TaonCmsContentTagController.prototype, "helloWord", null);
1868
- TaonCmsContentTagController = __decorate([
2567
+ ], TaonCmsContentAssetController.prototype, "helloWord", null);
2568
+ TaonCmsContentAssetController = __decorate([
1869
2569
  TaonController({
1870
- className: 'TaonCmsContentTagController',
2570
+ className: 'TaonCmsContentAssetController',
1871
2571
  allowedMethods: []
1872
2572
  })
1873
- ], TaonCmsContentTagController);
2573
+ ], TaonCmsContentAssetController);
1874
2574
 
1875
2575
  //#endregion
1876
- let TaonCmsContentTagProvider = class TaonCmsContentTagProvider extends TaonBaseProvider {
1877
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsContentTagProvider, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
1878
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsContentTagProvider }); }
2576
+ let TaonCmsContentAssetProvider = class TaonCmsContentAssetProvider extends TaonBaseProvider {
2577
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsContentAssetProvider, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
2578
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsContentAssetProvider }); }
1879
2579
  };
1880
- TaonCmsContentTagProvider = __decorate([
2580
+ TaonCmsContentAssetProvider = __decorate([
1881
2581
  TaonProvider({
1882
- className: 'TaonCmsContentTagProvider',
2582
+ className: 'TaonCmsContentAssetProvider',
1883
2583
  })
1884
2584
  //#region @browser
1885
- ], TaonCmsContentTagProvider);
1886
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsContentTagProvider, decorators: [{
2585
+ ], TaonCmsContentAssetProvider);
2586
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsContentAssetProvider, decorators: [{
1887
2587
  type: Injectable
1888
2588
  }] });
1889
2589
 
1890
2590
  //#endregion
1891
- let TaonCmsContentTagMiddleware = class TaonCmsContentTagMiddleware extends TaonBaseMiddleware {
2591
+ let TaonCmsContentAssetMiddleware = class TaonCmsContentAssetMiddleware extends TaonBaseMiddleware {
1892
2592
  };
1893
- TaonCmsContentTagMiddleware = __decorate([
2593
+ TaonCmsContentAssetMiddleware = __decorate([
1894
2594
  TaonMiddleware({
1895
- className: 'TaonCmsContentTagMiddleware',
2595
+ className: 'TaonCmsContentAssetMiddleware',
1896
2596
  })
1897
- ], TaonCmsContentTagMiddleware);
2597
+ ], TaonCmsContentAssetMiddleware);
1898
2598
 
1899
2599
  //#endregion
1900
- let TaonCmsContentTagSubscriber = class TaonCmsContentTagSubscriber extends TaonBaseSubscriberForEntity {
2600
+ let TaonCmsContentAssetSubscriber = class TaonCmsContentAssetSubscriber extends TaonBaseSubscriberForEntity {
1901
2601
  constructor() {
1902
2602
  super(...arguments);
1903
- this.taonCmsContentTagProvider = this.injectProvider(TaonCmsContentTagProvider);
2603
+ this.taonCmsContentAssetProvider = this.injectProvider(TaonCmsContentAssetProvider);
1904
2604
  }
1905
2605
  listenTo() {
1906
- return TaonCmsContentTagEntity;
2606
+ return TaonCmsContentAssetEntity;
1907
2607
  }
1908
2608
  };
1909
- TaonCmsContentTagSubscriber = __decorate([
2609
+ TaonCmsContentAssetSubscriber = __decorate([
1910
2610
  TaonSubscriber({
1911
- className: 'TaonCmsContentTagSubscriber',
2611
+ className: 'TaonCmsContentAssetSubscriber',
1912
2612
  // allowedEvents: ['afterUpdate'],
1913
2613
  })
1914
- ], TaonCmsContentTagSubscriber);
2614
+ ], TaonCmsContentAssetSubscriber);
1915
2615
 
1916
2616
  //#region imports
1917
2617
  //#endregion
1918
- const TaonCmsContentTagAbstractContext = createContext(() => ({
1919
- contextName: 'TaonCmsContentTagAbstractContext',
2618
+ const TaonCmsContentAssetAbstractContext = createContext(() => ({
2619
+ contextName: 'TaonCmsContentAssetAbstractContext',
1920
2620
  abstract: true,
1921
2621
  contexts: { TaonBaseContext },
1922
- entities: { TaonCmsContentTagEntity },
1923
- controllers: { TaonCmsContentTagController },
1924
- repositories: { TaonCmsContentTagRepository },
1925
- providers: { TaonCmsContentTagProvider },
1926
- middlewares: { TaonCmsContentTagMiddleware },
1927
- subscribers: { TaonCmsContentTagSubscriber },
2622
+ entities: { TaonCmsContentAssetEntity },
2623
+ controllers: { TaonCmsContentAssetController },
2624
+ repositories: { TaonCmsContentAssetRepository },
2625
+ providers: { TaonCmsContentAssetProvider },
2626
+ middlewares: { TaonCmsContentAssetMiddleware },
2627
+ subscribers: { TaonCmsContentAssetSubscriber },
1928
2628
  }));
1929
2629
 
1930
2630
  //#endregion
1931
- let TaonCmsTagEntity = class TaonCmsTagEntity extends TaonBaseAbstractEntity {
2631
+ let TaonCmsContentPermissionEntity = class TaonCmsContentPermissionEntity extends TaonBaseEntity {
1932
2632
  };
1933
- TaonCmsTagEntity = __decorate([
2633
+ __decorate([
2634
+ PrimaryGeneratedColumn(),
2635
+ __metadata("design:type", Number)
2636
+ ], TaonCmsContentPermissionEntity.prototype, "id", void 0);
2637
+ __decorate([
2638
+ Column({ type: 'integer', default: 0 }),
2639
+ __metadata("design:type", Number)
2640
+ ], TaonCmsContentPermissionEntity.prototype, "version", void 0);
2641
+ __decorate([
2642
+ Column({ type: 'integer' }),
2643
+ __metadata("design:type", Number)
2644
+ ], TaonCmsContentPermissionEntity.prototype, "contentId", void 0);
2645
+ __decorate([
2646
+ Column({ type: 'varchar' }),
2647
+ __metadata("design:type", String)
2648
+ ], TaonCmsContentPermissionEntity.prototype, "type", void 0);
2649
+ __decorate([
2650
+ Column({ type: 'integer', nullable: true }),
2651
+ __metadata("design:type", Number)
2652
+ ], TaonCmsContentPermissionEntity.prototype, "permissionId", void 0);
2653
+ __decorate([
2654
+ Column({ type: 'integer', nullable: true }),
2655
+ __metadata("design:type", Number)
2656
+ ], TaonCmsContentPermissionEntity.prototype, "roleId", void 0);
2657
+ __decorate([
2658
+ Column({ type: 'integer', nullable: true }),
2659
+ __metadata("design:type", Number)
2660
+ ], TaonCmsContentPermissionEntity.prototype, "productId", void 0);
2661
+ __decorate([
2662
+ Column({ type: 'varchar', nullable: true }),
2663
+ __metadata("design:type", String)
2664
+ ], TaonCmsContentPermissionEntity.prototype, "stripePriceId", void 0);
2665
+ __decorate([
2666
+ Column({ type: 'simple-json', nullable: true }),
2667
+ __metadata("design:type", Object)
2668
+ ], TaonCmsContentPermissionEntity.prototype, "config", void 0);
2669
+ __decorate([
2670
+ Column({ type: 'datetime' }),
2671
+ __metadata("design:type", Date)
2672
+ ], TaonCmsContentPermissionEntity.prototype, "createdAt", void 0);
2673
+ TaonCmsContentPermissionEntity = __decorate([
1934
2674
  TaonEntity({
1935
- className: 'TaonCmsTagEntity',
2675
+ className: 'TaonCmsContentPermissionEntity',
1936
2676
  createTable: true,
1937
2677
  })
1938
- ], TaonCmsTagEntity);
2678
+ ], TaonCmsContentPermissionEntity);
1939
2679
 
1940
2680
  //#endregion
1941
- let TaonCmsTagRepository = class TaonCmsTagRepository extends TaonBaseRepository {
2681
+ let TaonCmsContentPermissionRepository = class TaonCmsContentPermissionRepository extends TaonBaseRepository {
1942
2682
  constructor() {
1943
2683
  super(...arguments);
1944
- this.entityClassResolveFn = () => TaonCmsTagEntity;
2684
+ this.entityClassResolveFn = () => TaonCmsContentPermissionEntity;
1945
2685
  }
1946
2686
  /**
1947
2687
  * TODO remove this demo example method
@@ -1957,18 +2697,18 @@ let TaonCmsTagRepository = class TaonCmsTagRepository extends TaonBaseRepository
1957
2697
  return (void 0);
1958
2698
  }
1959
2699
  };
1960
- TaonCmsTagRepository = __decorate([
2700
+ TaonCmsContentPermissionRepository = __decorate([
1961
2701
  TaonRepository({
1962
- className: 'TaonCmsTagRepository',
2702
+ className: 'TaonCmsContentPermissionRepository',
1963
2703
  })
1964
- ], TaonCmsTagRepository);
2704
+ ], TaonCmsContentPermissionRepository);
1965
2705
 
1966
2706
  //#endregion
1967
- let TaonCmsTagController = class TaonCmsTagController extends TaonBaseCrudController {
2707
+ let TaonCmsContentPermissionController = class TaonCmsContentPermissionController extends TaonBaseCrudController {
1968
2708
  constructor() {
1969
2709
  super(...arguments);
1970
- this.entityClassResolveFn = () => TaonCmsTagEntity;
1971
- this.taonCmsTagRepository = this.injectCustomRepo(TaonCmsTagRepository);
2710
+ this.entityClassResolveFn = () => TaonCmsContentPermissionEntity;
2711
+ this.taonCmsContentPermissionRepository = this.injectCustomRepo(TaonCmsContentPermissionRepository);
1972
2712
  //#endregion
1973
2713
  }
1974
2714
  //#region methods & getters / hello world
@@ -1995,67 +2735,67 @@ __decorate([
1995
2735
  __metadata("design:type", Function),
1996
2736
  __metadata("design:paramtypes", [String]),
1997
2737
  __metadata("design:returntype", Object)
1998
- ], TaonCmsTagController.prototype, "helloWord", null);
1999
- TaonCmsTagController = __decorate([
2738
+ ], TaonCmsContentPermissionController.prototype, "helloWord", null);
2739
+ TaonCmsContentPermissionController = __decorate([
2000
2740
  TaonController({
2001
- className: 'TaonCmsTagController',
2741
+ className: 'TaonCmsContentPermissionController',
2002
2742
  allowedMethods: []
2003
2743
  })
2004
- ], TaonCmsTagController);
2744
+ ], TaonCmsContentPermissionController);
2005
2745
 
2006
2746
  //#endregion
2007
- let TaonCmsTagProvider = class TaonCmsTagProvider extends TaonBaseProvider {
2008
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsTagProvider, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
2009
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsTagProvider }); }
2747
+ let TaonCmsContentPermissionProvider = class TaonCmsContentPermissionProvider extends TaonBaseProvider {
2748
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsContentPermissionProvider, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
2749
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsContentPermissionProvider }); }
2010
2750
  };
2011
- TaonCmsTagProvider = __decorate([
2751
+ TaonCmsContentPermissionProvider = __decorate([
2012
2752
  TaonProvider({
2013
- className: 'TaonCmsTagProvider',
2753
+ className: 'TaonCmsContentPermissionProvider',
2014
2754
  })
2015
2755
  //#region @browser
2016
- ], TaonCmsTagProvider);
2017
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsTagProvider, decorators: [{
2756
+ ], TaonCmsContentPermissionProvider);
2757
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsContentPermissionProvider, decorators: [{
2018
2758
  type: Injectable
2019
2759
  }] });
2020
2760
 
2021
2761
  //#endregion
2022
- let TaonCmsTagMiddleware = class TaonCmsTagMiddleware extends TaonBaseMiddleware {
2762
+ let TaonCmsContentPermissionMiddleware = class TaonCmsContentPermissionMiddleware extends TaonBaseMiddleware {
2023
2763
  };
2024
- TaonCmsTagMiddleware = __decorate([
2764
+ TaonCmsContentPermissionMiddleware = __decorate([
2025
2765
  TaonMiddleware({
2026
- className: 'TaonCmsTagMiddleware',
2766
+ className: 'TaonCmsContentPermissionMiddleware',
2027
2767
  })
2028
- ], TaonCmsTagMiddleware);
2768
+ ], TaonCmsContentPermissionMiddleware);
2029
2769
 
2030
2770
  //#endregion
2031
- let TaonCmsTagSubscriber = class TaonCmsTagSubscriber extends TaonBaseSubscriberForEntity {
2771
+ let TaonCmsContentPermissionSubscriber = class TaonCmsContentPermissionSubscriber extends TaonBaseSubscriberForEntity {
2032
2772
  constructor() {
2033
2773
  super(...arguments);
2034
- this.taonCmsTagProvider = this.injectProvider(TaonCmsTagProvider);
2774
+ this.taonCmsContentPermissionProvider = this.injectProvider(TaonCmsContentPermissionProvider);
2035
2775
  }
2036
2776
  listenTo() {
2037
- return TaonCmsTagEntity;
2777
+ return TaonCmsContentPermissionEntity;
2038
2778
  }
2039
2779
  };
2040
- TaonCmsTagSubscriber = __decorate([
2780
+ TaonCmsContentPermissionSubscriber = __decorate([
2041
2781
  TaonSubscriber({
2042
- className: 'TaonCmsTagSubscriber',
2782
+ className: 'TaonCmsContentPermissionSubscriber',
2043
2783
  // allowedEvents: ['afterUpdate'],
2044
2784
  })
2045
- ], TaonCmsTagSubscriber);
2785
+ ], TaonCmsContentPermissionSubscriber);
2046
2786
 
2047
2787
  //#region imports
2048
2788
  //#endregion
2049
- const TaonCmsTagAbstractContext = createContext(() => ({
2050
- contextName: 'TaonCmsTagAbstractContext',
2789
+ const TaonCmsContentPermissionAbstractContext = createContext(() => ({
2790
+ contextName: 'TaonCmsContentPermissionAbstractContext',
2051
2791
  abstract: true,
2052
2792
  contexts: { TaonBaseContext },
2053
- entities: { TaonCmsTagEntity },
2054
- controllers: { TaonCmsTagController },
2055
- repositories: { TaonCmsTagRepository },
2056
- providers: { TaonCmsTagProvider },
2057
- middlewares: { TaonCmsTagMiddleware },
2058
- subscribers: { TaonCmsTagSubscriber },
2793
+ entities: { TaonCmsContentPermissionEntity },
2794
+ controllers: { TaonCmsContentPermissionController },
2795
+ repositories: { TaonCmsContentPermissionRepository },
2796
+ providers: { TaonCmsContentPermissionProvider },
2797
+ middlewares: { TaonCmsContentPermissionMiddleware },
2798
+ subscribers: { TaonCmsContentPermissionSubscriber },
2059
2799
  }));
2060
2800
 
2061
2801
  // THIS FILE IS GENERATED - DO NOT MODIFY
@@ -2071,6 +2811,7 @@ const TaonCmsAbstractContext = createContext(() => ({
2071
2811
  TaonCmsContentRevisionAbstractContext,
2072
2812
  TaonCmsContentTagAbstractContext,
2073
2813
  TaonCmsTagAbstractContext,
2814
+ TaonSessionAbstractContext,
2074
2815
  },
2075
2816
  }));
2076
2817
  // THIS FILE IS GENERATED - DO NOT MODIFY
@@ -2078,15 +2819,71 @@ const TaonCmsAbstractContext = createContext(() => ({
2078
2819
  ;
2079
2820
  // THIS FILE IS GENERATED - DO NOT MODIFY
2080
2821
 
2822
+ class TaonCmsAssetsBackofficeComponent {
2823
+ constructor() {
2824
+ this.assets = [
2825
+ { id: 1, name: 'Sample image.jpg' },
2826
+ { id: 2, name: 'Sample document.pdf' },
2827
+ ];
2828
+ this.columns = [
2829
+ { header: 'ID', field: 'id', sortable: true },
2830
+ { header: 'Asset Name', field: 'name', sortable: true },
2831
+ ];
2832
+ }
2833
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsAssetsBackofficeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2834
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.9", type: TaonCmsAssetsBackofficeComponent, isStandalone: true, selector: "taon-cms-assets-backoffice", ngImport: i0, template: `
2835
+ <h1>CMS assets</h1>
2836
+ <mtx-grid [data]="assets" [columns]="columns"></mtx-grid>
2837
+ `, isInline: true, dependencies: [{ kind: "component", type: MtxGrid, selector: "mtx-grid", inputs: ["displayedColumns", "columns", "data", "length", "loading", "trackBy", "columnResizable", "emptyValuePlaceholder", "pageOnFront", "showPaginator", "pageDisabled", "showFirstLastButtons", "pageIndex", "pageSize", "pageSizeOptions", "hidePageSize", "paginationTemplate", "sortOnFront", "sortActive", "sortDirection", "sortDisableClear", "sortDisabled", "sortStart", "rowHover", "rowStriped", "expandable", "expansionTemplate", "multiSelectable", "multiSelectionWithClick", "rowSelectable", "hideRowSelectionCheckbox", "disableRowClickSelection", "rowSelectionFormatter", "rowClassFormatter", "rowSelected", "cellSelectable", "showToolbar", "toolbarTitle", "toolbarTemplate", "columnHideable", "columnHideableChecked", "columnSortable", "columnPinnable", "columnPinOptions", "showColumnMenuButton", "columnMenuButtonText", "columnMenuButtonType", "columnMenuButtonColor", "columnMenuButtonClass", "columnMenuButtonIcon", "columnMenuButtonFontIcon", "columnMenuButtonSvgIcon", "showColumnMenuHeader", "columnMenuHeaderText", "columnMenuHeaderTemplate", "showColumnMenuFooter", "columnMenuFooterText", "columnMenuFooterTemplate", "noResultText", "noResultTemplate", "headerTemplate", "headerExtraTemplate", "cellTemplate", "useContentRowTemplate", "useContentHeaderRowTemplate", "useContentFooterRowTemplate", "showSummary", "summaryTemplate", "showSidebar", "sidebarTemplate", "showStatusbar", "statusbarTemplate"], outputs: ["page", "sortChange", "rowClick", "rowContextMenu", "expansionChange", "rowSelectedChange", "cellSelectedChange", "columnChange"], exportAs: ["mtxGrid"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2838
+ }
2839
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsAssetsBackofficeComponent, decorators: [{
2840
+ type: Component,
2841
+ args: [{
2842
+ selector: 'taon-cms-assets-backoffice',
2843
+ changeDetection: ChangeDetectionStrategy.OnPush,
2844
+ imports: [MtxGrid],
2845
+ template: `
2846
+ <h1>CMS assets</h1>
2847
+ <mtx-grid [data]="assets" [columns]="columns"></mtx-grid>
2848
+ `,
2849
+ }]
2850
+ }] });
2851
+
2852
+ var taonCmsAssetsBackoffice_component = /*#__PURE__*/Object.freeze({
2853
+ __proto__: null,
2854
+ TaonCmsAssetsBackofficeComponent: TaonCmsAssetsBackofficeComponent
2855
+ });
2856
+
2857
+ const TaonCmsAssetsBackofficeRoutes = [
2858
+ {
2859
+ path: '',
2860
+ loadComponent: () => Promise.resolve().then(function () { return taonCmsAssetsBackoffice_component; }).then(m => m.TaonCmsAssetsBackofficeComponent),
2861
+ },
2862
+ ];
2863
+
2864
+ var taonCmsAssetsBackoffice_routes = /*#__PURE__*/Object.freeze({
2865
+ __proto__: null,
2866
+ TaonCmsAssetsBackofficeRoutes: TaonCmsAssetsBackofficeRoutes
2867
+ });
2868
+
2081
2869
  //#region imports
2082
2870
  //#endregion
2083
2871
  class TaonCmsBackofficeComponent {
2872
+ constructor() {
2873
+ this.componentLoaded = false;
2874
+ }
2875
+ onRouteActivate(component) {
2876
+ this.componentLoaded = !!component;
2877
+ }
2878
+ onRouteDeactivate(component) {
2879
+ this.componentLoaded = false;
2880
+ }
2084
2881
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsBackofficeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2085
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.9", type: TaonCmsBackofficeComponent, isStandalone: true, selector: "app-taon-cms-backoffice", ngImport: i0, template: "<router-outlet></router-outlet>\n<p>\n taon-cms-backoffice works!\n</p>", styles: [":host{display:block}\n"], dependencies: [{ kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name", "routerOutletData"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2882
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.9", type: TaonCmsBackofficeComponent, isStandalone: true, selector: "app-taon-cms-backoffice", ngImport: i0, template: "@if (!componentLoaded) {\n <code>\n In CMS you can manage content and settings for your website.\n </code>\n}\n\n<router-outlet\n (activate)=\"onRouteActivate($event)\"\n (deactivate)=\"onRouteDeactivate($event)\"></router-outlet>\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name", "routerOutletData"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2086
2883
  }
2087
2884
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsBackofficeComponent, decorators: [{
2088
2885
  type: Component,
2089
- args: [{ selector: 'app-taon-cms-backoffice', changeDetection: ChangeDetectionStrategy.OnPush, imports: [AsyncPipe, RouterOutlet], template: "<router-outlet></router-outlet>\n<p>\n taon-cms-backoffice works!\n</p>", styles: [":host{display:block}\n"] }]
2886
+ args: [{ selector: 'app-taon-cms-backoffice', changeDetection: ChangeDetectionStrategy.OnPush, imports: [AsyncPipe, RouterOutlet], template: "@if (!componentLoaded) {\n <code>\n In CMS you can manage content and settings for your website.\n </code>\n}\n\n<router-outlet\n (activate)=\"onRouteActivate($event)\"\n (deactivate)=\"onRouteDeactivate($event)\"></router-outlet>\n", styles: [":host{display:block}\n"] }]
2090
2887
  }] });
2091
2888
 
2092
2889
  var taonCmsBackoffice_component = /*#__PURE__*/Object.freeze({
@@ -2100,14 +2897,28 @@ const TaonCmsBackofficeRoutes = [
2100
2897
  path: '',
2101
2898
  loadComponent: () => Promise.resolve().then(function () { return taonCmsBackoffice_component; }).then(m => m.TaonCmsBackofficeComponent),
2102
2899
  children: [
2103
- // adminLazyRoute({
2104
- // path: 'dashboard',
2105
- // menuItem: 'Dashboard',
2106
- // icon: 'dashboard',
2107
- // expandable: false,
2108
- // loader: () =>
2109
- // import('./anothermodule.routes').then(m => m.DashboardRoutes),
2110
- // }),
2900
+ adminLazyRoute({
2901
+ path: 'posts',
2902
+ menuItem: 'Posts',
2903
+ expandable: true,
2904
+ icon: 'edit',
2905
+ loader: () => Promise.resolve().then(function () { return index$1; }).then(m => m.TaonCmsPostsBackofficeRoutes),
2906
+ }),
2907
+ adminLazyRoute({
2908
+ path: 'assets',
2909
+ menuItem: 'Assets',
2910
+ expandable: false,
2911
+ icon: 'perm_media',
2912
+ loader: () => Promise.resolve().then(function () { return taonCmsAssetsBackoffice_routes; }).then(m => m.TaonCmsAssetsBackofficeRoutes),
2913
+ }),
2914
+ // adminLazyRoute({
2915
+ // path: 'dashboard',
2916
+ // menuItem: 'Dashboard',
2917
+ // icon: 'dashboard',
2918
+ // expandable: false,
2919
+ // loader: () =>
2920
+ // import('./anothermodule.routes').then(m => m.DashboardRoutes),
2921
+ // }),
2111
2922
  ],
2112
2923
  },
2113
2924
  ];
@@ -2126,9 +2937,6 @@ class TaonCmsCategoryApiService extends TaonBaseAngularService {
2126
2937
  get allMyEntities$() {
2127
2938
  return this.taonCmsCategoryController.getAll().request().observable.pipe(map(res => res.body?.json));
2128
2939
  }
2129
- helloWorld(user) {
2130
- return this.taonCmsCategoryController.helloWord(user).request().observable.pipe(map(res => res.responseText));
2131
- }
2132
2940
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsCategoryApiService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
2133
2941
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsCategoryApiService }); }
2134
2942
  }
@@ -2194,17 +3002,63 @@ var TaonCmsCommentUtils;
2194
3002
  TaonCmsCommentUtils.isActive = isActive;
2195
3003
  })(TaonCmsCommentUtils || (TaonCmsCommentUtils = {}));
2196
3004
 
3005
+ //#region imports
3006
+ //#endregion
2197
3007
  class TaonCmsContentApiService extends TaonBaseAngularService {
2198
3008
  constructor() {
2199
3009
  super(...arguments);
2200
3010
  this.taonCmsContentController = this.injectController(TaonCmsContentController);
3011
+ this.taonCmsContentStorageController = this.injectController(TaonCmsContentStorageController);
3012
+ }
3013
+ async uploadMedia(file) {
3014
+ const formData = new FormData();
3015
+ formData.append('file', file);
3016
+ const response = await this.taonCmsContentStorageController
3017
+ .uploadFormDataToServer(formData)
3018
+ .request();
3019
+ const objects = response.body.json;
3020
+ if (objects.length !== 1 || !objects[0].key) {
3021
+ throw new Error('The upload did not return a media key.');
3022
+ }
3023
+ return objects[0];
3024
+ }
3025
+ createContent(input) {
3026
+ return this.taonCmsContentController.createContent(input)
3027
+ .request().observable.pipe(map(res => res.body.json));
3028
+ }
3029
+ updateContent(id, input) {
3030
+ return this.taonCmsContentController.updateContent(id, input)
3031
+ .request().observable.pipe(map(res => res.body.json));
3032
+ }
3033
+ deleteContent(id, expectedVersion) {
3034
+ return this.taonCmsContentController.deleteContent(id, expectedVersion)
3035
+ .request().observable.pipe(map(res => res.body.json));
3036
+ }
3037
+ restoreContent(id, input) {
3038
+ return this.taonCmsContentController.restoreContent(id, input)
3039
+ .request().observable.pipe(map(res => res.body.json));
3040
+ }
3041
+ listRevisions(id) {
3042
+ return this.taonCmsContentController.listRevisions(id)
3043
+ .request().observable.pipe(map(res => res.body.json));
3044
+ }
3045
+ listRelatedPosts(id) {
3046
+ return this.taonCmsContentController.listRelatedPosts(id)
3047
+ .request().observable.pipe(map(res => res.body.json));
3048
+ }
3049
+ listPermissions(id) {
3050
+ return this.taonCmsContentController.listPermissions(id)
3051
+ .request().observable.pipe(map(res => res.body.json));
3052
+ }
3053
+ addRelatedPost(id, relatedPostId, expectedVersion) {
3054
+ return this.taonCmsContentController.addRelatedPost(id, relatedPostId, expectedVersion).request().observable.pipe(map(res => res.body.json));
3055
+ }
3056
+ deleteRelatedPost(id, relatedPostId, expectedVersion) {
3057
+ return this.taonCmsContentController.deleteRelatedPost(id, relatedPostId, expectedVersion).request().observable.pipe(map(res => res.body.json));
2201
3058
  }
2202
3059
  get allMyEntities$() {
2203
3060
  return this.taonCmsContentController.getAll().request().observable.pipe(map(res => res.body?.json));
2204
3061
  }
2205
- helloWorld(user) {
2206
- return this.taonCmsContentController.helloWord(user).request().observable.pipe(map(res => res.responseText));
2207
- }
2208
3062
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsContentApiService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
2209
3063
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsContentApiService }); }
2210
3064
  }
@@ -2212,18 +3066,28 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImpor
2212
3066
  type: Injectable
2213
3067
  }] });
2214
3068
 
3069
+ class TaonCmsContentConfigService extends TaonBaseAngularService {
3070
+ constructor() {
3071
+ super(...arguments);
3072
+ this.taonCmsContentProvider = this.injectProvider(TaonCmsContentProvider);
3073
+ }
3074
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsContentConfigService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
3075
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsContentConfigService }); }
3076
+ }
3077
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsContentConfigService, decorators: [{
3078
+ type: Injectable
3079
+ }] });
3080
+
2215
3081
  const TaonCmsContentDefaultsValues = {
2216
3082
  description: '',
2217
3083
  version: 0,
2218
3084
  id: void 0,
3085
+ type: TaonCmsContentType.Normal,
3086
+ videoKey: null,
3087
+ audioKey: null,
3088
+ attachmentKey: null,
2219
3089
  };
2220
3090
 
2221
- var TaonCmsContentState;
2222
- (function (TaonCmsContentState) {
2223
- TaonCmsContentState["Active"] = "active";
2224
- TaonCmsContentState["Inactive"] = "inactive";
2225
- })(TaonCmsContentState || (TaonCmsContentState = {}));
2226
-
2227
3091
  var TaonCmsContentUtils;
2228
3092
  (function (TaonCmsContentUtils) {
2229
3093
  function isActive(state) {
@@ -2311,13 +3175,20 @@ var TaonCmsContentPermissionUtils;
2311
3175
  class TaonCmsContentRevisionApiService extends TaonBaseAngularService {
2312
3176
  constructor() {
2313
3177
  super(...arguments);
3178
+ this.contentController = this.injectController(TaonCmsContentController);
2314
3179
  this.taonCmsContentRevisionController = this.injectController(TaonCmsContentRevisionController);
2315
3180
  }
2316
- get allMyEntities$() {
2317
- return this.taonCmsContentRevisionController.getAll().request().observable.pipe(map(res => res.body?.json));
3181
+ listRevisions(id) {
3182
+ return this.contentController.listRevisions(id)
3183
+ .request().observable.pipe(map(res => res.body.json));
2318
3184
  }
2319
- helloWorld(user) {
2320
- return this.taonCmsContentRevisionController.helloWord(user).request().observable.pipe(map(res => res.responseText));
3185
+ restoreContent(id, input) {
3186
+ return this.contentController.restoreContent(id, input)
3187
+ .request().observable.pipe(map(res => res.body.json));
3188
+ }
3189
+ get allMyEntities$() {
3190
+ return this.taonCmsContentRevisionController.getAll()
3191
+ .request().observable.pipe(map(res => res.body?.json));
2321
3192
  }
2322
3193
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsContentRevisionApiService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
2323
3194
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsContentRevisionApiService }); }
@@ -2354,9 +3225,6 @@ class TaonCmsContentTagApiService extends TaonBaseAngularService {
2354
3225
  get allMyEntities$() {
2355
3226
  return this.taonCmsContentTagController.getAll().request().observable.pipe(map(res => res.body?.json));
2356
3227
  }
2357
- helloWorld(user) {
2358
- return this.taonCmsContentTagController.helloWord(user).request().observable.pipe(map(res => res.responseText));
2359
- }
2360
3228
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsContentTagApiService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
2361
3229
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsContentTagApiService }); }
2362
3230
  }
@@ -2422,6 +3290,1017 @@ var TaonCmsTagUtils;
2422
3290
  TaonCmsTagUtils.isActive = isActive;
2423
3291
  })(TaonCmsTagUtils || (TaonCmsTagUtils = {}));
2424
3292
 
3293
+ class TaonCmsEditableDirective {
3294
+ constructor() {
3295
+ this.element = inject(ElementRef)
3296
+ .nativeElement;
3297
+ this.sanitizer = inject(DomSanitizer);
3298
+ this.value = '';
3299
+ this.composing = false;
3300
+ this.taonCmsEditableFormat = 'text';
3301
+ this.taonCmsEditableSingleLine = false;
3302
+ this.taonCmsEditableChange = new EventEmitter();
3303
+ }
3304
+ set taonCmsEditable(value) {
3305
+ if (value === this.value) {
3306
+ return;
3307
+ }
3308
+ this.value = value;
3309
+ this.render();
3310
+ }
3311
+ compositionStart() {
3312
+ this.composing = true;
3313
+ }
3314
+ compositionEnd() {
3315
+ this.composing = false;
3316
+ this.onInput();
3317
+ }
3318
+ onInput() {
3319
+ if (this.composing) {
3320
+ return;
3321
+ }
3322
+ const text = this.element.innerText;
3323
+ this.value =
3324
+ this.taonCmsEditableFormat === 'html'
3325
+ ? this.sanitize(this.element.innerHTML)
3326
+ : this.taonCmsEditableSingleLine
3327
+ ? text.replace(/\s*\n\s*/g, ' ')
3328
+ : text;
3329
+ // Remember emitted values so Angular does not rewrite the DOM/caret on input.
3330
+ this.taonCmsEditableChange.emit(this.value);
3331
+ }
3332
+ onBlur() {
3333
+ this.onInput();
3334
+ this.render();
3335
+ }
3336
+ onKeydown(event) {
3337
+ if (this.taonCmsEditableSingleLine && event.key === 'Enter') {
3338
+ event.preventDefault();
3339
+ }
3340
+ }
3341
+ onPaste(event) {
3342
+ event.preventDefault();
3343
+ const selection = this.element.ownerDocument.getSelection();
3344
+ if (!selection?.rangeCount || !event.clipboardData) {
3345
+ return;
3346
+ }
3347
+ const range = selection.getRangeAt(0);
3348
+ if (!this.element.contains(range.commonAncestorContainer)) {
3349
+ return;
3350
+ }
3351
+ const pasted = event.clipboardData.getData('text/plain');
3352
+ const text = this.taonCmsEditableSingleLine
3353
+ ? pasted.replace(/\s*\n\s*/g, ' ')
3354
+ : pasted;
3355
+ range.deleteContents();
3356
+ const node = this.element.ownerDocument.createTextNode(text);
3357
+ range.insertNode(node);
3358
+ range.setStartAfter(node);
3359
+ range.collapse(true);
3360
+ selection.removeAllRanges();
3361
+ selection.addRange(range);
3362
+ this.onInput();
3363
+ }
3364
+ sanitize(value) {
3365
+ return this.sanitizer.sanitize(SecurityContext.HTML, value) ?? '';
3366
+ }
3367
+ render() {
3368
+ if (this.taonCmsEditableFormat === 'html') {
3369
+ this.element.innerHTML = this.sanitize(this.value);
3370
+ }
3371
+ else {
3372
+ this.element.textContent = this.value;
3373
+ }
3374
+ }
3375
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsEditableDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
3376
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.9", type: TaonCmsEditableDirective, isStandalone: true, selector: "[taonCmsEditable]", inputs: { taonCmsEditableFormat: "taonCmsEditableFormat", taonCmsEditableSingleLine: "taonCmsEditableSingleLine", taonCmsEditable: "taonCmsEditable" }, outputs: { taonCmsEditableChange: "taonCmsEditableChange" }, host: { listeners: { "compositionstart": "compositionStart()", "compositionend": "compositionEnd()", "input": "onInput()", "blur": "onBlur()", "keydown": "onKeydown($event)", "paste": "onPaste($event)" } }, ngImport: i0 }); }
3377
+ }
3378
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsEditableDirective, decorators: [{
3379
+ type: Directive,
3380
+ args: [{
3381
+ selector: '[taonCmsEditable]',
3382
+ }]
3383
+ }], propDecorators: { taonCmsEditableFormat: [{
3384
+ type: Input
3385
+ }], taonCmsEditableSingleLine: [{
3386
+ type: Input
3387
+ }], taonCmsEditableChange: [{
3388
+ type: Output
3389
+ }], taonCmsEditable: [{
3390
+ type: Input
3391
+ }], compositionStart: [{
3392
+ type: HostListener,
3393
+ args: ['compositionstart']
3394
+ }], compositionEnd: [{
3395
+ type: HostListener,
3396
+ args: ['compositionend']
3397
+ }], onInput: [{
3398
+ type: HostListener,
3399
+ args: ['input']
3400
+ }], onBlur: [{
3401
+ type: HostListener,
3402
+ args: ['blur']
3403
+ }], onKeydown: [{
3404
+ type: HostListener,
3405
+ args: ['keydown', ['$event']]
3406
+ }], onPaste: [{
3407
+ type: HostListener,
3408
+ args: ['paste', ['$event']]
3409
+ }] } });
3410
+
3411
+ class TaonCmsRevisionChooserComponent {
3412
+ constructor() {
3413
+ this.post = inject(MAT_DIALOG_DATA);
3414
+ this.revisions = signal([], ...(ngDevMode ? [{ debugName: "revisions" }] : []));
3415
+ this.selected = signal(null, ...(ngDevMode ? [{ debugName: "selected" }] : []));
3416
+ this.loading = signal(false, ...(ngDevMode ? [{ debugName: "loading" }] : []));
3417
+ this.applying = signal(false, ...(ngDevMode ? [{ debugName: "applying" }] : []));
3418
+ this.error = signal('', ...(ngDevMode ? [{ debugName: "error" }] : []));
3419
+ this.api = inject(TaonCmsContentRevisionApiService);
3420
+ this.ref = inject((MatDialogRef));
3421
+ this.destroyRef = inject(DestroyRef);
3422
+ this.load();
3423
+ }
3424
+ load() {
3425
+ if (this.loading() || this.applying()) {
3426
+ return;
3427
+ }
3428
+ this.selected.set(null);
3429
+ this.loading.set(true);
3430
+ this.error.set('');
3431
+ this.api.listRevisions(this.post.id).pipe(takeUntilDestroyed(this.destroyRef), finalize(() => this.loading.set(false))).subscribe({
3432
+ next: revisions => this.revisions.set([...revisions].sort((a, b) => b.revisionNumber - a.revisionNumber)),
3433
+ error: (error) => {
3434
+ console.error('[taon-cms-revision-chooser] Unable to load revisions', error);
3435
+ this.error.set('Revisions could not be loaded. Please try again.');
3436
+ },
3437
+ });
3438
+ }
3439
+ apply() {
3440
+ const revisionNumber = this.selected();
3441
+ if (this.loading() || this.applying()) {
3442
+ return;
3443
+ }
3444
+ if (revisionNumber === null) {
3445
+ this.error.set('Select a revision to restore.');
3446
+ return;
3447
+ }
3448
+ this.applying.set(true);
3449
+ this.error.set('');
3450
+ this.api.restoreContent(this.post.id, {
3451
+ revisionNumber,
3452
+ expectedVersion: this.post.version,
3453
+ }).pipe(takeUntilDestroyed(this.destroyRef), finalize(() => this.applying.set(false))).subscribe({
3454
+ next: post => this.ref.close(post),
3455
+ error: (error) => {
3456
+ console.error('[taon-cms-revision-chooser] Unable to restore revision', error);
3457
+ this.error.set('The revision could not be restored. If the post changed, close and ' +
3458
+ 'reopen it to load its latest version.');
3459
+ },
3460
+ });
3461
+ }
3462
+ cancel() {
3463
+ if (!this.applying()) {
3464
+ this.ref.close();
3465
+ }
3466
+ }
3467
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsRevisionChooserComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3468
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.9", type: TaonCmsRevisionChooserComponent, isStandalone: true, selector: "taon-cms-revision-chooser", providers: [TaonCmsContentRevisionApiService], ngImport: i0, template: "<h2 mat-dialog-title>Restore a revision</h2>\n<mat-dialog-content>\n <p>Restoring replaces the post, including its status, with the selected revision.</p>\n @if (loading()) {\n <p role=\"status\">Loading revisions...</p>\n } @else {\n <mat-radio-group aria-label=\"Post revisions\" [value]=\"selected()\" (change)=\"selected.set($event.value)\" [disabled]=\"applying()\">\n @for (revision of revisions(); track revision.id) {\n <mat-radio-button [value]=\"revision.revisionNumber\" [disabled]=\"!revision.snapshot\">\n <strong>Revision {{ revision.revisionNumber }}</strong>\n <span>{{ revision.createdAt | date: 'medium' }}</span>\n @if (revision.createdByUserId !== null && revision.createdByUserId !== undefined) {\n <span>User {{ revision.createdByUserId }}</span>\n }\n @if (!revision.snapshot) {\n <span>Legacy revision - cannot be restored</span>\n }\n </mat-radio-button>\n } @empty {\n <p>No revisions are available.</p>\n }\n </mat-radio-group>\n }\n @if (error()) {\n <p role=\"alert\">{{ error() }}</p>\n <button mat-button type=\"button\" [disabled]=\"loading() || applying()\" (click)=\"load()\">Reload revisions</button>\n }\n @if (applying()) {\n <p role=\"status\">Restoring...</p>\n }\n</mat-dialog-content>\n<mat-dialog-actions align=\"end\">\n <button mat-button type=\"button\" [disabled]=\"applying()\" (click)=\"cancel()\">Cancel</button>\n <button mat-flat-button type=\"button\" [disabled]=\"loading() || applying() || selected() === null\" (click)=\"apply()\">Apply</button>\n</mat-dialog-actions>\n", styles: ["mat-radio-group{display:flex;flex-direction:column;gap:1rem}mat-radio-button span{display:block;font-size:.875rem;opacity:.7}[role=alert]{color:#b3261e}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type: i2.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i2.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i2.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "ngmodule", type: MatRadioModule }, { kind: "directive", type: i3.MatRadioGroup, selector: "mat-radio-group", inputs: ["color", "name", "labelPosition", "value", "selected", "disabled", "required", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioGroup"] }, { kind: "component", type: i3.MatRadioButton, selector: "mat-radio-button", inputs: ["id", "name", "aria-label", "aria-labelledby", "aria-describedby", "disableRipple", "tabIndex", "checked", "value", "labelPosition", "disabled", "required", "color", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioButton"] }, { kind: "pipe", type: DatePipe, name: "date" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3469
+ }
3470
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsRevisionChooserComponent, decorators: [{
3471
+ type: Component,
3472
+ args: [{ selector: 'taon-cms-revision-chooser', changeDetection: ChangeDetectionStrategy.OnPush, imports: [DatePipe, MatButtonModule, MatDialogModule, MatRadioModule], providers: [TaonCmsContentRevisionApiService], template: "<h2 mat-dialog-title>Restore a revision</h2>\n<mat-dialog-content>\n <p>Restoring replaces the post, including its status, with the selected revision.</p>\n @if (loading()) {\n <p role=\"status\">Loading revisions...</p>\n } @else {\n <mat-radio-group aria-label=\"Post revisions\" [value]=\"selected()\" (change)=\"selected.set($event.value)\" [disabled]=\"applying()\">\n @for (revision of revisions(); track revision.id) {\n <mat-radio-button [value]=\"revision.revisionNumber\" [disabled]=\"!revision.snapshot\">\n <strong>Revision {{ revision.revisionNumber }}</strong>\n <span>{{ revision.createdAt | date: 'medium' }}</span>\n @if (revision.createdByUserId !== null && revision.createdByUserId !== undefined) {\n <span>User {{ revision.createdByUserId }}</span>\n }\n @if (!revision.snapshot) {\n <span>Legacy revision - cannot be restored</span>\n }\n </mat-radio-button>\n } @empty {\n <p>No revisions are available.</p>\n }\n </mat-radio-group>\n }\n @if (error()) {\n <p role=\"alert\">{{ error() }}</p>\n <button mat-button type=\"button\" [disabled]=\"loading() || applying()\" (click)=\"load()\">Reload revisions</button>\n }\n @if (applying()) {\n <p role=\"status\">Restoring...</p>\n }\n</mat-dialog-content>\n<mat-dialog-actions align=\"end\">\n <button mat-button type=\"button\" [disabled]=\"applying()\" (click)=\"cancel()\">Cancel</button>\n <button mat-flat-button type=\"button\" [disabled]=\"loading() || applying() || selected() === null\" (click)=\"apply()\">Apply</button>\n</mat-dialog-actions>\n", styles: ["mat-radio-group{display:flex;flex-direction:column;gap:1rem}mat-radio-button span{display:block;font-size:.875rem;opacity:.7}[role=alert]{color:#b3261e}\n"] }]
3473
+ }], ctorParameters: () => [] });
3474
+
3475
+ class TaonRelatedPostChooserComponent {
3476
+ constructor() {
3477
+ this.data = inject(MAT_DIALOG_DATA);
3478
+ this.posts = signal([], ...(ngDevMode ? [{ debugName: "posts" }] : []));
3479
+ this.selected = signal(null, ...(ngDevMode ? [{ debugName: "selected" }] : []));
3480
+ this.query = signal('', ...(ngDevMode ? [{ debugName: "query" }] : []));
3481
+ this.loading = signal(false, ...(ngDevMode ? [{ debugName: "loading" }] : []));
3482
+ this.error = signal('', ...(ngDevMode ? [{ debugName: "error" }] : []));
3483
+ this.filteredPosts = computed(() => {
3484
+ const query = this.query().trim().toLowerCase();
3485
+ return this.posts().filter(post => post.id !== this.data.postId &&
3486
+ !this.data.excludedIds.includes(post.id) &&
3487
+ `${post.id} ${post.title} ${post.slug}`.toLowerCase().includes(query));
3488
+ }, ...(ngDevMode ? [{ debugName: "filteredPosts" }] : []));
3489
+ this.api = inject(TaonCmsContentApiService);
3490
+ this.ref = inject((MatDialogRef));
3491
+ this.destroyRef = inject(DestroyRef);
3492
+ this.load();
3493
+ }
3494
+ load() {
3495
+ if (this.loading()) {
3496
+ return;
3497
+ }
3498
+ this.loading.set(true);
3499
+ this.selected.set(null);
3500
+ this.error.set('');
3501
+ this.api.allMyEntities$
3502
+ .pipe(takeUntilDestroyed(this.destroyRef), finalize(() => this.loading.set(false)))
3503
+ .subscribe({
3504
+ next: posts => this.posts.set(posts),
3505
+ error: (error) => {
3506
+ console.error('[taon-related-post-chooser] Unable to load posts', error);
3507
+ this.error.set('Posts could not be loaded. Please try again.');
3508
+ },
3509
+ });
3510
+ }
3511
+ search(event) {
3512
+ if (event.target instanceof HTMLInputElement) {
3513
+ this.query.set(event.target.value);
3514
+ this.selected.set(null);
3515
+ }
3516
+ }
3517
+ choose() {
3518
+ if (this.loading() || this.error()) {
3519
+ return;
3520
+ }
3521
+ const post = this.filteredPosts().find(post => post.id === this.selected());
3522
+ if (!post) {
3523
+ this.error.set('Select a related post.');
3524
+ return;
3525
+ }
3526
+ this.ref.close(post);
3527
+ }
3528
+ cancel() {
3529
+ this.ref.close();
3530
+ }
3531
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonRelatedPostChooserComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3532
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.9", type: TaonRelatedPostChooserComponent, isStandalone: true, selector: "taon-related-post-chooser", providers: [TaonCmsContentApiService], ngImport: i0, template: "<h2 mat-dialog-title>Add related post</h2>\n<mat-dialog-content>\n <label class=\"search-field\">\n <span>Search posts</span>\n <input type=\"search\" aria-label=\"Search posts by ID, title or slug\" [value]=\"query()\" [disabled]=\"loading()\" (input)=\"search($event)\" />\n </label>\n @if (loading()) {\n <p role=\"status\">Loading posts...</p>\n } @else if (error()) {\n <p class=\"error\" role=\"alert\">{{ error() }}</p>\n <button mat-button type=\"button\" (click)=\"load()\">Try again</button>\n } @else {\n <mat-radio-group aria-label=\"Related post\" [value]=\"selected()\" (change)=\"selected.set($event.value)\">\n @for (post of filteredPosts(); track post.id) {\n <mat-radio-button [value]=\"post.id\">\n #{{ post.id }} - {{ post.title }} <span class=\"slug\">{{ post.slug }}</span>\n </mat-radio-button>\n } @empty {\n <p>No matching posts available.</p>\n }\n </mat-radio-group>\n }\n</mat-dialog-content>\n<mat-dialog-actions align=\"end\">\n <button mat-button type=\"button\" (click)=\"cancel()\">Cancel</button>\n <button mat-flat-button type=\"button\" [disabled]=\"loading() || !!error() || selected() === null\" (click)=\"choose()\">Add related post</button>\n</mat-dialog-actions>\n", styles: [".search-field,mat-radio-group{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1rem}.search-field input{padding:.5rem;color:inherit;background:transparent;border:1px solid rgba(136,136,136,.3333333333);border-radius:4px}.slug{display:block;opacity:.7;overflow-wrap:anywhere}.error{color:#b3261e}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type: i2.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i2.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i2.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "ngmodule", type: MatRadioModule }, { kind: "directive", type: i3.MatRadioGroup, selector: "mat-radio-group", inputs: ["color", "name", "labelPosition", "value", "selected", "disabled", "required", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioGroup"] }, { kind: "component", type: i3.MatRadioButton, selector: "mat-radio-button", inputs: ["id", "name", "aria-label", "aria-labelledby", "aria-describedby", "disableRipple", "tabIndex", "checked", "value", "labelPosition", "disabled", "required", "color", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioButton"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3533
+ }
3534
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonRelatedPostChooserComponent, decorators: [{
3535
+ type: Component,
3536
+ args: [{ selector: 'taon-related-post-chooser', changeDetection: ChangeDetectionStrategy.OnPush, imports: [MatButtonModule, MatDialogModule, MatRadioModule], providers: [TaonCmsContentApiService], template: "<h2 mat-dialog-title>Add related post</h2>\n<mat-dialog-content>\n <label class=\"search-field\">\n <span>Search posts</span>\n <input type=\"search\" aria-label=\"Search posts by ID, title or slug\" [value]=\"query()\" [disabled]=\"loading()\" (input)=\"search($event)\" />\n </label>\n @if (loading()) {\n <p role=\"status\">Loading posts...</p>\n } @else if (error()) {\n <p class=\"error\" role=\"alert\">{{ error() }}</p>\n <button mat-button type=\"button\" (click)=\"load()\">Try again</button>\n } @else {\n <mat-radio-group aria-label=\"Related post\" [value]=\"selected()\" (change)=\"selected.set($event.value)\">\n @for (post of filteredPosts(); track post.id) {\n <mat-radio-button [value]=\"post.id\">\n #{{ post.id }} - {{ post.title }} <span class=\"slug\">{{ post.slug }}</span>\n </mat-radio-button>\n } @empty {\n <p>No matching posts available.</p>\n }\n </mat-radio-group>\n }\n</mat-dialog-content>\n<mat-dialog-actions align=\"end\">\n <button mat-button type=\"button\" (click)=\"cancel()\">Cancel</button>\n <button mat-flat-button type=\"button\" [disabled]=\"loading() || !!error() || selected() === null\" (click)=\"choose()\">Add related post</button>\n</mat-dialog-actions>\n", styles: [".search-field,mat-radio-group{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1rem}.search-field input{padding:.5rem;color:inherit;background:transparent;border:1px solid rgba(136,136,136,.3333333333);border-radius:4px}.slug{display:block;opacity:.7;overflow-wrap:anywhere}.error{color:#b3261e}\n"] }]
3537
+ }], ctorParameters: () => [] });
3538
+
3539
+ //#region imports
3540
+ //#endregion
3541
+ class TaonCmsPostComponent {
3542
+ //#endregion
3543
+ //#region constructor
3544
+ constructor() {
3545
+ //#region fields and getters
3546
+ this.post = input(null, ...(ngDevMode ? [{ debugName: "post" }] : []));
3547
+ this.mode = model('view', ...(ngDevMode ? [{ debugName: "mode" }] : []));
3548
+ this.changed = output();
3549
+ this.deleted = output();
3550
+ this.cancelled = output();
3551
+ this.currentPost = signal(null, ...(ngDevMode ? [{ debugName: "currentPost" }] : []));
3552
+ this.draft = signal({
3553
+ type: TaonCmsContentType.Normal,
3554
+ title: '',
3555
+ slug: '',
3556
+ excerpt: '',
3557
+ body: '',
3558
+ videoKey: null,
3559
+ audioKey: null,
3560
+ attachmentKey: null,
3561
+ }, ...(ngDevMode ? [{ debugName: "draft" }] : []));
3562
+ this.postTypes = [
3563
+ { value: TaonCmsContentType.Normal, label: 'Normal post' },
3564
+ { value: TaonCmsContentType.Video, label: 'Video post' },
3565
+ { value: TaonCmsContentType.Audio, label: 'Audio post' },
3566
+ { value: TaonCmsContentType.Attachment, label: 'Attachment post' },
3567
+ ];
3568
+ this.mediaAttachments = [
3569
+ {
3570
+ type: TaonCmsContentType.Video,
3571
+ key: 'videoKey',
3572
+ heading: 'Video Attachment',
3573
+ uploadLabel: 'Upload video',
3574
+ accept: 'video/*',
3575
+ },
3576
+ {
3577
+ type: TaonCmsContentType.Audio,
3578
+ key: 'audioKey',
3579
+ heading: 'Audio Attachment',
3580
+ uploadLabel: 'Upload audio',
3581
+ accept: 'audio/*',
3582
+ },
3583
+ {
3584
+ type: TaonCmsContentType.Attachment,
3585
+ key: 'attachmentKey',
3586
+ heading: 'File Attachment',
3587
+ uploadLabel: 'Upload file',
3588
+ accept: '',
3589
+ },
3590
+ ];
3591
+ this.mediaAttachment = computed(() => this.mediaAttachments.find(media => media.type === this.draft().type), ...(ngDevMode ? [{ debugName: "mediaAttachment" }] : []));
3592
+ this.busy = signal(false, ...(ngDevMode ? [{ debugName: "busy" }] : []));
3593
+ this.uploading = signal(false, ...(ngDevMode ? [{ debugName: "uploading" }] : []));
3594
+ this.dialogOpen = signal(false, ...(ngDevMode ? [{ debugName: "dialogOpen" }] : []));
3595
+ this.error = signal('', ...(ngDevMode ? [{ debugName: "error" }] : []));
3596
+ this.relatedPosts = signal([], ...(ngDevMode ? [{ debugName: "relatedPosts" }] : []));
3597
+ this.relatedPostsLoading = signal(false, ...(ngDevMode ? [{ debugName: "relatedPostsLoading" }] : []));
3598
+ this.relatedPostsError = signal('', ...(ngDevMode ? [{ debugName: "relatedPostsError" }] : []));
3599
+ this.permissions = signal([], ...(ngDevMode ? [{ debugName: "permissions" }] : []));
3600
+ this.permissionsLoading = signal(false, ...(ngDevMode ? [{ debugName: "permissionsLoading" }] : []));
3601
+ this.permissionsError = signal('', ...(ngDevMode ? [{ debugName: "permissionsError" }] : []));
3602
+ this.permissionOptions = signal([], ...(ngDevMode ? [{ debugName: "permissionOptions" }] : []));
3603
+ this.permissionOptionsLoading = signal(false, ...(ngDevMode ? [{ debugName: "permissionOptionsLoading" }] : []));
3604
+ this.permissionOptionsError = signal('', ...(ngDevMode ? [{ debugName: "permissionOptionsError" }] : []));
3605
+ this.selectedPermissionId = signal(null, ...(ngDevMode ? [{ debugName: "selectedPermissionId" }] : []));
3606
+ this.availablePermissions = computed(() => {
3607
+ const assignedIds = new Set(this.permissions().map(permission => permission.id));
3608
+ return this.permissionOptions().filter(permission => !assignedIds.has(permission.id));
3609
+ }, ...(ngDevMode ? [{ debugName: "availablePermissions" }] : []));
3610
+ this.editing = computed(() => this.mode() === 'edit' || this.mode() === 'add', ...(ngDevMode ? [{ debugName: "editing" }] : []));
3611
+ this.canSave = computed(() => !!this.draft().title.trim() &&
3612
+ !!this.draft().slug.trim() &&
3613
+ !this.relatedPostsLoading() &&
3614
+ !this.relatedPostsError() &&
3615
+ !this.permissionsLoading() &&
3616
+ !this.permissionsError(), ...(ngDevMode ? [{ debugName: "canSave" }] : []));
3617
+ this.canPublish = computed(() => {
3618
+ const post = this.currentPost();
3619
+ return !!post && post.status !== 'published';
3620
+ }, ...(ngDevMode ? [{ debugName: "canPublish" }] : []));
3621
+ this.api = inject(TaonCmsContentApiService);
3622
+ this.permissionApi = inject(TaonPermissionApiService);
3623
+ this.dialog = inject(MatDialog);
3624
+ this.destroyRef = inject(DestroyRef);
3625
+ effect(() => {
3626
+ const post = this.post();
3627
+ untracked(() => this.setPost(post));
3628
+ });
3629
+ effect(() => {
3630
+ if (this.editing()) {
3631
+ untracked(() => this.loadPermissionOptions());
3632
+ }
3633
+ });
3634
+ }
3635
+ //#endregion
3636
+ //#region methods / load related posts
3637
+ loadRelatedPosts() {
3638
+ if (this.busy() || this.relatedPostsLoading()) {
3639
+ return;
3640
+ }
3641
+ const post = this.requirePost();
3642
+ if (!post) {
3643
+ return;
3644
+ }
3645
+ this.relatedPostsLoading.set(true);
3646
+ this.relatedPostsError.set('');
3647
+ this.relatedPostsLoad = this.api
3648
+ .listRelatedPosts(post.id)
3649
+ .pipe(takeUntilDestroyed(this.destroyRef), finalize(() => this.relatedPostsLoading.set(false)))
3650
+ .subscribe({
3651
+ next: posts => this.relatedPosts.set(posts),
3652
+ error: (error) => {
3653
+ console.error('[taon-cms-post] Unable to load related posts', error);
3654
+ this.relatedPostsError.set('Related posts could not be loaded. Please try again.');
3655
+ },
3656
+ });
3657
+ }
3658
+ //#endregion
3659
+ //#region methods / add related post
3660
+ addRelatedPost() {
3661
+ if (!this.editing() ||
3662
+ this.busy() ||
3663
+ this.dialogOpen() ||
3664
+ this.relatedPostsLoading() ||
3665
+ this.relatedPostsError()) {
3666
+ return;
3667
+ }
3668
+ this.dialogOpen.set(true);
3669
+ const ref = this.dialog.open(TaonRelatedPostChooserComponent, {
3670
+ data: {
3671
+ postId: this.currentPost()?.id,
3672
+ excludedIds: this.relatedPosts().map(post => post.id),
3673
+ },
3674
+ width: '560px',
3675
+ maxWidth: '95vw',
3676
+ disableClose: true,
3677
+ });
3678
+ ref
3679
+ .afterClosed()
3680
+ .pipe(takeUntilDestroyed(this.destroyRef))
3681
+ .subscribe(post => {
3682
+ this.dialogOpen.set(false);
3683
+ if (post &&
3684
+ post.id !== this.currentPost()?.id &&
3685
+ !this.relatedPosts().some(related => related.id === post.id)) {
3686
+ this.relatedPosts.update(posts => [...posts, post]);
3687
+ }
3688
+ });
3689
+ }
3690
+ //#endregion
3691
+ //#region methods / remove related post
3692
+ removeRelatedPost(id) {
3693
+ if (!this.editing() ||
3694
+ this.busy() ||
3695
+ this.dialogOpen() ||
3696
+ this.relatedPostsLoading() ||
3697
+ this.relatedPostsError()) {
3698
+ return;
3699
+ }
3700
+ this.relatedPosts.update(posts => posts.filter(post => post.id !== id));
3701
+ }
3702
+ //#endregion
3703
+ //#region methods / load permissions
3704
+ loadPermissions() {
3705
+ if (this.busy() || this.permissionsLoading()) {
3706
+ return;
3707
+ }
3708
+ const post = this.requirePost();
3709
+ if (!post) {
3710
+ return;
3711
+ }
3712
+ this.permissionsLoading.set(true);
3713
+ this.permissionsError.set('');
3714
+ this.permissionsLoad = this.api
3715
+ .listPermissions(post.id)
3716
+ .pipe(takeUntilDestroyed(this.destroyRef), finalize(() => this.permissionsLoading.set(false)))
3717
+ .subscribe({
3718
+ next: permissions => this.permissions.set(permissions),
3719
+ error: (error) => {
3720
+ console.error('[taon-cms-post] Unable to load permissions', error);
3721
+ this.permissionsError.set('Permissions could not be loaded. Please try again.');
3722
+ },
3723
+ });
3724
+ }
3725
+ //#endregion
3726
+ //#region methods / add permission
3727
+ addPermission() {
3728
+ if (!this.editing() || this.busy() || this.dialogOpen()) {
3729
+ return;
3730
+ }
3731
+ const permissionId = this.selectedPermissionId();
3732
+ const permission = this.availablePermissions().find(item => item.id === permissionId);
3733
+ if (permission) {
3734
+ this.permissions.update(permissions => [...permissions, permission]);
3735
+ this.selectedPermissionId.set(null);
3736
+ }
3737
+ }
3738
+ //#endregion
3739
+ //#region methods / remove permission
3740
+ removePermission(id) {
3741
+ if (!this.editing() || this.busy() || this.dialogOpen()) {
3742
+ return;
3743
+ }
3744
+ this.permissions.update(items => items.filter(permission => permission.id !== id));
3745
+ }
3746
+ //#endregion
3747
+ //#region methods / load permission options
3748
+ loadPermissionOptions() {
3749
+ if (this.permissionOptionsLoading() ||
3750
+ this.permissionOptions().length > 0) {
3751
+ return;
3752
+ }
3753
+ this.permissionOptionsLoading.set(true);
3754
+ this.permissionOptionsError.set('');
3755
+ this.permissionApi.allMyEntities$
3756
+ .pipe(takeUntilDestroyed(this.destroyRef), finalize(() => this.permissionOptionsLoading.set(false)))
3757
+ .subscribe({
3758
+ next: permissions => this.permissionOptions.set(permissions),
3759
+ error: (error) => {
3760
+ console.error('[taon-cms-post] Unable to load permission options', error);
3761
+ this.permissionOptionsError.set('Available permissions could not be loaded. Please try again.');
3762
+ },
3763
+ });
3764
+ }
3765
+ //#endregion
3766
+ //#region methods / update draft
3767
+ updateDraft(field, value) {
3768
+ this.draft.update(draft => ({ ...draft, [field]: value }));
3769
+ }
3770
+ //#endregion
3771
+ //#region methods / file selected
3772
+ async fileSelected(event) {
3773
+ if (!(event.target instanceof HTMLInputElement)) {
3774
+ this.error.set('Unable to read the selected media file.');
3775
+ return;
3776
+ }
3777
+ const input = event.target;
3778
+ const file = input.files?.[0];
3779
+ if (!file) {
3780
+ return;
3781
+ }
3782
+ const media = this.mediaAttachment();
3783
+ if (!media || !this.editing() || this.busy() || this.dialogOpen()) {
3784
+ input.value = '';
3785
+ return;
3786
+ }
3787
+ const draft = this.draft();
3788
+ this.busy.set(true);
3789
+ this.uploading.set(true);
3790
+ this.error.set('');
3791
+ try {
3792
+ const object = await this.api.uploadMedia(file);
3793
+ if (!this.destroyRef.destroyed && this.draft() === draft) {
3794
+ this.updateDraft(media.key, object.key);
3795
+ }
3796
+ }
3797
+ catch (error) {
3798
+ console.error('[taon-cms-post] Unable to upload media', error);
3799
+ this.error.set('The media could not be uploaded. Please try again.');
3800
+ }
3801
+ finally {
3802
+ this.busy.set(false);
3803
+ this.uploading.set(false);
3804
+ input.value = '';
3805
+ }
3806
+ }
3807
+ //#endregion
3808
+ //#region methods / remove media
3809
+ removeMedia() {
3810
+ const media = this.mediaAttachment();
3811
+ if (!media || !this.editing() || this.busy() || this.dialogOpen()) {
3812
+ return;
3813
+ }
3814
+ this.updateDraft(media.key, null);
3815
+ }
3816
+ //#endregion
3817
+ //#region methods / update slug
3818
+ updateSlug(event) {
3819
+ if (event.target instanceof HTMLInputElement) {
3820
+ this.updateDraft('slug', event.target.value);
3821
+ }
3822
+ }
3823
+ //#endregion
3824
+ //#region methods / edit
3825
+ edit() {
3826
+ if (this.mode() !== 'view' || this.busy() || this.dialogOpen()) {
3827
+ return;
3828
+ }
3829
+ if (!this.requirePost()) {
3830
+ return;
3831
+ }
3832
+ this.error.set('');
3833
+ this.mode.set('edit');
3834
+ }
3835
+ //#endregion
3836
+ //#region methods / cancel
3837
+ cancel() {
3838
+ if (this.busy() || this.dialogOpen()) {
3839
+ return;
3840
+ }
3841
+ this.setPost(this.currentPost());
3842
+ this.error.set('');
3843
+ if (this.editing()) {
3844
+ this.mode.set('view');
3845
+ }
3846
+ this.cancelled.emit();
3847
+ }
3848
+ //#endregion
3849
+ //#region methods / save
3850
+ save() {
3851
+ if (this.busy() || this.dialogOpen() || !this.editing()) {
3852
+ return;
3853
+ }
3854
+ if (!this.canSave()) {
3855
+ this.error.set('A title and slug are required.');
3856
+ return;
3857
+ }
3858
+ if (this.mode() === 'add') {
3859
+ this.persist(this.api.createContent({
3860
+ ...this.draft(),
3861
+ relatedPostIds: this.relatedPosts().map(post => post.id),
3862
+ permissionIds: this.permissions().map(permission => permission.id),
3863
+ }));
3864
+ }
3865
+ else {
3866
+ const post = this.requirePost();
3867
+ if (post) {
3868
+ this.persist(this.api.updateContent(post.id, this.updateInput(post)));
3869
+ }
3870
+ }
3871
+ }
3872
+ //#endregion
3873
+ //#region methods / publish
3874
+ publish() {
3875
+ if (this.busy() ||
3876
+ this.dialogOpen() ||
3877
+ !this.canPublish() ||
3878
+ this.mode() === 'view-clean' ||
3879
+ this.mode() === 'add') {
3880
+ return;
3881
+ }
3882
+ if (this.editing() && !this.canSave()) {
3883
+ this.error.set('A title and slug are required.');
3884
+ return;
3885
+ }
3886
+ const post = this.requirePost();
3887
+ if (post) {
3888
+ this.persist(this.api.updateContent(post.id, {
3889
+ ...(this.editing()
3890
+ ? this.updateInput(post)
3891
+ : { expectedVersion: post.version }),
3892
+ status: 'published',
3893
+ publishedAt: new Date(),
3894
+ }));
3895
+ }
3896
+ }
3897
+ //#endregion
3898
+ //#region methods / revert
3899
+ revert() {
3900
+ const post = this.requirePost();
3901
+ if (!post ||
3902
+ this.busy() ||
3903
+ this.dialogOpen() ||
3904
+ this.mode() === 'view-clean') {
3905
+ return;
3906
+ }
3907
+ this.dialogOpen.set(true);
3908
+ const ref = this.dialog.open(TaonCmsRevisionChooserComponent, {
3909
+ data: post,
3910
+ width: '560px',
3911
+ maxWidth: '95vw',
3912
+ disableClose: true,
3913
+ });
3914
+ ref
3915
+ .afterClosed()
3916
+ .pipe(takeUntilDestroyed(this.destroyRef))
3917
+ .subscribe(restored => {
3918
+ this.dialogOpen.set(false);
3919
+ if (restored) {
3920
+ this.acceptPost(restored);
3921
+ }
3922
+ });
3923
+ }
3924
+ //#endregion
3925
+ //#region methods / delete
3926
+ delete() {
3927
+ const post = this.requirePost();
3928
+ if (!post ||
3929
+ this.busy() ||
3930
+ this.dialogOpen() ||
3931
+ this.mode() === 'view-clean') {
3932
+ return;
3933
+ }
3934
+ this.dialogOpen.set(true);
3935
+ const ref = this.dialog.open(TaonConfirmDialogComponent, {
3936
+ data: {
3937
+ title: 'Delete post?',
3938
+ message: 'This archives the post. It can be restored from its revisions.',
3939
+ confirmText: 'Delete',
3940
+ },
3941
+ });
3942
+ ref
3943
+ .afterClosed()
3944
+ .pipe(takeUntilDestroyed(this.destroyRef))
3945
+ .subscribe(confirmed => {
3946
+ this.dialogOpen.set(false);
3947
+ if (confirmed) {
3948
+ this.persist(this.api.deleteContent(post.id, post.version), true);
3949
+ }
3950
+ });
3951
+ }
3952
+ //#endregion
3953
+ //#region methods / update input
3954
+ updateInput(post) {
3955
+ return {
3956
+ ...this.draft(),
3957
+ relatedPostIds: this.relatedPosts().map(related => related.id),
3958
+ permissionIds: this.permissions().map(permission => permission.id),
3959
+ expectedVersion: post.version,
3960
+ };
3961
+ }
3962
+ //#endregion
3963
+ //#region methods / require post
3964
+ requirePost() {
3965
+ const post = this.currentPost();
3966
+ if (!post) {
3967
+ this.error.set('No post is loaded.');
3968
+ }
3969
+ return post;
3970
+ }
3971
+ //#endregion
3972
+ //#region methods / set post
3973
+ setPost(post) {
3974
+ this.relatedPostsLoad?.unsubscribe();
3975
+ this.permissionsLoad?.unsubscribe();
3976
+ this.relatedPostsLoading.set(false);
3977
+ this.relatedPostsError.set('');
3978
+ this.permissionsLoading.set(false);
3979
+ this.permissionsError.set('');
3980
+ this.currentPost.set(post);
3981
+ this.relatedPosts.set(post?.relatedPosts ?? []);
3982
+ this.permissions.set(post?.permissions ?? []);
3983
+ this.selectedPermissionId.set(null);
3984
+ this.draft.set({
3985
+ type: post?.type ?? TaonCmsContentType.Normal,
3986
+ title: post?.title ?? '',
3987
+ slug: post?.slug ?? '',
3988
+ excerpt: post?.excerpt ?? '',
3989
+ body: post?.body ?? '',
3990
+ videoKey: post?.videoKey ?? null,
3991
+ audioKey: post?.audioKey ?? null,
3992
+ attachmentKey: post?.attachmentKey ?? null,
3993
+ });
3994
+ if (post &&
3995
+ post.relatedPosts === undefined &&
3996
+ this.mode() !== 'view-clean') {
3997
+ this.loadRelatedPosts();
3998
+ }
3999
+ if (post &&
4000
+ post.permissions === undefined &&
4001
+ this.mode() !== 'view-clean') {
4002
+ this.loadPermissions();
4003
+ }
4004
+ }
4005
+ //#endregion
4006
+ //#region methods / accept post
4007
+ acceptPost(post) {
4008
+ this.setPost(post);
4009
+ this.error.set('');
4010
+ this.mode.set('view');
4011
+ this.changed.emit(post);
4012
+ }
4013
+ //#endregion
4014
+ //#region methods / persist
4015
+ persist(request, deleting = false) {
4016
+ if (this.busy() || this.dialogOpen() || this.mode() === 'view-clean') {
4017
+ return;
4018
+ }
4019
+ this.busy.set(true);
4020
+ this.error.set('');
4021
+ request
4022
+ .pipe(takeUntilDestroyed(this.destroyRef), finalize(() => this.busy.set(false)))
4023
+ .subscribe({
4024
+ next: post => {
4025
+ this.acceptPost(post);
4026
+ if (deleting) {
4027
+ this.deleted.emit(post);
4028
+ }
4029
+ },
4030
+ error: (error) => {
4031
+ console.error('[taon-cms-post] Unable to save post', error);
4032
+ this.error.set('The post could not be saved. Check the slug and your connection. ' +
4033
+ 'If another user changed it, close and reopen the post before retrying.');
4034
+ },
4035
+ });
4036
+ }
4037
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsPostComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
4038
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.9", type: TaonCmsPostComponent, isStandalone: true, selector: "taon-cms-post", inputs: { post: { classPropertyName: "post", publicName: "post", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { mode: "modeChange", changed: "changed", deleted: "deleted", cancelled: "cancelled" }, providers: [TaonCmsContentApiService, TaonPermissionApiService], ngImport: i0, template: "@if (mode() !== 'view-clean') {\n <header class=\"post-actions\">\n <span class=\"post-status\">{{ mode() === 'add' ? 'New draft' : currentPost()?.status }}</span>\n <div class=\"buttons\">\n @if (editing()) {\n <button mat-flat-button type=\"button\" [disabled]=\"busy() || dialogOpen() || !canSave()\" (click)=\"save()\">\n {{ mode() === 'add' ? 'Add' : 'Save' }}\n </button>\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen()\" (click)=\"cancel()\">Cancel</button>\n } @else if (currentPost()) {\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen()\" (click)=\"edit()\">\n <mat-icon>edit</mat-icon> Edit\n </button>\n }\n @if (mode() !== 'add' && currentPost()) {\n @if (canPublish()) {\n <button mat-flat-button type=\"button\" [disabled]=\"busy() || dialogOpen() || (editing() && !canSave())\" (click)=\"publish()\">Publish</button>\n }\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen()\" (click)=\"revert()\">\n <mat-icon>history</mat-icon> Revert\n </button>\n @if (currentPost()?.status !== 'archived') {\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen()\" (click)=\"delete()\">\n <mat-icon>delete</mat-icon> Delete\n </button>\n }\n }\n </div>\n @if (busy()) {\n <span role=\"status\">{{ uploading() ? 'Uploading...' : 'Saving...' }}</span>\n }\n </header>\n @if (error()) {\n <p class=\"error\" role=\"alert\">{{ error() }}</p>\n }\n}\n\n<article class=\"post-article\" [attr.aria-busy]=\"busy()\">\n @if (editing()) {\n <mat-radio-group\n class=\"post-type-selector\"\n aria-label=\"Post type\"\n [value]=\"draft().type\"\n [disabled]=\"busy() || dialogOpen()\"\n (change)=\"updateDraft('type', $event.value)\">\n @for (type of postTypes; track type.value) {\n <mat-radio-button [value]=\"type.value\">{{ type.label }}</mat-radio-button>\n }\n </mat-radio-group>\n <div\n class=\"post-title editable\"\n contenteditable=\"true\"\n role=\"textbox\"\n aria-label=\"Post title\"\n aria-required=\"true\"\n data-placeholder=\"Title\"\n [attr.contenteditable]=\"!busy() && !dialogOpen()\"\n [taonCmsEditableSingleLine]=\"true\"\n [taonCmsEditable]=\"draft().title\"\n (taonCmsEditableChange)=\"updateDraft('title', $event)\"></div>\n <div\n class=\"post-excerpt editable\"\n contenteditable=\"true\"\n role=\"textbox\"\n aria-label=\"Post excerpt\"\n aria-multiline=\"true\"\n data-placeholder=\"A short introduction...\"\n [attr.contenteditable]=\"!busy() && !dialogOpen()\"\n [taonCmsEditable]=\"draft().excerpt\"\n (taonCmsEditableChange)=\"updateDraft('excerpt', $event)\"></div>\n <div\n class=\"post-body editable\"\n contenteditable=\"true\"\n role=\"textbox\"\n aria-label=\"Post body\"\n aria-multiline=\"true\"\n data-placeholder=\"Tell your story...\"\n [attr.contenteditable]=\"!busy() && !dialogOpen()\"\n taonCmsEditableFormat=\"html\"\n [taonCmsEditable]=\"draft().body\"\n (taonCmsEditableChange)=\"updateDraft('body', $event)\"></div>\n <label class=\"slug-field\">\n <span>URL slug</span>\n <input aria-label=\"URL slug\" [value]=\"draft().slug\" [disabled]=\"busy() || dialogOpen()\" (input)=\"updateSlug($event)\" placeholder=\"my-post\" />\n </label>\n @if (mediaAttachment(); as media) {\n <section class=\"media-attachment\" aria-labelledby=\"media-attachment-heading\">\n <h2 id=\"media-attachment-heading\">{{ media.heading }}</h2>\n @if (draft()[media.key]; as key) {\n <p>Attached file: {{ key }}</p>\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen()\" (click)=\"removeMedia()\">Remove</button>\n } @else {\n <input\n #mediaInput\n hidden\n type=\"file\"\n [accept]=\"media.accept\"\n [disabled]=\"busy() || dialogOpen()\"\n (change)=\"fileSelected($event)\" />\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen()\" (click)=\"mediaInput.click()\">{{ media.uploadLabel }}</button>\n }\n </section>\n }\n <section class=\"related-posts\" aria-labelledby=\"related-posts-heading\">\n <h2 id=\"related-posts-heading\">Related posts</h2>\n @if (relatedPostsLoading()) {\n <p role=\"status\">Loading related posts...</p>\n } @else if (relatedPostsError()) {\n <p class=\"error\" role=\"alert\">{{ relatedPostsError() }}</p>\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen()\" (click)=\"loadRelatedPosts()\">Try again</button>\n } @else {\n <ul>\n @for (post of relatedPosts(); track post.id) {\n <li>\n <span>#{{ post.id }} - {{ post.title }}</span>\n <button mat-icon-button type=\"button\" [attr.aria-label]=\"'Remove related post ' + post.title\" [disabled]=\"busy() || dialogOpen()\" (click)=\"removeRelatedPost(post.id)\">\n <mat-icon>close</mat-icon>\n </button>\n </li>\n } @empty {\n <li>No related posts yet.</li>\n }\n </ul>\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen()\" (click)=\"addRelatedPost()\">\n <mat-icon>add</mat-icon> Add related post\n </button>\n }\n </section>\n <section class=\"post-permissions\" aria-labelledby=\"post-permissions-heading\">\n <h2 id=\"post-permissions-heading\">Allow Read only with Permissions</h2>\n @if (permissionsLoading()) {\n <p role=\"status\">Loading assigned permissions...</p>\n } @else if (permissionsError()) {\n <p class=\"error\" role=\"alert\">{{ permissionsError() }}</p>\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen()\" (click)=\"loadPermissions()\">Try again</button>\n } @else {\n <ul>\n @for (permission of permissions(); track permission.id) {\n <li>\n <span>{{ permission.name }} ({{ permission.code }})</span>\n <button mat-icon-button type=\"button\" [attr.aria-label]=\"'Remove permission ' + permission.name\" [disabled]=\"busy() || dialogOpen()\" (click)=\"removePermission(permission.id)\">\n <mat-icon>close</mat-icon>\n </button>\n </li>\n } @empty {\n <li>No permissions assigned.</li>\n }\n </ul>\n @if (permissionOptionsError()) {\n <p class=\"error\" role=\"alert\">{{ permissionOptionsError() }}</p>\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen() || permissionOptionsLoading()\" (click)=\"loadPermissionOptions()\">Try again</button>\n } @else {\n <div class=\"permission-assignment\">\n <mat-form-field appearance=\"outline\" subscriptSizing=\"dynamic\">\n <mat-label>Permission</mat-label>\n <mat-select\n [value]=\"selectedPermissionId()\"\n [disabled]=\"busy() || dialogOpen() || permissionOptionsLoading()\"\n (selectionChange)=\"selectedPermissionId.set($event.value)\">\n @for (permission of availablePermissions(); track permission.id) {\n <mat-option [value]=\"permission.id\">{{ permission.name }} ({{ permission.code }})</mat-option>\n } @empty {\n <mat-option [disabled]=\"true\">No permissions available</mat-option>\n }\n </mat-select>\n </mat-form-field>\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen() || !selectedPermissionId()\" (click)=\"addPermission()\">\n <mat-icon>add</mat-icon> Assign permission\n </button>\n </div>\n }\n }\n </section>\n } @else if (currentPost(); as post) {\n <h1 class=\"post-title\">{{ post.title }}</h1>\n @if (post.excerpt) {\n <p class=\"post-excerpt\">{{ post.excerpt }}</p>\n }\n <div class=\"post-body\" [innerHTML]=\"post.body\"></div>\n } @else {\n <p role=\"status\">No post is loaded.</p>\n }\n</article>", styles: [":host{display:block}.post-actions{display:flex;align-items:center;flex-wrap:wrap;gap:1rem;padding:1rem;border-bottom:1px solid rgba(136,136,136,.2)}.post-status{margin-right:auto;text-transform:capitalize;opacity:.7}.buttons{display:flex;flex-wrap:wrap;gap:.5rem}.post-article{max-width:760px;margin:0 auto;padding:clamp(1.5rem,5vw,4rem) 1.5rem;overflow-wrap:anywhere}.post-title{margin:0 0 1.5rem;font-size:clamp(2rem,5vw,3.5rem);font-weight:700;line-height:1.15;letter-spacing:-.03em}.post-excerpt{margin:0 0 2rem;font-size:1.35rem;line-height:1.6;opacity:.7;white-space:pre-wrap}.post-body{font-family:Georgia,Times New Roman,serif;font-size:1.2rem;line-height:1.8;white-space:pre-wrap}.editable{min-height:1.2em;outline:none}.editable:focus{box-shadow:-3px 0 #8885}.editable:empty:before{content:attr(data-placeholder);opacity:.4;pointer-events:none}.post-body.editable{min-height:12rem}.slug-field{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;margin-top:3rem;padding-top:1rem;border-top:1px solid rgba(136,136,136,.2);font-size:.875rem}.slug-field input{flex:1;min-width:160px;padding:.5rem;color:inherit;background:transparent;border:1px solid rgba(136,136,136,.3333333333);border-radius:4px}.error{padding:1rem;color:#b3261e}.post-type-selector{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem}.media-attachment,.related-posts,.post-permissions{margin-top:1.5rem;font-size:.875rem}.media-attachment h2,.related-posts h2,.post-permissions h2{font-size:1rem}.related-posts ul,.post-permissions ul{padding:0;list-style:none}.related-posts li,.post-permissions li{display:flex;align-items:center;justify-content:space-between;gap:.5rem}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i1.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2$1.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatRadioModule }, { kind: "directive", type: i3.MatRadioGroup, selector: "mat-radio-group", inputs: ["color", "name", "labelPosition", "value", "selected", "disabled", "required", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioGroup"] }, { kind: "component", type: i3.MatRadioButton, selector: "mat-radio-button", inputs: ["id", "name", "aria-label", "aria-labelledby", "aria-describedby", "disableRipple", "tabIndex", "checked", "value", "labelPosition", "disabled", "required", "color", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioButton"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i5.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i5.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: TaonCmsEditableDirective, selector: "[taonCmsEditable]", inputs: ["taonCmsEditableFormat", "taonCmsEditableSingleLine", "taonCmsEditable"], outputs: ["taonCmsEditableChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4039
+ }
4040
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsPostComponent, decorators: [{
4041
+ type: Component,
4042
+ args: [{ selector: 'taon-cms-post', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
4043
+ MatButtonModule,
4044
+ MatFormFieldModule,
4045
+ MatIconModule,
4046
+ MatRadioModule,
4047
+ MatSelectModule,
4048
+ TaonCmsEditableDirective,
4049
+ ], providers: [TaonCmsContentApiService, TaonPermissionApiService], template: "@if (mode() !== 'view-clean') {\n <header class=\"post-actions\">\n <span class=\"post-status\">{{ mode() === 'add' ? 'New draft' : currentPost()?.status }}</span>\n <div class=\"buttons\">\n @if (editing()) {\n <button mat-flat-button type=\"button\" [disabled]=\"busy() || dialogOpen() || !canSave()\" (click)=\"save()\">\n {{ mode() === 'add' ? 'Add' : 'Save' }}\n </button>\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen()\" (click)=\"cancel()\">Cancel</button>\n } @else if (currentPost()) {\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen()\" (click)=\"edit()\">\n <mat-icon>edit</mat-icon> Edit\n </button>\n }\n @if (mode() !== 'add' && currentPost()) {\n @if (canPublish()) {\n <button mat-flat-button type=\"button\" [disabled]=\"busy() || dialogOpen() || (editing() && !canSave())\" (click)=\"publish()\">Publish</button>\n }\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen()\" (click)=\"revert()\">\n <mat-icon>history</mat-icon> Revert\n </button>\n @if (currentPost()?.status !== 'archived') {\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen()\" (click)=\"delete()\">\n <mat-icon>delete</mat-icon> Delete\n </button>\n }\n }\n </div>\n @if (busy()) {\n <span role=\"status\">{{ uploading() ? 'Uploading...' : 'Saving...' }}</span>\n }\n </header>\n @if (error()) {\n <p class=\"error\" role=\"alert\">{{ error() }}</p>\n }\n}\n\n<article class=\"post-article\" [attr.aria-busy]=\"busy()\">\n @if (editing()) {\n <mat-radio-group\n class=\"post-type-selector\"\n aria-label=\"Post type\"\n [value]=\"draft().type\"\n [disabled]=\"busy() || dialogOpen()\"\n (change)=\"updateDraft('type', $event.value)\">\n @for (type of postTypes; track type.value) {\n <mat-radio-button [value]=\"type.value\">{{ type.label }}</mat-radio-button>\n }\n </mat-radio-group>\n <div\n class=\"post-title editable\"\n contenteditable=\"true\"\n role=\"textbox\"\n aria-label=\"Post title\"\n aria-required=\"true\"\n data-placeholder=\"Title\"\n [attr.contenteditable]=\"!busy() && !dialogOpen()\"\n [taonCmsEditableSingleLine]=\"true\"\n [taonCmsEditable]=\"draft().title\"\n (taonCmsEditableChange)=\"updateDraft('title', $event)\"></div>\n <div\n class=\"post-excerpt editable\"\n contenteditable=\"true\"\n role=\"textbox\"\n aria-label=\"Post excerpt\"\n aria-multiline=\"true\"\n data-placeholder=\"A short introduction...\"\n [attr.contenteditable]=\"!busy() && !dialogOpen()\"\n [taonCmsEditable]=\"draft().excerpt\"\n (taonCmsEditableChange)=\"updateDraft('excerpt', $event)\"></div>\n <div\n class=\"post-body editable\"\n contenteditable=\"true\"\n role=\"textbox\"\n aria-label=\"Post body\"\n aria-multiline=\"true\"\n data-placeholder=\"Tell your story...\"\n [attr.contenteditable]=\"!busy() && !dialogOpen()\"\n taonCmsEditableFormat=\"html\"\n [taonCmsEditable]=\"draft().body\"\n (taonCmsEditableChange)=\"updateDraft('body', $event)\"></div>\n <label class=\"slug-field\">\n <span>URL slug</span>\n <input aria-label=\"URL slug\" [value]=\"draft().slug\" [disabled]=\"busy() || dialogOpen()\" (input)=\"updateSlug($event)\" placeholder=\"my-post\" />\n </label>\n @if (mediaAttachment(); as media) {\n <section class=\"media-attachment\" aria-labelledby=\"media-attachment-heading\">\n <h2 id=\"media-attachment-heading\">{{ media.heading }}</h2>\n @if (draft()[media.key]; as key) {\n <p>Attached file: {{ key }}</p>\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen()\" (click)=\"removeMedia()\">Remove</button>\n } @else {\n <input\n #mediaInput\n hidden\n type=\"file\"\n [accept]=\"media.accept\"\n [disabled]=\"busy() || dialogOpen()\"\n (change)=\"fileSelected($event)\" />\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen()\" (click)=\"mediaInput.click()\">{{ media.uploadLabel }}</button>\n }\n </section>\n }\n <section class=\"related-posts\" aria-labelledby=\"related-posts-heading\">\n <h2 id=\"related-posts-heading\">Related posts</h2>\n @if (relatedPostsLoading()) {\n <p role=\"status\">Loading related posts...</p>\n } @else if (relatedPostsError()) {\n <p class=\"error\" role=\"alert\">{{ relatedPostsError() }}</p>\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen()\" (click)=\"loadRelatedPosts()\">Try again</button>\n } @else {\n <ul>\n @for (post of relatedPosts(); track post.id) {\n <li>\n <span>#{{ post.id }} - {{ post.title }}</span>\n <button mat-icon-button type=\"button\" [attr.aria-label]=\"'Remove related post ' + post.title\" [disabled]=\"busy() || dialogOpen()\" (click)=\"removeRelatedPost(post.id)\">\n <mat-icon>close</mat-icon>\n </button>\n </li>\n } @empty {\n <li>No related posts yet.</li>\n }\n </ul>\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen()\" (click)=\"addRelatedPost()\">\n <mat-icon>add</mat-icon> Add related post\n </button>\n }\n </section>\n <section class=\"post-permissions\" aria-labelledby=\"post-permissions-heading\">\n <h2 id=\"post-permissions-heading\">Allow Read only with Permissions</h2>\n @if (permissionsLoading()) {\n <p role=\"status\">Loading assigned permissions...</p>\n } @else if (permissionsError()) {\n <p class=\"error\" role=\"alert\">{{ permissionsError() }}</p>\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen()\" (click)=\"loadPermissions()\">Try again</button>\n } @else {\n <ul>\n @for (permission of permissions(); track permission.id) {\n <li>\n <span>{{ permission.name }} ({{ permission.code }})</span>\n <button mat-icon-button type=\"button\" [attr.aria-label]=\"'Remove permission ' + permission.name\" [disabled]=\"busy() || dialogOpen()\" (click)=\"removePermission(permission.id)\">\n <mat-icon>close</mat-icon>\n </button>\n </li>\n } @empty {\n <li>No permissions assigned.</li>\n }\n </ul>\n @if (permissionOptionsError()) {\n <p class=\"error\" role=\"alert\">{{ permissionOptionsError() }}</p>\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen() || permissionOptionsLoading()\" (click)=\"loadPermissionOptions()\">Try again</button>\n } @else {\n <div class=\"permission-assignment\">\n <mat-form-field appearance=\"outline\" subscriptSizing=\"dynamic\">\n <mat-label>Permission</mat-label>\n <mat-select\n [value]=\"selectedPermissionId()\"\n [disabled]=\"busy() || dialogOpen() || permissionOptionsLoading()\"\n (selectionChange)=\"selectedPermissionId.set($event.value)\">\n @for (permission of availablePermissions(); track permission.id) {\n <mat-option [value]=\"permission.id\">{{ permission.name }} ({{ permission.code }})</mat-option>\n } @empty {\n <mat-option [disabled]=\"true\">No permissions available</mat-option>\n }\n </mat-select>\n </mat-form-field>\n <button mat-button type=\"button\" [disabled]=\"busy() || dialogOpen() || !selectedPermissionId()\" (click)=\"addPermission()\">\n <mat-icon>add</mat-icon> Assign permission\n </button>\n </div>\n }\n }\n </section>\n } @else if (currentPost(); as post) {\n <h1 class=\"post-title\">{{ post.title }}</h1>\n @if (post.excerpt) {\n <p class=\"post-excerpt\">{{ post.excerpt }}</p>\n }\n <div class=\"post-body\" [innerHTML]=\"post.body\"></div>\n } @else {\n <p role=\"status\">No post is loaded.</p>\n }\n</article>", styles: [":host{display:block}.post-actions{display:flex;align-items:center;flex-wrap:wrap;gap:1rem;padding:1rem;border-bottom:1px solid rgba(136,136,136,.2)}.post-status{margin-right:auto;text-transform:capitalize;opacity:.7}.buttons{display:flex;flex-wrap:wrap;gap:.5rem}.post-article{max-width:760px;margin:0 auto;padding:clamp(1.5rem,5vw,4rem) 1.5rem;overflow-wrap:anywhere}.post-title{margin:0 0 1.5rem;font-size:clamp(2rem,5vw,3.5rem);font-weight:700;line-height:1.15;letter-spacing:-.03em}.post-excerpt{margin:0 0 2rem;font-size:1.35rem;line-height:1.6;opacity:.7;white-space:pre-wrap}.post-body{font-family:Georgia,Times New Roman,serif;font-size:1.2rem;line-height:1.8;white-space:pre-wrap}.editable{min-height:1.2em;outline:none}.editable:focus{box-shadow:-3px 0 #8885}.editable:empty:before{content:attr(data-placeholder);opacity:.4;pointer-events:none}.post-body.editable{min-height:12rem}.slug-field{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;margin-top:3rem;padding-top:1rem;border-top:1px solid rgba(136,136,136,.2);font-size:.875rem}.slug-field input{flex:1;min-width:160px;padding:.5rem;color:inherit;background:transparent;border:1px solid rgba(136,136,136,.3333333333);border-radius:4px}.error{padding:1rem;color:#b3261e}.post-type-selector{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem}.media-attachment,.related-posts,.post-permissions{margin-top:1.5rem;font-size:.875rem}.media-attachment h2,.related-posts h2,.post-permissions h2{font-size:1rem}.related-posts ul,.post-permissions ul{padding:0;list-style:none}.related-posts li,.post-permissions li{display:flex;align-items:center;justify-content:space-between;gap:.5rem}\n"] }]
4050
+ }], ctorParameters: () => [], propDecorators: { post: [{ type: i0.Input, args: [{ isSignal: true, alias: "post", required: false }] }], mode: [{ type: i0.Input, args: [{ isSignal: true, alias: "mode", required: false }] }, { type: i0.Output, args: ["modeChange"] }], changed: [{ type: i0.Output, args: ["changed"] }], deleted: [{ type: i0.Output, args: ["deleted"] }], cancelled: [{ type: i0.Output, args: ["cancelled"] }] } });
4051
+
4052
+ var taonCmsPost_component = /*#__PURE__*/Object.freeze({
4053
+ __proto__: null,
4054
+ TaonCmsPostComponent: TaonCmsPostComponent
4055
+ });
4056
+
4057
+ //#endregion
4058
+ const TaonCmsPostRoutes = [
4059
+ {
4060
+ path: '',
4061
+ loadComponent: () => Promise.resolve().then(function () { return taonCmsPost_component; }).then(m => m.TaonCmsPostComponent),
4062
+ children: [
4063
+ // adminLazyRoute({
4064
+ // path: 'dashboard',
4065
+ // menuItem: 'Dashboard',
4066
+ // icon: 'dashboard',
4067
+ // expandable: false,
4068
+ // loader: () =>
4069
+ // import('./anothermodule.routes').then(m => m.DashboardRoutes),
4070
+ // }),
4071
+ ],
4072
+ },
4073
+ ];
4074
+ /**
4075
+ * By default exporting TaonCmsPostRoutes,
4076
+ * the command `taon generate:app:routes`
4077
+ * will automatically add them to the root routes in ./src/app.ts.
4078
+ */
4079
+ // export default TaonCmsPostRoutes;
4080
+
4081
+ class TaonCmsPostDetailsPageComponent {
4082
+ constructor() {
4083
+ this.post$ = inject(ActivatedRoute).data.pipe(map$1(data => data['post']));
4084
+ }
4085
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsPostDetailsPageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
4086
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.9", type: TaonCmsPostDetailsPageComponent, isStandalone: true, selector: "taon-cms-post-details-page", ngImport: i0, template: `
4087
+ @if (post$ | async; as post) {
4088
+ <a mat-button routerLink="../">Back to Posts</a>
4089
+ <taon-cms-post [post]="post"></taon-cms-post>
4090
+ }
4091
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: TaonCmsPostComponent, selector: "taon-cms-post", inputs: ["post", "mode"], outputs: ["modeChange", "changed", "deleted", "cancelled"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4092
+ }
4093
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsPostDetailsPageComponent, decorators: [{
4094
+ type: Component,
4095
+ args: [{
4096
+ selector: 'taon-cms-post-details-page',
4097
+ changeDetection: ChangeDetectionStrategy.OnPush,
4098
+ imports: [AsyncPipe, MatButtonModule, RouterLink, TaonCmsPostComponent],
4099
+ template: `
4100
+ @if (post$ | async; as post) {
4101
+ <a mat-button routerLink="../">Back to Posts</a>
4102
+ <taon-cms-post [post]="post"></taon-cms-post>
4103
+ }
4104
+ `,
4105
+ }]
4106
+ }] });
4107
+
4108
+ var taonCmsPostDetailsPage_component = /*#__PURE__*/Object.freeze({
4109
+ __proto__: null,
4110
+ TaonCmsPostDetailsPageComponent: TaonCmsPostDetailsPageComponent
4111
+ });
4112
+
4113
+ class TaonCmsPostEditDialogComponent {
4114
+ constructor() {
4115
+ this.data = inject(MAT_DIALOG_DATA);
4116
+ this.editor = viewChild(TaonCmsPostComponent, ...(ngDevMode ? [{ debugName: "editor" }] : []));
4117
+ this.changed = new EventEmitter();
4118
+ this.ref = inject((MatDialogRef));
4119
+ }
4120
+ close() {
4121
+ if (!this.editor()?.busy() && !this.editor()?.dialogOpen()) {
4122
+ this.ref.close();
4123
+ }
4124
+ }
4125
+ deleted(post) {
4126
+ this.ref.close(post);
4127
+ }
4128
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsPostEditDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
4129
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.0.9", type: TaonCmsPostEditDialogComponent, isStandalone: true, selector: "taon-cms-post-edit-dialog", viewQueries: [{ propertyName: "editor", first: true, predicate: TaonCmsPostComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<header class=\"dialog-header\">\n <h2>{{ data.mode === 'add' ? 'Add post' : 'Manage post' }}</h2>\n <button mat-icon-button type=\"button\" aria-label=\"Close post editor\" [disabled]=\"editor()?.busy() || editor()?.dialogOpen()\" (click)=\"close()\">\n <mat-icon>close</mat-icon>\n </button>\n</header>\n<taon-cms-post\n [post]=\"data.post ?? null\"\n [mode]=\"data.mode\"\n (changed)=\"changed.emit($event)\"\n (deleted)=\"deleted($event)\"\n (cancelled)=\"close()\" />\n", styles: [":host{display:block;height:100%;overflow-y:auto}.dialog-header{display:flex;align-items:center;justify-content:space-between;padding:.5rem 1rem;border-bottom:1px solid rgba(136,136,136,.2)}.dialog-header h2{margin:0;font-size:1rem;font-weight:500}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatDialogModule }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: TaonCmsPostComponent, selector: "taon-cms-post", inputs: ["post", "mode"], outputs: ["modeChange", "changed", "deleted", "cancelled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4130
+ }
4131
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsPostEditDialogComponent, decorators: [{
4132
+ type: Component,
4133
+ args: [{ selector: 'taon-cms-post-edit-dialog', changeDetection: ChangeDetectionStrategy.OnPush, imports: [MatButtonModule, MatDialogModule, MatIconModule, TaonCmsPostComponent], template: "<header class=\"dialog-header\">\n <h2>{{ data.mode === 'add' ? 'Add post' : 'Manage post' }}</h2>\n <button mat-icon-button type=\"button\" aria-label=\"Close post editor\" [disabled]=\"editor()?.busy() || editor()?.dialogOpen()\" (click)=\"close()\">\n <mat-icon>close</mat-icon>\n </button>\n</header>\n<taon-cms-post\n [post]=\"data.post ?? null\"\n [mode]=\"data.mode\"\n (changed)=\"changed.emit($event)\"\n (deleted)=\"deleted($event)\"\n (cancelled)=\"close()\" />\n", styles: [":host{display:block;height:100%;overflow-y:auto}.dialog-header{display:flex;align-items:center;justify-content:space-between;padding:.5rem 1rem;border-bottom:1px solid rgba(136,136,136,.2)}.dialog-header h2{margin:0;font-size:1rem;font-weight:500}\n"] }]
4134
+ }], propDecorators: { editor: [{ type: i0.ViewChild, args: [i0.forwardRef(() => TaonCmsPostComponent), { isSignal: true }] }] } });
4135
+
4136
+ //#region imports
4137
+ //#endregion
4138
+ class TaonCmsPostsBackofficeComponent {
4139
+ constructor() {
4140
+ this.taonCmsContentApiService = inject(TaonCmsContentApiService);
4141
+ this.posts = signal([], ...(ngDevMode ? [{ debugName: "posts" }] : []));
4142
+ this.loading = signal(false, ...(ngDevMode ? [{ debugName: "loading" }] : []));
4143
+ this.deleting = signal(null, ...(ngDevMode ? [{ debugName: "deleting" }] : []));
4144
+ this.error = signal('', ...(ngDevMode ? [{ debugName: "error" }] : []));
4145
+ this.dialog = inject(MatDialog);
4146
+ this.route = inject(ActivatedRoute);
4147
+ this.router = inject(Router);
4148
+ this.destroyRef = inject(DestroyRef);
4149
+ this.cancelLoad$ = new Subject();
4150
+ this.columns = [
4151
+ { header: 'ID', field: 'id', sortable: true },
4152
+ { header: 'Title', field: 'title', sortable: true },
4153
+ { header: 'Status', field: 'status', sortable: true },
4154
+ {
4155
+ header: 'Actions',
4156
+ field: 'actions',
4157
+ type: 'button',
4158
+ buttons: [
4159
+ {
4160
+ type: 'icon',
4161
+ icon: 'edit',
4162
+ tooltip: 'Edit post',
4163
+ click: (post) => this.edit(post),
4164
+ },
4165
+ {
4166
+ type: 'icon',
4167
+ icon: 'open_in_new',
4168
+ tooltip: 'Post details',
4169
+ click: (post) => this.openDetails(post),
4170
+ },
4171
+ {
4172
+ type: 'icon',
4173
+ icon: 'delete',
4174
+ tooltip: 'Delete (archive) post',
4175
+ disabled: (post) => post.status === 'archived' || this.deleting() !== null,
4176
+ click: (post) => this.delete(post),
4177
+ },
4178
+ ],
4179
+ },
4180
+ ];
4181
+ }
4182
+ get crud() {
4183
+ return this.taonCmsContentApiService.taonCmsContentController;
4184
+ }
4185
+ reload() {
4186
+ this.datatable.reload();
4187
+ }
4188
+ ngAfterViewInit() {
4189
+ this.reload();
4190
+ }
4191
+ add() {
4192
+ this.openEditor({ mode: 'add' });
4193
+ }
4194
+ edit(post) {
4195
+ this.openEditor({ mode: 'edit', post });
4196
+ }
4197
+ openDetails(post) {
4198
+ const postsRoute = this.route.parent;
4199
+ if (!postsRoute) {
4200
+ this.error.set('The Post details route is unavailable.');
4201
+ return;
4202
+ }
4203
+ void this.router.navigate([post.id], { relativeTo: postsRoute });
4204
+ }
4205
+ delete(post) {
4206
+ if (this.deleting() !== null || post.status === 'archived') {
4207
+ return;
4208
+ }
4209
+ this.deleting.set(post.id);
4210
+ const ref = this.dialog.open(TaonConfirmDialogComponent, {
4211
+ data: {
4212
+ title: 'Delete post?',
4213
+ message: 'This archives the post. It can be restored from its revisions.',
4214
+ confirmText: 'Delete',
4215
+ },
4216
+ });
4217
+ ref
4218
+ .afterClosed()
4219
+ .pipe(takeUntilDestroyed(this.destroyRef))
4220
+ .subscribe(confirmed => {
4221
+ if (!confirmed) {
4222
+ this.deleting.set(null);
4223
+ return;
4224
+ }
4225
+ this.error.set('');
4226
+ this.taonCmsContentApiService
4227
+ .deleteContent(post.id, post.version)
4228
+ .pipe(takeUntilDestroyed(this.destroyRef), finalize(() => this.deleting.set(null)))
4229
+ .subscribe({
4230
+ next: () => this.reload(),
4231
+ error: (error) => {
4232
+ console.error('[taon-cms-posts-backoffice] Unable to delete post', error);
4233
+ this.error.set('The post could not be deleted. Refresh the table before retrying.');
4234
+ },
4235
+ });
4236
+ });
4237
+ }
4238
+ openEditor(data) {
4239
+ const ref = this.dialog.open(TaonCmsPostEditDialogComponent, {
4240
+ data,
4241
+ width: '100vw',
4242
+ height: '100dvh',
4243
+ maxWidth: '100vw',
4244
+ maxHeight: '100dvh',
4245
+ disableClose: true,
4246
+ autoFocus: 'first-tabbable',
4247
+ });
4248
+ ref.componentInstance.changed
4249
+ .pipe(takeUntil(ref.afterClosed()), takeUntilDestroyed(this.destroyRef))
4250
+ .subscribe(() => this.reload());
4251
+ }
4252
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsPostsBackofficeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
4253
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.9", type: TaonCmsPostsBackofficeComponent, isStandalone: true, selector: "app-taon-cms-posts-backoffice", providers: [TaonCmsContentApiService], viewQueries: [{ propertyName: "datatable", first: true, predicate: TaonDatatableComponent, descendants: true }], ngImport: i0, template: "<h1>CMS posts</h1>\n@if (loading()) {\n <p role=\"status\">Loading posts...</p>\n}\n@if (error()) {\n <p role=\"alert\">{{ error() }}</p>\n}\n<taon-datatable\n [entityCrudController]=\"crud\"\n [columns]=\"columns\"\n [allowedColumns]=\"['id', 'title', 'status']\"\n searchMode=\"advanced\"\n (addingItem)=\"add()\">\n</taon-datatable>\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: TaonDatatableComponent, selector: "taon-datatable", inputs: ["pageNumber", "pageSize", "pageSizeOptions", "allowedColumns", "expansionTemplate", "entityCrudController", "columns", "hideSearch", "hideAddButton", "safe", "searchMode", "callQueryMethod", "data", "showPaginator"], outputs: ["expansionChange", "addingItem"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4254
+ }
4255
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonCmsPostsBackofficeComponent, decorators: [{
4256
+ type: Component,
4257
+ args: [{ selector: 'app-taon-cms-posts-backoffice', changeDetection: ChangeDetectionStrategy.OnPush, imports: [MatButtonModule, TaonDatatableComponent], providers: [TaonCmsContentApiService], template: "<h1>CMS posts</h1>\n@if (loading()) {\n <p role=\"status\">Loading posts...</p>\n}\n@if (error()) {\n <p role=\"alert\">{{ error() }}</p>\n}\n<taon-datatable\n [entityCrudController]=\"crud\"\n [columns]=\"columns\"\n [allowedColumns]=\"['id', 'title', 'status']\"\n searchMode=\"advanced\"\n (addingItem)=\"add()\">\n</taon-datatable>\n", styles: [":host{display:block}\n"] }]
4258
+ }], propDecorators: { datatable: [{
4259
+ type: ViewChild,
4260
+ args: [TaonDatatableComponent]
4261
+ }] } });
4262
+
4263
+ var taonCmsPostsBackoffice_component = /*#__PURE__*/Object.freeze({
4264
+ __proto__: null,
4265
+ TaonCmsPostsBackofficeComponent: TaonCmsPostsBackofficeComponent
4266
+ });
4267
+
4268
+ //#region imports
4269
+ //#endregion
4270
+ const resolvePost = async (route) => {
4271
+ const id = Number(route.paramMap.get('id'));
4272
+ if (!Number.isSafeInteger(id) || id <= 0) {
4273
+ throw new Error('Invalid Post ID');
4274
+ }
4275
+ const apiService = inject(TaonCmsContentApiService);
4276
+ const post = (await apiService.taonCmsContentController.getBy(id).request())
4277
+ .body.json;
4278
+ if (!post) {
4279
+ throw new Error('Post not found');
4280
+ }
4281
+ return post;
4282
+ };
4283
+ const TaonCmsPostsBackofficeRoutes = [
4284
+ {
4285
+ path: '',
4286
+ pathMatch: 'full',
4287
+ loadComponent: () => Promise.resolve().then(function () { return taonCmsPostsBackoffice_component; }).then(m => m.TaonCmsPostsBackofficeComponent),
4288
+ },
4289
+ {
4290
+ path: ':id',
4291
+ data: { hideInNavigation: true },
4292
+ providers: [TaonCmsContentApiService],
4293
+ resolve: { post: resolvePost },
4294
+ loadComponent: () => Promise.resolve().then(function () { return taonCmsPostDetailsPage_component; }).then(m => m.TaonCmsPostDetailsPageComponent),
4295
+ },
4296
+ ];
4297
+ /**
4298
+ * By default exporting TaonCmsPostsBackofficeRoutes,
4299
+ * the command `taon generate:app:routes`
4300
+ * will automatically add them to the root routes in ./src/app.ts.
4301
+ */
4302
+ // export default TaonCmsPostsBackofficeRoutes;
4303
+
2425
4304
  // @ts-nocheck
2426
4305
  // This file is auto-generated during init process. Do not modify.
2427
4306
  // This disable this auto generate file.
@@ -2431,9 +4310,561 @@ var TaonCmsTagUtils;
2431
4310
  /* */
2432
4311
  var index = {};
2433
4312
 
4313
+ var index$1 = /*#__PURE__*/Object.freeze({
4314
+ __proto__: null,
4315
+ APP_ID: APP_ID,
4316
+ BUILD_BASE_HREF: BUILD_BASE_HREF,
4317
+ BUILD_FRAMEWORK_CLI_NAME: BUILD_FRAMEWORK_CLI_NAME,
4318
+ CURRENT_PACKAGE_TAON_VERSION: CURRENT_PACKAGE_TAON_VERSION,
4319
+ CURRENT_PACKAGE_VERSION: CURRENT_PACKAGE_VERSION,
4320
+ ENV_ANGULAR_NODE_APP_BUILD_BASE_HREF: ENV_ANGULAR_NODE_APP_BUILD_BASE_HREF,
4321
+ ENV_ANGULAR_NODE_APP_BUILD_ELECTRON_SHOW_DEV_TOOLS: ENV_ANGULAR_NODE_APP_BUILD_ELECTRON_SHOW_DEV_TOOLS,
4322
+ ENV_ANGULAR_NODE_APP_BUILD_GEN_ONLY_CLIENT_CODE: ENV_ANGULAR_NODE_APP_BUILD_GEN_ONLY_CLIENT_CODE,
4323
+ ENV_ANGULAR_NODE_APP_BUILD_OVERRIDE_OUTPUT_PATH: ENV_ANGULAR_NODE_APP_BUILD_OVERRIDE_OUTPUT_PATH,
4324
+ ENV_ANGULAR_NODE_APP_BUILD_PROD: ENV_ANGULAR_NODE_APP_BUILD_PROD,
4325
+ ENV_ANGULAR_NODE_APP_BUILD_PWA_DISABLE_SERVICE_WORKER: ENV_ANGULAR_NODE_APP_BUILD_PWA_DISABLE_SERVICE_WORKER,
4326
+ ENV_ANGULAR_NODE_APP_BUILD_PWA_NAME: ENV_ANGULAR_NODE_APP_BUILD_PWA_NAME,
4327
+ ENV_ANGULAR_NODE_APP_BUILD_PWA_SHORT_NAME: ENV_ANGULAR_NODE_APP_BUILD_PWA_SHORT_NAME,
4328
+ ENV_ANGULAR_NODE_APP_BUILD_PWA_START_URL: ENV_ANGULAR_NODE_APP_BUILD_PWA_START_URL,
4329
+ ENV_ANGULAR_NODE_APP_BUILD_SSR: ENV_ANGULAR_NODE_APP_BUILD_SSR,
4330
+ ENV_ANGULAR_NODE_APP_BUILD_WATCH: ENV_ANGULAR_NODE_APP_BUILD_WATCH,
4331
+ ENV_ANGULAR_NODE_APP_BUILD_WEBSQL: ENV_ANGULAR_NODE_APP_BUILD_WEBSQL,
4332
+ ENV_ANGULAR_NODE_APP_CONFIG_GOOGLE_CLIENT_ID: ENV_ANGULAR_NODE_APP_CONFIG_GOOGLE_CLIENT_ID,
4333
+ ENV_ANGULAR_NODE_APP_CONFIG_GOOGLE_SECRET: ENV_ANGULAR_NODE_APP_CONFIG_GOOGLE_SECRET,
4334
+ ENV_ANGULAR_NODE_APP_CONFIG_SUPER_USERS: ENV_ANGULAR_NODE_APP_CONFIG_SUPER_USERS,
4335
+ ENV_ANGULAR_NODE_APP_CONTAINER_END: ENV_ANGULAR_NODE_APP_CONTAINER_END,
4336
+ ENV_ANGULAR_NODE_APP_CONTAINER_ONLY: ENV_ANGULAR_NODE_APP_CONTAINER_ONLY,
4337
+ ENV_ANGULAR_NODE_APP_CONTAINER_SKIP: ENV_ANGULAR_NODE_APP_CONTAINER_SKIP,
4338
+ ENV_ANGULAR_NODE_APP_CONTAINER_SKIP_RELEASED: ENV_ANGULAR_NODE_APP_CONTAINER_SKIP_RELEASED,
4339
+ ENV_ANGULAR_NODE_APP_CONTAINER_START: ENV_ANGULAR_NODE_APP_CONTAINER_START,
4340
+ ENV_ANGULAR_NODE_APP_COPY_TO_MANAGER_BEFORE_COPY_HOOK: ENV_ANGULAR_NODE_APP_COPY_TO_MANAGER_BEFORE_COPY_HOOK,
4341
+ ENV_ANGULAR_NODE_APP_COPY_TO_MANAGER_COPY_TO_LOCATIONS: ENV_ANGULAR_NODE_APP_COPY_TO_MANAGER_COPY_TO_LOCATIONS,
4342
+ ENV_ANGULAR_NODE_APP_COPY_TO_MANAGER_COPY_TO_PROJECTS: ENV_ANGULAR_NODE_APP_COPY_TO_MANAGER_COPY_TO_PROJECTS,
4343
+ ENV_ANGULAR_NODE_APP_COPY_TO_MANAGER_SKIP: ENV_ANGULAR_NODE_APP_COPY_TO_MANAGER_SKIP,
4344
+ ENV_ANGULAR_NODE_APP_DOCKER_ADDITIONAL_CONTAINER: ENV_ANGULAR_NODE_APP_DOCKER_ADDITIONAL_CONTAINER,
4345
+ ENV_ANGULAR_NODE_APP_DOCKER_SKIP_START_IN_ORDER: ENV_ANGULAR_NODE_APP_DOCKER_SKIP_START_IN_ORDER,
4346
+ ENV_ANGULAR_NODE_APP_DOCKER_SKIP_USING_MYSQL_DB: ENV_ANGULAR_NODE_APP_DOCKER_SKIP_USING_MYSQL_DB,
4347
+ ENV_ANGULAR_NODE_APP_FINISH_CALLBACK: ENV_ANGULAR_NODE_APP_FINISH_CALLBACK,
4348
+ ENV_ANGULAR_NODE_APP_INIT_BRANDING: ENV_ANGULAR_NODE_APP_INIT_BRANDING,
4349
+ ENV_ANGULAR_NODE_APP_INIT_STRUCT: ENV_ANGULAR_NODE_APP_INIT_STRUCT,
4350
+ ENV_ANGULAR_NODE_APP_IS_CI_PROCESS: ENV_ANGULAR_NODE_APP_IS_CI_PROCESS,
4351
+ ENV_ANGULAR_NODE_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_BACKGROUND: ENV_ANGULAR_NODE_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_BACKGROUND,
4352
+ ENV_ANGULAR_NODE_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER: ENV_ANGULAR_NODE_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER,
4353
+ ENV_ANGULAR_NODE_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER_NAME: ENV_ANGULAR_NODE_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER_NAME,
4354
+ ENV_ANGULAR_NODE_APP_PURPOSE: ENV_ANGULAR_NODE_APP_PURPOSE,
4355
+ ENV_ANGULAR_NODE_APP_RECURSIVE_ACTION: ENV_ANGULAR_NODE_APP_RECURSIVE_ACTION,
4356
+ ENV_ANGULAR_NODE_APP_RELEASE_AUTO_RELEASE_TASK_NAME: ENV_ANGULAR_NODE_APP_RELEASE_AUTO_RELEASE_TASK_NAME,
4357
+ ENV_ANGULAR_NODE_APP_RELEASE_AUTO_RELEASE_USING_CONFIG: ENV_ANGULAR_NODE_APP_RELEASE_AUTO_RELEASE_USING_CONFIG,
4358
+ ENV_ANGULAR_NODE_APP_RELEASE_CLI_COMPRESS: ENV_ANGULAR_NODE_APP_RELEASE_CLI_COMPRESS,
4359
+ ENV_ANGULAR_NODE_APP_RELEASE_CLI_INCLUDE_NODE_MODULES: ENV_ANGULAR_NODE_APP_RELEASE_CLI_INCLUDE_NODE_MODULES,
4360
+ ENV_ANGULAR_NODE_APP_RELEASE_CLI_MINIFY: ENV_ANGULAR_NODE_APP_RELEASE_CLI_MINIFY,
4361
+ ENV_ANGULAR_NODE_APP_RELEASE_CLI_OBSCURE: ENV_ANGULAR_NODE_APP_RELEASE_CLI_OBSCURE,
4362
+ ENV_ANGULAR_NODE_APP_RELEASE_CLI_UGLIFY: ENV_ANGULAR_NODE_APP_RELEASE_CLI_UGLIFY,
4363
+ ENV_ANGULAR_NODE_APP_RELEASE_ENV_NAME: ENV_ANGULAR_NODE_APP_RELEASE_ENV_NAME,
4364
+ ENV_ANGULAR_NODE_APP_RELEASE_ENV_NUMBER: ENV_ANGULAR_NODE_APP_RELEASE_ENV_NUMBER,
4365
+ ENV_ANGULAR_NODE_APP_RELEASE_INSTALL_LOCALLY: ENV_ANGULAR_NODE_APP_RELEASE_INSTALL_LOCALLY,
4366
+ ENV_ANGULAR_NODE_APP_RELEASE_LIB_COMPRESS: ENV_ANGULAR_NODE_APP_RELEASE_LIB_COMPRESS,
4367
+ ENV_ANGULAR_NODE_APP_RELEASE_LIB_DO_NOT_INCLUDE_LIB_FILES: ENV_ANGULAR_NODE_APP_RELEASE_LIB_DO_NOT_INCLUDE_LIB_FILES,
4368
+ ENV_ANGULAR_NODE_APP_RELEASE_LIB_INCLUDE_SOURCE_MAPS: ENV_ANGULAR_NODE_APP_RELEASE_LIB_INCLUDE_SOURCE_MAPS,
4369
+ ENV_ANGULAR_NODE_APP_RELEASE_LIB_OBSCURE_FILE_BY_FILE: ENV_ANGULAR_NODE_APP_RELEASE_LIB_OBSCURE_FILE_BY_FILE,
4370
+ ENV_ANGULAR_NODE_APP_RELEASE_LIB_REMOVE_DTS: ENV_ANGULAR_NODE_APP_RELEASE_LIB_REMOVE_DTS,
4371
+ ENV_ANGULAR_NODE_APP_RELEASE_LIB_UGLIFY_FILE_BY_FILE: ENV_ANGULAR_NODE_APP_RELEASE_LIB_UGLIFY_FILE_BY_FILE,
4372
+ ENV_ANGULAR_NODE_APP_RELEASE_NODE_BACKEND_APP_MINIFY: ENV_ANGULAR_NODE_APP_RELEASE_NODE_BACKEND_APP_MINIFY,
4373
+ ENV_ANGULAR_NODE_APP_RELEASE_PUSH_TO_ALL_ORIGINS_WHEN_LOCAL_RELEASE_BRANCH: ENV_ANGULAR_NODE_APP_RELEASE_PUSH_TO_ALL_ORIGINS_WHEN_LOCAL_RELEASE_BRANCH,
4374
+ ENV_ANGULAR_NODE_APP_RELEASE_RELEASE_TYPE: ENV_ANGULAR_NODE_APP_RELEASE_RELEASE_TYPE,
4375
+ ENV_ANGULAR_NODE_APP_RELEASE_RELEASE_VERSION_BUMP_TYPE: ENV_ANGULAR_NODE_APP_RELEASE_RELEASE_VERSION_BUMP_TYPE,
4376
+ ENV_ANGULAR_NODE_APP_RELEASE_REMOVE_RELEASE_OUTPUT_AFTER_LOCAL_INSTALL: ENV_ANGULAR_NODE_APP_RELEASE_REMOVE_RELEASE_OUTPUT_AFTER_LOCAL_INSTALL,
4377
+ ENV_ANGULAR_NODE_APP_RELEASE_RESOLVED_NEW_VERSION: ENV_ANGULAR_NODE_APP_RELEASE_RESOLVED_NEW_VERSION,
4378
+ ENV_ANGULAR_NODE_APP_RELEASE_SKIP_BUILDING_ARTIFACTS: ENV_ANGULAR_NODE_APP_RELEASE_SKIP_BUILDING_ARTIFACTS,
4379
+ ENV_ANGULAR_NODE_APP_RELEASE_SKIP_CODE_CUTTING: ENV_ANGULAR_NODE_APP_RELEASE_SKIP_CODE_CUTTING,
4380
+ ENV_ANGULAR_NODE_APP_RELEASE_SKIP_DEPLOY: ENV_ANGULAR_NODE_APP_RELEASE_SKIP_DEPLOY,
4381
+ ENV_ANGULAR_NODE_APP_RELEASE_SKIP_NPM_PUBLISH: ENV_ANGULAR_NODE_APP_RELEASE_SKIP_NPM_PUBLISH,
4382
+ ENV_ANGULAR_NODE_APP_RELEASE_SKIP_RELEASE_QUESTION: ENV_ANGULAR_NODE_APP_RELEASE_SKIP_RELEASE_QUESTION,
4383
+ ENV_ANGULAR_NODE_APP_RELEASE_SKIP_RESOLVING_GIT_CHANGES: ENV_ANGULAR_NODE_APP_RELEASE_SKIP_RESOLVING_GIT_CHANGES,
4384
+ ENV_ANGULAR_NODE_APP_RELEASE_SKIP_TAG_GIT_PUSH: ENV_ANGULAR_NODE_APP_RELEASE_SKIP_TAG_GIT_PUSH,
4385
+ ENV_ANGULAR_NODE_APP_RELEASE_TAON_INSTANCE_IP: ENV_ANGULAR_NODE_APP_RELEASE_TAON_INSTANCE_IP,
4386
+ ENV_ANGULAR_NODE_APP_RELEASE_TARGET_ARTIFACT: ENV_ANGULAR_NODE_APP_RELEASE_TARGET_ARTIFACT,
4387
+ ENV_ANGULAR_NODE_APP_RELEASE_USE_LOCAL_RELEASE_BRANCH: ENV_ANGULAR_NODE_APP_RELEASE_USE_LOCAL_RELEASE_BRANCH,
4388
+ ENV_ANGULAR_NODE_APP_WEBSITE_DOMAIN: ENV_ANGULAR_NODE_APP_WEBSITE_DOMAIN,
4389
+ ENV_ANGULAR_NODE_APP_WEBSITE_TITLE: ENV_ANGULAR_NODE_APP_WEBSITE_TITLE,
4390
+ ENV_ANGULAR_NODE_APP_WEBSITE_USE_DOMAIN: ENV_ANGULAR_NODE_APP_WEBSITE_USE_DOMAIN,
4391
+ ENV_DOCS_WEBAPP_BUILD_BASE_HREF: ENV_DOCS_WEBAPP_BUILD_BASE_HREF,
4392
+ ENV_DOCS_WEBAPP_BUILD_ELECTRON_SHOW_DEV_TOOLS: ENV_DOCS_WEBAPP_BUILD_ELECTRON_SHOW_DEV_TOOLS,
4393
+ ENV_DOCS_WEBAPP_BUILD_GEN_ONLY_CLIENT_CODE: ENV_DOCS_WEBAPP_BUILD_GEN_ONLY_CLIENT_CODE,
4394
+ ENV_DOCS_WEBAPP_BUILD_OVERRIDE_OUTPUT_PATH: ENV_DOCS_WEBAPP_BUILD_OVERRIDE_OUTPUT_PATH,
4395
+ ENV_DOCS_WEBAPP_BUILD_PROD: ENV_DOCS_WEBAPP_BUILD_PROD,
4396
+ ENV_DOCS_WEBAPP_BUILD_PWA_DISABLE_SERVICE_WORKER: ENV_DOCS_WEBAPP_BUILD_PWA_DISABLE_SERVICE_WORKER,
4397
+ ENV_DOCS_WEBAPP_BUILD_PWA_NAME: ENV_DOCS_WEBAPP_BUILD_PWA_NAME,
4398
+ ENV_DOCS_WEBAPP_BUILD_PWA_SHORT_NAME: ENV_DOCS_WEBAPP_BUILD_PWA_SHORT_NAME,
4399
+ ENV_DOCS_WEBAPP_BUILD_PWA_START_URL: ENV_DOCS_WEBAPP_BUILD_PWA_START_URL,
4400
+ ENV_DOCS_WEBAPP_BUILD_SSR: ENV_DOCS_WEBAPP_BUILD_SSR,
4401
+ ENV_DOCS_WEBAPP_BUILD_WATCH: ENV_DOCS_WEBAPP_BUILD_WATCH,
4402
+ ENV_DOCS_WEBAPP_BUILD_WEBSQL: ENV_DOCS_WEBAPP_BUILD_WEBSQL,
4403
+ ENV_DOCS_WEBAPP_CONFIG_GOOGLE_CLIENT_ID: ENV_DOCS_WEBAPP_CONFIG_GOOGLE_CLIENT_ID,
4404
+ ENV_DOCS_WEBAPP_CONFIG_GOOGLE_SECRET: ENV_DOCS_WEBAPP_CONFIG_GOOGLE_SECRET,
4405
+ ENV_DOCS_WEBAPP_CONFIG_SUPER_USERS: ENV_DOCS_WEBAPP_CONFIG_SUPER_USERS,
4406
+ ENV_DOCS_WEBAPP_CONTAINER_END: ENV_DOCS_WEBAPP_CONTAINER_END,
4407
+ ENV_DOCS_WEBAPP_CONTAINER_ONLY: ENV_DOCS_WEBAPP_CONTAINER_ONLY,
4408
+ ENV_DOCS_WEBAPP_CONTAINER_SKIP: ENV_DOCS_WEBAPP_CONTAINER_SKIP,
4409
+ ENV_DOCS_WEBAPP_CONTAINER_SKIP_RELEASED: ENV_DOCS_WEBAPP_CONTAINER_SKIP_RELEASED,
4410
+ ENV_DOCS_WEBAPP_CONTAINER_START: ENV_DOCS_WEBAPP_CONTAINER_START,
4411
+ ENV_DOCS_WEBAPP_COPY_TO_MANAGER_BEFORE_COPY_HOOK: ENV_DOCS_WEBAPP_COPY_TO_MANAGER_BEFORE_COPY_HOOK,
4412
+ ENV_DOCS_WEBAPP_COPY_TO_MANAGER_COPY_TO_LOCATIONS: ENV_DOCS_WEBAPP_COPY_TO_MANAGER_COPY_TO_LOCATIONS,
4413
+ ENV_DOCS_WEBAPP_COPY_TO_MANAGER_COPY_TO_PROJECTS: ENV_DOCS_WEBAPP_COPY_TO_MANAGER_COPY_TO_PROJECTS,
4414
+ ENV_DOCS_WEBAPP_COPY_TO_MANAGER_SKIP: ENV_DOCS_WEBAPP_COPY_TO_MANAGER_SKIP,
4415
+ ENV_DOCS_WEBAPP_DOCKER_ADDITIONAL_CONTAINER: ENV_DOCS_WEBAPP_DOCKER_ADDITIONAL_CONTAINER,
4416
+ ENV_DOCS_WEBAPP_DOCKER_SKIP_START_IN_ORDER: ENV_DOCS_WEBAPP_DOCKER_SKIP_START_IN_ORDER,
4417
+ ENV_DOCS_WEBAPP_DOCKER_SKIP_USING_MYSQL_DB: ENV_DOCS_WEBAPP_DOCKER_SKIP_USING_MYSQL_DB,
4418
+ ENV_DOCS_WEBAPP_FINISH_CALLBACK: ENV_DOCS_WEBAPP_FINISH_CALLBACK,
4419
+ ENV_DOCS_WEBAPP_INIT_BRANDING: ENV_DOCS_WEBAPP_INIT_BRANDING,
4420
+ ENV_DOCS_WEBAPP_INIT_STRUCT: ENV_DOCS_WEBAPP_INIT_STRUCT,
4421
+ ENV_DOCS_WEBAPP_IS_CI_PROCESS: ENV_DOCS_WEBAPP_IS_CI_PROCESS,
4422
+ ENV_DOCS_WEBAPP_LOADING_PRE_ANGULAR_BOOTSTRAP_BACKGROUND: ENV_DOCS_WEBAPP_LOADING_PRE_ANGULAR_BOOTSTRAP_BACKGROUND,
4423
+ ENV_DOCS_WEBAPP_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER: ENV_DOCS_WEBAPP_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER,
4424
+ ENV_DOCS_WEBAPP_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER_NAME: ENV_DOCS_WEBAPP_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER_NAME,
4425
+ ENV_DOCS_WEBAPP_PURPOSE: ENV_DOCS_WEBAPP_PURPOSE,
4426
+ ENV_DOCS_WEBAPP_RECURSIVE_ACTION: ENV_DOCS_WEBAPP_RECURSIVE_ACTION,
4427
+ ENV_DOCS_WEBAPP_RELEASE_AUTO_RELEASE_TASK_NAME: ENV_DOCS_WEBAPP_RELEASE_AUTO_RELEASE_TASK_NAME,
4428
+ ENV_DOCS_WEBAPP_RELEASE_AUTO_RELEASE_USING_CONFIG: ENV_DOCS_WEBAPP_RELEASE_AUTO_RELEASE_USING_CONFIG,
4429
+ ENV_DOCS_WEBAPP_RELEASE_CLI_COMPRESS: ENV_DOCS_WEBAPP_RELEASE_CLI_COMPRESS,
4430
+ ENV_DOCS_WEBAPP_RELEASE_CLI_INCLUDE_NODE_MODULES: ENV_DOCS_WEBAPP_RELEASE_CLI_INCLUDE_NODE_MODULES,
4431
+ ENV_DOCS_WEBAPP_RELEASE_CLI_MINIFY: ENV_DOCS_WEBAPP_RELEASE_CLI_MINIFY,
4432
+ ENV_DOCS_WEBAPP_RELEASE_CLI_OBSCURE: ENV_DOCS_WEBAPP_RELEASE_CLI_OBSCURE,
4433
+ ENV_DOCS_WEBAPP_RELEASE_CLI_UGLIFY: ENV_DOCS_WEBAPP_RELEASE_CLI_UGLIFY,
4434
+ ENV_DOCS_WEBAPP_RELEASE_ENV_NAME: ENV_DOCS_WEBAPP_RELEASE_ENV_NAME,
4435
+ ENV_DOCS_WEBAPP_RELEASE_ENV_NUMBER: ENV_DOCS_WEBAPP_RELEASE_ENV_NUMBER,
4436
+ ENV_DOCS_WEBAPP_RELEASE_INSTALL_LOCALLY: ENV_DOCS_WEBAPP_RELEASE_INSTALL_LOCALLY,
4437
+ ENV_DOCS_WEBAPP_RELEASE_LIB_COMPRESS: ENV_DOCS_WEBAPP_RELEASE_LIB_COMPRESS,
4438
+ ENV_DOCS_WEBAPP_RELEASE_LIB_DO_NOT_INCLUDE_LIB_FILES: ENV_DOCS_WEBAPP_RELEASE_LIB_DO_NOT_INCLUDE_LIB_FILES,
4439
+ ENV_DOCS_WEBAPP_RELEASE_LIB_INCLUDE_SOURCE_MAPS: ENV_DOCS_WEBAPP_RELEASE_LIB_INCLUDE_SOURCE_MAPS,
4440
+ ENV_DOCS_WEBAPP_RELEASE_LIB_OBSCURE_FILE_BY_FILE: ENV_DOCS_WEBAPP_RELEASE_LIB_OBSCURE_FILE_BY_FILE,
4441
+ ENV_DOCS_WEBAPP_RELEASE_LIB_REMOVE_DTS: ENV_DOCS_WEBAPP_RELEASE_LIB_REMOVE_DTS,
4442
+ ENV_DOCS_WEBAPP_RELEASE_LIB_UGLIFY_FILE_BY_FILE: ENV_DOCS_WEBAPP_RELEASE_LIB_UGLIFY_FILE_BY_FILE,
4443
+ ENV_DOCS_WEBAPP_RELEASE_NODE_BACKEND_APP_MINIFY: ENV_DOCS_WEBAPP_RELEASE_NODE_BACKEND_APP_MINIFY,
4444
+ ENV_DOCS_WEBAPP_RELEASE_PUSH_TO_ALL_ORIGINS_WHEN_LOCAL_RELEASE_BRANCH: ENV_DOCS_WEBAPP_RELEASE_PUSH_TO_ALL_ORIGINS_WHEN_LOCAL_RELEASE_BRANCH,
4445
+ ENV_DOCS_WEBAPP_RELEASE_RELEASE_TYPE: ENV_DOCS_WEBAPP_RELEASE_RELEASE_TYPE,
4446
+ ENV_DOCS_WEBAPP_RELEASE_RELEASE_VERSION_BUMP_TYPE: ENV_DOCS_WEBAPP_RELEASE_RELEASE_VERSION_BUMP_TYPE,
4447
+ ENV_DOCS_WEBAPP_RELEASE_REMOVE_RELEASE_OUTPUT_AFTER_LOCAL_INSTALL: ENV_DOCS_WEBAPP_RELEASE_REMOVE_RELEASE_OUTPUT_AFTER_LOCAL_INSTALL,
4448
+ ENV_DOCS_WEBAPP_RELEASE_RESOLVED_NEW_VERSION: ENV_DOCS_WEBAPP_RELEASE_RESOLVED_NEW_VERSION,
4449
+ ENV_DOCS_WEBAPP_RELEASE_SKIP_BUILDING_ARTIFACTS: ENV_DOCS_WEBAPP_RELEASE_SKIP_BUILDING_ARTIFACTS,
4450
+ ENV_DOCS_WEBAPP_RELEASE_SKIP_CODE_CUTTING: ENV_DOCS_WEBAPP_RELEASE_SKIP_CODE_CUTTING,
4451
+ ENV_DOCS_WEBAPP_RELEASE_SKIP_DEPLOY: ENV_DOCS_WEBAPP_RELEASE_SKIP_DEPLOY,
4452
+ ENV_DOCS_WEBAPP_RELEASE_SKIP_NPM_PUBLISH: ENV_DOCS_WEBAPP_RELEASE_SKIP_NPM_PUBLISH,
4453
+ ENV_DOCS_WEBAPP_RELEASE_SKIP_RELEASE_QUESTION: ENV_DOCS_WEBAPP_RELEASE_SKIP_RELEASE_QUESTION,
4454
+ ENV_DOCS_WEBAPP_RELEASE_SKIP_RESOLVING_GIT_CHANGES: ENV_DOCS_WEBAPP_RELEASE_SKIP_RESOLVING_GIT_CHANGES,
4455
+ ENV_DOCS_WEBAPP_RELEASE_SKIP_TAG_GIT_PUSH: ENV_DOCS_WEBAPP_RELEASE_SKIP_TAG_GIT_PUSH,
4456
+ ENV_DOCS_WEBAPP_RELEASE_TAON_INSTANCE_IP: ENV_DOCS_WEBAPP_RELEASE_TAON_INSTANCE_IP,
4457
+ ENV_DOCS_WEBAPP_RELEASE_TARGET_ARTIFACT: ENV_DOCS_WEBAPP_RELEASE_TARGET_ARTIFACT,
4458
+ ENV_DOCS_WEBAPP_RELEASE_USE_LOCAL_RELEASE_BRANCH: ENV_DOCS_WEBAPP_RELEASE_USE_LOCAL_RELEASE_BRANCH,
4459
+ ENV_DOCS_WEBAPP_WEBSITE_DOMAIN: ENV_DOCS_WEBAPP_WEBSITE_DOMAIN,
4460
+ ENV_DOCS_WEBAPP_WEBSITE_TITLE: ENV_DOCS_WEBAPP_WEBSITE_TITLE,
4461
+ ENV_DOCS_WEBAPP_WEBSITE_USE_DOMAIN: ENV_DOCS_WEBAPP_WEBSITE_USE_DOMAIN,
4462
+ ENV_ELECTRON_APP_BUILD_BASE_HREF: ENV_ELECTRON_APP_BUILD_BASE_HREF,
4463
+ ENV_ELECTRON_APP_BUILD_ELECTRON_SHOW_DEV_TOOLS: ENV_ELECTRON_APP_BUILD_ELECTRON_SHOW_DEV_TOOLS,
4464
+ ENV_ELECTRON_APP_BUILD_GEN_ONLY_CLIENT_CODE: ENV_ELECTRON_APP_BUILD_GEN_ONLY_CLIENT_CODE,
4465
+ ENV_ELECTRON_APP_BUILD_OVERRIDE_OUTPUT_PATH: ENV_ELECTRON_APP_BUILD_OVERRIDE_OUTPUT_PATH,
4466
+ ENV_ELECTRON_APP_BUILD_PROD: ENV_ELECTRON_APP_BUILD_PROD,
4467
+ ENV_ELECTRON_APP_BUILD_PWA_DISABLE_SERVICE_WORKER: ENV_ELECTRON_APP_BUILD_PWA_DISABLE_SERVICE_WORKER,
4468
+ ENV_ELECTRON_APP_BUILD_PWA_NAME: ENV_ELECTRON_APP_BUILD_PWA_NAME,
4469
+ ENV_ELECTRON_APP_BUILD_PWA_SHORT_NAME: ENV_ELECTRON_APP_BUILD_PWA_SHORT_NAME,
4470
+ ENV_ELECTRON_APP_BUILD_PWA_START_URL: ENV_ELECTRON_APP_BUILD_PWA_START_URL,
4471
+ ENV_ELECTRON_APP_BUILD_SSR: ENV_ELECTRON_APP_BUILD_SSR,
4472
+ ENV_ELECTRON_APP_BUILD_WATCH: ENV_ELECTRON_APP_BUILD_WATCH,
4473
+ ENV_ELECTRON_APP_BUILD_WEBSQL: ENV_ELECTRON_APP_BUILD_WEBSQL,
4474
+ ENV_ELECTRON_APP_CONFIG_GOOGLE_CLIENT_ID: ENV_ELECTRON_APP_CONFIG_GOOGLE_CLIENT_ID,
4475
+ ENV_ELECTRON_APP_CONFIG_GOOGLE_SECRET: ENV_ELECTRON_APP_CONFIG_GOOGLE_SECRET,
4476
+ ENV_ELECTRON_APP_CONFIG_SUPER_USERS: ENV_ELECTRON_APP_CONFIG_SUPER_USERS,
4477
+ ENV_ELECTRON_APP_CONTAINER_END: ENV_ELECTRON_APP_CONTAINER_END,
4478
+ ENV_ELECTRON_APP_CONTAINER_ONLY: ENV_ELECTRON_APP_CONTAINER_ONLY,
4479
+ ENV_ELECTRON_APP_CONTAINER_SKIP: ENV_ELECTRON_APP_CONTAINER_SKIP,
4480
+ ENV_ELECTRON_APP_CONTAINER_SKIP_RELEASED: ENV_ELECTRON_APP_CONTAINER_SKIP_RELEASED,
4481
+ ENV_ELECTRON_APP_CONTAINER_START: ENV_ELECTRON_APP_CONTAINER_START,
4482
+ ENV_ELECTRON_APP_COPY_TO_MANAGER_BEFORE_COPY_HOOK: ENV_ELECTRON_APP_COPY_TO_MANAGER_BEFORE_COPY_HOOK,
4483
+ ENV_ELECTRON_APP_COPY_TO_MANAGER_COPY_TO_LOCATIONS: ENV_ELECTRON_APP_COPY_TO_MANAGER_COPY_TO_LOCATIONS,
4484
+ ENV_ELECTRON_APP_COPY_TO_MANAGER_COPY_TO_PROJECTS: ENV_ELECTRON_APP_COPY_TO_MANAGER_COPY_TO_PROJECTS,
4485
+ ENV_ELECTRON_APP_COPY_TO_MANAGER_SKIP: ENV_ELECTRON_APP_COPY_TO_MANAGER_SKIP,
4486
+ ENV_ELECTRON_APP_DOCKER_ADDITIONAL_CONTAINER: ENV_ELECTRON_APP_DOCKER_ADDITIONAL_CONTAINER,
4487
+ ENV_ELECTRON_APP_DOCKER_SKIP_START_IN_ORDER: ENV_ELECTRON_APP_DOCKER_SKIP_START_IN_ORDER,
4488
+ ENV_ELECTRON_APP_DOCKER_SKIP_USING_MYSQL_DB: ENV_ELECTRON_APP_DOCKER_SKIP_USING_MYSQL_DB,
4489
+ ENV_ELECTRON_APP_FINISH_CALLBACK: ENV_ELECTRON_APP_FINISH_CALLBACK,
4490
+ ENV_ELECTRON_APP_INIT_BRANDING: ENV_ELECTRON_APP_INIT_BRANDING,
4491
+ ENV_ELECTRON_APP_INIT_STRUCT: ENV_ELECTRON_APP_INIT_STRUCT,
4492
+ ENV_ELECTRON_APP_IS_CI_PROCESS: ENV_ELECTRON_APP_IS_CI_PROCESS,
4493
+ ENV_ELECTRON_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_BACKGROUND: ENV_ELECTRON_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_BACKGROUND,
4494
+ ENV_ELECTRON_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER: ENV_ELECTRON_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER,
4495
+ ENV_ELECTRON_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER_NAME: ENV_ELECTRON_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER_NAME,
4496
+ ENV_ELECTRON_APP_PURPOSE: ENV_ELECTRON_APP_PURPOSE,
4497
+ ENV_ELECTRON_APP_RECURSIVE_ACTION: ENV_ELECTRON_APP_RECURSIVE_ACTION,
4498
+ ENV_ELECTRON_APP_RELEASE_AUTO_RELEASE_TASK_NAME: ENV_ELECTRON_APP_RELEASE_AUTO_RELEASE_TASK_NAME,
4499
+ ENV_ELECTRON_APP_RELEASE_AUTO_RELEASE_USING_CONFIG: ENV_ELECTRON_APP_RELEASE_AUTO_RELEASE_USING_CONFIG,
4500
+ ENV_ELECTRON_APP_RELEASE_CLI_COMPRESS: ENV_ELECTRON_APP_RELEASE_CLI_COMPRESS,
4501
+ ENV_ELECTRON_APP_RELEASE_CLI_INCLUDE_NODE_MODULES: ENV_ELECTRON_APP_RELEASE_CLI_INCLUDE_NODE_MODULES,
4502
+ ENV_ELECTRON_APP_RELEASE_CLI_MINIFY: ENV_ELECTRON_APP_RELEASE_CLI_MINIFY,
4503
+ ENV_ELECTRON_APP_RELEASE_CLI_OBSCURE: ENV_ELECTRON_APP_RELEASE_CLI_OBSCURE,
4504
+ ENV_ELECTRON_APP_RELEASE_CLI_UGLIFY: ENV_ELECTRON_APP_RELEASE_CLI_UGLIFY,
4505
+ ENV_ELECTRON_APP_RELEASE_ENV_NAME: ENV_ELECTRON_APP_RELEASE_ENV_NAME,
4506
+ ENV_ELECTRON_APP_RELEASE_ENV_NUMBER: ENV_ELECTRON_APP_RELEASE_ENV_NUMBER,
4507
+ ENV_ELECTRON_APP_RELEASE_INSTALL_LOCALLY: ENV_ELECTRON_APP_RELEASE_INSTALL_LOCALLY,
4508
+ ENV_ELECTRON_APP_RELEASE_LIB_COMPRESS: ENV_ELECTRON_APP_RELEASE_LIB_COMPRESS,
4509
+ ENV_ELECTRON_APP_RELEASE_LIB_DO_NOT_INCLUDE_LIB_FILES: ENV_ELECTRON_APP_RELEASE_LIB_DO_NOT_INCLUDE_LIB_FILES,
4510
+ ENV_ELECTRON_APP_RELEASE_LIB_INCLUDE_SOURCE_MAPS: ENV_ELECTRON_APP_RELEASE_LIB_INCLUDE_SOURCE_MAPS,
4511
+ ENV_ELECTRON_APP_RELEASE_LIB_OBSCURE_FILE_BY_FILE: ENV_ELECTRON_APP_RELEASE_LIB_OBSCURE_FILE_BY_FILE,
4512
+ ENV_ELECTRON_APP_RELEASE_LIB_REMOVE_DTS: ENV_ELECTRON_APP_RELEASE_LIB_REMOVE_DTS,
4513
+ ENV_ELECTRON_APP_RELEASE_LIB_UGLIFY_FILE_BY_FILE: ENV_ELECTRON_APP_RELEASE_LIB_UGLIFY_FILE_BY_FILE,
4514
+ ENV_ELECTRON_APP_RELEASE_NODE_BACKEND_APP_MINIFY: ENV_ELECTRON_APP_RELEASE_NODE_BACKEND_APP_MINIFY,
4515
+ ENV_ELECTRON_APP_RELEASE_PUSH_TO_ALL_ORIGINS_WHEN_LOCAL_RELEASE_BRANCH: ENV_ELECTRON_APP_RELEASE_PUSH_TO_ALL_ORIGINS_WHEN_LOCAL_RELEASE_BRANCH,
4516
+ ENV_ELECTRON_APP_RELEASE_RELEASE_TYPE: ENV_ELECTRON_APP_RELEASE_RELEASE_TYPE,
4517
+ ENV_ELECTRON_APP_RELEASE_RELEASE_VERSION_BUMP_TYPE: ENV_ELECTRON_APP_RELEASE_RELEASE_VERSION_BUMP_TYPE,
4518
+ ENV_ELECTRON_APP_RELEASE_REMOVE_RELEASE_OUTPUT_AFTER_LOCAL_INSTALL: ENV_ELECTRON_APP_RELEASE_REMOVE_RELEASE_OUTPUT_AFTER_LOCAL_INSTALL,
4519
+ ENV_ELECTRON_APP_RELEASE_RESOLVED_NEW_VERSION: ENV_ELECTRON_APP_RELEASE_RESOLVED_NEW_VERSION,
4520
+ ENV_ELECTRON_APP_RELEASE_SKIP_BUILDING_ARTIFACTS: ENV_ELECTRON_APP_RELEASE_SKIP_BUILDING_ARTIFACTS,
4521
+ ENV_ELECTRON_APP_RELEASE_SKIP_CODE_CUTTING: ENV_ELECTRON_APP_RELEASE_SKIP_CODE_CUTTING,
4522
+ ENV_ELECTRON_APP_RELEASE_SKIP_DEPLOY: ENV_ELECTRON_APP_RELEASE_SKIP_DEPLOY,
4523
+ ENV_ELECTRON_APP_RELEASE_SKIP_NPM_PUBLISH: ENV_ELECTRON_APP_RELEASE_SKIP_NPM_PUBLISH,
4524
+ ENV_ELECTRON_APP_RELEASE_SKIP_RELEASE_QUESTION: ENV_ELECTRON_APP_RELEASE_SKIP_RELEASE_QUESTION,
4525
+ ENV_ELECTRON_APP_RELEASE_SKIP_RESOLVING_GIT_CHANGES: ENV_ELECTRON_APP_RELEASE_SKIP_RESOLVING_GIT_CHANGES,
4526
+ ENV_ELECTRON_APP_RELEASE_SKIP_TAG_GIT_PUSH: ENV_ELECTRON_APP_RELEASE_SKIP_TAG_GIT_PUSH,
4527
+ ENV_ELECTRON_APP_RELEASE_TAON_INSTANCE_IP: ENV_ELECTRON_APP_RELEASE_TAON_INSTANCE_IP,
4528
+ ENV_ELECTRON_APP_RELEASE_TARGET_ARTIFACT: ENV_ELECTRON_APP_RELEASE_TARGET_ARTIFACT,
4529
+ ENV_ELECTRON_APP_RELEASE_USE_LOCAL_RELEASE_BRANCH: ENV_ELECTRON_APP_RELEASE_USE_LOCAL_RELEASE_BRANCH,
4530
+ ENV_ELECTRON_APP_WEBSITE_DOMAIN: ENV_ELECTRON_APP_WEBSITE_DOMAIN,
4531
+ ENV_ELECTRON_APP_WEBSITE_TITLE: ENV_ELECTRON_APP_WEBSITE_TITLE,
4532
+ ENV_ELECTRON_APP_WEBSITE_USE_DOMAIN: ENV_ELECTRON_APP_WEBSITE_USE_DOMAIN,
4533
+ ENV_MOBILE_APP_BUILD_BASE_HREF: ENV_MOBILE_APP_BUILD_BASE_HREF,
4534
+ ENV_MOBILE_APP_BUILD_ELECTRON_SHOW_DEV_TOOLS: ENV_MOBILE_APP_BUILD_ELECTRON_SHOW_DEV_TOOLS,
4535
+ ENV_MOBILE_APP_BUILD_GEN_ONLY_CLIENT_CODE: ENV_MOBILE_APP_BUILD_GEN_ONLY_CLIENT_CODE,
4536
+ ENV_MOBILE_APP_BUILD_OVERRIDE_OUTPUT_PATH: ENV_MOBILE_APP_BUILD_OVERRIDE_OUTPUT_PATH,
4537
+ ENV_MOBILE_APP_BUILD_PROD: ENV_MOBILE_APP_BUILD_PROD,
4538
+ ENV_MOBILE_APP_BUILD_PWA_DISABLE_SERVICE_WORKER: ENV_MOBILE_APP_BUILD_PWA_DISABLE_SERVICE_WORKER,
4539
+ ENV_MOBILE_APP_BUILD_PWA_NAME: ENV_MOBILE_APP_BUILD_PWA_NAME,
4540
+ ENV_MOBILE_APP_BUILD_PWA_SHORT_NAME: ENV_MOBILE_APP_BUILD_PWA_SHORT_NAME,
4541
+ ENV_MOBILE_APP_BUILD_PWA_START_URL: ENV_MOBILE_APP_BUILD_PWA_START_URL,
4542
+ ENV_MOBILE_APP_BUILD_SSR: ENV_MOBILE_APP_BUILD_SSR,
4543
+ ENV_MOBILE_APP_BUILD_WATCH: ENV_MOBILE_APP_BUILD_WATCH,
4544
+ ENV_MOBILE_APP_BUILD_WEBSQL: ENV_MOBILE_APP_BUILD_WEBSQL,
4545
+ ENV_MOBILE_APP_CONFIG_GOOGLE_CLIENT_ID: ENV_MOBILE_APP_CONFIG_GOOGLE_CLIENT_ID,
4546
+ ENV_MOBILE_APP_CONFIG_GOOGLE_SECRET: ENV_MOBILE_APP_CONFIG_GOOGLE_SECRET,
4547
+ ENV_MOBILE_APP_CONFIG_SUPER_USERS: ENV_MOBILE_APP_CONFIG_SUPER_USERS,
4548
+ ENV_MOBILE_APP_CONTAINER_END: ENV_MOBILE_APP_CONTAINER_END,
4549
+ ENV_MOBILE_APP_CONTAINER_ONLY: ENV_MOBILE_APP_CONTAINER_ONLY,
4550
+ ENV_MOBILE_APP_CONTAINER_SKIP: ENV_MOBILE_APP_CONTAINER_SKIP,
4551
+ ENV_MOBILE_APP_CONTAINER_SKIP_RELEASED: ENV_MOBILE_APP_CONTAINER_SKIP_RELEASED,
4552
+ ENV_MOBILE_APP_CONTAINER_START: ENV_MOBILE_APP_CONTAINER_START,
4553
+ ENV_MOBILE_APP_COPY_TO_MANAGER_BEFORE_COPY_HOOK: ENV_MOBILE_APP_COPY_TO_MANAGER_BEFORE_COPY_HOOK,
4554
+ ENV_MOBILE_APP_COPY_TO_MANAGER_COPY_TO_LOCATIONS: ENV_MOBILE_APP_COPY_TO_MANAGER_COPY_TO_LOCATIONS,
4555
+ ENV_MOBILE_APP_COPY_TO_MANAGER_COPY_TO_PROJECTS: ENV_MOBILE_APP_COPY_TO_MANAGER_COPY_TO_PROJECTS,
4556
+ ENV_MOBILE_APP_COPY_TO_MANAGER_SKIP: ENV_MOBILE_APP_COPY_TO_MANAGER_SKIP,
4557
+ ENV_MOBILE_APP_DOCKER_ADDITIONAL_CONTAINER: ENV_MOBILE_APP_DOCKER_ADDITIONAL_CONTAINER,
4558
+ ENV_MOBILE_APP_DOCKER_SKIP_START_IN_ORDER: ENV_MOBILE_APP_DOCKER_SKIP_START_IN_ORDER,
4559
+ ENV_MOBILE_APP_DOCKER_SKIP_USING_MYSQL_DB: ENV_MOBILE_APP_DOCKER_SKIP_USING_MYSQL_DB,
4560
+ ENV_MOBILE_APP_FINISH_CALLBACK: ENV_MOBILE_APP_FINISH_CALLBACK,
4561
+ ENV_MOBILE_APP_INIT_BRANDING: ENV_MOBILE_APP_INIT_BRANDING,
4562
+ ENV_MOBILE_APP_INIT_STRUCT: ENV_MOBILE_APP_INIT_STRUCT,
4563
+ ENV_MOBILE_APP_IS_CI_PROCESS: ENV_MOBILE_APP_IS_CI_PROCESS,
4564
+ ENV_MOBILE_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_BACKGROUND: ENV_MOBILE_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_BACKGROUND,
4565
+ ENV_MOBILE_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER: ENV_MOBILE_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER,
4566
+ ENV_MOBILE_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER_NAME: ENV_MOBILE_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER_NAME,
4567
+ ENV_MOBILE_APP_PURPOSE: ENV_MOBILE_APP_PURPOSE,
4568
+ ENV_MOBILE_APP_RECURSIVE_ACTION: ENV_MOBILE_APP_RECURSIVE_ACTION,
4569
+ ENV_MOBILE_APP_RELEASE_AUTO_RELEASE_TASK_NAME: ENV_MOBILE_APP_RELEASE_AUTO_RELEASE_TASK_NAME,
4570
+ ENV_MOBILE_APP_RELEASE_AUTO_RELEASE_USING_CONFIG: ENV_MOBILE_APP_RELEASE_AUTO_RELEASE_USING_CONFIG,
4571
+ ENV_MOBILE_APP_RELEASE_CLI_COMPRESS: ENV_MOBILE_APP_RELEASE_CLI_COMPRESS,
4572
+ ENV_MOBILE_APP_RELEASE_CLI_INCLUDE_NODE_MODULES: ENV_MOBILE_APP_RELEASE_CLI_INCLUDE_NODE_MODULES,
4573
+ ENV_MOBILE_APP_RELEASE_CLI_MINIFY: ENV_MOBILE_APP_RELEASE_CLI_MINIFY,
4574
+ ENV_MOBILE_APP_RELEASE_CLI_OBSCURE: ENV_MOBILE_APP_RELEASE_CLI_OBSCURE,
4575
+ ENV_MOBILE_APP_RELEASE_CLI_UGLIFY: ENV_MOBILE_APP_RELEASE_CLI_UGLIFY,
4576
+ ENV_MOBILE_APP_RELEASE_ENV_NAME: ENV_MOBILE_APP_RELEASE_ENV_NAME,
4577
+ ENV_MOBILE_APP_RELEASE_ENV_NUMBER: ENV_MOBILE_APP_RELEASE_ENV_NUMBER,
4578
+ ENV_MOBILE_APP_RELEASE_INSTALL_LOCALLY: ENV_MOBILE_APP_RELEASE_INSTALL_LOCALLY,
4579
+ ENV_MOBILE_APP_RELEASE_LIB_COMPRESS: ENV_MOBILE_APP_RELEASE_LIB_COMPRESS,
4580
+ ENV_MOBILE_APP_RELEASE_LIB_DO_NOT_INCLUDE_LIB_FILES: ENV_MOBILE_APP_RELEASE_LIB_DO_NOT_INCLUDE_LIB_FILES,
4581
+ ENV_MOBILE_APP_RELEASE_LIB_INCLUDE_SOURCE_MAPS: ENV_MOBILE_APP_RELEASE_LIB_INCLUDE_SOURCE_MAPS,
4582
+ ENV_MOBILE_APP_RELEASE_LIB_OBSCURE_FILE_BY_FILE: ENV_MOBILE_APP_RELEASE_LIB_OBSCURE_FILE_BY_FILE,
4583
+ ENV_MOBILE_APP_RELEASE_LIB_REMOVE_DTS: ENV_MOBILE_APP_RELEASE_LIB_REMOVE_DTS,
4584
+ ENV_MOBILE_APP_RELEASE_LIB_UGLIFY_FILE_BY_FILE: ENV_MOBILE_APP_RELEASE_LIB_UGLIFY_FILE_BY_FILE,
4585
+ ENV_MOBILE_APP_RELEASE_NODE_BACKEND_APP_MINIFY: ENV_MOBILE_APP_RELEASE_NODE_BACKEND_APP_MINIFY,
4586
+ ENV_MOBILE_APP_RELEASE_PUSH_TO_ALL_ORIGINS_WHEN_LOCAL_RELEASE_BRANCH: ENV_MOBILE_APP_RELEASE_PUSH_TO_ALL_ORIGINS_WHEN_LOCAL_RELEASE_BRANCH,
4587
+ ENV_MOBILE_APP_RELEASE_RELEASE_TYPE: ENV_MOBILE_APP_RELEASE_RELEASE_TYPE,
4588
+ ENV_MOBILE_APP_RELEASE_RELEASE_VERSION_BUMP_TYPE: ENV_MOBILE_APP_RELEASE_RELEASE_VERSION_BUMP_TYPE,
4589
+ ENV_MOBILE_APP_RELEASE_REMOVE_RELEASE_OUTPUT_AFTER_LOCAL_INSTALL: ENV_MOBILE_APP_RELEASE_REMOVE_RELEASE_OUTPUT_AFTER_LOCAL_INSTALL,
4590
+ ENV_MOBILE_APP_RELEASE_RESOLVED_NEW_VERSION: ENV_MOBILE_APP_RELEASE_RESOLVED_NEW_VERSION,
4591
+ ENV_MOBILE_APP_RELEASE_SKIP_BUILDING_ARTIFACTS: ENV_MOBILE_APP_RELEASE_SKIP_BUILDING_ARTIFACTS,
4592
+ ENV_MOBILE_APP_RELEASE_SKIP_CODE_CUTTING: ENV_MOBILE_APP_RELEASE_SKIP_CODE_CUTTING,
4593
+ ENV_MOBILE_APP_RELEASE_SKIP_DEPLOY: ENV_MOBILE_APP_RELEASE_SKIP_DEPLOY,
4594
+ ENV_MOBILE_APP_RELEASE_SKIP_NPM_PUBLISH: ENV_MOBILE_APP_RELEASE_SKIP_NPM_PUBLISH,
4595
+ ENV_MOBILE_APP_RELEASE_SKIP_RELEASE_QUESTION: ENV_MOBILE_APP_RELEASE_SKIP_RELEASE_QUESTION,
4596
+ ENV_MOBILE_APP_RELEASE_SKIP_RESOLVING_GIT_CHANGES: ENV_MOBILE_APP_RELEASE_SKIP_RESOLVING_GIT_CHANGES,
4597
+ ENV_MOBILE_APP_RELEASE_SKIP_TAG_GIT_PUSH: ENV_MOBILE_APP_RELEASE_SKIP_TAG_GIT_PUSH,
4598
+ ENV_MOBILE_APP_RELEASE_TAON_INSTANCE_IP: ENV_MOBILE_APP_RELEASE_TAON_INSTANCE_IP,
4599
+ ENV_MOBILE_APP_RELEASE_TARGET_ARTIFACT: ENV_MOBILE_APP_RELEASE_TARGET_ARTIFACT,
4600
+ ENV_MOBILE_APP_RELEASE_USE_LOCAL_RELEASE_BRANCH: ENV_MOBILE_APP_RELEASE_USE_LOCAL_RELEASE_BRANCH,
4601
+ ENV_MOBILE_APP_WEBSITE_DOMAIN: ENV_MOBILE_APP_WEBSITE_DOMAIN,
4602
+ ENV_MOBILE_APP_WEBSITE_TITLE: ENV_MOBILE_APP_WEBSITE_TITLE,
4603
+ ENV_MOBILE_APP_WEBSITE_USE_DOMAIN: ENV_MOBILE_APP_WEBSITE_USE_DOMAIN,
4604
+ ENV_NPM_LIB_AND_CLI_TOOL_BUILD_BASE_HREF: ENV_NPM_LIB_AND_CLI_TOOL_BUILD_BASE_HREF,
4605
+ ENV_NPM_LIB_AND_CLI_TOOL_BUILD_ELECTRON_SHOW_DEV_TOOLS: ENV_NPM_LIB_AND_CLI_TOOL_BUILD_ELECTRON_SHOW_DEV_TOOLS,
4606
+ ENV_NPM_LIB_AND_CLI_TOOL_BUILD_GEN_ONLY_CLIENT_CODE: ENV_NPM_LIB_AND_CLI_TOOL_BUILD_GEN_ONLY_CLIENT_CODE,
4607
+ ENV_NPM_LIB_AND_CLI_TOOL_BUILD_OVERRIDE_OUTPUT_PATH: ENV_NPM_LIB_AND_CLI_TOOL_BUILD_OVERRIDE_OUTPUT_PATH,
4608
+ ENV_NPM_LIB_AND_CLI_TOOL_BUILD_PROD: ENV_NPM_LIB_AND_CLI_TOOL_BUILD_PROD,
4609
+ ENV_NPM_LIB_AND_CLI_TOOL_BUILD_PWA_DISABLE_SERVICE_WORKER: ENV_NPM_LIB_AND_CLI_TOOL_BUILD_PWA_DISABLE_SERVICE_WORKER,
4610
+ ENV_NPM_LIB_AND_CLI_TOOL_BUILD_PWA_NAME: ENV_NPM_LIB_AND_CLI_TOOL_BUILD_PWA_NAME,
4611
+ ENV_NPM_LIB_AND_CLI_TOOL_BUILD_PWA_SHORT_NAME: ENV_NPM_LIB_AND_CLI_TOOL_BUILD_PWA_SHORT_NAME,
4612
+ ENV_NPM_LIB_AND_CLI_TOOL_BUILD_PWA_START_URL: ENV_NPM_LIB_AND_CLI_TOOL_BUILD_PWA_START_URL,
4613
+ ENV_NPM_LIB_AND_CLI_TOOL_BUILD_SSR: ENV_NPM_LIB_AND_CLI_TOOL_BUILD_SSR,
4614
+ ENV_NPM_LIB_AND_CLI_TOOL_BUILD_WATCH: ENV_NPM_LIB_AND_CLI_TOOL_BUILD_WATCH,
4615
+ ENV_NPM_LIB_AND_CLI_TOOL_BUILD_WEBSQL: ENV_NPM_LIB_AND_CLI_TOOL_BUILD_WEBSQL,
4616
+ ENV_NPM_LIB_AND_CLI_TOOL_CONFIG_GOOGLE_CLIENT_ID: ENV_NPM_LIB_AND_CLI_TOOL_CONFIG_GOOGLE_CLIENT_ID,
4617
+ ENV_NPM_LIB_AND_CLI_TOOL_CONFIG_GOOGLE_SECRET: ENV_NPM_LIB_AND_CLI_TOOL_CONFIG_GOOGLE_SECRET,
4618
+ ENV_NPM_LIB_AND_CLI_TOOL_CONFIG_SUPER_USERS: ENV_NPM_LIB_AND_CLI_TOOL_CONFIG_SUPER_USERS,
4619
+ ENV_NPM_LIB_AND_CLI_TOOL_CONTAINER_END: ENV_NPM_LIB_AND_CLI_TOOL_CONTAINER_END,
4620
+ ENV_NPM_LIB_AND_CLI_TOOL_CONTAINER_ONLY: ENV_NPM_LIB_AND_CLI_TOOL_CONTAINER_ONLY,
4621
+ ENV_NPM_LIB_AND_CLI_TOOL_CONTAINER_SKIP: ENV_NPM_LIB_AND_CLI_TOOL_CONTAINER_SKIP,
4622
+ ENV_NPM_LIB_AND_CLI_TOOL_CONTAINER_SKIP_RELEASED: ENV_NPM_LIB_AND_CLI_TOOL_CONTAINER_SKIP_RELEASED,
4623
+ ENV_NPM_LIB_AND_CLI_TOOL_CONTAINER_START: ENV_NPM_LIB_AND_CLI_TOOL_CONTAINER_START,
4624
+ ENV_NPM_LIB_AND_CLI_TOOL_COPY_TO_MANAGER_BEFORE_COPY_HOOK: ENV_NPM_LIB_AND_CLI_TOOL_COPY_TO_MANAGER_BEFORE_COPY_HOOK,
4625
+ ENV_NPM_LIB_AND_CLI_TOOL_COPY_TO_MANAGER_COPY_TO_LOCATIONS: ENV_NPM_LIB_AND_CLI_TOOL_COPY_TO_MANAGER_COPY_TO_LOCATIONS,
4626
+ ENV_NPM_LIB_AND_CLI_TOOL_COPY_TO_MANAGER_COPY_TO_PROJECTS: ENV_NPM_LIB_AND_CLI_TOOL_COPY_TO_MANAGER_COPY_TO_PROJECTS,
4627
+ ENV_NPM_LIB_AND_CLI_TOOL_COPY_TO_MANAGER_SKIP: ENV_NPM_LIB_AND_CLI_TOOL_COPY_TO_MANAGER_SKIP,
4628
+ ENV_NPM_LIB_AND_CLI_TOOL_DOCKER_ADDITIONAL_CONTAINER: ENV_NPM_LIB_AND_CLI_TOOL_DOCKER_ADDITIONAL_CONTAINER,
4629
+ ENV_NPM_LIB_AND_CLI_TOOL_DOCKER_SKIP_START_IN_ORDER: ENV_NPM_LIB_AND_CLI_TOOL_DOCKER_SKIP_START_IN_ORDER,
4630
+ ENV_NPM_LIB_AND_CLI_TOOL_DOCKER_SKIP_USING_MYSQL_DB: ENV_NPM_LIB_AND_CLI_TOOL_DOCKER_SKIP_USING_MYSQL_DB,
4631
+ ENV_NPM_LIB_AND_CLI_TOOL_FINISH_CALLBACK: ENV_NPM_LIB_AND_CLI_TOOL_FINISH_CALLBACK,
4632
+ ENV_NPM_LIB_AND_CLI_TOOL_INIT_BRANDING: ENV_NPM_LIB_AND_CLI_TOOL_INIT_BRANDING,
4633
+ ENV_NPM_LIB_AND_CLI_TOOL_INIT_STRUCT: ENV_NPM_LIB_AND_CLI_TOOL_INIT_STRUCT,
4634
+ ENV_NPM_LIB_AND_CLI_TOOL_IS_CI_PROCESS: ENV_NPM_LIB_AND_CLI_TOOL_IS_CI_PROCESS,
4635
+ ENV_NPM_LIB_AND_CLI_TOOL_LOADING_PRE_ANGULAR_BOOTSTRAP_BACKGROUND: ENV_NPM_LIB_AND_CLI_TOOL_LOADING_PRE_ANGULAR_BOOTSTRAP_BACKGROUND,
4636
+ ENV_NPM_LIB_AND_CLI_TOOL_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER: ENV_NPM_LIB_AND_CLI_TOOL_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER,
4637
+ ENV_NPM_LIB_AND_CLI_TOOL_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER_NAME: ENV_NPM_LIB_AND_CLI_TOOL_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER_NAME,
4638
+ ENV_NPM_LIB_AND_CLI_TOOL_PURPOSE: ENV_NPM_LIB_AND_CLI_TOOL_PURPOSE,
4639
+ ENV_NPM_LIB_AND_CLI_TOOL_RECURSIVE_ACTION: ENV_NPM_LIB_AND_CLI_TOOL_RECURSIVE_ACTION,
4640
+ ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_AUTO_RELEASE_TASK_NAME: ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_AUTO_RELEASE_TASK_NAME,
4641
+ ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_AUTO_RELEASE_USING_CONFIG: ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_AUTO_RELEASE_USING_CONFIG,
4642
+ ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_CLI_COMPRESS: ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_CLI_COMPRESS,
4643
+ ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_CLI_INCLUDE_NODE_MODULES: ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_CLI_INCLUDE_NODE_MODULES,
4644
+ ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_CLI_MINIFY: ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_CLI_MINIFY,
4645
+ ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_CLI_OBSCURE: ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_CLI_OBSCURE,
4646
+ ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_CLI_UGLIFY: ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_CLI_UGLIFY,
4647
+ ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_ENV_NAME: ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_ENV_NAME,
4648
+ ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_ENV_NUMBER: ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_ENV_NUMBER,
4649
+ ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_INSTALL_LOCALLY: ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_INSTALL_LOCALLY,
4650
+ ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_LIB_COMPRESS: ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_LIB_COMPRESS,
4651
+ ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_LIB_DO_NOT_INCLUDE_LIB_FILES: ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_LIB_DO_NOT_INCLUDE_LIB_FILES,
4652
+ ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_LIB_INCLUDE_SOURCE_MAPS: ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_LIB_INCLUDE_SOURCE_MAPS,
4653
+ ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_LIB_OBSCURE_FILE_BY_FILE: ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_LIB_OBSCURE_FILE_BY_FILE,
4654
+ ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_LIB_REMOVE_DTS: ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_LIB_REMOVE_DTS,
4655
+ ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_LIB_UGLIFY_FILE_BY_FILE: ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_LIB_UGLIFY_FILE_BY_FILE,
4656
+ ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_NODE_BACKEND_APP_MINIFY: ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_NODE_BACKEND_APP_MINIFY,
4657
+ ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_PUSH_TO_ALL_ORIGINS_WHEN_LOCAL_RELEASE_BRANCH: ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_PUSH_TO_ALL_ORIGINS_WHEN_LOCAL_RELEASE_BRANCH,
4658
+ ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_RELEASE_TYPE: ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_RELEASE_TYPE,
4659
+ ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_RELEASE_VERSION_BUMP_TYPE: ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_RELEASE_VERSION_BUMP_TYPE,
4660
+ ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_REMOVE_RELEASE_OUTPUT_AFTER_LOCAL_INSTALL: ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_REMOVE_RELEASE_OUTPUT_AFTER_LOCAL_INSTALL,
4661
+ ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_RESOLVED_NEW_VERSION: ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_RESOLVED_NEW_VERSION,
4662
+ ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_SKIP_BUILDING_ARTIFACTS: ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_SKIP_BUILDING_ARTIFACTS,
4663
+ ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_SKIP_CODE_CUTTING: ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_SKIP_CODE_CUTTING,
4664
+ ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_SKIP_DEPLOY: ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_SKIP_DEPLOY,
4665
+ ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_SKIP_NPM_PUBLISH: ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_SKIP_NPM_PUBLISH,
4666
+ ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_SKIP_RELEASE_QUESTION: ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_SKIP_RELEASE_QUESTION,
4667
+ ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_SKIP_RESOLVING_GIT_CHANGES: ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_SKIP_RESOLVING_GIT_CHANGES,
4668
+ ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_SKIP_TAG_GIT_PUSH: ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_SKIP_TAG_GIT_PUSH,
4669
+ ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_TAON_INSTANCE_IP: ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_TAON_INSTANCE_IP,
4670
+ ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_TARGET_ARTIFACT: ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_TARGET_ARTIFACT,
4671
+ ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_USE_LOCAL_RELEASE_BRANCH: ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_USE_LOCAL_RELEASE_BRANCH,
4672
+ ENV_NPM_LIB_AND_CLI_TOOL_WEBSITE_DOMAIN: ENV_NPM_LIB_AND_CLI_TOOL_WEBSITE_DOMAIN,
4673
+ ENV_NPM_LIB_AND_CLI_TOOL_WEBSITE_TITLE: ENV_NPM_LIB_AND_CLI_TOOL_WEBSITE_TITLE,
4674
+ ENV_NPM_LIB_AND_CLI_TOOL_WEBSITE_USE_DOMAIN: ENV_NPM_LIB_AND_CLI_TOOL_WEBSITE_USE_DOMAIN,
4675
+ ENV_VSCODE_PLUGIN_BUILD_BASE_HREF: ENV_VSCODE_PLUGIN_BUILD_BASE_HREF,
4676
+ ENV_VSCODE_PLUGIN_BUILD_ELECTRON_SHOW_DEV_TOOLS: ENV_VSCODE_PLUGIN_BUILD_ELECTRON_SHOW_DEV_TOOLS,
4677
+ ENV_VSCODE_PLUGIN_BUILD_GEN_ONLY_CLIENT_CODE: ENV_VSCODE_PLUGIN_BUILD_GEN_ONLY_CLIENT_CODE,
4678
+ ENV_VSCODE_PLUGIN_BUILD_OVERRIDE_OUTPUT_PATH: ENV_VSCODE_PLUGIN_BUILD_OVERRIDE_OUTPUT_PATH,
4679
+ ENV_VSCODE_PLUGIN_BUILD_PROD: ENV_VSCODE_PLUGIN_BUILD_PROD,
4680
+ ENV_VSCODE_PLUGIN_BUILD_PWA_DISABLE_SERVICE_WORKER: ENV_VSCODE_PLUGIN_BUILD_PWA_DISABLE_SERVICE_WORKER,
4681
+ ENV_VSCODE_PLUGIN_BUILD_PWA_NAME: ENV_VSCODE_PLUGIN_BUILD_PWA_NAME,
4682
+ ENV_VSCODE_PLUGIN_BUILD_PWA_SHORT_NAME: ENV_VSCODE_PLUGIN_BUILD_PWA_SHORT_NAME,
4683
+ ENV_VSCODE_PLUGIN_BUILD_PWA_START_URL: ENV_VSCODE_PLUGIN_BUILD_PWA_START_URL,
4684
+ ENV_VSCODE_PLUGIN_BUILD_SSR: ENV_VSCODE_PLUGIN_BUILD_SSR,
4685
+ ENV_VSCODE_PLUGIN_BUILD_WATCH: ENV_VSCODE_PLUGIN_BUILD_WATCH,
4686
+ ENV_VSCODE_PLUGIN_BUILD_WEBSQL: ENV_VSCODE_PLUGIN_BUILD_WEBSQL,
4687
+ ENV_VSCODE_PLUGIN_CONFIG_GOOGLE_CLIENT_ID: ENV_VSCODE_PLUGIN_CONFIG_GOOGLE_CLIENT_ID,
4688
+ ENV_VSCODE_PLUGIN_CONFIG_GOOGLE_SECRET: ENV_VSCODE_PLUGIN_CONFIG_GOOGLE_SECRET,
4689
+ ENV_VSCODE_PLUGIN_CONFIG_SUPER_USERS: ENV_VSCODE_PLUGIN_CONFIG_SUPER_USERS,
4690
+ ENV_VSCODE_PLUGIN_CONTAINER_END: ENV_VSCODE_PLUGIN_CONTAINER_END,
4691
+ ENV_VSCODE_PLUGIN_CONTAINER_ONLY: ENV_VSCODE_PLUGIN_CONTAINER_ONLY,
4692
+ ENV_VSCODE_PLUGIN_CONTAINER_SKIP: ENV_VSCODE_PLUGIN_CONTAINER_SKIP,
4693
+ ENV_VSCODE_PLUGIN_CONTAINER_SKIP_RELEASED: ENV_VSCODE_PLUGIN_CONTAINER_SKIP_RELEASED,
4694
+ ENV_VSCODE_PLUGIN_CONTAINER_START: ENV_VSCODE_PLUGIN_CONTAINER_START,
4695
+ ENV_VSCODE_PLUGIN_COPY_TO_MANAGER_BEFORE_COPY_HOOK: ENV_VSCODE_PLUGIN_COPY_TO_MANAGER_BEFORE_COPY_HOOK,
4696
+ ENV_VSCODE_PLUGIN_COPY_TO_MANAGER_COPY_TO_LOCATIONS: ENV_VSCODE_PLUGIN_COPY_TO_MANAGER_COPY_TO_LOCATIONS,
4697
+ ENV_VSCODE_PLUGIN_COPY_TO_MANAGER_COPY_TO_PROJECTS: ENV_VSCODE_PLUGIN_COPY_TO_MANAGER_COPY_TO_PROJECTS,
4698
+ ENV_VSCODE_PLUGIN_COPY_TO_MANAGER_SKIP: ENV_VSCODE_PLUGIN_COPY_TO_MANAGER_SKIP,
4699
+ ENV_VSCODE_PLUGIN_DOCKER_ADDITIONAL_CONTAINER: ENV_VSCODE_PLUGIN_DOCKER_ADDITIONAL_CONTAINER,
4700
+ ENV_VSCODE_PLUGIN_DOCKER_SKIP_START_IN_ORDER: ENV_VSCODE_PLUGIN_DOCKER_SKIP_START_IN_ORDER,
4701
+ ENV_VSCODE_PLUGIN_DOCKER_SKIP_USING_MYSQL_DB: ENV_VSCODE_PLUGIN_DOCKER_SKIP_USING_MYSQL_DB,
4702
+ ENV_VSCODE_PLUGIN_FINISH_CALLBACK: ENV_VSCODE_PLUGIN_FINISH_CALLBACK,
4703
+ ENV_VSCODE_PLUGIN_INIT_BRANDING: ENV_VSCODE_PLUGIN_INIT_BRANDING,
4704
+ ENV_VSCODE_PLUGIN_INIT_STRUCT: ENV_VSCODE_PLUGIN_INIT_STRUCT,
4705
+ ENV_VSCODE_PLUGIN_IS_CI_PROCESS: ENV_VSCODE_PLUGIN_IS_CI_PROCESS,
4706
+ ENV_VSCODE_PLUGIN_LOADING_PRE_ANGULAR_BOOTSTRAP_BACKGROUND: ENV_VSCODE_PLUGIN_LOADING_PRE_ANGULAR_BOOTSTRAP_BACKGROUND,
4707
+ ENV_VSCODE_PLUGIN_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER: ENV_VSCODE_PLUGIN_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER,
4708
+ ENV_VSCODE_PLUGIN_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER_NAME: ENV_VSCODE_PLUGIN_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER_NAME,
4709
+ ENV_VSCODE_PLUGIN_PURPOSE: ENV_VSCODE_PLUGIN_PURPOSE,
4710
+ ENV_VSCODE_PLUGIN_RECURSIVE_ACTION: ENV_VSCODE_PLUGIN_RECURSIVE_ACTION,
4711
+ ENV_VSCODE_PLUGIN_RELEASE_AUTO_RELEASE_TASK_NAME: ENV_VSCODE_PLUGIN_RELEASE_AUTO_RELEASE_TASK_NAME,
4712
+ ENV_VSCODE_PLUGIN_RELEASE_AUTO_RELEASE_USING_CONFIG: ENV_VSCODE_PLUGIN_RELEASE_AUTO_RELEASE_USING_CONFIG,
4713
+ ENV_VSCODE_PLUGIN_RELEASE_CLI_COMPRESS: ENV_VSCODE_PLUGIN_RELEASE_CLI_COMPRESS,
4714
+ ENV_VSCODE_PLUGIN_RELEASE_CLI_INCLUDE_NODE_MODULES: ENV_VSCODE_PLUGIN_RELEASE_CLI_INCLUDE_NODE_MODULES,
4715
+ ENV_VSCODE_PLUGIN_RELEASE_CLI_MINIFY: ENV_VSCODE_PLUGIN_RELEASE_CLI_MINIFY,
4716
+ ENV_VSCODE_PLUGIN_RELEASE_CLI_OBSCURE: ENV_VSCODE_PLUGIN_RELEASE_CLI_OBSCURE,
4717
+ ENV_VSCODE_PLUGIN_RELEASE_CLI_UGLIFY: ENV_VSCODE_PLUGIN_RELEASE_CLI_UGLIFY,
4718
+ ENV_VSCODE_PLUGIN_RELEASE_ENV_NAME: ENV_VSCODE_PLUGIN_RELEASE_ENV_NAME,
4719
+ ENV_VSCODE_PLUGIN_RELEASE_ENV_NUMBER: ENV_VSCODE_PLUGIN_RELEASE_ENV_NUMBER,
4720
+ ENV_VSCODE_PLUGIN_RELEASE_INSTALL_LOCALLY: ENV_VSCODE_PLUGIN_RELEASE_INSTALL_LOCALLY,
4721
+ ENV_VSCODE_PLUGIN_RELEASE_LIB_COMPRESS: ENV_VSCODE_PLUGIN_RELEASE_LIB_COMPRESS,
4722
+ ENV_VSCODE_PLUGIN_RELEASE_LIB_DO_NOT_INCLUDE_LIB_FILES: ENV_VSCODE_PLUGIN_RELEASE_LIB_DO_NOT_INCLUDE_LIB_FILES,
4723
+ ENV_VSCODE_PLUGIN_RELEASE_LIB_INCLUDE_SOURCE_MAPS: ENV_VSCODE_PLUGIN_RELEASE_LIB_INCLUDE_SOURCE_MAPS,
4724
+ ENV_VSCODE_PLUGIN_RELEASE_LIB_OBSCURE_FILE_BY_FILE: ENV_VSCODE_PLUGIN_RELEASE_LIB_OBSCURE_FILE_BY_FILE,
4725
+ ENV_VSCODE_PLUGIN_RELEASE_LIB_REMOVE_DTS: ENV_VSCODE_PLUGIN_RELEASE_LIB_REMOVE_DTS,
4726
+ ENV_VSCODE_PLUGIN_RELEASE_LIB_UGLIFY_FILE_BY_FILE: ENV_VSCODE_PLUGIN_RELEASE_LIB_UGLIFY_FILE_BY_FILE,
4727
+ ENV_VSCODE_PLUGIN_RELEASE_NODE_BACKEND_APP_MINIFY: ENV_VSCODE_PLUGIN_RELEASE_NODE_BACKEND_APP_MINIFY,
4728
+ ENV_VSCODE_PLUGIN_RELEASE_PUSH_TO_ALL_ORIGINS_WHEN_LOCAL_RELEASE_BRANCH: ENV_VSCODE_PLUGIN_RELEASE_PUSH_TO_ALL_ORIGINS_WHEN_LOCAL_RELEASE_BRANCH,
4729
+ ENV_VSCODE_PLUGIN_RELEASE_RELEASE_TYPE: ENV_VSCODE_PLUGIN_RELEASE_RELEASE_TYPE,
4730
+ ENV_VSCODE_PLUGIN_RELEASE_RELEASE_VERSION_BUMP_TYPE: ENV_VSCODE_PLUGIN_RELEASE_RELEASE_VERSION_BUMP_TYPE,
4731
+ ENV_VSCODE_PLUGIN_RELEASE_REMOVE_RELEASE_OUTPUT_AFTER_LOCAL_INSTALL: ENV_VSCODE_PLUGIN_RELEASE_REMOVE_RELEASE_OUTPUT_AFTER_LOCAL_INSTALL,
4732
+ ENV_VSCODE_PLUGIN_RELEASE_RESOLVED_NEW_VERSION: ENV_VSCODE_PLUGIN_RELEASE_RESOLVED_NEW_VERSION,
4733
+ ENV_VSCODE_PLUGIN_RELEASE_SKIP_BUILDING_ARTIFACTS: ENV_VSCODE_PLUGIN_RELEASE_SKIP_BUILDING_ARTIFACTS,
4734
+ ENV_VSCODE_PLUGIN_RELEASE_SKIP_CODE_CUTTING: ENV_VSCODE_PLUGIN_RELEASE_SKIP_CODE_CUTTING,
4735
+ ENV_VSCODE_PLUGIN_RELEASE_SKIP_DEPLOY: ENV_VSCODE_PLUGIN_RELEASE_SKIP_DEPLOY,
4736
+ ENV_VSCODE_PLUGIN_RELEASE_SKIP_NPM_PUBLISH: ENV_VSCODE_PLUGIN_RELEASE_SKIP_NPM_PUBLISH,
4737
+ ENV_VSCODE_PLUGIN_RELEASE_SKIP_RELEASE_QUESTION: ENV_VSCODE_PLUGIN_RELEASE_SKIP_RELEASE_QUESTION,
4738
+ ENV_VSCODE_PLUGIN_RELEASE_SKIP_RESOLVING_GIT_CHANGES: ENV_VSCODE_PLUGIN_RELEASE_SKIP_RESOLVING_GIT_CHANGES,
4739
+ ENV_VSCODE_PLUGIN_RELEASE_SKIP_TAG_GIT_PUSH: ENV_VSCODE_PLUGIN_RELEASE_SKIP_TAG_GIT_PUSH,
4740
+ ENV_VSCODE_PLUGIN_RELEASE_TAON_INSTANCE_IP: ENV_VSCODE_PLUGIN_RELEASE_TAON_INSTANCE_IP,
4741
+ ENV_VSCODE_PLUGIN_RELEASE_TARGET_ARTIFACT: ENV_VSCODE_PLUGIN_RELEASE_TARGET_ARTIFACT,
4742
+ ENV_VSCODE_PLUGIN_RELEASE_USE_LOCAL_RELEASE_BRANCH: ENV_VSCODE_PLUGIN_RELEASE_USE_LOCAL_RELEASE_BRANCH,
4743
+ ENV_VSCODE_PLUGIN_WEBSITE_DOMAIN: ENV_VSCODE_PLUGIN_WEBSITE_DOMAIN,
4744
+ ENV_VSCODE_PLUGIN_WEBSITE_TITLE: ENV_VSCODE_PLUGIN_WEBSITE_TITLE,
4745
+ ENV_VSCODE_PLUGIN_WEBSITE_USE_DOMAIN: ENV_VSCODE_PLUGIN_WEBSITE_USE_DOMAIN,
4746
+ MIGRATIONS_CLASSES_FOR_CmsContext: MIGRATIONS_CLASSES_FOR_CmsContext,
4747
+ get MyAppGroup () { return MyAppGroup; },
4748
+ get MyAppPermission () { return MyAppPermission; },
4749
+ get MyAppRole () { return MyAppRole; },
4750
+ PROJECT_NPM_NAME: PROJECT_NPM_NAME,
4751
+ TaonCmsAbstractContext: TaonCmsAbstractContext,
4752
+ TaonCmsAssetsBackofficeComponent: TaonCmsAssetsBackofficeComponent,
4753
+ TaonCmsAssetsBackofficeRoutes: TaonCmsAssetsBackofficeRoutes,
4754
+ TaonCmsBackofficeComponent: TaonCmsBackofficeComponent,
4755
+ TaonCmsBackofficeRoutes: TaonCmsBackofficeRoutes,
4756
+ TaonCmsCategoryAbstractContext: TaonCmsCategoryAbstractContext,
4757
+ TaonCmsCategoryApiService: TaonCmsCategoryApiService,
4758
+ get TaonCmsCategoryController () { return TaonCmsCategoryController; },
4759
+ TaonCmsCategoryDefaultsValues: TaonCmsCategoryDefaultsValues,
4760
+ get TaonCmsCategoryEntity () { return TaonCmsCategoryEntity; },
4761
+ get TaonCmsCategoryMiddleware () { return TaonCmsCategoryMiddleware; },
4762
+ get TaonCmsCategoryProvider () { return TaonCmsCategoryProvider; },
4763
+ get TaonCmsCategoryRepository () { return TaonCmsCategoryRepository; },
4764
+ get TaonCmsCategoryState () { return TaonCmsCategoryState; },
4765
+ get TaonCmsCategorySubscriber () { return TaonCmsCategorySubscriber; },
4766
+ get TaonCmsCategoryUtils () { return TaonCmsCategoryUtils; },
4767
+ TaonCmsCommentAbstractContext: TaonCmsCommentAbstractContext,
4768
+ TaonCmsCommentApiService: TaonCmsCommentApiService,
4769
+ get TaonCmsCommentController () { return TaonCmsCommentController; },
4770
+ TaonCmsCommentDefaultsValues: TaonCmsCommentDefaultsValues,
4771
+ get TaonCmsCommentEntity () { return TaonCmsCommentEntity; },
4772
+ get TaonCmsCommentMiddleware () { return TaonCmsCommentMiddleware; },
4773
+ get TaonCmsCommentProvider () { return TaonCmsCommentProvider; },
4774
+ get TaonCmsCommentRepository () { return TaonCmsCommentRepository; },
4775
+ get TaonCmsCommentState () { return TaonCmsCommentState; },
4776
+ get TaonCmsCommentSubscriber () { return TaonCmsCommentSubscriber; },
4777
+ get TaonCmsCommentUtils () { return TaonCmsCommentUtils; },
4778
+ TaonCmsContentAbstractContext: TaonCmsContentAbstractContext,
4779
+ TaonCmsContentApiService: TaonCmsContentApiService,
4780
+ TaonCmsContentAssetAbstractContext: TaonCmsContentAssetAbstractContext,
4781
+ TaonCmsContentAssetApiService: TaonCmsContentAssetApiService,
4782
+ get TaonCmsContentAssetController () { return TaonCmsContentAssetController; },
4783
+ TaonCmsContentAssetDefaultsValues: TaonCmsContentAssetDefaultsValues,
4784
+ get TaonCmsContentAssetEntity () { return TaonCmsContentAssetEntity; },
4785
+ get TaonCmsContentAssetMiddleware () { return TaonCmsContentAssetMiddleware; },
4786
+ get TaonCmsContentAssetProvider () { return TaonCmsContentAssetProvider; },
4787
+ get TaonCmsContentAssetRepository () { return TaonCmsContentAssetRepository; },
4788
+ get TaonCmsContentAssetState () { return TaonCmsContentAssetState; },
4789
+ get TaonCmsContentAssetSubscriber () { return TaonCmsContentAssetSubscriber; },
4790
+ get TaonCmsContentAssetUtils () { return TaonCmsContentAssetUtils; },
4791
+ TaonCmsContentConfigService: TaonCmsContentConfigService,
4792
+ get TaonCmsContentController () { return TaonCmsContentController; },
4793
+ TaonCmsContentDefaultsValues: TaonCmsContentDefaultsValues,
4794
+ get TaonCmsContentEntity () { return TaonCmsContentEntity; },
4795
+ get TaonCmsContentMiddleware () { return TaonCmsContentMiddleware; },
4796
+ TaonCmsContentPermissionAbstractContext: TaonCmsContentPermissionAbstractContext,
4797
+ TaonCmsContentPermissionApiService: TaonCmsContentPermissionApiService,
4798
+ get TaonCmsContentPermissionController () { return TaonCmsContentPermissionController; },
4799
+ TaonCmsContentPermissionDefaultsValues: TaonCmsContentPermissionDefaultsValues,
4800
+ get TaonCmsContentPermissionEntity () { return TaonCmsContentPermissionEntity; },
4801
+ get TaonCmsContentPermissionMiddleware () { return TaonCmsContentPermissionMiddleware; },
4802
+ get TaonCmsContentPermissionProvider () { return TaonCmsContentPermissionProvider; },
4803
+ get TaonCmsContentPermissionRepository () { return TaonCmsContentPermissionRepository; },
4804
+ get TaonCmsContentPermissionState () { return TaonCmsContentPermissionState; },
4805
+ get TaonCmsContentPermissionSubscriber () { return TaonCmsContentPermissionSubscriber; },
4806
+ get TaonCmsContentPermissionUtils () { return TaonCmsContentPermissionUtils; },
4807
+ get TaonCmsContentProvider () { return TaonCmsContentProvider; },
4808
+ get TaonCmsContentRepository () { return TaonCmsContentRepository; },
4809
+ TaonCmsContentRevisionAbstractContext: TaonCmsContentRevisionAbstractContext,
4810
+ TaonCmsContentRevisionApiService: TaonCmsContentRevisionApiService,
4811
+ get TaonCmsContentRevisionController () { return TaonCmsContentRevisionController; },
4812
+ TaonCmsContentRevisionDefaultsValues: TaonCmsContentRevisionDefaultsValues,
4813
+ get TaonCmsContentRevisionEntity () { return TaonCmsContentRevisionEntity; },
4814
+ get TaonCmsContentRevisionMiddleware () { return TaonCmsContentRevisionMiddleware; },
4815
+ get TaonCmsContentRevisionProvider () { return TaonCmsContentRevisionProvider; },
4816
+ get TaonCmsContentRevisionRepository () { return TaonCmsContentRevisionRepository; },
4817
+ get TaonCmsContentRevisionState () { return TaonCmsContentRevisionState; },
4818
+ get TaonCmsContentRevisionSubscriber () { return TaonCmsContentRevisionSubscriber; },
4819
+ get TaonCmsContentRevisionUtils () { return TaonCmsContentRevisionUtils; },
4820
+ get TaonCmsContentState () { return TaonCmsContentState; },
4821
+ get TaonCmsContentStorageController () { return TaonCmsContentStorageController; },
4822
+ get TaonCmsContentSubscriber () { return TaonCmsContentSubscriber; },
4823
+ TaonCmsContentTagAbstractContext: TaonCmsContentTagAbstractContext,
4824
+ TaonCmsContentTagApiService: TaonCmsContentTagApiService,
4825
+ get TaonCmsContentTagController () { return TaonCmsContentTagController; },
4826
+ TaonCmsContentTagDefaultsValues: TaonCmsContentTagDefaultsValues,
4827
+ get TaonCmsContentTagEntity () { return TaonCmsContentTagEntity; },
4828
+ get TaonCmsContentTagMiddleware () { return TaonCmsContentTagMiddleware; },
4829
+ get TaonCmsContentTagProvider () { return TaonCmsContentTagProvider; },
4830
+ get TaonCmsContentTagRepository () { return TaonCmsContentTagRepository; },
4831
+ get TaonCmsContentTagState () { return TaonCmsContentTagState; },
4832
+ get TaonCmsContentTagSubscriber () { return TaonCmsContentTagSubscriber; },
4833
+ get TaonCmsContentTagUtils () { return TaonCmsContentTagUtils; },
4834
+ get TaonCmsContentType () { return TaonCmsContentType; },
4835
+ get TaonCmsContentUtils () { return TaonCmsContentUtils; },
4836
+ TaonCmsEditableDirective: TaonCmsEditableDirective,
4837
+ TaonCmsPostComponent: TaonCmsPostComponent,
4838
+ TaonCmsPostDetailsPageComponent: TaonCmsPostDetailsPageComponent,
4839
+ TaonCmsPostEditDialogComponent: TaonCmsPostEditDialogComponent,
4840
+ TaonCmsPostRoutes: TaonCmsPostRoutes,
4841
+ TaonCmsPostsBackofficeComponent: TaonCmsPostsBackofficeComponent,
4842
+ TaonCmsPostsBackofficeRoutes: TaonCmsPostsBackofficeRoutes,
4843
+ TaonCmsRevisionChooserComponent: TaonCmsRevisionChooserComponent,
4844
+ TaonCmsTagAbstractContext: TaonCmsTagAbstractContext,
4845
+ TaonCmsTagApiService: TaonCmsTagApiService,
4846
+ get TaonCmsTagController () { return TaonCmsTagController; },
4847
+ TaonCmsTagDefaultsValues: TaonCmsTagDefaultsValues,
4848
+ get TaonCmsTagEntity () { return TaonCmsTagEntity; },
4849
+ get TaonCmsTagMiddleware () { return TaonCmsTagMiddleware; },
4850
+ get TaonCmsTagProvider () { return TaonCmsTagProvider; },
4851
+ get TaonCmsTagRepository () { return TaonCmsTagRepository; },
4852
+ get TaonCmsTagState () { return TaonCmsTagState; },
4853
+ get TaonCmsTagSubscriber () { return TaonCmsTagSubscriber; },
4854
+ get TaonCmsTagUtils () { return TaonCmsTagUtils; },
4855
+ TaonRelatedPostChooserComponent: TaonRelatedPostChooserComponent,
4856
+ contentError: contentError,
4857
+ default: index,
4858
+ myOrgProj: myOrgProj,
4859
+ requireContentId: requireContentId,
4860
+ requireContentVersion: requireContentVersion,
4861
+ startCli: startCli,
4862
+ validateContentInput: validateContentInput
4863
+ });
4864
+
2434
4865
  /**
2435
4866
  * Generated bundle index. Do not edit.
2436
4867
  */
2437
4868
 
2438
- export { APP_ID, BUILD_BASE_HREF, BUILD_FRAMEWORK_CLI_NAME, CURRENT_PACKAGE_TAON_VERSION, CURRENT_PACKAGE_VERSION, ENV_ANGULAR_NODE_APP_BUILD_BASE_HREF, ENV_ANGULAR_NODE_APP_BUILD_ELECTRON_SHOW_DEV_TOOLS, ENV_ANGULAR_NODE_APP_BUILD_GEN_ONLY_CLIENT_CODE, ENV_ANGULAR_NODE_APP_BUILD_OVERRIDE_OUTPUT_PATH, ENV_ANGULAR_NODE_APP_BUILD_PROD, ENV_ANGULAR_NODE_APP_BUILD_PWA_DISABLE_SERVICE_WORKER, ENV_ANGULAR_NODE_APP_BUILD_PWA_NAME, ENV_ANGULAR_NODE_APP_BUILD_PWA_SHORT_NAME, ENV_ANGULAR_NODE_APP_BUILD_PWA_START_URL, ENV_ANGULAR_NODE_APP_BUILD_SSR, ENV_ANGULAR_NODE_APP_BUILD_WATCH, ENV_ANGULAR_NODE_APP_BUILD_WEBSQL, ENV_ANGULAR_NODE_APP_CONTAINER_END, ENV_ANGULAR_NODE_APP_CONTAINER_ONLY, ENV_ANGULAR_NODE_APP_CONTAINER_SKIP, ENV_ANGULAR_NODE_APP_CONTAINER_SKIP_RELEASED, ENV_ANGULAR_NODE_APP_CONTAINER_START, ENV_ANGULAR_NODE_APP_COPY_TO_MANAGER_BEFORE_COPY_HOOK, ENV_ANGULAR_NODE_APP_COPY_TO_MANAGER_COPY_TO_LOCATIONS, ENV_ANGULAR_NODE_APP_COPY_TO_MANAGER_COPY_TO_PROJECTS, ENV_ANGULAR_NODE_APP_COPY_TO_MANAGER_SKIP, ENV_ANGULAR_NODE_APP_DOCKER_ADDITIONAL_CONTAINER, ENV_ANGULAR_NODE_APP_DOCKER_SKIP_START_IN_ORDER, ENV_ANGULAR_NODE_APP_DOCKER_SKIP_USING_MYSQL_DB, ENV_ANGULAR_NODE_APP_FINISH_CALLBACK, ENV_ANGULAR_NODE_APP_INIT_BRANDING, ENV_ANGULAR_NODE_APP_INIT_STRUCT, ENV_ANGULAR_NODE_APP_IS_CI_PROCESS, ENV_ANGULAR_NODE_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_BACKGROUND, ENV_ANGULAR_NODE_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER, ENV_ANGULAR_NODE_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER_NAME, ENV_ANGULAR_NODE_APP_PURPOSE, ENV_ANGULAR_NODE_APP_RECURSIVE_ACTION, ENV_ANGULAR_NODE_APP_RELEASE_AUTO_RELEASE_TASK_NAME, ENV_ANGULAR_NODE_APP_RELEASE_AUTO_RELEASE_USING_CONFIG, ENV_ANGULAR_NODE_APP_RELEASE_CLI_COMPRESS, ENV_ANGULAR_NODE_APP_RELEASE_CLI_INCLUDE_NODE_MODULES, ENV_ANGULAR_NODE_APP_RELEASE_CLI_MINIFY, ENV_ANGULAR_NODE_APP_RELEASE_CLI_OBSCURE, ENV_ANGULAR_NODE_APP_RELEASE_CLI_UGLIFY, ENV_ANGULAR_NODE_APP_RELEASE_ENV_NAME, ENV_ANGULAR_NODE_APP_RELEASE_ENV_NUMBER, ENV_ANGULAR_NODE_APP_RELEASE_INSTALL_LOCALLY, ENV_ANGULAR_NODE_APP_RELEASE_LIB_COMPRESS, ENV_ANGULAR_NODE_APP_RELEASE_LIB_DO_NOT_INCLUDE_LIB_FILES, ENV_ANGULAR_NODE_APP_RELEASE_LIB_INCLUDE_SOURCE_MAPS, ENV_ANGULAR_NODE_APP_RELEASE_LIB_OBSCURE_FILE_BY_FILE, ENV_ANGULAR_NODE_APP_RELEASE_LIB_REMOVE_DTS, ENV_ANGULAR_NODE_APP_RELEASE_LIB_UGLIFY_FILE_BY_FILE, ENV_ANGULAR_NODE_APP_RELEASE_NODE_BACKEND_APP_MINIFY, ENV_ANGULAR_NODE_APP_RELEASE_PUSH_TO_ALL_ORIGINS_WHEN_LOCAL_RELEASE_BRANCH, ENV_ANGULAR_NODE_APP_RELEASE_RELEASE_TYPE, ENV_ANGULAR_NODE_APP_RELEASE_RELEASE_VERSION_BUMP_TYPE, ENV_ANGULAR_NODE_APP_RELEASE_REMOVE_RELEASE_OUTPUT_AFTER_LOCAL_INSTALL, ENV_ANGULAR_NODE_APP_RELEASE_RESOLVED_NEW_VERSION, ENV_ANGULAR_NODE_APP_RELEASE_SKIP_BUILDING_ARTIFACTS, ENV_ANGULAR_NODE_APP_RELEASE_SKIP_CODE_CUTTING, ENV_ANGULAR_NODE_APP_RELEASE_SKIP_DEPLOY, ENV_ANGULAR_NODE_APP_RELEASE_SKIP_NPM_PUBLISH, ENV_ANGULAR_NODE_APP_RELEASE_SKIP_RELEASE_QUESTION, ENV_ANGULAR_NODE_APP_RELEASE_SKIP_RESOLVING_GIT_CHANGES, ENV_ANGULAR_NODE_APP_RELEASE_SKIP_TAG_GIT_PUSH, ENV_ANGULAR_NODE_APP_RELEASE_TAON_INSTANCE_IP, ENV_ANGULAR_NODE_APP_RELEASE_TARGET_ARTIFACT, ENV_ANGULAR_NODE_APP_RELEASE_USE_LOCAL_RELEASE_BRANCH, ENV_ANGULAR_NODE_APP_WEBSITE_DOMAIN, ENV_ANGULAR_NODE_APP_WEBSITE_TITLE, ENV_ANGULAR_NODE_APP_WEBSITE_USE_DOMAIN, ENV_DOCS_WEBAPP_BUILD_BASE_HREF, ENV_DOCS_WEBAPP_BUILD_ELECTRON_SHOW_DEV_TOOLS, ENV_DOCS_WEBAPP_BUILD_GEN_ONLY_CLIENT_CODE, ENV_DOCS_WEBAPP_BUILD_OVERRIDE_OUTPUT_PATH, ENV_DOCS_WEBAPP_BUILD_PROD, ENV_DOCS_WEBAPP_BUILD_PWA_DISABLE_SERVICE_WORKER, ENV_DOCS_WEBAPP_BUILD_PWA_NAME, ENV_DOCS_WEBAPP_BUILD_PWA_SHORT_NAME, ENV_DOCS_WEBAPP_BUILD_PWA_START_URL, ENV_DOCS_WEBAPP_BUILD_SSR, ENV_DOCS_WEBAPP_BUILD_WATCH, ENV_DOCS_WEBAPP_BUILD_WEBSQL, ENV_DOCS_WEBAPP_CONTAINER_END, ENV_DOCS_WEBAPP_CONTAINER_ONLY, ENV_DOCS_WEBAPP_CONTAINER_SKIP, ENV_DOCS_WEBAPP_CONTAINER_SKIP_RELEASED, ENV_DOCS_WEBAPP_CONTAINER_START, ENV_DOCS_WEBAPP_COPY_TO_MANAGER_BEFORE_COPY_HOOK, ENV_DOCS_WEBAPP_COPY_TO_MANAGER_COPY_TO_LOCATIONS, ENV_DOCS_WEBAPP_COPY_TO_MANAGER_COPY_TO_PROJECTS, ENV_DOCS_WEBAPP_COPY_TO_MANAGER_SKIP, ENV_DOCS_WEBAPP_DOCKER_ADDITIONAL_CONTAINER, ENV_DOCS_WEBAPP_DOCKER_SKIP_START_IN_ORDER, ENV_DOCS_WEBAPP_DOCKER_SKIP_USING_MYSQL_DB, ENV_DOCS_WEBAPP_FINISH_CALLBACK, ENV_DOCS_WEBAPP_INIT_BRANDING, ENV_DOCS_WEBAPP_INIT_STRUCT, ENV_DOCS_WEBAPP_IS_CI_PROCESS, ENV_DOCS_WEBAPP_LOADING_PRE_ANGULAR_BOOTSTRAP_BACKGROUND, ENV_DOCS_WEBAPP_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER, ENV_DOCS_WEBAPP_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER_NAME, ENV_DOCS_WEBAPP_PURPOSE, ENV_DOCS_WEBAPP_RECURSIVE_ACTION, ENV_DOCS_WEBAPP_RELEASE_AUTO_RELEASE_TASK_NAME, ENV_DOCS_WEBAPP_RELEASE_AUTO_RELEASE_USING_CONFIG, ENV_DOCS_WEBAPP_RELEASE_CLI_COMPRESS, ENV_DOCS_WEBAPP_RELEASE_CLI_INCLUDE_NODE_MODULES, ENV_DOCS_WEBAPP_RELEASE_CLI_MINIFY, ENV_DOCS_WEBAPP_RELEASE_CLI_OBSCURE, ENV_DOCS_WEBAPP_RELEASE_CLI_UGLIFY, ENV_DOCS_WEBAPP_RELEASE_ENV_NAME, ENV_DOCS_WEBAPP_RELEASE_ENV_NUMBER, ENV_DOCS_WEBAPP_RELEASE_INSTALL_LOCALLY, ENV_DOCS_WEBAPP_RELEASE_LIB_COMPRESS, ENV_DOCS_WEBAPP_RELEASE_LIB_DO_NOT_INCLUDE_LIB_FILES, ENV_DOCS_WEBAPP_RELEASE_LIB_INCLUDE_SOURCE_MAPS, ENV_DOCS_WEBAPP_RELEASE_LIB_OBSCURE_FILE_BY_FILE, ENV_DOCS_WEBAPP_RELEASE_LIB_REMOVE_DTS, ENV_DOCS_WEBAPP_RELEASE_LIB_UGLIFY_FILE_BY_FILE, ENV_DOCS_WEBAPP_RELEASE_NODE_BACKEND_APP_MINIFY, ENV_DOCS_WEBAPP_RELEASE_PUSH_TO_ALL_ORIGINS_WHEN_LOCAL_RELEASE_BRANCH, ENV_DOCS_WEBAPP_RELEASE_RELEASE_TYPE, ENV_DOCS_WEBAPP_RELEASE_RELEASE_VERSION_BUMP_TYPE, ENV_DOCS_WEBAPP_RELEASE_REMOVE_RELEASE_OUTPUT_AFTER_LOCAL_INSTALL, ENV_DOCS_WEBAPP_RELEASE_RESOLVED_NEW_VERSION, ENV_DOCS_WEBAPP_RELEASE_SKIP_BUILDING_ARTIFACTS, ENV_DOCS_WEBAPP_RELEASE_SKIP_CODE_CUTTING, ENV_DOCS_WEBAPP_RELEASE_SKIP_DEPLOY, ENV_DOCS_WEBAPP_RELEASE_SKIP_NPM_PUBLISH, ENV_DOCS_WEBAPP_RELEASE_SKIP_RELEASE_QUESTION, ENV_DOCS_WEBAPP_RELEASE_SKIP_RESOLVING_GIT_CHANGES, ENV_DOCS_WEBAPP_RELEASE_SKIP_TAG_GIT_PUSH, ENV_DOCS_WEBAPP_RELEASE_TAON_INSTANCE_IP, ENV_DOCS_WEBAPP_RELEASE_TARGET_ARTIFACT, ENV_DOCS_WEBAPP_RELEASE_USE_LOCAL_RELEASE_BRANCH, ENV_DOCS_WEBAPP_WEBSITE_DOMAIN, ENV_DOCS_WEBAPP_WEBSITE_TITLE, ENV_DOCS_WEBAPP_WEBSITE_USE_DOMAIN, ENV_ELECTRON_APP_BUILD_BASE_HREF, ENV_ELECTRON_APP_BUILD_ELECTRON_SHOW_DEV_TOOLS, ENV_ELECTRON_APP_BUILD_GEN_ONLY_CLIENT_CODE, ENV_ELECTRON_APP_BUILD_OVERRIDE_OUTPUT_PATH, ENV_ELECTRON_APP_BUILD_PROD, ENV_ELECTRON_APP_BUILD_PWA_DISABLE_SERVICE_WORKER, ENV_ELECTRON_APP_BUILD_PWA_NAME, ENV_ELECTRON_APP_BUILD_PWA_SHORT_NAME, ENV_ELECTRON_APP_BUILD_PWA_START_URL, ENV_ELECTRON_APP_BUILD_SSR, ENV_ELECTRON_APP_BUILD_WATCH, ENV_ELECTRON_APP_BUILD_WEBSQL, ENV_ELECTRON_APP_CONTAINER_END, ENV_ELECTRON_APP_CONTAINER_ONLY, ENV_ELECTRON_APP_CONTAINER_SKIP, ENV_ELECTRON_APP_CONTAINER_SKIP_RELEASED, ENV_ELECTRON_APP_CONTAINER_START, ENV_ELECTRON_APP_COPY_TO_MANAGER_BEFORE_COPY_HOOK, ENV_ELECTRON_APP_COPY_TO_MANAGER_COPY_TO_LOCATIONS, ENV_ELECTRON_APP_COPY_TO_MANAGER_COPY_TO_PROJECTS, ENV_ELECTRON_APP_COPY_TO_MANAGER_SKIP, ENV_ELECTRON_APP_DOCKER_ADDITIONAL_CONTAINER, ENV_ELECTRON_APP_DOCKER_SKIP_START_IN_ORDER, ENV_ELECTRON_APP_DOCKER_SKIP_USING_MYSQL_DB, ENV_ELECTRON_APP_FINISH_CALLBACK, ENV_ELECTRON_APP_INIT_BRANDING, ENV_ELECTRON_APP_INIT_STRUCT, ENV_ELECTRON_APP_IS_CI_PROCESS, ENV_ELECTRON_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_BACKGROUND, ENV_ELECTRON_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER, ENV_ELECTRON_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER_NAME, ENV_ELECTRON_APP_PURPOSE, ENV_ELECTRON_APP_RECURSIVE_ACTION, ENV_ELECTRON_APP_RELEASE_AUTO_RELEASE_TASK_NAME, ENV_ELECTRON_APP_RELEASE_AUTO_RELEASE_USING_CONFIG, ENV_ELECTRON_APP_RELEASE_CLI_COMPRESS, ENV_ELECTRON_APP_RELEASE_CLI_INCLUDE_NODE_MODULES, ENV_ELECTRON_APP_RELEASE_CLI_MINIFY, ENV_ELECTRON_APP_RELEASE_CLI_OBSCURE, ENV_ELECTRON_APP_RELEASE_CLI_UGLIFY, ENV_ELECTRON_APP_RELEASE_ENV_NAME, ENV_ELECTRON_APP_RELEASE_ENV_NUMBER, ENV_ELECTRON_APP_RELEASE_INSTALL_LOCALLY, ENV_ELECTRON_APP_RELEASE_LIB_COMPRESS, ENV_ELECTRON_APP_RELEASE_LIB_DO_NOT_INCLUDE_LIB_FILES, ENV_ELECTRON_APP_RELEASE_LIB_INCLUDE_SOURCE_MAPS, ENV_ELECTRON_APP_RELEASE_LIB_OBSCURE_FILE_BY_FILE, ENV_ELECTRON_APP_RELEASE_LIB_REMOVE_DTS, ENV_ELECTRON_APP_RELEASE_LIB_UGLIFY_FILE_BY_FILE, ENV_ELECTRON_APP_RELEASE_NODE_BACKEND_APP_MINIFY, ENV_ELECTRON_APP_RELEASE_PUSH_TO_ALL_ORIGINS_WHEN_LOCAL_RELEASE_BRANCH, ENV_ELECTRON_APP_RELEASE_RELEASE_TYPE, ENV_ELECTRON_APP_RELEASE_RELEASE_VERSION_BUMP_TYPE, ENV_ELECTRON_APP_RELEASE_REMOVE_RELEASE_OUTPUT_AFTER_LOCAL_INSTALL, ENV_ELECTRON_APP_RELEASE_RESOLVED_NEW_VERSION, ENV_ELECTRON_APP_RELEASE_SKIP_BUILDING_ARTIFACTS, ENV_ELECTRON_APP_RELEASE_SKIP_CODE_CUTTING, ENV_ELECTRON_APP_RELEASE_SKIP_DEPLOY, ENV_ELECTRON_APP_RELEASE_SKIP_NPM_PUBLISH, ENV_ELECTRON_APP_RELEASE_SKIP_RELEASE_QUESTION, ENV_ELECTRON_APP_RELEASE_SKIP_RESOLVING_GIT_CHANGES, ENV_ELECTRON_APP_RELEASE_SKIP_TAG_GIT_PUSH, ENV_ELECTRON_APP_RELEASE_TAON_INSTANCE_IP, ENV_ELECTRON_APP_RELEASE_TARGET_ARTIFACT, ENV_ELECTRON_APP_RELEASE_USE_LOCAL_RELEASE_BRANCH, ENV_ELECTRON_APP_WEBSITE_DOMAIN, ENV_ELECTRON_APP_WEBSITE_TITLE, ENV_ELECTRON_APP_WEBSITE_USE_DOMAIN, ENV_MOBILE_APP_BUILD_BASE_HREF, ENV_MOBILE_APP_BUILD_ELECTRON_SHOW_DEV_TOOLS, ENV_MOBILE_APP_BUILD_GEN_ONLY_CLIENT_CODE, ENV_MOBILE_APP_BUILD_OVERRIDE_OUTPUT_PATH, ENV_MOBILE_APP_BUILD_PROD, ENV_MOBILE_APP_BUILD_PWA_DISABLE_SERVICE_WORKER, ENV_MOBILE_APP_BUILD_PWA_NAME, ENV_MOBILE_APP_BUILD_PWA_SHORT_NAME, ENV_MOBILE_APP_BUILD_PWA_START_URL, ENV_MOBILE_APP_BUILD_SSR, ENV_MOBILE_APP_BUILD_WATCH, ENV_MOBILE_APP_BUILD_WEBSQL, ENV_MOBILE_APP_CONTAINER_END, ENV_MOBILE_APP_CONTAINER_ONLY, ENV_MOBILE_APP_CONTAINER_SKIP, ENV_MOBILE_APP_CONTAINER_SKIP_RELEASED, ENV_MOBILE_APP_CONTAINER_START, ENV_MOBILE_APP_COPY_TO_MANAGER_BEFORE_COPY_HOOK, ENV_MOBILE_APP_COPY_TO_MANAGER_COPY_TO_LOCATIONS, ENV_MOBILE_APP_COPY_TO_MANAGER_COPY_TO_PROJECTS, ENV_MOBILE_APP_COPY_TO_MANAGER_SKIP, ENV_MOBILE_APP_DOCKER_ADDITIONAL_CONTAINER, ENV_MOBILE_APP_DOCKER_SKIP_START_IN_ORDER, ENV_MOBILE_APP_DOCKER_SKIP_USING_MYSQL_DB, ENV_MOBILE_APP_FINISH_CALLBACK, ENV_MOBILE_APP_INIT_BRANDING, ENV_MOBILE_APP_INIT_STRUCT, ENV_MOBILE_APP_IS_CI_PROCESS, ENV_MOBILE_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_BACKGROUND, ENV_MOBILE_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER, ENV_MOBILE_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER_NAME, ENV_MOBILE_APP_PURPOSE, ENV_MOBILE_APP_RECURSIVE_ACTION, ENV_MOBILE_APP_RELEASE_AUTO_RELEASE_TASK_NAME, ENV_MOBILE_APP_RELEASE_AUTO_RELEASE_USING_CONFIG, ENV_MOBILE_APP_RELEASE_CLI_COMPRESS, ENV_MOBILE_APP_RELEASE_CLI_INCLUDE_NODE_MODULES, ENV_MOBILE_APP_RELEASE_CLI_MINIFY, ENV_MOBILE_APP_RELEASE_CLI_OBSCURE, ENV_MOBILE_APP_RELEASE_CLI_UGLIFY, ENV_MOBILE_APP_RELEASE_ENV_NAME, ENV_MOBILE_APP_RELEASE_ENV_NUMBER, ENV_MOBILE_APP_RELEASE_INSTALL_LOCALLY, ENV_MOBILE_APP_RELEASE_LIB_COMPRESS, ENV_MOBILE_APP_RELEASE_LIB_DO_NOT_INCLUDE_LIB_FILES, ENV_MOBILE_APP_RELEASE_LIB_INCLUDE_SOURCE_MAPS, ENV_MOBILE_APP_RELEASE_LIB_OBSCURE_FILE_BY_FILE, ENV_MOBILE_APP_RELEASE_LIB_REMOVE_DTS, ENV_MOBILE_APP_RELEASE_LIB_UGLIFY_FILE_BY_FILE, ENV_MOBILE_APP_RELEASE_NODE_BACKEND_APP_MINIFY, ENV_MOBILE_APP_RELEASE_PUSH_TO_ALL_ORIGINS_WHEN_LOCAL_RELEASE_BRANCH, ENV_MOBILE_APP_RELEASE_RELEASE_TYPE, ENV_MOBILE_APP_RELEASE_RELEASE_VERSION_BUMP_TYPE, ENV_MOBILE_APP_RELEASE_REMOVE_RELEASE_OUTPUT_AFTER_LOCAL_INSTALL, ENV_MOBILE_APP_RELEASE_RESOLVED_NEW_VERSION, ENV_MOBILE_APP_RELEASE_SKIP_BUILDING_ARTIFACTS, ENV_MOBILE_APP_RELEASE_SKIP_CODE_CUTTING, ENV_MOBILE_APP_RELEASE_SKIP_DEPLOY, ENV_MOBILE_APP_RELEASE_SKIP_NPM_PUBLISH, ENV_MOBILE_APP_RELEASE_SKIP_RELEASE_QUESTION, ENV_MOBILE_APP_RELEASE_SKIP_RESOLVING_GIT_CHANGES, ENV_MOBILE_APP_RELEASE_SKIP_TAG_GIT_PUSH, ENV_MOBILE_APP_RELEASE_TAON_INSTANCE_IP, ENV_MOBILE_APP_RELEASE_TARGET_ARTIFACT, ENV_MOBILE_APP_RELEASE_USE_LOCAL_RELEASE_BRANCH, ENV_MOBILE_APP_WEBSITE_DOMAIN, ENV_MOBILE_APP_WEBSITE_TITLE, ENV_MOBILE_APP_WEBSITE_USE_DOMAIN, ENV_NPM_LIB_AND_CLI_TOOL_BUILD_BASE_HREF, ENV_NPM_LIB_AND_CLI_TOOL_BUILD_ELECTRON_SHOW_DEV_TOOLS, ENV_NPM_LIB_AND_CLI_TOOL_BUILD_GEN_ONLY_CLIENT_CODE, ENV_NPM_LIB_AND_CLI_TOOL_BUILD_OVERRIDE_OUTPUT_PATH, ENV_NPM_LIB_AND_CLI_TOOL_BUILD_PROD, ENV_NPM_LIB_AND_CLI_TOOL_BUILD_PWA_DISABLE_SERVICE_WORKER, ENV_NPM_LIB_AND_CLI_TOOL_BUILD_PWA_NAME, ENV_NPM_LIB_AND_CLI_TOOL_BUILD_PWA_SHORT_NAME, ENV_NPM_LIB_AND_CLI_TOOL_BUILD_PWA_START_URL, ENV_NPM_LIB_AND_CLI_TOOL_BUILD_SSR, ENV_NPM_LIB_AND_CLI_TOOL_BUILD_WATCH, ENV_NPM_LIB_AND_CLI_TOOL_BUILD_WEBSQL, ENV_NPM_LIB_AND_CLI_TOOL_CONTAINER_END, ENV_NPM_LIB_AND_CLI_TOOL_CONTAINER_ONLY, ENV_NPM_LIB_AND_CLI_TOOL_CONTAINER_SKIP, ENV_NPM_LIB_AND_CLI_TOOL_CONTAINER_SKIP_RELEASED, ENV_NPM_LIB_AND_CLI_TOOL_CONTAINER_START, ENV_NPM_LIB_AND_CLI_TOOL_COPY_TO_MANAGER_BEFORE_COPY_HOOK, ENV_NPM_LIB_AND_CLI_TOOL_COPY_TO_MANAGER_COPY_TO_LOCATIONS, ENV_NPM_LIB_AND_CLI_TOOL_COPY_TO_MANAGER_COPY_TO_PROJECTS, ENV_NPM_LIB_AND_CLI_TOOL_COPY_TO_MANAGER_SKIP, ENV_NPM_LIB_AND_CLI_TOOL_DOCKER_ADDITIONAL_CONTAINER, ENV_NPM_LIB_AND_CLI_TOOL_DOCKER_SKIP_START_IN_ORDER, ENV_NPM_LIB_AND_CLI_TOOL_DOCKER_SKIP_USING_MYSQL_DB, ENV_NPM_LIB_AND_CLI_TOOL_FINISH_CALLBACK, ENV_NPM_LIB_AND_CLI_TOOL_INIT_BRANDING, ENV_NPM_LIB_AND_CLI_TOOL_INIT_STRUCT, ENV_NPM_LIB_AND_CLI_TOOL_IS_CI_PROCESS, ENV_NPM_LIB_AND_CLI_TOOL_LOADING_PRE_ANGULAR_BOOTSTRAP_BACKGROUND, ENV_NPM_LIB_AND_CLI_TOOL_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER, ENV_NPM_LIB_AND_CLI_TOOL_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER_NAME, ENV_NPM_LIB_AND_CLI_TOOL_PURPOSE, ENV_NPM_LIB_AND_CLI_TOOL_RECURSIVE_ACTION, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_AUTO_RELEASE_TASK_NAME, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_AUTO_RELEASE_USING_CONFIG, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_CLI_COMPRESS, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_CLI_INCLUDE_NODE_MODULES, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_CLI_MINIFY, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_CLI_OBSCURE, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_CLI_UGLIFY, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_ENV_NAME, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_ENV_NUMBER, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_INSTALL_LOCALLY, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_LIB_COMPRESS, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_LIB_DO_NOT_INCLUDE_LIB_FILES, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_LIB_INCLUDE_SOURCE_MAPS, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_LIB_OBSCURE_FILE_BY_FILE, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_LIB_REMOVE_DTS, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_LIB_UGLIFY_FILE_BY_FILE, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_NODE_BACKEND_APP_MINIFY, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_PUSH_TO_ALL_ORIGINS_WHEN_LOCAL_RELEASE_BRANCH, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_RELEASE_TYPE, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_RELEASE_VERSION_BUMP_TYPE, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_REMOVE_RELEASE_OUTPUT_AFTER_LOCAL_INSTALL, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_RESOLVED_NEW_VERSION, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_SKIP_BUILDING_ARTIFACTS, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_SKIP_CODE_CUTTING, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_SKIP_DEPLOY, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_SKIP_NPM_PUBLISH, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_SKIP_RELEASE_QUESTION, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_SKIP_RESOLVING_GIT_CHANGES, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_SKIP_TAG_GIT_PUSH, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_TAON_INSTANCE_IP, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_TARGET_ARTIFACT, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_USE_LOCAL_RELEASE_BRANCH, ENV_NPM_LIB_AND_CLI_TOOL_WEBSITE_DOMAIN, ENV_NPM_LIB_AND_CLI_TOOL_WEBSITE_TITLE, ENV_NPM_LIB_AND_CLI_TOOL_WEBSITE_USE_DOMAIN, ENV_VSCODE_PLUGIN_BUILD_BASE_HREF, ENV_VSCODE_PLUGIN_BUILD_ELECTRON_SHOW_DEV_TOOLS, ENV_VSCODE_PLUGIN_BUILD_GEN_ONLY_CLIENT_CODE, ENV_VSCODE_PLUGIN_BUILD_OVERRIDE_OUTPUT_PATH, ENV_VSCODE_PLUGIN_BUILD_PROD, ENV_VSCODE_PLUGIN_BUILD_PWA_DISABLE_SERVICE_WORKER, ENV_VSCODE_PLUGIN_BUILD_PWA_NAME, ENV_VSCODE_PLUGIN_BUILD_PWA_SHORT_NAME, ENV_VSCODE_PLUGIN_BUILD_PWA_START_URL, ENV_VSCODE_PLUGIN_BUILD_SSR, ENV_VSCODE_PLUGIN_BUILD_WATCH, ENV_VSCODE_PLUGIN_BUILD_WEBSQL, ENV_VSCODE_PLUGIN_CONTAINER_END, ENV_VSCODE_PLUGIN_CONTAINER_ONLY, ENV_VSCODE_PLUGIN_CONTAINER_SKIP, ENV_VSCODE_PLUGIN_CONTAINER_SKIP_RELEASED, ENV_VSCODE_PLUGIN_CONTAINER_START, ENV_VSCODE_PLUGIN_COPY_TO_MANAGER_BEFORE_COPY_HOOK, ENV_VSCODE_PLUGIN_COPY_TO_MANAGER_COPY_TO_LOCATIONS, ENV_VSCODE_PLUGIN_COPY_TO_MANAGER_COPY_TO_PROJECTS, ENV_VSCODE_PLUGIN_COPY_TO_MANAGER_SKIP, ENV_VSCODE_PLUGIN_DOCKER_ADDITIONAL_CONTAINER, ENV_VSCODE_PLUGIN_DOCKER_SKIP_START_IN_ORDER, ENV_VSCODE_PLUGIN_DOCKER_SKIP_USING_MYSQL_DB, ENV_VSCODE_PLUGIN_FINISH_CALLBACK, ENV_VSCODE_PLUGIN_INIT_BRANDING, ENV_VSCODE_PLUGIN_INIT_STRUCT, ENV_VSCODE_PLUGIN_IS_CI_PROCESS, ENV_VSCODE_PLUGIN_LOADING_PRE_ANGULAR_BOOTSTRAP_BACKGROUND, ENV_VSCODE_PLUGIN_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER, ENV_VSCODE_PLUGIN_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER_NAME, ENV_VSCODE_PLUGIN_PURPOSE, ENV_VSCODE_PLUGIN_RECURSIVE_ACTION, ENV_VSCODE_PLUGIN_RELEASE_AUTO_RELEASE_TASK_NAME, ENV_VSCODE_PLUGIN_RELEASE_AUTO_RELEASE_USING_CONFIG, ENV_VSCODE_PLUGIN_RELEASE_CLI_COMPRESS, ENV_VSCODE_PLUGIN_RELEASE_CLI_INCLUDE_NODE_MODULES, ENV_VSCODE_PLUGIN_RELEASE_CLI_MINIFY, ENV_VSCODE_PLUGIN_RELEASE_CLI_OBSCURE, ENV_VSCODE_PLUGIN_RELEASE_CLI_UGLIFY, ENV_VSCODE_PLUGIN_RELEASE_ENV_NAME, ENV_VSCODE_PLUGIN_RELEASE_ENV_NUMBER, ENV_VSCODE_PLUGIN_RELEASE_INSTALL_LOCALLY, ENV_VSCODE_PLUGIN_RELEASE_LIB_COMPRESS, ENV_VSCODE_PLUGIN_RELEASE_LIB_DO_NOT_INCLUDE_LIB_FILES, ENV_VSCODE_PLUGIN_RELEASE_LIB_INCLUDE_SOURCE_MAPS, ENV_VSCODE_PLUGIN_RELEASE_LIB_OBSCURE_FILE_BY_FILE, ENV_VSCODE_PLUGIN_RELEASE_LIB_REMOVE_DTS, ENV_VSCODE_PLUGIN_RELEASE_LIB_UGLIFY_FILE_BY_FILE, ENV_VSCODE_PLUGIN_RELEASE_NODE_BACKEND_APP_MINIFY, ENV_VSCODE_PLUGIN_RELEASE_PUSH_TO_ALL_ORIGINS_WHEN_LOCAL_RELEASE_BRANCH, ENV_VSCODE_PLUGIN_RELEASE_RELEASE_TYPE, ENV_VSCODE_PLUGIN_RELEASE_RELEASE_VERSION_BUMP_TYPE, ENV_VSCODE_PLUGIN_RELEASE_REMOVE_RELEASE_OUTPUT_AFTER_LOCAL_INSTALL, ENV_VSCODE_PLUGIN_RELEASE_RESOLVED_NEW_VERSION, ENV_VSCODE_PLUGIN_RELEASE_SKIP_BUILDING_ARTIFACTS, ENV_VSCODE_PLUGIN_RELEASE_SKIP_CODE_CUTTING, ENV_VSCODE_PLUGIN_RELEASE_SKIP_DEPLOY, ENV_VSCODE_PLUGIN_RELEASE_SKIP_NPM_PUBLISH, ENV_VSCODE_PLUGIN_RELEASE_SKIP_RELEASE_QUESTION, ENV_VSCODE_PLUGIN_RELEASE_SKIP_RESOLVING_GIT_CHANGES, ENV_VSCODE_PLUGIN_RELEASE_SKIP_TAG_GIT_PUSH, ENV_VSCODE_PLUGIN_RELEASE_TAON_INSTANCE_IP, ENV_VSCODE_PLUGIN_RELEASE_TARGET_ARTIFACT, ENV_VSCODE_PLUGIN_RELEASE_USE_LOCAL_RELEASE_BRANCH, ENV_VSCODE_PLUGIN_WEBSITE_DOMAIN, ENV_VSCODE_PLUGIN_WEBSITE_TITLE, ENV_VSCODE_PLUGIN_WEBSITE_USE_DOMAIN, PROJECT_NPM_NAME, TaonCmsAbstractContext, TaonCmsBackofficeComponent, TaonCmsBackofficeRoutes, TaonCmsCategoryAbstractContext, TaonCmsCategoryApiService, TaonCmsCategoryController, TaonCmsCategoryDefaultsValues, TaonCmsCategoryEntity, TaonCmsCategoryMiddleware, TaonCmsCategoryProvider, TaonCmsCategoryRepository, TaonCmsCategoryState, TaonCmsCategorySubscriber, TaonCmsCategoryUtils, TaonCmsCommentAbstractContext, TaonCmsCommentApiService, TaonCmsCommentController, TaonCmsCommentDefaultsValues, TaonCmsCommentEntity, TaonCmsCommentMiddleware, TaonCmsCommentProvider, TaonCmsCommentRepository, TaonCmsCommentState, TaonCmsCommentSubscriber, TaonCmsCommentUtils, TaonCmsContentAbstractContext, TaonCmsContentApiService, TaonCmsContentAssetAbstractContext, TaonCmsContentAssetApiService, TaonCmsContentAssetController, TaonCmsContentAssetDefaultsValues, TaonCmsContentAssetEntity, TaonCmsContentAssetMiddleware, TaonCmsContentAssetProvider, TaonCmsContentAssetRepository, TaonCmsContentAssetState, TaonCmsContentAssetSubscriber, TaonCmsContentAssetUtils, TaonCmsContentController, TaonCmsContentDefaultsValues, TaonCmsContentEntity, TaonCmsContentMiddleware, TaonCmsContentPermissionAbstractContext, TaonCmsContentPermissionApiService, TaonCmsContentPermissionController, TaonCmsContentPermissionDefaultsValues, TaonCmsContentPermissionEntity, TaonCmsContentPermissionMiddleware, TaonCmsContentPermissionProvider, TaonCmsContentPermissionRepository, TaonCmsContentPermissionState, TaonCmsContentPermissionSubscriber, TaonCmsContentPermissionUtils, TaonCmsContentProvider, TaonCmsContentRepository, TaonCmsContentRevisionAbstractContext, TaonCmsContentRevisionApiService, TaonCmsContentRevisionController, TaonCmsContentRevisionDefaultsValues, TaonCmsContentRevisionEntity, TaonCmsContentRevisionMiddleware, TaonCmsContentRevisionProvider, TaonCmsContentRevisionRepository, TaonCmsContentRevisionState, TaonCmsContentRevisionSubscriber, TaonCmsContentRevisionUtils, TaonCmsContentState, TaonCmsContentSubscriber, TaonCmsContentTagAbstractContext, TaonCmsContentTagApiService, TaonCmsContentTagController, TaonCmsContentTagDefaultsValues, TaonCmsContentTagEntity, TaonCmsContentTagMiddleware, TaonCmsContentTagProvider, TaonCmsContentTagRepository, TaonCmsContentTagState, TaonCmsContentTagSubscriber, TaonCmsContentTagUtils, TaonCmsContentUtils, TaonCmsTagAbstractContext, TaonCmsTagApiService, TaonCmsTagController, TaonCmsTagDefaultsValues, TaonCmsTagEntity, TaonCmsTagMiddleware, TaonCmsTagProvider, TaonCmsTagRepository, TaonCmsTagState, TaonCmsTagSubscriber, TaonCmsTagUtils, myOrgProj, startCli };
4869
+ export { APP_ID, BUILD_BASE_HREF, BUILD_FRAMEWORK_CLI_NAME, CURRENT_PACKAGE_TAON_VERSION, CURRENT_PACKAGE_VERSION, ENV_ANGULAR_NODE_APP_BUILD_BASE_HREF, ENV_ANGULAR_NODE_APP_BUILD_ELECTRON_SHOW_DEV_TOOLS, ENV_ANGULAR_NODE_APP_BUILD_GEN_ONLY_CLIENT_CODE, ENV_ANGULAR_NODE_APP_BUILD_OVERRIDE_OUTPUT_PATH, ENV_ANGULAR_NODE_APP_BUILD_PROD, ENV_ANGULAR_NODE_APP_BUILD_PWA_DISABLE_SERVICE_WORKER, ENV_ANGULAR_NODE_APP_BUILD_PWA_NAME, ENV_ANGULAR_NODE_APP_BUILD_PWA_SHORT_NAME, ENV_ANGULAR_NODE_APP_BUILD_PWA_START_URL, ENV_ANGULAR_NODE_APP_BUILD_SSR, ENV_ANGULAR_NODE_APP_BUILD_WATCH, ENV_ANGULAR_NODE_APP_BUILD_WEBSQL, ENV_ANGULAR_NODE_APP_CONFIG_GOOGLE_CLIENT_ID, ENV_ANGULAR_NODE_APP_CONFIG_GOOGLE_SECRET, ENV_ANGULAR_NODE_APP_CONFIG_SUPER_USERS, ENV_ANGULAR_NODE_APP_CONTAINER_END, ENV_ANGULAR_NODE_APP_CONTAINER_ONLY, ENV_ANGULAR_NODE_APP_CONTAINER_SKIP, ENV_ANGULAR_NODE_APP_CONTAINER_SKIP_RELEASED, ENV_ANGULAR_NODE_APP_CONTAINER_START, ENV_ANGULAR_NODE_APP_COPY_TO_MANAGER_BEFORE_COPY_HOOK, ENV_ANGULAR_NODE_APP_COPY_TO_MANAGER_COPY_TO_LOCATIONS, ENV_ANGULAR_NODE_APP_COPY_TO_MANAGER_COPY_TO_PROJECTS, ENV_ANGULAR_NODE_APP_COPY_TO_MANAGER_SKIP, ENV_ANGULAR_NODE_APP_DOCKER_ADDITIONAL_CONTAINER, ENV_ANGULAR_NODE_APP_DOCKER_SKIP_START_IN_ORDER, ENV_ANGULAR_NODE_APP_DOCKER_SKIP_USING_MYSQL_DB, ENV_ANGULAR_NODE_APP_FINISH_CALLBACK, ENV_ANGULAR_NODE_APP_INIT_BRANDING, ENV_ANGULAR_NODE_APP_INIT_STRUCT, ENV_ANGULAR_NODE_APP_IS_CI_PROCESS, ENV_ANGULAR_NODE_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_BACKGROUND, ENV_ANGULAR_NODE_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER, ENV_ANGULAR_NODE_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER_NAME, ENV_ANGULAR_NODE_APP_PURPOSE, ENV_ANGULAR_NODE_APP_RECURSIVE_ACTION, ENV_ANGULAR_NODE_APP_RELEASE_AUTO_RELEASE_TASK_NAME, ENV_ANGULAR_NODE_APP_RELEASE_AUTO_RELEASE_USING_CONFIG, ENV_ANGULAR_NODE_APP_RELEASE_CLI_COMPRESS, ENV_ANGULAR_NODE_APP_RELEASE_CLI_INCLUDE_NODE_MODULES, ENV_ANGULAR_NODE_APP_RELEASE_CLI_MINIFY, ENV_ANGULAR_NODE_APP_RELEASE_CLI_OBSCURE, ENV_ANGULAR_NODE_APP_RELEASE_CLI_UGLIFY, ENV_ANGULAR_NODE_APP_RELEASE_ENV_NAME, ENV_ANGULAR_NODE_APP_RELEASE_ENV_NUMBER, ENV_ANGULAR_NODE_APP_RELEASE_INSTALL_LOCALLY, ENV_ANGULAR_NODE_APP_RELEASE_LIB_COMPRESS, ENV_ANGULAR_NODE_APP_RELEASE_LIB_DO_NOT_INCLUDE_LIB_FILES, ENV_ANGULAR_NODE_APP_RELEASE_LIB_INCLUDE_SOURCE_MAPS, ENV_ANGULAR_NODE_APP_RELEASE_LIB_OBSCURE_FILE_BY_FILE, ENV_ANGULAR_NODE_APP_RELEASE_LIB_REMOVE_DTS, ENV_ANGULAR_NODE_APP_RELEASE_LIB_UGLIFY_FILE_BY_FILE, ENV_ANGULAR_NODE_APP_RELEASE_NODE_BACKEND_APP_MINIFY, ENV_ANGULAR_NODE_APP_RELEASE_PUSH_TO_ALL_ORIGINS_WHEN_LOCAL_RELEASE_BRANCH, ENV_ANGULAR_NODE_APP_RELEASE_RELEASE_TYPE, ENV_ANGULAR_NODE_APP_RELEASE_RELEASE_VERSION_BUMP_TYPE, ENV_ANGULAR_NODE_APP_RELEASE_REMOVE_RELEASE_OUTPUT_AFTER_LOCAL_INSTALL, ENV_ANGULAR_NODE_APP_RELEASE_RESOLVED_NEW_VERSION, ENV_ANGULAR_NODE_APP_RELEASE_SKIP_BUILDING_ARTIFACTS, ENV_ANGULAR_NODE_APP_RELEASE_SKIP_CODE_CUTTING, ENV_ANGULAR_NODE_APP_RELEASE_SKIP_DEPLOY, ENV_ANGULAR_NODE_APP_RELEASE_SKIP_NPM_PUBLISH, ENV_ANGULAR_NODE_APP_RELEASE_SKIP_RELEASE_QUESTION, ENV_ANGULAR_NODE_APP_RELEASE_SKIP_RESOLVING_GIT_CHANGES, ENV_ANGULAR_NODE_APP_RELEASE_SKIP_TAG_GIT_PUSH, ENV_ANGULAR_NODE_APP_RELEASE_TAON_INSTANCE_IP, ENV_ANGULAR_NODE_APP_RELEASE_TARGET_ARTIFACT, ENV_ANGULAR_NODE_APP_RELEASE_USE_LOCAL_RELEASE_BRANCH, ENV_ANGULAR_NODE_APP_WEBSITE_DOMAIN, ENV_ANGULAR_NODE_APP_WEBSITE_TITLE, ENV_ANGULAR_NODE_APP_WEBSITE_USE_DOMAIN, ENV_DOCS_WEBAPP_BUILD_BASE_HREF, ENV_DOCS_WEBAPP_BUILD_ELECTRON_SHOW_DEV_TOOLS, ENV_DOCS_WEBAPP_BUILD_GEN_ONLY_CLIENT_CODE, ENV_DOCS_WEBAPP_BUILD_OVERRIDE_OUTPUT_PATH, ENV_DOCS_WEBAPP_BUILD_PROD, ENV_DOCS_WEBAPP_BUILD_PWA_DISABLE_SERVICE_WORKER, ENV_DOCS_WEBAPP_BUILD_PWA_NAME, ENV_DOCS_WEBAPP_BUILD_PWA_SHORT_NAME, ENV_DOCS_WEBAPP_BUILD_PWA_START_URL, ENV_DOCS_WEBAPP_BUILD_SSR, ENV_DOCS_WEBAPP_BUILD_WATCH, ENV_DOCS_WEBAPP_BUILD_WEBSQL, ENV_DOCS_WEBAPP_CONFIG_GOOGLE_CLIENT_ID, ENV_DOCS_WEBAPP_CONFIG_GOOGLE_SECRET, ENV_DOCS_WEBAPP_CONFIG_SUPER_USERS, ENV_DOCS_WEBAPP_CONTAINER_END, ENV_DOCS_WEBAPP_CONTAINER_ONLY, ENV_DOCS_WEBAPP_CONTAINER_SKIP, ENV_DOCS_WEBAPP_CONTAINER_SKIP_RELEASED, ENV_DOCS_WEBAPP_CONTAINER_START, ENV_DOCS_WEBAPP_COPY_TO_MANAGER_BEFORE_COPY_HOOK, ENV_DOCS_WEBAPP_COPY_TO_MANAGER_COPY_TO_LOCATIONS, ENV_DOCS_WEBAPP_COPY_TO_MANAGER_COPY_TO_PROJECTS, ENV_DOCS_WEBAPP_COPY_TO_MANAGER_SKIP, ENV_DOCS_WEBAPP_DOCKER_ADDITIONAL_CONTAINER, ENV_DOCS_WEBAPP_DOCKER_SKIP_START_IN_ORDER, ENV_DOCS_WEBAPP_DOCKER_SKIP_USING_MYSQL_DB, ENV_DOCS_WEBAPP_FINISH_CALLBACK, ENV_DOCS_WEBAPP_INIT_BRANDING, ENV_DOCS_WEBAPP_INIT_STRUCT, ENV_DOCS_WEBAPP_IS_CI_PROCESS, ENV_DOCS_WEBAPP_LOADING_PRE_ANGULAR_BOOTSTRAP_BACKGROUND, ENV_DOCS_WEBAPP_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER, ENV_DOCS_WEBAPP_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER_NAME, ENV_DOCS_WEBAPP_PURPOSE, ENV_DOCS_WEBAPP_RECURSIVE_ACTION, ENV_DOCS_WEBAPP_RELEASE_AUTO_RELEASE_TASK_NAME, ENV_DOCS_WEBAPP_RELEASE_AUTO_RELEASE_USING_CONFIG, ENV_DOCS_WEBAPP_RELEASE_CLI_COMPRESS, ENV_DOCS_WEBAPP_RELEASE_CLI_INCLUDE_NODE_MODULES, ENV_DOCS_WEBAPP_RELEASE_CLI_MINIFY, ENV_DOCS_WEBAPP_RELEASE_CLI_OBSCURE, ENV_DOCS_WEBAPP_RELEASE_CLI_UGLIFY, ENV_DOCS_WEBAPP_RELEASE_ENV_NAME, ENV_DOCS_WEBAPP_RELEASE_ENV_NUMBER, ENV_DOCS_WEBAPP_RELEASE_INSTALL_LOCALLY, ENV_DOCS_WEBAPP_RELEASE_LIB_COMPRESS, ENV_DOCS_WEBAPP_RELEASE_LIB_DO_NOT_INCLUDE_LIB_FILES, ENV_DOCS_WEBAPP_RELEASE_LIB_INCLUDE_SOURCE_MAPS, ENV_DOCS_WEBAPP_RELEASE_LIB_OBSCURE_FILE_BY_FILE, ENV_DOCS_WEBAPP_RELEASE_LIB_REMOVE_DTS, ENV_DOCS_WEBAPP_RELEASE_LIB_UGLIFY_FILE_BY_FILE, ENV_DOCS_WEBAPP_RELEASE_NODE_BACKEND_APP_MINIFY, ENV_DOCS_WEBAPP_RELEASE_PUSH_TO_ALL_ORIGINS_WHEN_LOCAL_RELEASE_BRANCH, ENV_DOCS_WEBAPP_RELEASE_RELEASE_TYPE, ENV_DOCS_WEBAPP_RELEASE_RELEASE_VERSION_BUMP_TYPE, ENV_DOCS_WEBAPP_RELEASE_REMOVE_RELEASE_OUTPUT_AFTER_LOCAL_INSTALL, ENV_DOCS_WEBAPP_RELEASE_RESOLVED_NEW_VERSION, ENV_DOCS_WEBAPP_RELEASE_SKIP_BUILDING_ARTIFACTS, ENV_DOCS_WEBAPP_RELEASE_SKIP_CODE_CUTTING, ENV_DOCS_WEBAPP_RELEASE_SKIP_DEPLOY, ENV_DOCS_WEBAPP_RELEASE_SKIP_NPM_PUBLISH, ENV_DOCS_WEBAPP_RELEASE_SKIP_RELEASE_QUESTION, ENV_DOCS_WEBAPP_RELEASE_SKIP_RESOLVING_GIT_CHANGES, ENV_DOCS_WEBAPP_RELEASE_SKIP_TAG_GIT_PUSH, ENV_DOCS_WEBAPP_RELEASE_TAON_INSTANCE_IP, ENV_DOCS_WEBAPP_RELEASE_TARGET_ARTIFACT, ENV_DOCS_WEBAPP_RELEASE_USE_LOCAL_RELEASE_BRANCH, ENV_DOCS_WEBAPP_WEBSITE_DOMAIN, ENV_DOCS_WEBAPP_WEBSITE_TITLE, ENV_DOCS_WEBAPP_WEBSITE_USE_DOMAIN, ENV_ELECTRON_APP_BUILD_BASE_HREF, ENV_ELECTRON_APP_BUILD_ELECTRON_SHOW_DEV_TOOLS, ENV_ELECTRON_APP_BUILD_GEN_ONLY_CLIENT_CODE, ENV_ELECTRON_APP_BUILD_OVERRIDE_OUTPUT_PATH, ENV_ELECTRON_APP_BUILD_PROD, ENV_ELECTRON_APP_BUILD_PWA_DISABLE_SERVICE_WORKER, ENV_ELECTRON_APP_BUILD_PWA_NAME, ENV_ELECTRON_APP_BUILD_PWA_SHORT_NAME, ENV_ELECTRON_APP_BUILD_PWA_START_URL, ENV_ELECTRON_APP_BUILD_SSR, ENV_ELECTRON_APP_BUILD_WATCH, ENV_ELECTRON_APP_BUILD_WEBSQL, ENV_ELECTRON_APP_CONFIG_GOOGLE_CLIENT_ID, ENV_ELECTRON_APP_CONFIG_GOOGLE_SECRET, ENV_ELECTRON_APP_CONFIG_SUPER_USERS, ENV_ELECTRON_APP_CONTAINER_END, ENV_ELECTRON_APP_CONTAINER_ONLY, ENV_ELECTRON_APP_CONTAINER_SKIP, ENV_ELECTRON_APP_CONTAINER_SKIP_RELEASED, ENV_ELECTRON_APP_CONTAINER_START, ENV_ELECTRON_APP_COPY_TO_MANAGER_BEFORE_COPY_HOOK, ENV_ELECTRON_APP_COPY_TO_MANAGER_COPY_TO_LOCATIONS, ENV_ELECTRON_APP_COPY_TO_MANAGER_COPY_TO_PROJECTS, ENV_ELECTRON_APP_COPY_TO_MANAGER_SKIP, ENV_ELECTRON_APP_DOCKER_ADDITIONAL_CONTAINER, ENV_ELECTRON_APP_DOCKER_SKIP_START_IN_ORDER, ENV_ELECTRON_APP_DOCKER_SKIP_USING_MYSQL_DB, ENV_ELECTRON_APP_FINISH_CALLBACK, ENV_ELECTRON_APP_INIT_BRANDING, ENV_ELECTRON_APP_INIT_STRUCT, ENV_ELECTRON_APP_IS_CI_PROCESS, ENV_ELECTRON_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_BACKGROUND, ENV_ELECTRON_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER, ENV_ELECTRON_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER_NAME, ENV_ELECTRON_APP_PURPOSE, ENV_ELECTRON_APP_RECURSIVE_ACTION, ENV_ELECTRON_APP_RELEASE_AUTO_RELEASE_TASK_NAME, ENV_ELECTRON_APP_RELEASE_AUTO_RELEASE_USING_CONFIG, ENV_ELECTRON_APP_RELEASE_CLI_COMPRESS, ENV_ELECTRON_APP_RELEASE_CLI_INCLUDE_NODE_MODULES, ENV_ELECTRON_APP_RELEASE_CLI_MINIFY, ENV_ELECTRON_APP_RELEASE_CLI_OBSCURE, ENV_ELECTRON_APP_RELEASE_CLI_UGLIFY, ENV_ELECTRON_APP_RELEASE_ENV_NAME, ENV_ELECTRON_APP_RELEASE_ENV_NUMBER, ENV_ELECTRON_APP_RELEASE_INSTALL_LOCALLY, ENV_ELECTRON_APP_RELEASE_LIB_COMPRESS, ENV_ELECTRON_APP_RELEASE_LIB_DO_NOT_INCLUDE_LIB_FILES, ENV_ELECTRON_APP_RELEASE_LIB_INCLUDE_SOURCE_MAPS, ENV_ELECTRON_APP_RELEASE_LIB_OBSCURE_FILE_BY_FILE, ENV_ELECTRON_APP_RELEASE_LIB_REMOVE_DTS, ENV_ELECTRON_APP_RELEASE_LIB_UGLIFY_FILE_BY_FILE, ENV_ELECTRON_APP_RELEASE_NODE_BACKEND_APP_MINIFY, ENV_ELECTRON_APP_RELEASE_PUSH_TO_ALL_ORIGINS_WHEN_LOCAL_RELEASE_BRANCH, ENV_ELECTRON_APP_RELEASE_RELEASE_TYPE, ENV_ELECTRON_APP_RELEASE_RELEASE_VERSION_BUMP_TYPE, ENV_ELECTRON_APP_RELEASE_REMOVE_RELEASE_OUTPUT_AFTER_LOCAL_INSTALL, ENV_ELECTRON_APP_RELEASE_RESOLVED_NEW_VERSION, ENV_ELECTRON_APP_RELEASE_SKIP_BUILDING_ARTIFACTS, ENV_ELECTRON_APP_RELEASE_SKIP_CODE_CUTTING, ENV_ELECTRON_APP_RELEASE_SKIP_DEPLOY, ENV_ELECTRON_APP_RELEASE_SKIP_NPM_PUBLISH, ENV_ELECTRON_APP_RELEASE_SKIP_RELEASE_QUESTION, ENV_ELECTRON_APP_RELEASE_SKIP_RESOLVING_GIT_CHANGES, ENV_ELECTRON_APP_RELEASE_SKIP_TAG_GIT_PUSH, ENV_ELECTRON_APP_RELEASE_TAON_INSTANCE_IP, ENV_ELECTRON_APP_RELEASE_TARGET_ARTIFACT, ENV_ELECTRON_APP_RELEASE_USE_LOCAL_RELEASE_BRANCH, ENV_ELECTRON_APP_WEBSITE_DOMAIN, ENV_ELECTRON_APP_WEBSITE_TITLE, ENV_ELECTRON_APP_WEBSITE_USE_DOMAIN, ENV_MOBILE_APP_BUILD_BASE_HREF, ENV_MOBILE_APP_BUILD_ELECTRON_SHOW_DEV_TOOLS, ENV_MOBILE_APP_BUILD_GEN_ONLY_CLIENT_CODE, ENV_MOBILE_APP_BUILD_OVERRIDE_OUTPUT_PATH, ENV_MOBILE_APP_BUILD_PROD, ENV_MOBILE_APP_BUILD_PWA_DISABLE_SERVICE_WORKER, ENV_MOBILE_APP_BUILD_PWA_NAME, ENV_MOBILE_APP_BUILD_PWA_SHORT_NAME, ENV_MOBILE_APP_BUILD_PWA_START_URL, ENV_MOBILE_APP_BUILD_SSR, ENV_MOBILE_APP_BUILD_WATCH, ENV_MOBILE_APP_BUILD_WEBSQL, ENV_MOBILE_APP_CONFIG_GOOGLE_CLIENT_ID, ENV_MOBILE_APP_CONFIG_GOOGLE_SECRET, ENV_MOBILE_APP_CONFIG_SUPER_USERS, ENV_MOBILE_APP_CONTAINER_END, ENV_MOBILE_APP_CONTAINER_ONLY, ENV_MOBILE_APP_CONTAINER_SKIP, ENV_MOBILE_APP_CONTAINER_SKIP_RELEASED, ENV_MOBILE_APP_CONTAINER_START, ENV_MOBILE_APP_COPY_TO_MANAGER_BEFORE_COPY_HOOK, ENV_MOBILE_APP_COPY_TO_MANAGER_COPY_TO_LOCATIONS, ENV_MOBILE_APP_COPY_TO_MANAGER_COPY_TO_PROJECTS, ENV_MOBILE_APP_COPY_TO_MANAGER_SKIP, ENV_MOBILE_APP_DOCKER_ADDITIONAL_CONTAINER, ENV_MOBILE_APP_DOCKER_SKIP_START_IN_ORDER, ENV_MOBILE_APP_DOCKER_SKIP_USING_MYSQL_DB, ENV_MOBILE_APP_FINISH_CALLBACK, ENV_MOBILE_APP_INIT_BRANDING, ENV_MOBILE_APP_INIT_STRUCT, ENV_MOBILE_APP_IS_CI_PROCESS, ENV_MOBILE_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_BACKGROUND, ENV_MOBILE_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER, ENV_MOBILE_APP_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER_NAME, ENV_MOBILE_APP_PURPOSE, ENV_MOBILE_APP_RECURSIVE_ACTION, ENV_MOBILE_APP_RELEASE_AUTO_RELEASE_TASK_NAME, ENV_MOBILE_APP_RELEASE_AUTO_RELEASE_USING_CONFIG, ENV_MOBILE_APP_RELEASE_CLI_COMPRESS, ENV_MOBILE_APP_RELEASE_CLI_INCLUDE_NODE_MODULES, ENV_MOBILE_APP_RELEASE_CLI_MINIFY, ENV_MOBILE_APP_RELEASE_CLI_OBSCURE, ENV_MOBILE_APP_RELEASE_CLI_UGLIFY, ENV_MOBILE_APP_RELEASE_ENV_NAME, ENV_MOBILE_APP_RELEASE_ENV_NUMBER, ENV_MOBILE_APP_RELEASE_INSTALL_LOCALLY, ENV_MOBILE_APP_RELEASE_LIB_COMPRESS, ENV_MOBILE_APP_RELEASE_LIB_DO_NOT_INCLUDE_LIB_FILES, ENV_MOBILE_APP_RELEASE_LIB_INCLUDE_SOURCE_MAPS, ENV_MOBILE_APP_RELEASE_LIB_OBSCURE_FILE_BY_FILE, ENV_MOBILE_APP_RELEASE_LIB_REMOVE_DTS, ENV_MOBILE_APP_RELEASE_LIB_UGLIFY_FILE_BY_FILE, ENV_MOBILE_APP_RELEASE_NODE_BACKEND_APP_MINIFY, ENV_MOBILE_APP_RELEASE_PUSH_TO_ALL_ORIGINS_WHEN_LOCAL_RELEASE_BRANCH, ENV_MOBILE_APP_RELEASE_RELEASE_TYPE, ENV_MOBILE_APP_RELEASE_RELEASE_VERSION_BUMP_TYPE, ENV_MOBILE_APP_RELEASE_REMOVE_RELEASE_OUTPUT_AFTER_LOCAL_INSTALL, ENV_MOBILE_APP_RELEASE_RESOLVED_NEW_VERSION, ENV_MOBILE_APP_RELEASE_SKIP_BUILDING_ARTIFACTS, ENV_MOBILE_APP_RELEASE_SKIP_CODE_CUTTING, ENV_MOBILE_APP_RELEASE_SKIP_DEPLOY, ENV_MOBILE_APP_RELEASE_SKIP_NPM_PUBLISH, ENV_MOBILE_APP_RELEASE_SKIP_RELEASE_QUESTION, ENV_MOBILE_APP_RELEASE_SKIP_RESOLVING_GIT_CHANGES, ENV_MOBILE_APP_RELEASE_SKIP_TAG_GIT_PUSH, ENV_MOBILE_APP_RELEASE_TAON_INSTANCE_IP, ENV_MOBILE_APP_RELEASE_TARGET_ARTIFACT, ENV_MOBILE_APP_RELEASE_USE_LOCAL_RELEASE_BRANCH, ENV_MOBILE_APP_WEBSITE_DOMAIN, ENV_MOBILE_APP_WEBSITE_TITLE, ENV_MOBILE_APP_WEBSITE_USE_DOMAIN, ENV_NPM_LIB_AND_CLI_TOOL_BUILD_BASE_HREF, ENV_NPM_LIB_AND_CLI_TOOL_BUILD_ELECTRON_SHOW_DEV_TOOLS, ENV_NPM_LIB_AND_CLI_TOOL_BUILD_GEN_ONLY_CLIENT_CODE, ENV_NPM_LIB_AND_CLI_TOOL_BUILD_OVERRIDE_OUTPUT_PATH, ENV_NPM_LIB_AND_CLI_TOOL_BUILD_PROD, ENV_NPM_LIB_AND_CLI_TOOL_BUILD_PWA_DISABLE_SERVICE_WORKER, ENV_NPM_LIB_AND_CLI_TOOL_BUILD_PWA_NAME, ENV_NPM_LIB_AND_CLI_TOOL_BUILD_PWA_SHORT_NAME, ENV_NPM_LIB_AND_CLI_TOOL_BUILD_PWA_START_URL, ENV_NPM_LIB_AND_CLI_TOOL_BUILD_SSR, ENV_NPM_LIB_AND_CLI_TOOL_BUILD_WATCH, ENV_NPM_LIB_AND_CLI_TOOL_BUILD_WEBSQL, ENV_NPM_LIB_AND_CLI_TOOL_CONFIG_GOOGLE_CLIENT_ID, ENV_NPM_LIB_AND_CLI_TOOL_CONFIG_GOOGLE_SECRET, ENV_NPM_LIB_AND_CLI_TOOL_CONFIG_SUPER_USERS, ENV_NPM_LIB_AND_CLI_TOOL_CONTAINER_END, ENV_NPM_LIB_AND_CLI_TOOL_CONTAINER_ONLY, ENV_NPM_LIB_AND_CLI_TOOL_CONTAINER_SKIP, ENV_NPM_LIB_AND_CLI_TOOL_CONTAINER_SKIP_RELEASED, ENV_NPM_LIB_AND_CLI_TOOL_CONTAINER_START, ENV_NPM_LIB_AND_CLI_TOOL_COPY_TO_MANAGER_BEFORE_COPY_HOOK, ENV_NPM_LIB_AND_CLI_TOOL_COPY_TO_MANAGER_COPY_TO_LOCATIONS, ENV_NPM_LIB_AND_CLI_TOOL_COPY_TO_MANAGER_COPY_TO_PROJECTS, ENV_NPM_LIB_AND_CLI_TOOL_COPY_TO_MANAGER_SKIP, ENV_NPM_LIB_AND_CLI_TOOL_DOCKER_ADDITIONAL_CONTAINER, ENV_NPM_LIB_AND_CLI_TOOL_DOCKER_SKIP_START_IN_ORDER, ENV_NPM_LIB_AND_CLI_TOOL_DOCKER_SKIP_USING_MYSQL_DB, ENV_NPM_LIB_AND_CLI_TOOL_FINISH_CALLBACK, ENV_NPM_LIB_AND_CLI_TOOL_INIT_BRANDING, ENV_NPM_LIB_AND_CLI_TOOL_INIT_STRUCT, ENV_NPM_LIB_AND_CLI_TOOL_IS_CI_PROCESS, ENV_NPM_LIB_AND_CLI_TOOL_LOADING_PRE_ANGULAR_BOOTSTRAP_BACKGROUND, ENV_NPM_LIB_AND_CLI_TOOL_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER, ENV_NPM_LIB_AND_CLI_TOOL_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER_NAME, ENV_NPM_LIB_AND_CLI_TOOL_PURPOSE, ENV_NPM_LIB_AND_CLI_TOOL_RECURSIVE_ACTION, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_AUTO_RELEASE_TASK_NAME, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_AUTO_RELEASE_USING_CONFIG, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_CLI_COMPRESS, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_CLI_INCLUDE_NODE_MODULES, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_CLI_MINIFY, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_CLI_OBSCURE, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_CLI_UGLIFY, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_ENV_NAME, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_ENV_NUMBER, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_INSTALL_LOCALLY, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_LIB_COMPRESS, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_LIB_DO_NOT_INCLUDE_LIB_FILES, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_LIB_INCLUDE_SOURCE_MAPS, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_LIB_OBSCURE_FILE_BY_FILE, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_LIB_REMOVE_DTS, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_LIB_UGLIFY_FILE_BY_FILE, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_NODE_BACKEND_APP_MINIFY, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_PUSH_TO_ALL_ORIGINS_WHEN_LOCAL_RELEASE_BRANCH, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_RELEASE_TYPE, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_RELEASE_VERSION_BUMP_TYPE, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_REMOVE_RELEASE_OUTPUT_AFTER_LOCAL_INSTALL, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_RESOLVED_NEW_VERSION, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_SKIP_BUILDING_ARTIFACTS, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_SKIP_CODE_CUTTING, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_SKIP_DEPLOY, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_SKIP_NPM_PUBLISH, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_SKIP_RELEASE_QUESTION, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_SKIP_RESOLVING_GIT_CHANGES, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_SKIP_TAG_GIT_PUSH, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_TAON_INSTANCE_IP, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_TARGET_ARTIFACT, ENV_NPM_LIB_AND_CLI_TOOL_RELEASE_USE_LOCAL_RELEASE_BRANCH, ENV_NPM_LIB_AND_CLI_TOOL_WEBSITE_DOMAIN, ENV_NPM_LIB_AND_CLI_TOOL_WEBSITE_TITLE, ENV_NPM_LIB_AND_CLI_TOOL_WEBSITE_USE_DOMAIN, ENV_VSCODE_PLUGIN_BUILD_BASE_HREF, ENV_VSCODE_PLUGIN_BUILD_ELECTRON_SHOW_DEV_TOOLS, ENV_VSCODE_PLUGIN_BUILD_GEN_ONLY_CLIENT_CODE, ENV_VSCODE_PLUGIN_BUILD_OVERRIDE_OUTPUT_PATH, ENV_VSCODE_PLUGIN_BUILD_PROD, ENV_VSCODE_PLUGIN_BUILD_PWA_DISABLE_SERVICE_WORKER, ENV_VSCODE_PLUGIN_BUILD_PWA_NAME, ENV_VSCODE_PLUGIN_BUILD_PWA_SHORT_NAME, ENV_VSCODE_PLUGIN_BUILD_PWA_START_URL, ENV_VSCODE_PLUGIN_BUILD_SSR, ENV_VSCODE_PLUGIN_BUILD_WATCH, ENV_VSCODE_PLUGIN_BUILD_WEBSQL, ENV_VSCODE_PLUGIN_CONFIG_GOOGLE_CLIENT_ID, ENV_VSCODE_PLUGIN_CONFIG_GOOGLE_SECRET, ENV_VSCODE_PLUGIN_CONFIG_SUPER_USERS, ENV_VSCODE_PLUGIN_CONTAINER_END, ENV_VSCODE_PLUGIN_CONTAINER_ONLY, ENV_VSCODE_PLUGIN_CONTAINER_SKIP, ENV_VSCODE_PLUGIN_CONTAINER_SKIP_RELEASED, ENV_VSCODE_PLUGIN_CONTAINER_START, ENV_VSCODE_PLUGIN_COPY_TO_MANAGER_BEFORE_COPY_HOOK, ENV_VSCODE_PLUGIN_COPY_TO_MANAGER_COPY_TO_LOCATIONS, ENV_VSCODE_PLUGIN_COPY_TO_MANAGER_COPY_TO_PROJECTS, ENV_VSCODE_PLUGIN_COPY_TO_MANAGER_SKIP, ENV_VSCODE_PLUGIN_DOCKER_ADDITIONAL_CONTAINER, ENV_VSCODE_PLUGIN_DOCKER_SKIP_START_IN_ORDER, ENV_VSCODE_PLUGIN_DOCKER_SKIP_USING_MYSQL_DB, ENV_VSCODE_PLUGIN_FINISH_CALLBACK, ENV_VSCODE_PLUGIN_INIT_BRANDING, ENV_VSCODE_PLUGIN_INIT_STRUCT, ENV_VSCODE_PLUGIN_IS_CI_PROCESS, ENV_VSCODE_PLUGIN_LOADING_PRE_ANGULAR_BOOTSTRAP_BACKGROUND, ENV_VSCODE_PLUGIN_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER, ENV_VSCODE_PLUGIN_LOADING_PRE_ANGULAR_BOOTSTRAP_LOADER_NAME, ENV_VSCODE_PLUGIN_PURPOSE, ENV_VSCODE_PLUGIN_RECURSIVE_ACTION, ENV_VSCODE_PLUGIN_RELEASE_AUTO_RELEASE_TASK_NAME, ENV_VSCODE_PLUGIN_RELEASE_AUTO_RELEASE_USING_CONFIG, ENV_VSCODE_PLUGIN_RELEASE_CLI_COMPRESS, ENV_VSCODE_PLUGIN_RELEASE_CLI_INCLUDE_NODE_MODULES, ENV_VSCODE_PLUGIN_RELEASE_CLI_MINIFY, ENV_VSCODE_PLUGIN_RELEASE_CLI_OBSCURE, ENV_VSCODE_PLUGIN_RELEASE_CLI_UGLIFY, ENV_VSCODE_PLUGIN_RELEASE_ENV_NAME, ENV_VSCODE_PLUGIN_RELEASE_ENV_NUMBER, ENV_VSCODE_PLUGIN_RELEASE_INSTALL_LOCALLY, ENV_VSCODE_PLUGIN_RELEASE_LIB_COMPRESS, ENV_VSCODE_PLUGIN_RELEASE_LIB_DO_NOT_INCLUDE_LIB_FILES, ENV_VSCODE_PLUGIN_RELEASE_LIB_INCLUDE_SOURCE_MAPS, ENV_VSCODE_PLUGIN_RELEASE_LIB_OBSCURE_FILE_BY_FILE, ENV_VSCODE_PLUGIN_RELEASE_LIB_REMOVE_DTS, ENV_VSCODE_PLUGIN_RELEASE_LIB_UGLIFY_FILE_BY_FILE, ENV_VSCODE_PLUGIN_RELEASE_NODE_BACKEND_APP_MINIFY, ENV_VSCODE_PLUGIN_RELEASE_PUSH_TO_ALL_ORIGINS_WHEN_LOCAL_RELEASE_BRANCH, ENV_VSCODE_PLUGIN_RELEASE_RELEASE_TYPE, ENV_VSCODE_PLUGIN_RELEASE_RELEASE_VERSION_BUMP_TYPE, ENV_VSCODE_PLUGIN_RELEASE_REMOVE_RELEASE_OUTPUT_AFTER_LOCAL_INSTALL, ENV_VSCODE_PLUGIN_RELEASE_RESOLVED_NEW_VERSION, ENV_VSCODE_PLUGIN_RELEASE_SKIP_BUILDING_ARTIFACTS, ENV_VSCODE_PLUGIN_RELEASE_SKIP_CODE_CUTTING, ENV_VSCODE_PLUGIN_RELEASE_SKIP_DEPLOY, ENV_VSCODE_PLUGIN_RELEASE_SKIP_NPM_PUBLISH, ENV_VSCODE_PLUGIN_RELEASE_SKIP_RELEASE_QUESTION, ENV_VSCODE_PLUGIN_RELEASE_SKIP_RESOLVING_GIT_CHANGES, ENV_VSCODE_PLUGIN_RELEASE_SKIP_TAG_GIT_PUSH, ENV_VSCODE_PLUGIN_RELEASE_TAON_INSTANCE_IP, ENV_VSCODE_PLUGIN_RELEASE_TARGET_ARTIFACT, ENV_VSCODE_PLUGIN_RELEASE_USE_LOCAL_RELEASE_BRANCH, ENV_VSCODE_PLUGIN_WEBSITE_DOMAIN, ENV_VSCODE_PLUGIN_WEBSITE_TITLE, ENV_VSCODE_PLUGIN_WEBSITE_USE_DOMAIN, MIGRATIONS_CLASSES_FOR_CmsContext, MyAppGroup, MyAppPermission, MyAppRole, PROJECT_NPM_NAME, TaonCmsAbstractContext, TaonCmsAssetsBackofficeComponent, TaonCmsAssetsBackofficeRoutes, TaonCmsBackofficeComponent, TaonCmsBackofficeRoutes, TaonCmsCategoryAbstractContext, TaonCmsCategoryApiService, TaonCmsCategoryController, TaonCmsCategoryDefaultsValues, TaonCmsCategoryEntity, TaonCmsCategoryMiddleware, TaonCmsCategoryProvider, TaonCmsCategoryRepository, TaonCmsCategoryState, TaonCmsCategorySubscriber, TaonCmsCategoryUtils, TaonCmsCommentAbstractContext, TaonCmsCommentApiService, TaonCmsCommentController, TaonCmsCommentDefaultsValues, TaonCmsCommentEntity, TaonCmsCommentMiddleware, TaonCmsCommentProvider, TaonCmsCommentRepository, TaonCmsCommentState, TaonCmsCommentSubscriber, TaonCmsCommentUtils, TaonCmsContentAbstractContext, TaonCmsContentApiService, TaonCmsContentAssetAbstractContext, TaonCmsContentAssetApiService, TaonCmsContentAssetController, TaonCmsContentAssetDefaultsValues, TaonCmsContentAssetEntity, TaonCmsContentAssetMiddleware, TaonCmsContentAssetProvider, TaonCmsContentAssetRepository, TaonCmsContentAssetState, TaonCmsContentAssetSubscriber, TaonCmsContentAssetUtils, TaonCmsContentConfigService, TaonCmsContentController, TaonCmsContentDefaultsValues, TaonCmsContentEntity, TaonCmsContentMiddleware, TaonCmsContentPermissionAbstractContext, TaonCmsContentPermissionApiService, TaonCmsContentPermissionController, TaonCmsContentPermissionDefaultsValues, TaonCmsContentPermissionEntity, TaonCmsContentPermissionMiddleware, TaonCmsContentPermissionProvider, TaonCmsContentPermissionRepository, TaonCmsContentPermissionState, TaonCmsContentPermissionSubscriber, TaonCmsContentPermissionUtils, TaonCmsContentProvider, TaonCmsContentRepository, TaonCmsContentRevisionAbstractContext, TaonCmsContentRevisionApiService, TaonCmsContentRevisionController, TaonCmsContentRevisionDefaultsValues, TaonCmsContentRevisionEntity, TaonCmsContentRevisionMiddleware, TaonCmsContentRevisionProvider, TaonCmsContentRevisionRepository, TaonCmsContentRevisionState, TaonCmsContentRevisionSubscriber, TaonCmsContentRevisionUtils, TaonCmsContentState, TaonCmsContentStorageController, TaonCmsContentSubscriber, TaonCmsContentTagAbstractContext, TaonCmsContentTagApiService, TaonCmsContentTagController, TaonCmsContentTagDefaultsValues, TaonCmsContentTagEntity, TaonCmsContentTagMiddleware, TaonCmsContentTagProvider, TaonCmsContentTagRepository, TaonCmsContentTagState, TaonCmsContentTagSubscriber, TaonCmsContentTagUtils, TaonCmsContentType, TaonCmsContentUtils, TaonCmsEditableDirective, TaonCmsPostComponent, TaonCmsPostDetailsPageComponent, TaonCmsPostEditDialogComponent, TaonCmsPostRoutes, TaonCmsPostsBackofficeComponent, TaonCmsPostsBackofficeRoutes, TaonCmsRevisionChooserComponent, TaonCmsTagAbstractContext, TaonCmsTagApiService, TaonCmsTagController, TaonCmsTagDefaultsValues, TaonCmsTagEntity, TaonCmsTagMiddleware, TaonCmsTagProvider, TaonCmsTagRepository, TaonCmsTagState, TaonCmsTagSubscriber, TaonCmsTagUtils, TaonRelatedPostChooserComponent, contentError, myOrgProj, requireContentId, requireContentVersion, startCli, validateContentInput };
2439
4870
  //# sourceMappingURL=cms-browser.mjs.map