@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
@@ -12,6 +12,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.TaonCmsContentEntity = void 0;
13
13
  //#region imports
14
14
  const lib_1 = require("taon/lib");
15
+ const lib_2 = require("@taon-dev/session/lib");
16
+ const taon_cms_content_models_1 = require("./taon-cms-content.models");
15
17
  //#endregion
16
18
  let TaonCmsContentEntity = class TaonCmsContentEntity extends lib_1.TaonBaseEntity {
17
19
  //#region @websql
@@ -22,8 +24,7 @@ let TaonCmsContentEntity = class TaonCmsContentEntity extends lib_1.TaonBaseEnti
22
24
  version;
23
25
  //#region @websql
24
26
  //#endregion
25
- type;
26
- // article | video | audio | page | file
27
+ type = taon_cms_content_models_1.TaonCmsContentType.Normal;
27
28
  //#region @websql
28
29
  //#endregion
29
30
  title;
@@ -32,12 +33,27 @@ let TaonCmsContentEntity = class TaonCmsContentEntity extends lib_1.TaonBaseEnti
32
33
  slug;
33
34
  //#region @websql
34
35
  //#endregion
36
+ relatedPosts;
37
+ //#region @websql
38
+ //#endregion
39
+ permissions;
40
+ //#region @websql
41
+ //#endregion
35
42
  excerpt;
36
43
  //#region @websql
37
44
  //#endregion
38
45
  body;
39
46
  //#region @websql
40
47
  //#endregion
48
+ videoKey = null;
49
+ //#region @websql
50
+ //#endregion
51
+ audioKey = null;
52
+ //#region @websql
53
+ //#endregion
54
+ attachmentKey = null;
55
+ //#region @websql
56
+ //#endregion
41
57
  categoryId;
42
58
  //#region @websql
43
59
  //#endregion
@@ -70,7 +86,7 @@ __decorate([
70
86
  __metadata("design:type", Number)
71
87
  ], TaonCmsContentEntity.prototype, "version", void 0);
72
88
  __decorate([
73
- (0, lib_1.Column)({ type: 'varchar' })
89
+ (0, lib_1.Column)({ type: 'varchar', default: taon_cms_content_models_1.TaonCmsContentType.Normal })
74
90
  //#endregion
75
91
  ,
76
92
  __metadata("design:type", String)
@@ -87,6 +103,28 @@ __decorate([
87
103
  ,
88
104
  __metadata("design:type", String)
89
105
  ], TaonCmsContentEntity.prototype, "slug", void 0);
106
+ __decorate([
107
+ (0, lib_1.ManyToMany)(() => TaonCmsContentEntity),
108
+ (0, lib_1.JoinTable)({
109
+ name: 'taon_cms_related_posts',
110
+ joinColumn: { name: 'contentId', referencedColumnName: 'id' },
111
+ inverseJoinColumn: { name: 'relatedPostId', referencedColumnName: 'id' },
112
+ })
113
+ //#endregion
114
+ ,
115
+ __metadata("design:type", Array)
116
+ ], TaonCmsContentEntity.prototype, "relatedPosts", void 0);
117
+ __decorate([
118
+ (0, lib_1.ManyToMany)(() => lib_2.TaonPermissionEntity),
119
+ (0, lib_1.JoinTable)({
120
+ name: 'taon_cms_content_permissions',
121
+ joinColumn: { name: 'contentId', referencedColumnName: 'id' },
122
+ inverseJoinColumn: { name: 'permissionId', referencedColumnName: 'id' },
123
+ })
124
+ //#endregion
125
+ ,
126
+ __metadata("design:type", Array)
127
+ ], TaonCmsContentEntity.prototype, "permissions", void 0);
90
128
  __decorate([
91
129
  (0, lib_1.Column)({ type: 'text', nullable: true })
92
130
  //#endregion
@@ -99,6 +137,24 @@ __decorate([
99
137
  ,
100
138
  __metadata("design:type", String)
101
139
  ], TaonCmsContentEntity.prototype, "body", void 0);
140
+ __decorate([
141
+ (0, lib_1.Column)({ type: 'varchar', nullable: true })
142
+ //#endregion
143
+ ,
144
+ __metadata("design:type", String)
145
+ ], TaonCmsContentEntity.prototype, "videoKey", void 0);
146
+ __decorate([
147
+ (0, lib_1.Column)({ type: 'varchar', nullable: true })
148
+ //#endregion
149
+ ,
150
+ __metadata("design:type", String)
151
+ ], TaonCmsContentEntity.prototype, "audioKey", void 0);
152
+ __decorate([
153
+ (0, lib_1.Column)({ type: 'varchar', nullable: true })
154
+ //#endregion
155
+ ,
156
+ __metadata("design:type", String)
157
+ ], TaonCmsContentEntity.prototype, "attachmentKey", void 0);
102
158
  __decorate([
103
159
  (0, lib_1.Column)({ type: 'integer', nullable: true })
104
160
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"taon-cms-content.entity.js","sourceRoot":"","sources":[""],"names":[],"mappings":";;;;;;;;;;;;AAAA,iBAAiB;AACjB,kCAQkB;AAIlB,YAAY;AAML,IAAM,oBAAoB,GAA1B,MAAM,oBAAqB,SAAQ,oBAAoC;IAC5E,iBAAiB;IAGjB,AADA,YAAY;IACZ,EAAE,CAAS;IAEX,iBAAiB;IAGjB,AADA,YAAY;IACZ,OAAO,CAAS;IAEhB,iBAAiB;IAGjB,AADA,YAAY;IACZ,IAAI,CAAS;IACb,wCAAwC;IAExC,iBAAiB;IAGjB,AADA,YAAY;IACZ,KAAK,CAAS;IAEd,iBAAiB;IAGjB,AADA,YAAY;IACZ,IAAI,CAAS;IAEb,iBAAiB;IAGjB,AADA,YAAY;IACZ,OAAO,CAAgB;IAEvB,iBAAiB;IAGjB,AADA,YAAY;IACZ,IAAI,CAAgB;IAEpB,iBAAiB;IAGjB,AADA,YAAY;IACZ,UAAU,CAAgB;IAE1B,iBAAiB;IAGjB,AADA,YAAY;IACZ,YAAY,CAAgB;IAE5B,iBAAiB;IAGjB,AADA,YAAY;IACZ,MAAM,CAAS;IACf,+BAA+B;IAE/B,iBAAiB;IAGjB,AADA,YAAY;IACZ,WAAW,CAAc;IAEzB,iBAAiB;IAGjB,AADA,YAAY;IACZ,SAAS,CAAO;IAEhB,iBAAiB;IAGjB,AADA,YAAY;IACZ,SAAS,CAAO;CACjB,CAAA;AAnEY,oDAAoB;AAI/B;IAFC,IAAA,4BAAsB,GAAE;IACzB,YAAY;;;gDACD;AAKX;IAFC,IAAA,YAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IACxC,YAAY;;;qDACI;AAKhB;IAFC,IAAA,YAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IAC5B,YAAY;;;kDACC;AAMb;IAFC,IAAA,YAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IAC5B,YAAY;;;mDACE;AAKd;IAFC,IAAA,YAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAC1C,YAAY;;;kDACC;AAKb;IAFC,IAAA,YAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IACzC,YAAY;;;qDACW;AAKvB;IAFC,IAAA,YAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IACzC,YAAY;;;kDACQ;AAKpB;IAFC,IAAA,YAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC5C,YAAY;;;wDACc;AAK1B;IAFC,IAAA,YAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC5C,YAAY;;;0DACgB;AAK5B;IAFC,IAAA,YAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;IAC9C,YAAY;;;oDACG;AAMf;IAFC,IAAA,YAAM,EAAC,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC7C,YAAY;;8BACC,IAAI;yDAAQ;AAKzB;IAFC,IAAA,YAAM,EAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;IAC7B,YAAY;;8BACD,IAAI;uDAAC;AAKhB;IAFC,IAAA,YAAM,EAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;IAC7B,YAAY;;8BACD,IAAI;uDAAC;+BAlEL,oBAAoB;IAJhC,IAAA,gBAAU,EAAC;QACV,SAAS,EAAE,sBAAsB;QACjC,WAAW,EAAE,IAAI;KAClB,CAAC;GACW,oBAAoB,CAmEhC"}
1
+ {"version":3,"file":"taon-cms-content.entity.js","sourceRoot":"","sources":[""],"names":[],"mappings":"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"}
@@ -1,4 +1,44 @@
1
+ export declare enum TaonCmsContentType {
2
+ Normal = "normal",
3
+ Video = "video",
4
+ Audio = "audio",
5
+ Attachment = "attachment"
6
+ }
1
7
  export declare enum TaonCmsContentState {
2
8
  Active = "active",
3
9
  Inactive = "inactive"
4
10
  }
11
+ export interface TaonCmsContentFields {
12
+ type: TaonCmsContentType;
13
+ title: string;
14
+ slug: string;
15
+ body: string | null;
16
+ videoKey: string | null;
17
+ audioKey: string | null;
18
+ attachmentKey: string | null;
19
+ excerpt: string | null;
20
+ categoryId: number | null;
21
+ authorUserId: number | null;
22
+ status: 'draft' | 'published' | 'archived';
23
+ publishedAt: Date | null;
24
+ }
25
+ export interface TaonCmsCreateContent extends Pick<TaonCmsContentFields, 'title' | 'slug'>, Partial<Omit<TaonCmsContentFields, 'title' | 'slug'>> {
26
+ tagIds?: number[];
27
+ relatedPostIds?: number[];
28
+ permissionIds?: number[];
29
+ }
30
+ export interface TaonCmsUpdateContent extends Partial<TaonCmsContentFields> {
31
+ tagIds?: number[];
32
+ relatedPostIds?: number[];
33
+ permissionIds?: number[];
34
+ expectedVersion: number;
35
+ }
36
+ export interface TaonCmsRestoreContent {
37
+ revisionNumber: number;
38
+ expectedVersion: number;
39
+ }
40
+ export interface TaonCmsContentSnapshot extends TaonCmsContentFields {
41
+ tagIds: number[];
42
+ relatedPostIds?: number[];
43
+ permissionIds: number[];
44
+ }
@@ -1,6 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TaonCmsContentState = void 0;
3
+ exports.TaonCmsContentState = exports.TaonCmsContentType = void 0;
4
+ var TaonCmsContentType;
5
+ (function (TaonCmsContentType) {
6
+ TaonCmsContentType["Normal"] = "normal";
7
+ TaonCmsContentType["Video"] = "video";
8
+ TaonCmsContentType["Audio"] = "audio";
9
+ TaonCmsContentType["Attachment"] = "attachment";
10
+ })(TaonCmsContentType || (exports.TaonCmsContentType = TaonCmsContentType = {}));
4
11
  var TaonCmsContentState;
5
12
  (function (TaonCmsContentState) {
6
13
  TaonCmsContentState["Active"] = "active";
@@ -1 +1 @@
1
- {"version":3,"file":"taon-cms-content.models.js","sourceRoot":"","sources":[""],"names":[],"mappings":";;;AAAA,IAAY,mBAGX;AAHD,WAAY,mBAAmB;IAC7B,wCAAiB,CAAA;IACjB,4CAAqB,CAAA;AACvB,CAAC,EAHW,mBAAmB,mCAAnB,mBAAmB,QAG9B"}
1
+ {"version":3,"file":"taon-cms-content.models.js","sourceRoot":"","sources":[""],"names":[],"mappings":";;;AAAA,IAAY,kBAKX;AALD,WAAY,kBAAkB;IAC5B,uCAAiB,CAAA;IACjB,qCAAe,CAAA;IACf,qCAAe,CAAA;IACf,+CAAyB,CAAA;AAC3B,CAAC,EALW,kBAAkB,kCAAlB,kBAAkB,QAK7B;AAED,IAAY,mBAGX;AAHD,WAAY,mBAAmB;IAC7B,wCAAiB,CAAA;IACjB,4CAAqB,CAAA;AACvB,CAAC,EAHW,mBAAmB,mCAAnB,mBAAmB,QAG9B"}
@@ -1 +1 @@
1
- {"version":3,"file":"taon-cms-content.provider.js","sourceRoot":"","sources":[""],"names":[],"mappings":";;;;;;;;;AAAA,iBAAiB;AACjB,kCAAgE;AAGhE,YAAY;AAQL,IAAM,sBAAsB,GAA5B,MAAM,sBAAuB,SAAQ,sBAAgB;CAI3D,CAAA;AAJY,wDAAsB;iCAAtB,sBAAsB;IANlC,IAAA,kBAAY,EAAC;QACZ,SAAS,EAAE,wBAAwB;KACpC,CAAC;IACF,KAAK;IACL,KAAK;GAEQ,sBAAsB,CAIlC"}
1
+ {"version":3,"file":"taon-cms-content.provider.js","sourceRoot":"","sources":[""],"names":[],"mappings":";;;;;;;;;AAAA,iBAAiB;AACjB,kCAAgE;AAGhE,YAAY;AAQL,IAAM,sBAAsB,GAA5B,MAAM,sBAAuB,SAAQ,sBAAgB;CAAG,CAAA;AAAlD,wDAAsB;iCAAtB,sBAAsB;IANlC,IAAA,kBAAY,EAAC;QACZ,SAAS,EAAE,wBAAwB;KACpC,CAAC;IACF,KAAK;IACL,KAAK;GAEQ,sBAAsB,CAA4B"}
@@ -1,7 +1,34 @@
1
1
  import { TaonBaseRepository } from 'taon';
2
+ import { TaonPermissionEntity } from '@taon-dev/session';
3
+ import type { TaonCmsContentRevisionEntity } from '../taon-cms-content-revision/taon-cms-content-revision.entity';
2
4
  import { TaonCmsContentEntity } from './taon-cms-content.entity';
5
+ import type { TaonCmsCreateContent, TaonCmsRestoreContent, TaonCmsUpdateContent } from './taon-cms-content.models';
3
6
  export declare class TaonCmsContentRepository extends TaonBaseRepository<TaonCmsContentEntity> {
4
7
  entityClassResolveFn: () => typeof TaonCmsContentEntity;
8
+ private readonly taonCmsContentRevisionRepository;
9
+ private readonly taonCmsContentTagRepository;
10
+ private readonly taonCmsCategoryRepository;
11
+ private readonly tags;
12
+ createContent(input: TaonCmsCreateContent): Promise<TaonCmsContentEntity>;
13
+ updateContent(id: number, input: TaonCmsUpdateContent): Promise<TaonCmsContentEntity>;
14
+ archiveContent(id: number, expectedVersion: number): Promise<TaonCmsContentEntity>;
15
+ restoreContent(id: number, input: TaonCmsRestoreContent): Promise<TaonCmsContentEntity>;
16
+ listRevisions(id: number): Promise<TaonCmsContentRevisionEntity[]>;
17
+ listRelatedPosts(id: number): Promise<TaonCmsContentEntity[]>;
18
+ listPermissions(id: number): Promise<TaonPermissionEntity[]>;
19
+ addRelatedPost(id: number, relatedPostId: number, expectedVersion: number): Promise<TaonCmsContentEntity>;
20
+ deleteRelatedPost(id: number, relatedPostId: number, expectedVersion: number): Promise<TaonCmsContentEntity>;
21
+ private changeRelatedPost;
22
+ private requireContent;
23
+ private contentFields;
24
+ private snapshotOf;
25
+ private contentStatus;
26
+ private validateReferences;
27
+ private requirePermissions;
28
+ private requireAvailableSlug;
29
+ private replaceRelatedPosts;
30
+ private replacePermissions;
31
+ private commitUpdate;
5
32
  /**
6
33
  * TODO remove this demo example method
7
34
  */
@@ -10,10 +10,336 @@ exports.TaonCmsContentRepository = void 0;
10
10
  //#region imports
11
11
  const lib_1 = require("taon/lib");
12
12
  const lib_2 = require("taon-typeorm/lib");
13
+ const lib_3 = require("@taon-dev/session/lib");
14
+ const taon_cms_category_repository_1 = require("../taon-cms-category/taon-cms-category.repository");
15
+ const taon_cms_content_revision_repository_1 = require("../taon-cms-content-revision/taon-cms-content-revision.repository");
16
+ const taon_cms_content_tag_repository_1 = require("../taon-cms-content-tag/taon-cms-content-tag.repository");
17
+ const taon_cms_tag_repository_1 = require("../taon-cms-tag/taon-cms-tag.repository");
13
18
  const taon_cms_content_entity_1 = require("./taon-cms-content.entity");
19
+ const taon_cms_content_models_1 = require("./taon-cms-content.models");
20
+ const taon_cms_content_validation_1 = require("./taon-cms-content.validation");
14
21
  //#endregion
15
22
  let TaonCmsContentRepository = class TaonCmsContentRepository extends lib_1.TaonBaseRepository {
16
23
  entityClassResolveFn = () => taon_cms_content_entity_1.TaonCmsContentEntity;
24
+ taonCmsContentRevisionRepository = this.injectCustomRepo(taon_cms_content_revision_repository_1.TaonCmsContentRevisionRepository);
25
+ taonCmsContentTagRepository = this.injectCustomRepo(taon_cms_content_tag_repository_1.TaonCmsContentTagRepository);
26
+ taonCmsCategoryRepository = this.injectCustomRepo(taon_cms_category_repository_1.TaonCmsCategoryRepository);
27
+ tags = this.injectCustomRepo(taon_cms_tag_repository_1.TaonCmsTagRepository);
28
+ async createContent(input) {
29
+ //#region @websqlFunc
30
+ (0, taon_cms_content_validation_1.validateContentInput)(input, true);
31
+ return this.connection.transaction(async (manager) => {
32
+ const fields = this.contentFields(input);
33
+ const tagIds = [...new Set(input.tagIds ?? [])];
34
+ const relatedPostIds = [...new Set(input.relatedPostIds ?? [])];
35
+ const permissionIds = [...new Set(input.permissionIds ?? [])];
36
+ await this.validateReferences(fields, tagIds, permissionIds, manager);
37
+ await this.requireAvailableSlug(fields.slug, manager);
38
+ const repository = manager.getRepository(this.target);
39
+ const now = new Date();
40
+ const content = await repository.save(repository.create({
41
+ ...fields,
42
+ version: 1,
43
+ createdAt: now,
44
+ updatedAt: now,
45
+ }));
46
+ await this.taonCmsContentTagRepository.replaceTags(content.id, tagIds, manager);
47
+ await this.replaceRelatedPosts(content.id, relatedPostIds, [], manager);
48
+ await this.replacePermissions(content.id, permissionIds, [], manager);
49
+ await this.taonCmsContentRevisionRepository.recordContent(content, { ...fields, tagIds, relatedPostIds, permissionIds }, manager);
50
+ return this.requireContent(content.id, manager);
51
+ });
52
+ //#endregion
53
+ }
54
+ async updateContent(id, input) {
55
+ //#region @websqlFunc
56
+ (0, taon_cms_content_validation_1.requireContentId)(id);
57
+ (0, taon_cms_content_validation_1.validateContentInput)(input);
58
+ (0, taon_cms_content_validation_1.requireContentVersion)(input.expectedVersion);
59
+ return this.connection.transaction(async (manager) => {
60
+ const current = await this.requireContent(id, manager);
61
+ const snapshot = await this.snapshotOf(current, manager);
62
+ const fields = this.contentFields(input, snapshot);
63
+ const tagIds = input.tagIds === undefined
64
+ ? snapshot.tagIds
65
+ : [...new Set(input.tagIds)];
66
+ const relatedPostIds = input.relatedPostIds === undefined
67
+ ? snapshot.relatedPostIds
68
+ : [...new Set(input.relatedPostIds)];
69
+ const permissionIds = input.permissionIds === undefined
70
+ ? snapshot.permissionIds
71
+ : [...new Set(input.permissionIds)];
72
+ return this.commitUpdate(current, input.expectedVersion, { ...fields, tagIds, relatedPostIds, permissionIds }, manager);
73
+ });
74
+ //#endregion
75
+ }
76
+ async archiveContent(id, expectedVersion) {
77
+ //#region @websqlFunc
78
+ return this.updateContent(id, { status: 'archived', expectedVersion });
79
+ //#endregion
80
+ }
81
+ async restoreContent(id, input) {
82
+ //#region @websqlFunc
83
+ (0, taon_cms_content_validation_1.requireContentId)(id);
84
+ if (!input || typeof input !== 'object') {
85
+ (0, taon_cms_content_validation_1.contentError)('Restore input must be an object.');
86
+ }
87
+ (0, taon_cms_content_validation_1.requireContentVersion)(input.revisionNumber, 'revisionNumber');
88
+ (0, taon_cms_content_validation_1.requireContentVersion)(input.expectedVersion);
89
+ return this.connection.transaction(async (manager) => {
90
+ const current = await this.requireContent(id, manager);
91
+ const revision = await this.taonCmsContentRevisionRepository.requireRevision(id, input.revisionNumber, manager);
92
+ if (!revision.snapshot) {
93
+ (0, taon_cms_content_validation_1.contentError)('This legacy revision has no complete snapshot and cannot be restored.', 409);
94
+ }
95
+ const storedSnapshot = revision.snapshot;
96
+ const snapshotFields = [
97
+ 'type',
98
+ 'title',
99
+ 'slug',
100
+ 'body',
101
+ 'excerpt',
102
+ 'categoryId',
103
+ 'authorUserId',
104
+ 'status',
105
+ 'publishedAt',
106
+ 'tagIds',
107
+ ];
108
+ if (snapshotFields.some(field => storedSnapshot[field] === undefined)) {
109
+ (0, taon_cms_content_validation_1.contentError)('This revision has an incomplete snapshot and cannot be restored.', 409);
110
+ }
111
+ (0, taon_cms_content_validation_1.validateContentInput)(revision.snapshot, true);
112
+ const snapshot = {
113
+ // Older complete snapshots predate primary media; preserve those keys.
114
+ ...this.contentFields(revision.snapshot, await this.snapshotOf(current, manager)),
115
+ tagIds: revision.snapshot.tagIds,
116
+ relatedPostIds: revision.snapshot.relatedPostIds ?? [],
117
+ permissionIds: revision.snapshot.permissionIds ?? [],
118
+ };
119
+ return this.commitUpdate(current, input.expectedVersion, snapshot, manager);
120
+ });
121
+ //#endregion
122
+ }
123
+ async listRevisions(id) {
124
+ //#region @websqlFunc
125
+ (0, taon_cms_content_validation_1.requireContentId)(id);
126
+ return this.connection.transaction(async (manager) => {
127
+ await this.requireContent(id, manager);
128
+ return this.taonCmsContentRevisionRepository.listForContent(id, manager);
129
+ });
130
+ //#endregion
131
+ }
132
+ async listRelatedPosts(id) {
133
+ //#region @websqlFunc
134
+ (0, taon_cms_content_validation_1.requireContentId)(id);
135
+ return this.connection.transaction(async (manager) => (await this.requireContent(id, manager)).relatedPosts);
136
+ //#endregion
137
+ }
138
+ async listPermissions(id) {
139
+ //#region @websqlFunc
140
+ (0, taon_cms_content_validation_1.requireContentId)(id);
141
+ return this.connection.transaction(async (manager) => (await this.requireContent(id, manager)).permissions);
142
+ //#endregion
143
+ }
144
+ async addRelatedPost(id, relatedPostId, expectedVersion) {
145
+ //#region @websqlFunc
146
+ return this.changeRelatedPost(id, relatedPostId, expectedVersion, true);
147
+ //#endregion
148
+ }
149
+ async deleteRelatedPost(id, relatedPostId, expectedVersion) {
150
+ //#region @websqlFunc
151
+ return this.changeRelatedPost(id, relatedPostId, expectedVersion, false);
152
+ //#endregion
153
+ }
154
+ async changeRelatedPost(id, relatedPostId, expectedVersion, adding) {
155
+ //#region @websqlFunc
156
+ (0, taon_cms_content_validation_1.requireContentId)(id);
157
+ (0, taon_cms_content_validation_1.requireContentId)(relatedPostId, 'relatedPostId');
158
+ (0, taon_cms_content_validation_1.requireContentVersion)(expectedVersion);
159
+ if (id === relatedPostId) {
160
+ (0, taon_cms_content_validation_1.contentError)('A post cannot relate to itself.');
161
+ }
162
+ return this.connection.transaction(async (manager) => {
163
+ const current = await this.requireContent(id, manager);
164
+ await this.requireContent(relatedPostId, manager);
165
+ const snapshot = await this.snapshotOf(current, manager);
166
+ const ids = snapshot.relatedPostIds ?? [];
167
+ snapshot.relatedPostIds = adding
168
+ ? [...new Set([...ids, relatedPostId])]
169
+ : ids.filter(postId => postId !== relatedPostId);
170
+ return this.commitUpdate(current, expectedVersion, snapshot, manager);
171
+ });
172
+ //#endregion
173
+ }
174
+ async requireContent(id, manager) {
175
+ //#region @websqlFunc
176
+ const content = await manager
177
+ .getRepository(this.target)
178
+ .findOne({
179
+ where: { id },
180
+ relations: { relatedPosts: true, permissions: true },
181
+ });
182
+ if (!content) {
183
+ (0, taon_cms_content_validation_1.contentError)(`Content ${id} does not exist.`, 404);
184
+ }
185
+ return content;
186
+ //#endregion
187
+ }
188
+ contentFields(input, current) {
189
+ const type = input.type ?? current?.type ?? taon_cms_content_models_1.TaonCmsContentType.Normal;
190
+ const title = input.title ?? current?.title;
191
+ const slug = input.slug ?? current?.slug;
192
+ if (title === undefined || slug === undefined) {
193
+ (0, taon_cms_content_validation_1.contentError)('title and slug are required.');
194
+ }
195
+ const publishedAt = input.publishedAt === undefined
196
+ ? (current?.publishedAt ?? null)
197
+ : input.publishedAt;
198
+ return {
199
+ type,
200
+ title,
201
+ slug,
202
+ body: input.body === undefined ? (current?.body ?? null) : input.body,
203
+ videoKey: input.videoKey === undefined ? (current?.videoKey ?? null) : input.videoKey,
204
+ audioKey: input.audioKey === undefined ? (current?.audioKey ?? null) : input.audioKey,
205
+ attachmentKey: input.attachmentKey === undefined
206
+ ? (current?.attachmentKey ?? null)
207
+ : input.attachmentKey,
208
+ excerpt: input.excerpt === undefined
209
+ ? (current?.excerpt ?? null)
210
+ : input.excerpt,
211
+ categoryId: input.categoryId === undefined
212
+ ? (current?.categoryId ?? null)
213
+ : input.categoryId,
214
+ authorUserId: input.authorUserId === undefined
215
+ ? (current?.authorUserId ?? null)
216
+ : input.authorUserId,
217
+ status: input.status ?? current?.status ?? 'draft',
218
+ publishedAt: publishedAt === null ? null : new Date(publishedAt),
219
+ };
220
+ }
221
+ async snapshotOf(content, manager) {
222
+ //#region @websqlFunc
223
+ return {
224
+ ...this.contentFields({
225
+ ...content,
226
+ status: this.contentStatus(content.status),
227
+ }),
228
+ tagIds: await this.taonCmsContentTagRepository.findTagIds(content.id, manager),
229
+ relatedPostIds: content.relatedPosts.map(post => post.id),
230
+ permissionIds: content.permissions.map(permission => permission.id),
231
+ };
232
+ //#endregion
233
+ }
234
+ contentStatus(status) {
235
+ if (status !== 'draft' && status !== 'published' && status !== 'archived') {
236
+ (0, taon_cms_content_validation_1.contentError)(`Unsupported stored content status: ${status}.`, 409);
237
+ }
238
+ return status;
239
+ }
240
+ async validateReferences(fields, tagIds, permissionIds, manager) {
241
+ //#region @websqlFunc
242
+ if (fields.categoryId !== null) {
243
+ await this.taonCmsCategoryRepository.requireCategory(fields.categoryId, manager);
244
+ }
245
+ await this.tags.requireTags(tagIds, manager);
246
+ await this.requirePermissions(permissionIds, manager);
247
+ //#endregion
248
+ }
249
+ async requirePermissions(permissionIds, manager) {
250
+ //#region @websqlFunc
251
+ if (!permissionIds.length) {
252
+ return;
253
+ }
254
+ const permissions = await manager
255
+ .getRepository(lib_3.TaonPermissionEntity)
256
+ .findBy({ id: (0, lib_2.In)(permissionIds) });
257
+ const foundIds = new Set(permissions.map(permission => permission.id));
258
+ const missingId = permissionIds.find(id => !foundIds.has(id));
259
+ if (missingId !== undefined) {
260
+ (0, taon_cms_content_validation_1.contentError)(`Permission ${missingId} does not exist.`, 404);
261
+ }
262
+ //#endregion
263
+ }
264
+ async requireAvailableSlug(slug, manager, contentId) {
265
+ //#region @websqlFunc
266
+ const existing = await manager
267
+ .getRepository(this.target)
268
+ .findOneBy({ slug });
269
+ if (existing && existing.id !== contentId) {
270
+ (0, taon_cms_content_validation_1.contentError)(`Slug "${slug}" is already in use.`, 409);
271
+ }
272
+ //#endregion
273
+ }
274
+ async replaceRelatedPosts(id, relatedPostIds, previousIds, manager) {
275
+ //#region @websqlFunc
276
+ if (relatedPostIds.includes(id)) {
277
+ (0, taon_cms_content_validation_1.contentError)('A post cannot relate to itself.');
278
+ }
279
+ const repository = manager.getRepository(this.target);
280
+ if (relatedPostIds.length) {
281
+ const posts = await repository.findBy({ id: (0, lib_2.In)(relatedPostIds) });
282
+ const foundIds = new Set(posts.map(post => post.id));
283
+ const missingId = relatedPostIds.find(postId => !foundIds.has(postId));
284
+ if (missingId !== undefined) {
285
+ (0, taon_cms_content_validation_1.contentError)(`Content ${missingId} does not exist.`, 404);
286
+ }
287
+ }
288
+ const added = relatedPostIds.filter(postId => !previousIds.includes(postId));
289
+ const removed = previousIds.filter(postId => !relatedPostIds.includes(postId));
290
+ if (added.length || removed.length) {
291
+ await repository.createQueryBuilder()
292
+ .relation('relatedPosts')
293
+ .of(id)
294
+ .addAndRemove(added, removed);
295
+ }
296
+ //#endregion
297
+ }
298
+ async replacePermissions(id, permissionIds, previousIds, manager) {
299
+ //#region @websqlFunc
300
+ const added = permissionIds.filter(permissionId => !previousIds.includes(permissionId));
301
+ const removed = previousIds.filter(permissionId => !permissionIds.includes(permissionId));
302
+ if (added.length || removed.length) {
303
+ await manager
304
+ .getRepository(this.target)
305
+ .createQueryBuilder()
306
+ .relation('permissions')
307
+ .of(id)
308
+ .addAndRemove(added, removed);
309
+ }
310
+ //#endregion
311
+ }
312
+ async commitUpdate(current, expectedVersion, snapshot, manager) {
313
+ //#region @websqlFunc
314
+ if (current.version !== expectedVersion) {
315
+ (0, taon_cms_content_validation_1.contentError)('Content has changed. Reload it before editing.', 409);
316
+ }
317
+ await this.validateReferences(snapshot, snapshot.tagIds, snapshot.permissionIds, manager);
318
+ await this.requireAvailableSlug(snapshot.slug, manager, current.id);
319
+ // Preserve the first pre-API version before replacing it.
320
+ const history = await this.taonCmsContentRevisionRepository.listForContent(current.id, manager);
321
+ if (!history.some(revision => revision.revisionNumber === current.version)) {
322
+ await this.taonCmsContentRevisionRepository.recordContent(current, await this.snapshotOf(current, manager), manager);
323
+ }
324
+ const fields = this.contentFields(snapshot);
325
+ const repository = manager.getRepository(this.target);
326
+ const result = await repository.update({ id: current.id, version: expectedVersion }, { ...fields, version: expectedVersion + 1, updatedAt: new Date() });
327
+ if (result.affected !== 1) {
328
+ (0, taon_cms_content_validation_1.contentError)('Content has changed. Reload it before editing.', 409);
329
+ }
330
+ await this.taonCmsContentTagRepository.replaceTags(current.id, snapshot.tagIds, manager);
331
+ await this.replaceRelatedPosts(current.id, [...new Set(snapshot.relatedPostIds ?? [])], current.relatedPosts.map(post => post.id), manager);
332
+ await this.replacePermissions(current.id, [...new Set(snapshot.permissionIds ?? [])], current.permissions.map(permission => permission.id), manager);
333
+ const updated = await this.requireContent(current.id, manager);
334
+ await this.taonCmsContentRevisionRepository.recordContent(updated, {
335
+ ...fields,
336
+ tagIds: snapshot.tagIds,
337
+ relatedPostIds: updated.relatedPosts.map(post => post.id),
338
+ permissionIds: updated.permissions.map(permission => permission.id),
339
+ }, manager);
340
+ return updated;
341
+ //#endregion
342
+ }
17
343
  /**
18
344
  * TODO remove this demo example method
19
345
  */
@@ -1 +1 @@
1
- {"version":3,"file":"taon-cms-content.repository.js","sourceRoot":"","sources":[""],"names":[],"mappings":";;;;;;;;;AAAA,iBAAiB;AACjB,kCAA8D;AAC9D,0CAAuC;AAEvC,uEAAiE;AACjE,YAAY;AAKL,IAAM,wBAAwB,GAA9B,MAAM,wBAAyB,SAAQ,wBAAwC;IACpF,oBAAoB,GAAsC,GAAG,EAAE,CAAC,8CAAoB,CAAC;IAErF;;OAEG;IACH,KAAK,CAAC,sBAAsB;QAC1B,qBAAqB;QACrB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC;YAC9B,KAAK,EAAE;gBACL,EAAE,EAAE,IAAA,SAAG,EAAC,KAAK,CAAC,EAAE,CAAC,GAAG,KAAK,UAAU,CAAC;aACrC;SACF,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;QACd,YAAY;IACd,CAAC;CACF,CAAA;AAhBY,4DAAwB;mCAAxB,wBAAwB;IAHpC,IAAA,oBAAc,EAAC;QACd,SAAS,EAAE,0BAA0B;KACtC,CAAC;GACW,wBAAwB,CAgBpC"}
1
+ {"version":3,"file":"taon-cms-content.repository.js","sourceRoot":"","sources":[""],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import type { TaonCmsContentFields } from './taon-cms-content.models';
2
+ export declare function contentError(message: string, status?: number): never;
3
+ export declare function requireContentId(value: number, name?: string): void;
4
+ export declare function requireContentVersion(value: number, name?: string): void;
5
+ export declare function validateContentInput(input: Partial<TaonCmsContentFields> & {
6
+ tagIds?: number[];
7
+ relatedPostIds?: number[];
8
+ permissionIds?: number[];
9
+ }, creating?: boolean): void;