sitero-server 0.5.0 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (190) hide show
  1. package/dist/export/index.js +10 -0
  2. package/dist/src/application/resources/file/operations/queries/find-detail/cache.js +4 -1
  3. package/dist/src/application/resources/file/operations/queries/find-list-cards/cache.js +1 -0
  4. package/dist/src/application/resources/file/operations/queries/find-relations/cache.js +4 -1
  5. package/dist/src/application/resources/page/collect-page-file-ids.js +14 -0
  6. package/dist/src/application/resources/page/errors/codes.js +7 -0
  7. package/dist/src/application/resources/page/errors/operation-errors.js +23 -0
  8. package/dist/src/application/resources/page/operations/commands/update/cache.js +23 -0
  9. package/dist/src/application/resources/page/operations/commands/update/page-update-command.js +36 -0
  10. package/dist/src/application/resources/page/operations/commands/update/validation/schema.js +104 -0
  11. package/dist/src/application/resources/page/operations/commands/update/validation/validate-input.js +25 -0
  12. package/dist/src/application/resources/page/operations/queries/find-detail/cache.js +28 -0
  13. package/dist/src/application/resources/page/operations/queries/find-detail/page-find-detail-query.js +35 -0
  14. package/dist/src/application/resources/page/operations/queries/find-detail/validation/schema.js +9 -0
  15. package/dist/src/application/resources/page/operations/queries/find-many/cache.js +17 -0
  16. package/dist/src/application/resources/page/operations/queries/find-many/page-find-many-query.js +35 -0
  17. package/dist/src/application/resources/page/operations/queries/find-many/validation/schema.js +8 -0
  18. package/dist/src/application/resources/page/operations/queries/find-many/validation/validate-input.js +12 -0
  19. package/dist/src/application/resources/post/assert-post-write-relations-exist.js +0 -1
  20. package/dist/src/application/resources/post/collect-post-reference-ids.js +1 -3
  21. package/dist/src/application/resources/post/create-post-list-card-cache-tags.js +19 -0
  22. package/dist/src/application/resources/post/errors/codes.js +6 -0
  23. package/dist/src/application/resources/post/operations/commands/create/cache.js +0 -1
  24. package/dist/src/application/resources/post/operations/commands/create/post-create-command.js +2 -0
  25. package/dist/src/application/resources/post/operations/commands/create/validation/schema.js +1 -1
  26. package/dist/src/application/resources/post/operations/commands/create/validation/validate-input.js +8 -0
  27. package/dist/src/application/resources/post/operations/commands/delete/cache.js +0 -1
  28. package/dist/src/application/resources/post/operations/commands/lifecycle.js +32 -0
  29. package/dist/src/application/resources/post/operations/commands/update/cache.js +0 -2
  30. package/dist/src/application/resources/post/operations/commands/update/post-update-command.js +2 -0
  31. package/dist/src/application/resources/post/operations/commands/update/validation/schema.js +1 -1
  32. package/dist/src/application/resources/post/operations/commands/update/validation/validate-input.js +8 -0
  33. package/dist/src/application/resources/post/operations/queries/find-detail/cache.js +5 -15
  34. package/dist/src/application/resources/post/operations/queries/find-detail/validation/schema.js +9 -0
  35. package/dist/src/application/resources/post/operations/queries/find-detail/validation/validate-input.js +2 -0
  36. package/dist/src/application/resources/post/operations/queries/find-list-cards/cache.js +6 -13
  37. package/dist/src/application/resources/post/operations/queries/find-list-cards/validation/schema.js +3 -1
  38. package/dist/src/application/resources/post/operations/queries/find-many/cache.js +3 -1
  39. package/dist/src/application/resources/post/operations/queries/find-many/validation/schema.js +3 -1
  40. package/dist/src/application/resources/post/operations/queries/find-relations/cache.js +1 -0
  41. package/dist/src/application/resources/post/validate-topic.js +35 -0
  42. package/dist/src/application/resources/seo-metadata/errors/codes.js +2 -0
  43. package/dist/src/application/resources/seo-metadata/errors/operation-errors.js +13 -1
  44. package/dist/src/application/resources/seo-metadata/operations/commands/upsert/cache.js +8 -2
  45. package/dist/src/application/resources/seo-metadata/operations/commands/upsert/seo-metadata-upsert-command.js +7 -2
  46. package/dist/src/application/resources/seo-metadata/operations/commands/upsert/validation/schema.js +9 -2
  47. package/dist/src/application/resources/seo-metadata/operations/commands/upsert/validation/validate-input.js +13 -7
  48. package/dist/src/composition/create-sitero-server.js +38 -1
  49. package/dist/types/src/application/conventions/cache/constants.d.ts +2 -1
  50. package/dist/types/src/application/conventions/cache/constants.d.ts.map +1 -1
  51. package/dist/types/src/application/resources/file/operations/queries/find-detail/cache.d.ts.map +1 -1
  52. package/dist/types/src/application/resources/file/operations/queries/find-list-cards/cache.d.ts.map +1 -1
  53. package/dist/types/src/application/resources/file/operations/queries/find-relations/cache.d.ts.map +1 -1
  54. package/dist/types/src/application/resources/file/projections/detail.d.ts +2 -1
  55. package/dist/types/src/application/resources/file/projections/detail.d.ts.map +1 -1
  56. package/dist/types/src/application/resources/file/projections/relations.d.ts +1 -0
  57. package/dist/types/src/application/resources/file/projections/relations.d.ts.map +1 -1
  58. package/dist/types/src/application/resources/page/collect-page-file-ids.d.ts +6 -0
  59. package/dist/types/src/application/resources/page/collect-page-file-ids.d.ts.map +1 -0
  60. package/dist/types/src/application/resources/page/errors/codes.d.ts +7 -0
  61. package/dist/types/src/application/resources/page/errors/codes.d.ts.map +1 -0
  62. package/dist/types/src/application/resources/page/errors/index.d.ts +3 -0
  63. package/dist/types/src/application/resources/page/errors/index.d.ts.map +1 -0
  64. package/dist/types/src/application/resources/page/errors/operation-errors.d.ts +11 -0
  65. package/dist/types/src/application/resources/page/errors/operation-errors.d.ts.map +1 -0
  66. package/dist/types/src/application/resources/page/index.d.ts +5 -0
  67. package/dist/types/src/application/resources/page/index.d.ts.map +1 -0
  68. package/dist/types/src/application/resources/page/operations/commands/index.d.ts +2 -0
  69. package/dist/types/src/application/resources/page/operations/commands/index.d.ts.map +1 -0
  70. package/dist/types/src/application/resources/page/operations/commands/update/cache.d.ts +4 -0
  71. package/dist/types/src/application/resources/page/operations/commands/update/cache.d.ts.map +1 -0
  72. package/dist/types/src/application/resources/page/operations/commands/update/index.d.ts +3 -0
  73. package/dist/types/src/application/resources/page/operations/commands/update/index.d.ts.map +1 -0
  74. package/dist/types/src/application/resources/page/operations/commands/update/page-update-command.d.ts +11 -0
  75. package/dist/types/src/application/resources/page/operations/commands/update/page-update-command.d.ts.map +1 -0
  76. package/dist/types/src/application/resources/page/operations/commands/update/types.d.ts +15 -0
  77. package/dist/types/src/application/resources/page/operations/commands/update/types.d.ts.map +1 -0
  78. package/dist/types/src/application/resources/page/operations/commands/update/validation/schema.d.ts +98 -0
  79. package/dist/types/src/application/resources/page/operations/commands/update/validation/schema.d.ts.map +1 -0
  80. package/dist/types/src/application/resources/page/operations/commands/update/validation/validate-input.d.ts +9 -0
  81. package/dist/types/src/application/resources/page/operations/commands/update/validation/validate-input.d.ts.map +1 -0
  82. package/dist/types/src/application/resources/page/operations/index.d.ts +3 -0
  83. package/dist/types/src/application/resources/page/operations/index.d.ts.map +1 -0
  84. package/dist/types/src/application/resources/page/operations/queries/find-detail/cache.d.ts +5 -0
  85. package/dist/types/src/application/resources/page/operations/queries/find-detail/cache.d.ts.map +1 -0
  86. package/dist/types/src/application/resources/page/operations/queries/find-detail/index.d.ts +3 -0
  87. package/dist/types/src/application/resources/page/operations/queries/find-detail/index.d.ts.map +1 -0
  88. package/dist/types/src/application/resources/page/operations/queries/find-detail/page-find-detail-query.d.ts +6 -0
  89. package/dist/types/src/application/resources/page/operations/queries/find-detail/page-find-detail-query.d.ts.map +1 -0
  90. package/dist/types/src/application/resources/page/operations/queries/find-detail/types.d.ts +11 -0
  91. package/dist/types/src/application/resources/page/operations/queries/find-detail/types.d.ts.map +1 -0
  92. package/dist/types/src/application/resources/page/operations/queries/find-detail/validation/schema.d.ts +7 -0
  93. package/dist/types/src/application/resources/page/operations/queries/find-detail/validation/schema.d.ts.map +1 -0
  94. package/dist/types/src/application/resources/page/operations/queries/find-many/cache.d.ts +4 -0
  95. package/dist/types/src/application/resources/page/operations/queries/find-many/cache.d.ts.map +1 -0
  96. package/dist/types/src/application/resources/page/operations/queries/find-many/index.d.ts +3 -0
  97. package/dist/types/src/application/resources/page/operations/queries/find-many/index.d.ts.map +1 -0
  98. package/dist/types/src/application/resources/page/operations/queries/find-many/page-find-many-query.d.ts +8 -0
  99. package/dist/types/src/application/resources/page/operations/queries/find-many/page-find-many-query.d.ts.map +1 -0
  100. package/dist/types/src/application/resources/page/operations/queries/find-many/types.d.ts +9 -0
  101. package/dist/types/src/application/resources/page/operations/queries/find-many/types.d.ts.map +1 -0
  102. package/dist/types/src/application/resources/page/operations/queries/find-many/validation/schema.d.ts +5 -0
  103. package/dist/types/src/application/resources/page/operations/queries/find-many/validation/schema.d.ts.map +1 -0
  104. package/dist/types/src/application/resources/page/operations/queries/find-many/validation/validate-input.d.ts +3 -0
  105. package/dist/types/src/application/resources/page/operations/queries/find-many/validation/validate-input.d.ts.map +1 -0
  106. package/dist/types/src/application/resources/page/operations/queries/index.d.ts +3 -0
  107. package/dist/types/src/application/resources/page/operations/queries/index.d.ts.map +1 -0
  108. package/dist/types/src/application/resources/page/ports.d.ts +38 -0
  109. package/dist/types/src/application/resources/page/ports.d.ts.map +1 -0
  110. package/dist/types/src/application/resources/page/projections/detail.d.ts +14 -0
  111. package/dist/types/src/application/resources/page/projections/detail.d.ts.map +1 -0
  112. package/dist/types/src/application/resources/page/projections/index.d.ts +2 -0
  113. package/dist/types/src/application/resources/page/projections/index.d.ts.map +1 -0
  114. package/dist/types/src/application/resources/post/assert-post-write-relations-exist.d.ts.map +1 -1
  115. package/dist/types/src/application/resources/post/collect-post-reference-ids.d.ts.map +1 -1
  116. package/dist/types/src/application/resources/post/create-post-list-card-cache-tags.d.ts +3 -0
  117. package/dist/types/src/application/resources/post/create-post-list-card-cache-tags.d.ts.map +1 -0
  118. package/dist/types/src/application/resources/post/errors/codes.d.ts +6 -0
  119. package/dist/types/src/application/resources/post/errors/codes.d.ts.map +1 -1
  120. package/dist/types/src/application/resources/post/index.d.ts +3 -2
  121. package/dist/types/src/application/resources/post/index.d.ts.map +1 -1
  122. package/dist/types/src/application/resources/post/operations/commands/create/cache.d.ts.map +1 -1
  123. package/dist/types/src/application/resources/post/operations/commands/create/post-create-command.d.ts +2 -0
  124. package/dist/types/src/application/resources/post/operations/commands/create/post-create-command.d.ts.map +1 -1
  125. package/dist/types/src/application/resources/post/operations/commands/create/validation/schema.d.ts +1 -5
  126. package/dist/types/src/application/resources/post/operations/commands/create/validation/schema.d.ts.map +1 -1
  127. package/dist/types/src/application/resources/post/operations/commands/create/validation/validate-input.d.ts +2 -0
  128. package/dist/types/src/application/resources/post/operations/commands/create/validation/validate-input.d.ts.map +1 -1
  129. package/dist/types/src/application/resources/post/operations/commands/delete/cache.d.ts.map +1 -1
  130. package/dist/types/src/application/resources/post/operations/commands/index.d.ts +1 -0
  131. package/dist/types/src/application/resources/post/operations/commands/index.d.ts.map +1 -1
  132. package/dist/types/src/application/resources/post/operations/commands/lifecycle.d.ts +11 -0
  133. package/dist/types/src/application/resources/post/operations/commands/lifecycle.d.ts.map +1 -0
  134. package/dist/types/src/application/resources/post/operations/commands/update/cache.d.ts.map +1 -1
  135. package/dist/types/src/application/resources/post/operations/commands/update/post-update-command.d.ts +2 -0
  136. package/dist/types/src/application/resources/post/operations/commands/update/post-update-command.d.ts.map +1 -1
  137. package/dist/types/src/application/resources/post/operations/commands/update/validation/schema.d.ts +0 -3
  138. package/dist/types/src/application/resources/post/operations/commands/update/validation/schema.d.ts.map +1 -1
  139. package/dist/types/src/application/resources/post/operations/commands/update/validation/validate-input.d.ts +2 -0
  140. package/dist/types/src/application/resources/post/operations/commands/update/validation/validate-input.d.ts.map +1 -1
  141. package/dist/types/src/application/resources/post/operations/queries/find-detail/cache.d.ts.map +1 -1
  142. package/dist/types/src/application/resources/post/operations/queries/find-detail/validation/schema.d.ts +6 -2
  143. package/dist/types/src/application/resources/post/operations/queries/find-detail/validation/schema.d.ts.map +1 -1
  144. package/dist/types/src/application/resources/post/operations/queries/find-detail/validation/validate-input.d.ts.map +1 -1
  145. package/dist/types/src/application/resources/post/operations/queries/find-list-cards/cache.d.ts.map +1 -1
  146. package/dist/types/src/application/resources/post/operations/queries/find-list-cards/validation/schema.d.ts +7 -3
  147. package/dist/types/src/application/resources/post/operations/queries/find-list-cards/validation/schema.d.ts.map +1 -1
  148. package/dist/types/src/application/resources/post/operations/queries/find-many/cache.d.ts.map +1 -1
  149. package/dist/types/src/application/resources/post/operations/queries/find-many/validation/schema.d.ts +7 -3
  150. package/dist/types/src/application/resources/post/operations/queries/find-many/validation/schema.d.ts.map +1 -1
  151. package/dist/types/src/application/resources/post/operations/queries/find-relations/cache.d.ts.map +1 -1
  152. package/dist/types/src/application/resources/post/ports.d.ts +26 -9
  153. package/dist/types/src/application/resources/post/ports.d.ts.map +1 -1
  154. package/dist/types/src/application/resources/post/projections/detail.d.ts +3 -4
  155. package/dist/types/src/application/resources/post/projections/detail.d.ts.map +1 -1
  156. package/dist/types/src/application/resources/post/projections/index.d.ts +1 -0
  157. package/dist/types/src/application/resources/post/projections/index.d.ts.map +1 -1
  158. package/dist/types/src/application/resources/post/projections/list-card.d.ts +4 -8
  159. package/dist/types/src/application/resources/post/projections/list-card.d.ts.map +1 -1
  160. package/dist/types/src/application/resources/post/projections/reference-with-cover.d.ts +7 -0
  161. package/dist/types/src/application/resources/post/projections/reference-with-cover.d.ts.map +1 -0
  162. package/dist/types/src/application/resources/post/validate-topic.d.ts +11 -0
  163. package/dist/types/src/application/resources/post/validate-topic.d.ts.map +1 -0
  164. package/dist/types/src/application/resources/seo-metadata/errors/codes.d.ts +2 -0
  165. package/dist/types/src/application/resources/seo-metadata/errors/codes.d.ts.map +1 -1
  166. package/dist/types/src/application/resources/seo-metadata/errors/index.d.ts +1 -1
  167. package/dist/types/src/application/resources/seo-metadata/errors/index.d.ts.map +1 -1
  168. package/dist/types/src/application/resources/seo-metadata/errors/operation-errors.d.ts +6 -0
  169. package/dist/types/src/application/resources/seo-metadata/errors/operation-errors.d.ts.map +1 -1
  170. package/dist/types/src/application/resources/seo-metadata/index.d.ts +2 -1
  171. package/dist/types/src/application/resources/seo-metadata/index.d.ts.map +1 -1
  172. package/dist/types/src/application/resources/seo-metadata/operations/commands/upsert/cache.d.ts.map +1 -1
  173. package/dist/types/src/application/resources/seo-metadata/operations/commands/upsert/seo-metadata-upsert-command.d.ts +2 -0
  174. package/dist/types/src/application/resources/seo-metadata/operations/commands/upsert/seo-metadata-upsert-command.d.ts.map +1 -1
  175. package/dist/types/src/application/resources/seo-metadata/operations/commands/upsert/types.d.ts +5 -7
  176. package/dist/types/src/application/resources/seo-metadata/operations/commands/upsert/types.d.ts.map +1 -1
  177. package/dist/types/src/application/resources/seo-metadata/operations/commands/upsert/validation/schema.d.ts +55 -2
  178. package/dist/types/src/application/resources/seo-metadata/operations/commands/upsert/validation/schema.d.ts.map +1 -1
  179. package/dist/types/src/application/resources/seo-metadata/operations/commands/upsert/validation/validate-input.d.ts +2 -0
  180. package/dist/types/src/application/resources/seo-metadata/operations/commands/upsert/validation/validate-input.d.ts.map +1 -1
  181. package/dist/types/src/application/resources/seo-metadata/ports.d.ts +10 -3
  182. package/dist/types/src/application/resources/seo-metadata/ports.d.ts.map +1 -1
  183. package/dist/types/src/composition/create-sitero-server.d.ts.map +1 -1
  184. package/dist/types/src/composition/policies.d.ts +6 -0
  185. package/dist/types/src/composition/policies.d.ts.map +1 -1
  186. package/dist/types/src/composition/types.d.ts +14 -0
  187. package/dist/types/src/composition/types.d.ts.map +1 -1
  188. package/dist/types/src/index.d.ts +8 -1
  189. package/dist/types/src/index.d.ts.map +1 -1
  190. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"post-update-command.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/application/resources/post/operations/commands/update/post-update-command.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AACvE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAKrE,wBAAgB,uBAAuB,CAAC,KAAK,EAAE;IAC7C,aAAa,EAAE,sBAAsB,CAAC;IACtC,eAAe,EAAE,eAAe,CAAC;IACjC,aAAa,EAAE,aAAa,CAAC;IAC7B,cAAc,EAAE,cAAc,CAAC;IAC/B,aAAa,EAAE,cAAc,CAAC;CAC/B,GAAG,iBAAiB,CA8BpB"}
1
+ {"version":3,"file":"post-update-command.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/application/resources/post/operations/commands/update/post-update-command.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AACvE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACrE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAKtD,wBAAgB,uBAAuB,CAAC,KAAK,EAAE;IAC7C,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,aAAa,EAAE,sBAAsB,CAAC;IACtC,eAAe,EAAE,eAAe,CAAC;IACjC,aAAa,EAAE,aAAa,CAAC;IAC7B,cAAc,EAAE,cAAc,CAAC;IAC/B,aAAa,EAAE,cAAc,CAAC;CAC/B,GAAG,iBAAiB,CAgCpB"}
@@ -39,9 +39,6 @@ export declare const postUpdateInputSchema: () => import("zod").ZodObject<{
39
39
  author: import("zod").ZodNullable<import("zod").ZodObject<{
40
40
  id: import("zod").ZodString;
41
41
  }, import("zod/v4/core").$strip>>;
42
- topic: import("zod").ZodNullable<import("zod").ZodObject<{
43
- id: import("zod").ZodString;
44
- }, import("zod/v4/core").$strip>>;
45
42
  index: import("zod").ZodNullable<import("zod").ZodNumber>;
46
43
  text1: import("zod").ZodNullable<import("zod").ZodString>;
47
44
  text2: import("zod").ZodNullable<import("zod").ZodString>;
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../../../../../../../src/application/resources/post/operations/commands/update/validation/schema.ts"],"names":[],"mappings":"AAGA,qFAAqF;AACrF,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iCAIrB,CAAC"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../../../../../../../src/application/resources/post/operations/commands/update/validation/schema.ts"],"names":[],"mappings":"AAGA,qFAAqF;AACrF,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iCAIrB,CAAC"}
@@ -2,7 +2,9 @@ import type { AdminQueryPort } from "../../../../../admin";
2
2
  import type { FileLookupPort } from "../../../../../file";
3
3
  import type { PostQueryPort } from "../../../../ports";
4
4
  import type { PostUpdateInput, ValidatedPostUpdateInput } from "../types";
5
+ import type { TopicDefinitions } from "sitero-domain";
5
6
  export declare function validateInput(input: {
7
+ topics: TopicDefinitions;
6
8
  input: PostUpdateInput;
7
9
  adminQueryPort: AdminQueryPort;
8
10
  fileQueryPort: FileLookupPort;
@@ -1 +1 @@
1
- {"version":3,"file":"validate-input.d.ts","sourceRoot":"","sources":["../../../../../../../../../../src/application/resources/post/operations/commands/update/validation/validate-input.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,KAAK,EAAE,eAAe,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAC;AAM1E,wBAAsB,aAAa,CAAC,KAAK,EAAE;IACzC,KAAK,EAAE,eAAe,CAAC;IACvB,cAAc,EAAE,cAAc,CAAC;IAC/B,aAAa,EAAE,cAAc,CAAC;IAC9B,aAAa,EAAE,aAAa,CAAC;CAC9B,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAsCpC"}
1
+ {"version":3,"file":"validate-input.d.ts","sourceRoot":"","sources":["../../../../../../../../../../src/application/resources/post/operations/commands/update/validation/validate-input.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,KAAK,EAAE,eAAe,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAC;AAC1E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAOtD,wBAAsB,aAAa,CAAC,KAAK,EAAE;IACzC,MAAM,EAAE,gBAAgB,CAAC;IACzB,KAAK,EAAE,eAAe,CAAC;IACvB,cAAc,EAAE,cAAc,CAAC;IAC/B,aAAa,EAAE,cAAc,CAAC;IAC9B,aAAa,EAAE,aAAa,CAAC;CAC9B,GAAG,OAAO,CAAC,wBAAwB,CAAC,CA8CpC"}
@@ -1 +1 @@
1
- {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/application/resources/post/operations/queries/find-detail/cache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AACzE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAUjE,eAAO,MAAM,4BAA4B,GAAI,OAAO,mBAAmB,WAOnE,CAAC;AAoBL,eAAO,MAAM,6BAA6B,GACxC,GAAG,mBAAmB,EACtB,QAAQ,OAAO,CAAC,oBAAoB,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC,aAsCjE,CAAC"}
1
+ {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/application/resources/post/operations/queries/find-detail/cache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AACzE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAUjE,eAAO,MAAM,4BAA4B,GAAI,OAAO,mBAAmB,WASnE,CAAC;AAEL,eAAO,MAAM,6BAA6B,GACxC,GAAG,mBAAmB,EACtB,QAAQ,OAAO,CAAC,oBAAoB,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC,aAsCjE,CAAC"}
@@ -2,15 +2,19 @@ import { z } from "zod";
2
2
  export declare const postFindDetailInputSchema: () => z.ZodObject<{
3
3
  id: z.ZodOptional<z.ZodString>;
4
4
  type: z.ZodOptional<z.ZodEnum<{
5
- readonly TOPIC: "TOPIC";
6
5
  readonly CATEGORY: "CATEGORY";
7
6
  readonly SUBCATEGORY: "SUBCATEGORY";
8
7
  readonly POST: "POST";
9
8
  readonly PRODUCT: "PRODUCT";
10
9
  readonly TAG: "TAG";
11
10
  readonly PRODUCT_TAG: "PRODUCT_TAG";
12
- readonly PAGE: "PAGE";
13
11
  }>>;
12
+ deletion: z.ZodOptional<z.ZodEnum<{
13
+ deleted: "deleted";
14
+ active: "active";
15
+ all: "all";
16
+ }>>;
17
+ visibility: z.ZodOptional<z.ZodLiteral<"public">>;
14
18
  slug: z.ZodOptional<z.ZodString>;
15
19
  isActive: z.ZodOptional<z.ZodBoolean>;
16
20
  topicSlug: z.ZodOptional<z.ZodString>;
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../../../../../../../src/application/resources/post/operations/queries/find-detail/validation/schema.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;iBAuBhC,CAAC"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../../../../../../../src/application/resources/post/operations/queries/find-detail/validation/schema.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;iBAsChC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"validate-input.d.ts","sourceRoot":"","sources":["../../../../../../../../../../src/application/resources/post/operations/queries/find-detail/validation/validate-input.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAGpD,4EAA4E;AAC5E,wBAAgB,aAAa,CAC3B,KAAK,EAAE,mBAAmB,GACzB,sBAAsB,CAiBxB"}
1
+ {"version":3,"file":"validate-input.d.ts","sourceRoot":"","sources":["../../../../../../../../../../src/application/resources/post/operations/queries/find-detail/validation/validate-input.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAGpD,4EAA4E;AAC5E,wBAAgB,aAAa,CAC3B,KAAK,EAAE,mBAAmB,GACzB,sBAAsB,CAmBxB"}
@@ -1 +1 @@
1
- {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/application/resources/post/operations/queries/find-list-cards/cache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAC/E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAQjE,eAAO,MAAM,+BAA+B,GAC1C,OAAO,sBAAsB,WA8B3B,CAAC;AAEL,eAAO,MAAM,gCAAgC,GAC3C,OAAO,sBAAsB,EAC7B,QAAQ,OAAO,CAAC,uBAAuB,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC,aA8BpE,CAAC"}
1
+ {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/application/resources/post/operations/queries/find-list-cards/cache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAC/E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAQjE,eAAO,MAAM,+BAA+B,GAC1C,OAAO,sBAAsB,WAgC3B,CAAC;AAEL,eAAO,MAAM,gCAAgC,GAC3C,OAAO,sBAAsB,EAC7B,QAAQ,OAAO,CAAC,uBAAuB,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC,aAcpE,CAAC"}
@@ -3,15 +3,19 @@ export declare const postFindListCardsInputSchema: () => z.ZodObject<{
3
3
  locale: z.ZodString;
4
4
  searchString: z.ZodOptional<z.ZodString>;
5
5
  type: z.ZodOptional<z.ZodEnum<{
6
- readonly TOPIC: "TOPIC";
7
6
  readonly CATEGORY: "CATEGORY";
8
7
  readonly SUBCATEGORY: "SUBCATEGORY";
9
8
  readonly POST: "POST";
10
9
  readonly PRODUCT: "PRODUCT";
11
10
  readonly TAG: "TAG";
12
11
  readonly PRODUCT_TAG: "PRODUCT_TAG";
13
- readonly PAGE: "PAGE";
14
12
  }>>;
13
+ deletion: z.ZodOptional<z.ZodEnum<{
14
+ deleted: "deleted";
15
+ active: "active";
16
+ all: "all";
17
+ }>>;
18
+ visibility: z.ZodOptional<z.ZodLiteral<"public">>;
15
19
  isActive: z.ZodOptional<z.ZodBoolean>;
16
20
  isIndexActive: z.ZodOptional<z.ZodBoolean>;
17
21
  isSlugActive: z.ZodOptional<z.ZodBoolean>;
@@ -27,7 +31,7 @@ export declare const postFindListCardsInputSchema: () => z.ZodObject<{
27
31
  state8: z.ZodOptional<z.ZodBoolean>;
28
32
  state9: z.ZodOptional<z.ZodBoolean>;
29
33
  state10: z.ZodOptional<z.ZodBoolean>;
30
- topicId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
34
+ topicKey: z.ZodOptional<z.ZodNullable<z.ZodString>>;
31
35
  topicSlug: z.ZodOptional<z.ZodString>;
32
36
  parentId: z.ZodOptional<z.ZodString>;
33
37
  parentSlug: z.ZodOptional<z.ZodString>;
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../../../../../../../src/application/resources/post/operations/queries/find-list-cards/validation/schema.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA6BrC,CAAC"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../../../../../../../src/application/resources/post/operations/queries/find-list-cards/validation/schema.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA+BrC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/application/resources/post/operations/queries/find-many/cache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AACrE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAOjE,eAAO,MAAM,0BAA0B,GAAI,OAAO,iBAAiB,WAK/D,CAAC;AAEL,eAAO,MAAM,2BAA2B,GACtC,OAAO,iBAAiB,EACxB,QAAQ,OAAO,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC,aAgB/D,CAAC"}
1
+ {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/application/resources/post/operations/queries/find-many/cache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AACrE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAOjE,eAAO,MAAM,0BAA0B,GAAI,OAAO,iBAAiB,WAO/D,CAAC;AAEL,eAAO,MAAM,2BAA2B,GACtC,OAAO,iBAAiB,EACxB,QAAQ,OAAO,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC,aAgB/D,CAAC"}
@@ -1,16 +1,20 @@
1
1
  import { z } from "zod";
2
2
  export declare const postFindManyInputSchema: () => z.ZodOptional<z.ZodObject<{
3
3
  type: z.ZodOptional<z.ZodEnum<{
4
- readonly TOPIC: "TOPIC";
5
4
  readonly CATEGORY: "CATEGORY";
6
5
  readonly SUBCATEGORY: "SUBCATEGORY";
7
6
  readonly POST: "POST";
8
7
  readonly PRODUCT: "PRODUCT";
9
8
  readonly TAG: "TAG";
10
9
  readonly PRODUCT_TAG: "PRODUCT_TAG";
11
- readonly PAGE: "PAGE";
12
10
  }>>;
13
- topicId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
11
+ deletion: z.ZodOptional<z.ZodEnum<{
12
+ deleted: "deleted";
13
+ active: "active";
14
+ all: "all";
15
+ }>>;
16
+ visibility: z.ZodOptional<z.ZodLiteral<"public">>;
17
+ topicKey: z.ZodOptional<z.ZodNullable<z.ZodString>>;
14
18
  postIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
15
19
  }, z.core.$strip>>;
16
20
  //# sourceMappingURL=schema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../../../../../../../src/application/resources/post/operations/queries/find-many/validation/schema.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;kBAOrB,CAAC"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../../../../../../../src/application/resources/post/operations/queries/find-many/validation/schema.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;kBASrB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/application/resources/post/operations/queries/find-relations/cache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAOtD,eAAO,MAAM,+BAA+B,GAC1C,OAAO,sBAAsB,WACgC,CAAC;AAEhE,eAAO,MAAM,gCAAgC,GAC3C,OAAO,sBAAsB,aAOrB,CAAC"}
1
+ {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/application/resources/post/operations/queries/find-relations/cache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAOtD,eAAO,MAAM,+BAA+B,GAC1C,OAAO,sBAAsB,WACgC,CAAC;AAEhE,eAAO,MAAM,gCAAgC,GAC3C,OAAO,sBAAsB,aAQrB,CAAC"}
@@ -4,9 +4,15 @@ import type { MultiItems, Post, PostData, PostTranslationData, PostType, SingleI
4
4
  * Adapter query criteria for lightweight Post references.
5
5
  * When multiple criteria are provided, the adapter must apply their intersection.
6
6
  */
7
- export interface PostFindManyCriteria {
7
+ export interface PostReadScope {
8
+ /** Ordinary reads exclude trash. Internal CMS controls may include all. */
9
+ deletion?: "active" | "deleted" | "all" | undefined;
10
+ /** Public reads filter both roots and nested Post references. */
11
+ visibility?: "public" | undefined;
12
+ }
13
+ export interface PostFindManyCriteria extends PostReadScope {
8
14
  type?: PostType | undefined;
9
- topicId?: string | null | undefined;
15
+ topicKey?: string | null | undefined;
10
16
  postIds?: string[] | undefined;
11
17
  }
12
18
  /** Adapter lookup criteria for one Post by identifier or type-scoped slug. */
@@ -20,7 +26,7 @@ export type PostLookupInput = {
20
26
  slug: string;
21
27
  };
22
28
  /** Adapter query criteria for one detail Post projection. */
23
- export type PostFindDetailCriteria = PostLookupInput & {
29
+ export type PostFindDetailCriteria = PostLookupInput & PostReadScope & {
24
30
  isActive?: boolean | undefined;
25
31
  topicSlug?: string | undefined;
26
32
  };
@@ -30,11 +36,10 @@ export interface PostFindDetailPortResult {
30
36
  previous: PostListCard | null;
31
37
  next: PostListCard | null;
32
38
  }
33
- type PostRelationIdentifierField = "authorId" | "topicId" | "coverImageId" | "file1Id" | "file2Id" | "file3Id" | "file4Id";
39
+ type PostRelationIdentifierField = "authorId" | "coverImageId" | "file1Id" | "file2Id" | "file3Id" | "file4Id";
34
40
  /** Direct Post relations owned by create and update commands. */
35
41
  export interface PostWriteRelations {
36
42
  author: SingleItem;
37
- topic: SingleItem;
38
43
  parents: MultiItems;
39
44
  tags: MultiItems;
40
45
  relatedPosts: MultiItems;
@@ -59,7 +64,7 @@ export type PostCreateWriteData = PostWritableScalars & PostWriteRelations & {
59
64
  }>;
60
65
  };
61
66
  /** Complete mutable Post data. Type and isLocked are maintained outside commands. */
62
- export type PostUpdateWriteData = Omit<PostWritableScalars, "type"> & PostWriteRelations & {
67
+ export type PostUpdateWriteData = Omit<PostWritableScalars, "type" | "topicKey"> & PostWriteRelations & {
63
68
  /** Translation upsert set; locales omitted from an update are preserved. */
64
69
  translations: Array<PostTranslationData & {
65
70
  locale: string;
@@ -76,11 +81,11 @@ export type PostListCardStateFilters = {
76
81
  [Key in "isActive" | "isIndexActive" | "isSlugActive" | "isFeatured" | "isShownOnHome" | "state1" | "state2" | "state3" | "state4" | "state5" | "state6" | "state7" | "state8" | "state9" | "state10"]?: PostData[Key] | undefined;
77
82
  };
78
83
  /** Adapter query criteria for ordered Post list-card projections. */
79
- export interface PostFindListCardsCriteria extends PostListCardStateFilters {
84
+ export interface PostFindListCardsCriteria extends PostListCardStateFilters, PostReadScope {
80
85
  locale: string;
81
86
  searchString?: string | undefined;
82
87
  type?: PostType | undefined;
83
- topicId?: string | null | undefined;
88
+ topicKey?: string | null | undefined;
84
89
  topicSlug?: string | undefined;
85
90
  parentId?: string | undefined;
86
91
  parentSlug?: string | undefined;
@@ -107,13 +112,25 @@ export interface PostRelationsQueryPort {
107
112
  id: string;
108
113
  }): Promise<PostRelations | null>;
109
114
  }
115
+ /** Every mutation must atomically enforce slug uniqueness (including trash),
116
+ * non-trashed relation targets, publication dependencies and deletion protection.
117
+ * Application validation alone cannot guarantee these under concurrent writes.
118
+ */
110
119
  export interface PostCommandPort {
111
120
  create(input: PostCreateWriteInput): Promise<Post>;
112
121
  update(input: PostUpdateWriteInput): Promise<Post>;
113
- /** Hard-deletes one unlocked Post; adapters enforce the lock atomically. */
122
+ /** Soft-deletes an unlocked, non-trashed Post with no inbound Post references. */
114
123
  delete(input: {
115
124
  id: string;
116
125
  }): Promise<Post>;
126
+ /** Restores a trashed Post as unpublished. */
127
+ restore(input: {
128
+ id: string;
129
+ }): Promise<Post>;
130
+ /** Permanently removes an unlocked, trashed, unreferenced Post. */
131
+ purge(input: {
132
+ id: string;
133
+ }): Promise<Post>;
117
134
  }
118
135
  export {};
119
136
  //# sourceMappingURL=ports.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ports.d.ts","sourceRoot":"","sources":["../../../../../../src/application/resources/post/ports.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ports.d.ts","sourceRoot":"","sources":["../../../../../../src/application/resources/post/ports.ts"],"names":[],"mappings":"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"}
@@ -5,17 +5,16 @@ import type { FileCard } from "../../file/projections";
5
5
  import type { SeoMetadata } from "sitero-domain";
6
6
  /**
7
7
  * Post detail projection for CMS editing and complete content reads.
8
- * Related Posts use PostReference so the object graph never recurses.
8
+ * Inherits direct parents with covers from PostListCard. Related posts use
9
+ * PostListCard; other post relations use non-recursive PostReference.
9
10
  */
10
11
  export type PostDetail = PostListCard & {
11
12
  author: AdminListCard | null;
12
- parents: PostReference[];
13
13
  children: PostReference[];
14
14
  tags: PostReference[];
15
15
  taggedPosts: PostReference[];
16
- relatedPosts: PostReference[];
16
+ relatedPosts: PostListCard[];
17
17
  referencingPosts: PostReference[];
18
- postsInTopic: PostReference[];
19
18
  contentImages: FileCard[];
20
19
  files1: FileCard[];
21
20
  files2: FileCard[];
@@ -1 +1 @@
1
- {"version":3,"file":"detail.d.ts","sourceRoot":"","sources":["../../../../../../../src/application/resources/post/projections/detail.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjD;;;GAGG;AACH,MAAM,MAAM,UAAU,GAAG,YAAY,GAAG;IACtC,MAAM,EAAE,aAAa,GAAG,IAAI,CAAC;IAC7B,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,IAAI,EAAE,aAAa,EAAE,CAAC;IACtB,WAAW,EAAE,aAAa,EAAE,CAAC;IAC7B,YAAY,EAAE,aAAa,EAAE,CAAC;IAC9B,gBAAgB,EAAE,aAAa,EAAE,CAAC;IAClC,YAAY,EAAE,aAAa,EAAE,CAAC;IAC9B,aAAa,EAAE,QAAQ,EAAE,CAAC;IAC1B,MAAM,EAAE,QAAQ,EAAE,CAAC;IACnB,MAAM,EAAE,QAAQ,EAAE,CAAC;IACnB,KAAK,EAAE,QAAQ,GAAG,IAAI,CAAC;IACvB,KAAK,EAAE,QAAQ,GAAG,IAAI,CAAC;IACvB,KAAK,EAAE,QAAQ,GAAG,IAAI,CAAC;IACvB,KAAK,EAAE,QAAQ,GAAG,IAAI,CAAC;IACvB,YAAY,EAAE,WAAW,EAAE,CAAC;CAC7B,CAAC"}
1
+ {"version":3,"file":"detail.d.ts","sourceRoot":"","sources":["../../../../../../../src/application/resources/post/projections/detail.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjD;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAAG,YAAY,GAAG;IACtC,MAAM,EAAE,aAAa,GAAG,IAAI,CAAC;IAC7B,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,IAAI,EAAE,aAAa,EAAE,CAAC;IACtB,WAAW,EAAE,aAAa,EAAE,CAAC;IAC7B,YAAY,EAAE,YAAY,EAAE,CAAC;IAC7B,gBAAgB,EAAE,aAAa,EAAE,CAAC;IAClC,aAAa,EAAE,QAAQ,EAAE,CAAC;IAC1B,MAAM,EAAE,QAAQ,EAAE,CAAC;IACnB,MAAM,EAAE,QAAQ,EAAE,CAAC;IACnB,KAAK,EAAE,QAAQ,GAAG,IAAI,CAAC;IACvB,KAAK,EAAE,QAAQ,GAAG,IAAI,CAAC;IACvB,KAAK,EAAE,QAAQ,GAAG,IAAI,CAAC;IACvB,KAAK,EAAE,QAAQ,GAAG,IAAI,CAAC;IACvB,YAAY,EAAE,WAAW,EAAE,CAAC;CAC7B,CAAC"}
@@ -2,4 +2,5 @@ export type { PostDetail } from "./detail";
2
2
  export type { PostListCard } from "./list-card";
3
3
  export type { PostRelations } from "./relations";
4
4
  export type { PostReference } from "./reference";
5
+ export type { PostReferenceWithCover } from "./reference-with-cover";
5
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/application/resources/post/projections/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAC3C,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/application/resources/post/projections/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAC3C,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,YAAY,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC"}
@@ -1,10 +1,6 @@
1
- import type { PostReference } from "./reference";
2
- import type { FileCard } from "../../file/projections";
3
- /**
4
- * Post projection used by ordered content lists and lightweight display cards.
5
- */
6
- export type PostListCard = PostReference & {
7
- topic: PostReference | null;
8
- coverImage: FileCard | null;
1
+ import type { PostReferenceWithCover } from "./reference-with-cover";
2
+ /** Card data with direct parents only; parent ancestry is not expanded. */
3
+ export type PostListCard = PostReferenceWithCover & {
4
+ parents: PostReferenceWithCover[];
9
5
  };
10
6
  //# sourceMappingURL=list-card.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"list-card.d.ts","sourceRoot":"","sources":["../../../../../../../src/application/resources/post/projections/list-card.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAEvD;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,aAAa,GAAG;IACzC,KAAK,EAAE,aAAa,GAAG,IAAI,CAAC;IAC5B,UAAU,EAAE,QAAQ,GAAG,IAAI,CAAC;CAC7B,CAAC"}
1
+ {"version":3,"file":"list-card.d.ts","sourceRoot":"","sources":["../../../../../../../src/application/resources/post/projections/list-card.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAErE,2EAA2E;AAC3E,MAAM,MAAM,YAAY,GAAG,sBAAsB,GAAG;IAClD,OAAO,EAAE,sBAAsB,EAAE,CAAC;CACnC,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { PostReference } from "./reference";
2
+ import type { FileCard } from "../../file/projections";
3
+ /** One relation node with a translated cover, without further Post relations. */
4
+ export type PostReferenceWithCover = PostReference & {
5
+ coverImage: FileCard | null;
6
+ };
7
+ //# sourceMappingURL=reference-with-cover.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reference-with-cover.d.ts","sourceRoot":"","sources":["../../../../../../../src/application/resources/post/projections/reference-with-cover.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAEvD,iFAAiF;AACjF,MAAM,MAAM,sBAAsB,GAAG,aAAa,GAAG;IACnD,UAAU,EAAE,QAAQ,GAAG,IAAI,CAAC;CAC7B,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { PostQueryPort, PostWriteRelations } from "./ports";
2
+ import type { PostType, TopicDefinitions } from "sitero-domain";
3
+ /** Validate collection membership independently of the CMS and persistence adapter. */
4
+ export declare function validatePostTopic(input: {
5
+ type: PostType;
6
+ topicKey: string | null;
7
+ parents: PostWriteRelations["parents"];
8
+ topics: TopicDefinitions;
9
+ postQueryPort: PostQueryPort;
10
+ }): Promise<void>;
11
+ //# sourceMappingURL=validate-topic.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-topic.d.ts","sourceRoot":"","sources":["../../../../../../src/application/resources/post/validate-topic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AACjE,OAAO,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAOhE,uFAAuF;AACvF,wBAAsB,iBAAiB,CAAC,KAAK,EAAE;IAC7C,IAAI,EAAE,QAAQ,CAAC;IACf,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,OAAO,EAAE,kBAAkB,CAAC,SAAS,CAAC,CAAC;IACvC,MAAM,EAAE,gBAAgB,CAAC;IACzB,aAAa,EAAE,aAAa,CAAC;CAC9B,iBA2CA"}
@@ -1,5 +1,7 @@
1
1
  /** Stable SEO metadata resource operation error codes. */
2
2
  export declare const SEO_METADATA_ERROR_CODES: {
3
+ readonly PAGE_NOT_FOUND: "SEO_METADATA_PAGE_NOT_FOUND";
4
+ readonly PAGE_UNAVAILABLE: "SEO_METADATA_PAGE_UNAVAILABLE";
3
5
  readonly POST_NOT_FOUND: "SEO_METADATA_POST_NOT_FOUND";
4
6
  };
5
7
  //# sourceMappingURL=codes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"codes.d.ts","sourceRoot":"","sources":["../../../../../../../src/application/resources/seo-metadata/errors/codes.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAC1D,eAAO,MAAM,wBAAwB;;CAE3B,CAAC"}
1
+ {"version":3,"file":"codes.d.ts","sourceRoot":"","sources":["../../../../../../../src/application/resources/seo-metadata/errors/codes.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAC1D,eAAO,MAAM,wBAAwB;;;;CAI3B,CAAC"}
@@ -1,3 +1,3 @@
1
1
  export { SEO_METADATA_ERROR_CODES } from "./codes";
2
- export { SeoMetadataPostNotFoundError } from "./operation-errors";
2
+ export { SeoMetadataPostNotFoundError, SeoMetadataPageNotFoundError, SeoMetadataPageUnavailableError, } from "./operation-errors";
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/application/resources/seo-metadata/errors/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,4BAA4B,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/application/resources/seo-metadata/errors/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EACL,4BAA4B,EAC5B,4BAA4B,EAC5B,+BAA+B,GAChC,MAAM,oBAAoB,CAAC"}
@@ -2,4 +2,10 @@ import { OperationError } from "../../../../contracts/operation";
2
2
  export declare class SeoMetadataPostNotFoundError extends OperationError {
3
3
  constructor();
4
4
  }
5
+ export declare class SeoMetadataPageNotFoundError extends OperationError {
6
+ constructor();
7
+ }
8
+ export declare class SeoMetadataPageUnavailableError extends OperationError {
9
+ constructor();
10
+ }
5
11
  //# sourceMappingURL=operation-errors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"operation-errors.d.ts","sourceRoot":"","sources":["../../../../../../../src/application/resources/seo-metadata/errors/operation-errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAGjE,qBAAa,4BAA6B,SAAQ,cAAc;;CAK/D"}
1
+ {"version":3,"file":"operation-errors.d.ts","sourceRoot":"","sources":["../../../../../../../src/application/resources/seo-metadata/errors/operation-errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAGjE,qBAAa,4BAA6B,SAAQ,cAAc;;CAK/D;AAED,qBAAa,4BAA6B,SAAQ,cAAc;;CAK/D;AAED,qBAAa,+BAAgC,SAAQ,cAAc;;CAKlE"}
@@ -1,4 +1,5 @@
1
1
  export type { SeoMetadataCommandPort, SeoMetadataUpsertWriteData, SeoMetadataUpsertWriteInput, } from "./ports";
2
- export { SEO_METADATA_ERROR_CODES, SeoMetadataPostNotFoundError, } from "./errors";
2
+ export { SEO_METADATA_ERROR_CODES, SeoMetadataPostNotFoundError, SeoMetadataPageNotFoundError, SeoMetadataPageUnavailableError, } from "./errors";
3
3
  export { createSeoMetadataUpsertCommand, type SeoMetadataUpsertCommand, type SeoMetadataUpsertInput, type SeoMetadataUpsertResult, } from "./operations";
4
+ export type { SeoMetadataOwnerInput } from "./ports";
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/application/resources/seo-metadata/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,sBAAsB,EACtB,0BAA0B,EAC1B,2BAA2B,GAC5B,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,wBAAwB,EACxB,4BAA4B,GAC7B,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,8BAA8B,EAC9B,KAAK,wBAAwB,EAC7B,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,GAC7B,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/application/resources/seo-metadata/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,sBAAsB,EACtB,0BAA0B,EAC1B,2BAA2B,GAC5B,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,wBAAwB,EACxB,4BAA4B,EAC5B,4BAA4B,EAC5B,+BAA+B,GAChC,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,8BAA8B,EAC9B,KAAK,wBAAwB,EAC7B,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,GAC7B,MAAM,cAAc,CAAC;AAEtB,YAAY,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/application/resources/seo-metadata/operations/commands/upsert/cache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,uBAAuB,EACvB,+BAA+B,EAChC,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAMjE,eAAO,MAAM,uCAAuC,GAClD,OAAO,+BAA+B,EACtC,QAAQ,OAAO,CAAC,uBAAuB,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC,aAS3D,CAAC"}
1
+ {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/application/resources/seo-metadata/operations/commands/upsert/cache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,uBAAuB,EACvB,+BAA+B,EAChC,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAMjE,eAAO,MAAM,uCAAuC,GAClD,OAAO,+BAA+B,EACtC,QAAQ,OAAO,CAAC,uBAAuB,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC,aAe3D,CAAC"}
@@ -1,10 +1,12 @@
1
1
  import type { SeoMetadataUpsertCommand } from "./types";
2
2
  import type { OperationAuthorization } from "../../../../../../kernel";
3
+ import type { PageQueryPort } from "../../../../page";
3
4
  import type { PostQueryPort } from "../../../../post";
4
5
  import type { SeoMetadataCommandPort } from "../../../ports";
5
6
  export declare function createSeoMetadataUpsertCommand(input: {
6
7
  authorization: OperationAuthorization;
7
8
  seoMetadataCommandPort: SeoMetadataCommandPort;
8
9
  postQueryPort: PostQueryPort;
10
+ pageQueryPort?: PageQueryPort | undefined;
9
11
  }): SeoMetadataUpsertCommand;
10
12
  //# sourceMappingURL=seo-metadata-upsert-command.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"seo-metadata-upsert-command.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/application/resources/seo-metadata/operations/commands/upsert/seo-metadata-upsert-command.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAC;AACxD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AACvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAK7D,wBAAgB,8BAA8B,CAAC,KAAK,EAAE;IACpD,aAAa,EAAE,sBAAsB,CAAC;IACtC,sBAAsB,EAAE,sBAAsB,CAAC;IAC/C,aAAa,EAAE,aAAa,CAAC;CAC9B,GAAG,wBAAwB,CAoB3B"}
1
+ {"version":3,"file":"seo-metadata-upsert-command.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/application/resources/seo-metadata/operations/commands/upsert/seo-metadata-upsert-command.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAC;AACxD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AACvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAK7D,wBAAgB,8BAA8B,CAAC,KAAK,EAAE;IACpD,aAAa,EAAE,sBAAsB,CAAC;IACtC,sBAAsB,EAAE,sBAAsB,CAAC;IAC/C,aAAa,EAAE,aAAa,CAAC;IAC7B,aAAa,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;CAC3C,GAAG,wBAAwB,CAyB3B"}
@@ -1,18 +1,16 @@
1
1
  import type { Operation, OperationSuccess } from "../../../../../../kernel";
2
- import type { SeoMetadataUpsertWriteData } from "../../../ports";
2
+ import type { SeoMetadataOwnerInput, SeoMetadataUpsertWriteData } from "../../../ports";
3
3
  import type { SeoMetadata } from "sitero-domain";
4
4
  export type SeoMetadataUpsertInputData = Omit<SeoMetadataUpsertWriteData, "ogArticlePublishedTime" | "ogArticleModifiedTime"> & {
5
5
  ogArticlePublishedTime: string | null;
6
6
  ogArticleModifiedTime: string | null;
7
7
  };
8
- export interface SeoMetadataUpsertInput {
9
- postId: string;
8
+ export type SeoMetadataUpsertInput = SeoMetadataOwnerInput & {
10
9
  translations: SeoMetadataUpsertInputData[];
11
- }
12
- export interface ValidatedSeoMetadataUpsertInput {
13
- postId: string;
10
+ };
11
+ export type ValidatedSeoMetadataUpsertInput = SeoMetadataOwnerInput & {
14
12
  translations: SeoMetadataUpsertWriteData[];
15
- }
13
+ };
16
14
  export type SeoMetadataUpsertResult = OperationSuccess<{
17
15
  seoMetadatas: SeoMetadata[];
18
16
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/application/resources/seo-metadata/operations/commands/upsert/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5E,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjD,MAAM,MAAM,0BAA0B,GAAG,IAAI,CAC3C,0BAA0B,EAC1B,wBAAwB,GAAG,uBAAuB,CACnD,GAAG;IACF,sBAAsB,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;CACtC,CAAC;AAEF,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,0BAA0B,EAAE,CAAC;CAC5C;AAED,MAAM,WAAW,+BAA+B;IAC9C,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,0BAA0B,EAAE,CAAC;CAC5C;AAED,MAAM,MAAM,uBAAuB,GAAG,gBAAgB,CAAC;IACrD,YAAY,EAAE,WAAW,EAAE,CAAC;CAC7B,CAAC,CAAC;AAEH,MAAM,MAAM,wBAAwB,GAAG,SAAS,CAC9C,sBAAsB,EACtB,+BAA+B,EAC/B,uBAAuB,CACxB,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/application/resources/seo-metadata/operations/commands/upsert/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5E,OAAO,KAAK,EACV,qBAAqB,EACrB,0BAA0B,EAC3B,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjD,MAAM,MAAM,0BAA0B,GAAG,IAAI,CAC3C,0BAA0B,EAC1B,wBAAwB,GAAG,uBAAuB,CACnD,GAAG;IACF,sBAAsB,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,qBAAqB,GAAG;IAC3D,YAAY,EAAE,0BAA0B,EAAE,CAAC;CAC5C,CAAC;AAEF,MAAM,MAAM,+BAA+B,GAAG,qBAAqB,GAAG;IACpE,YAAY,EAAE,0BAA0B,EAAE,CAAC;CAC5C,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG,gBAAgB,CAAC;IACrD,YAAY,EAAE,WAAW,EAAE,CAAC;CAC7B,CAAC,CAAC;AAEH,MAAM,MAAM,wBAAwB,GAAG,SAAS,CAC9C,sBAAsB,EACtB,+BAA+B,EAC/B,uBAAuB,CACxB,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { z } from "zod";
2
- export declare const seoMetadataUpsertInputSchema: () => z.ZodObject<{
2
+ export declare const seoMetadataUpsertInputSchema: () => z.ZodUnion<readonly [z.ZodObject<{
3
3
  postId: z.ZodString;
4
4
  translations: z.ZodArray<z.ZodObject<{
5
5
  locale: z.ZodString;
@@ -52,5 +52,58 @@ export declare const seoMetadataUpsertInputSchema: () => z.ZodObject<{
52
52
  twitterCreator: z.ZodNullable<z.ZodString>;
53
53
  jsonLd: z.ZodArray<z.ZodObject<{}, z.core.$loose>>;
54
54
  }, z.core.$strip>>;
55
- }, z.core.$strict>;
55
+ }, z.core.$strict>, z.ZodObject<{
56
+ translations: z.ZodArray<z.ZodObject<{
57
+ locale: z.ZodString;
58
+ title: z.ZodNullable<z.ZodString>;
59
+ description: z.ZodNullable<z.ZodString>;
60
+ author: z.ZodNullable<z.ZodString>;
61
+ canonical: z.ZodNullable<z.ZodString>;
62
+ alternate: z.ZodArray<z.ZodObject<{
63
+ hreflang: z.ZodString;
64
+ href: z.ZodString;
65
+ }, z.core.$strip>>;
66
+ robots: z.ZodNullable<z.ZodString>;
67
+ ogTitle: z.ZodNullable<z.ZodString>;
68
+ ogDescription: z.ZodNullable<z.ZodString>;
69
+ ogUrl: z.ZodNullable<z.ZodString>;
70
+ ogType: z.ZodNullable<z.ZodEnum<{
71
+ article: "article";
72
+ book: "book";
73
+ "music.song": "music.song";
74
+ "music.album": "music.album";
75
+ "music.playlist": "music.playlist";
76
+ "music.radio_station": "music.radio_station";
77
+ profile: "profile";
78
+ website: "website";
79
+ "video.tv_show": "video.tv_show";
80
+ "video.other": "video.other";
81
+ "video.movie": "video.movie";
82
+ "video.episode": "video.episode";
83
+ }>>;
84
+ ogSiteName: z.ZodNullable<z.ZodString>;
85
+ ogImage: z.ZodNullable<z.ZodString>;
86
+ ogImageAlt: z.ZodNullable<z.ZodString>;
87
+ ogImageType: z.ZodNullable<z.ZodString>;
88
+ ogImageWidth: z.ZodNullable<z.ZodNumber>;
89
+ ogImageHeight: z.ZodNullable<z.ZodNumber>;
90
+ ogLocale: z.ZodNullable<z.ZodString>;
91
+ ogLocaleAlternate: z.ZodArray<z.ZodString>;
92
+ ogArticlePublishedTime: z.ZodNullable<z.ZodISODateTime>;
93
+ ogArticleModifiedTime: z.ZodNullable<z.ZodISODateTime>;
94
+ ogArticleAuthor: z.ZodNullable<z.ZodString>;
95
+ ogArticleSection: z.ZodNullable<z.ZodString>;
96
+ ogArticleTag: z.ZodArray<z.ZodString>;
97
+ twitterCard: z.ZodNullable<z.ZodEnum<{
98
+ summary: "summary";
99
+ summary_large_image: "summary_large_image";
100
+ player: "player";
101
+ app: "app";
102
+ }>>;
103
+ twitterSite: z.ZodNullable<z.ZodString>;
104
+ twitterCreator: z.ZodNullable<z.ZodString>;
105
+ jsonLd: z.ZodArray<z.ZodObject<{}, z.core.$loose>>;
106
+ }, z.core.$strip>>;
107
+ pageId: z.ZodString;
108
+ }, z.core.$strict>]>;
56
109
  //# sourceMappingURL=schema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../../../../../../../src/application/resources/seo-metadata/operations/commands/upsert/validation/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA2CxB,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA0C5B,CAAC"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../../../../../../../src/application/resources/seo-metadata/operations/commands/upsert/validation/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAuFxB,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAMxC,CAAC"}
@@ -1,7 +1,9 @@
1
+ import type { PageQueryPort } from "../../../../../page";
1
2
  import type { PostQueryPort } from "../../../../../post";
2
3
  import type { SeoMetadataUpsertInput, ValidatedSeoMetadataUpsertInput } from "../types";
3
4
  export declare function validateInput(input: {
4
5
  input: SeoMetadataUpsertInput;
5
6
  postQueryPort: PostQueryPort;
7
+ pageQueryPort?: PageQueryPort | undefined;
6
8
  }): Promise<ValidatedSeoMetadataUpsertInput>;
7
9
  //# sourceMappingURL=validate-input.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"validate-input.d.ts","sourceRoot":"","sources":["../../../../../../../../../../src/application/resources/seo-metadata/operations/commands/upsert/validation/validate-input.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EACV,sBAAsB,EACtB,+BAA+B,EAChC,MAAM,UAAU,CAAC;AAIlB,wBAAsB,aAAa,CAAC,KAAK,EAAE;IACzC,KAAK,EAAE,sBAAsB,CAAC;IAC9B,aAAa,EAAE,aAAa,CAAC;CAC9B,GAAG,OAAO,CAAC,+BAA+B,CAAC,CAsB3C"}
1
+ {"version":3,"file":"validate-input.d.ts","sourceRoot":"","sources":["../../../../../../../../../../src/application/resources/seo-metadata/operations/commands/upsert/validation/validate-input.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EACV,sBAAsB,EACtB,+BAA+B,EAChC,MAAM,UAAU,CAAC;AAQlB,wBAAsB,aAAa,CAAC,KAAK,EAAE;IACzC,KAAK,EAAE,sBAAsB,CAAC;IAC9B,aAAa,EAAE,aAAa,CAAC;IAC7B,aAAa,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;CAC3C,GAAG,OAAO,CAAC,+BAA+B,CAAC,CA6B3C"}