@terminalfour/terminalfour-js 1.0.0-rc.1

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 (253) hide show
  1. package/LICENSE.md +106 -0
  2. package/README.md +169 -0
  3. package/dist/cjs/element-resolver.d.ts +115 -0
  4. package/dist/cjs/element-resolver.d.ts.map +1 -0
  5. package/dist/cjs/element-resolver.js +391 -0
  6. package/dist/cjs/element-resolver.js.map +1 -0
  7. package/dist/cjs/errors.d.ts +21 -0
  8. package/dist/cjs/errors.d.ts.map +1 -0
  9. package/dist/cjs/errors.js +21 -0
  10. package/dist/cjs/errors.js.map +1 -0
  11. package/dist/cjs/handlebars.d.ts +123 -0
  12. package/dist/cjs/handlebars.d.ts.map +1 -0
  13. package/dist/cjs/handlebars.js +306 -0
  14. package/dist/cjs/handlebars.js.map +1 -0
  15. package/dist/cjs/http-client.d.ts +21 -0
  16. package/dist/cjs/http-client.d.ts.map +1 -0
  17. package/dist/cjs/http-client.js +126 -0
  18. package/dist/cjs/http-client.js.map +1 -0
  19. package/dist/cjs/index.d.ts +37 -0
  20. package/dist/cjs/index.d.ts.map +1 -0
  21. package/dist/cjs/index.js +55 -0
  22. package/dist/cjs/index.js.map +1 -0
  23. package/dist/cjs/media-category-ref.d.ts +78 -0
  24. package/dist/cjs/media-category-ref.d.ts.map +1 -0
  25. package/dist/cjs/media-category-ref.js +184 -0
  26. package/dist/cjs/media-category-ref.js.map +1 -0
  27. package/dist/cjs/media-library.d.ts +30 -0
  28. package/dist/cjs/media-library.d.ts.map +1 -0
  29. package/dist/cjs/media-library.js +77 -0
  30. package/dist/cjs/media-library.js.map +1 -0
  31. package/dist/cjs/models/content-item.d.ts +80 -0
  32. package/dist/cjs/models/content-item.d.ts.map +1 -0
  33. package/dist/cjs/models/content-item.js +682 -0
  34. package/dist/cjs/models/content-item.js.map +1 -0
  35. package/dist/cjs/models/media-category-item.d.ts +29 -0
  36. package/dist/cjs/models/media-category-item.d.ts.map +1 -0
  37. package/dist/cjs/models/media-category-item.js +33 -0
  38. package/dist/cjs/models/media-category-item.js.map +1 -0
  39. package/dist/cjs/models/media-item.d.ts +74 -0
  40. package/dist/cjs/models/media-item.d.ts.map +1 -0
  41. package/dist/cjs/models/media-item.js +188 -0
  42. package/dist/cjs/models/media-item.js.map +1 -0
  43. package/dist/cjs/models/section-item.d.ts +58 -0
  44. package/dist/cjs/models/section-item.d.ts.map +1 -0
  45. package/dist/cjs/models/section-item.js +166 -0
  46. package/dist/cjs/models/section-item.js.map +1 -0
  47. package/dist/cjs/package.json +1 -0
  48. package/dist/cjs/resources/channel-resource.d.ts +112 -0
  49. package/dist/cjs/resources/channel-resource.d.ts.map +1 -0
  50. package/dist/cjs/resources/channel-resource.js +107 -0
  51. package/dist/cjs/resources/channel-resource.js.map +1 -0
  52. package/dist/cjs/resources/content-resource.d.ts +50 -0
  53. package/dist/cjs/resources/content-resource.d.ts.map +1 -0
  54. package/dist/cjs/resources/content-resource.js +286 -0
  55. package/dist/cjs/resources/content-resource.js.map +1 -0
  56. package/dist/cjs/resources/content-type-resource.d.ts +283 -0
  57. package/dist/cjs/resources/content-type-resource.d.ts.map +1 -0
  58. package/dist/cjs/resources/content-type-resource.js +970 -0
  59. package/dist/cjs/resources/content-type-resource.js.map +1 -0
  60. package/dist/cjs/resources/group-resource.d.ts +96 -0
  61. package/dist/cjs/resources/group-resource.d.ts.map +1 -0
  62. package/dist/cjs/resources/group-resource.js +213 -0
  63. package/dist/cjs/resources/group-resource.js.map +1 -0
  64. package/dist/cjs/resources/list-resource.d.ts +111 -0
  65. package/dist/cjs/resources/list-resource.d.ts.map +1 -0
  66. package/dist/cjs/resources/list-resource.js +179 -0
  67. package/dist/cjs/resources/list-resource.js.map +1 -0
  68. package/dist/cjs/resources/media-resource.d.ts +69 -0
  69. package/dist/cjs/resources/media-resource.d.ts.map +1 -0
  70. package/dist/cjs/resources/media-resource.js +210 -0
  71. package/dist/cjs/resources/media-resource.js.map +1 -0
  72. package/dist/cjs/resources/media-type-resource.d.ts +70 -0
  73. package/dist/cjs/resources/media-type-resource.d.ts.map +1 -0
  74. package/dist/cjs/resources/media-type-resource.js +195 -0
  75. package/dist/cjs/resources/media-type-resource.js.map +1 -0
  76. package/dist/cjs/resources/navigation-resource.d.ts +664 -0
  77. package/dist/cjs/resources/navigation-resource.d.ts.map +1 -0
  78. package/dist/cjs/resources/navigation-resource.js +2349 -0
  79. package/dist/cjs/resources/navigation-resource.js.map +1 -0
  80. package/dist/cjs/resources/page-layout-resource.d.ts +83 -0
  81. package/dist/cjs/resources/page-layout-resource.d.ts.map +1 -0
  82. package/dist/cjs/resources/page-layout-resource.js +214 -0
  83. package/dist/cjs/resources/page-layout-resource.js.map +1 -0
  84. package/dist/cjs/resources/user-resource.d.ts +126 -0
  85. package/dist/cjs/resources/user-resource.d.ts.map +1 -0
  86. package/dist/cjs/resources/user-resource.js +317 -0
  87. package/dist/cjs/resources/user-resource.js.map +1 -0
  88. package/dist/cjs/section-ref.d.ts +185 -0
  89. package/dist/cjs/section-ref.d.ts.map +1 -0
  90. package/dist/cjs/section-ref.js +813 -0
  91. package/dist/cjs/section-ref.js.map +1 -0
  92. package/dist/cjs/site-structure.d.ts +18 -0
  93. package/dist/cjs/site-structure.d.ts.map +1 -0
  94. package/dist/cjs/site-structure.js +57 -0
  95. package/dist/cjs/site-structure.js.map +1 -0
  96. package/dist/cjs/t4-client.d.ts +121 -0
  97. package/dist/cjs/t4-client.d.ts.map +1 -0
  98. package/dist/cjs/t4-client.js +190 -0
  99. package/dist/cjs/t4-client.js.map +1 -0
  100. package/dist/cjs/type-registry.d.ts +31 -0
  101. package/dist/cjs/type-registry.d.ts.map +1 -0
  102. package/dist/cjs/type-registry.js +76 -0
  103. package/dist/cjs/type-registry.js.map +1 -0
  104. package/dist/cjs/types.d.ts +211 -0
  105. package/dist/cjs/types.d.ts.map +1 -0
  106. package/dist/cjs/types.js +3 -0
  107. package/dist/cjs/types.js.map +1 -0
  108. package/dist/cjs/utils.d.ts +147 -0
  109. package/dist/cjs/utils.d.ts.map +1 -0
  110. package/dist/cjs/utils.js +408 -0
  111. package/dist/cjs/utils.js.map +1 -0
  112. package/dist/esm/element-resolver.d.ts +115 -0
  113. package/dist/esm/element-resolver.d.ts.map +1 -0
  114. package/dist/esm/element-resolver.js +387 -0
  115. package/dist/esm/element-resolver.js.map +1 -0
  116. package/dist/esm/errors.d.ts +21 -0
  117. package/dist/esm/errors.d.ts.map +1 -0
  118. package/dist/esm/errors.js +17 -0
  119. package/dist/esm/errors.js.map +1 -0
  120. package/dist/esm/handlebars.d.ts +123 -0
  121. package/dist/esm/handlebars.d.ts.map +1 -0
  122. package/dist/esm/handlebars.js +300 -0
  123. package/dist/esm/handlebars.js.map +1 -0
  124. package/dist/esm/http-client.d.ts +21 -0
  125. package/dist/esm/http-client.d.ts.map +1 -0
  126. package/dist/esm/http-client.js +122 -0
  127. package/dist/esm/http-client.js.map +1 -0
  128. package/dist/esm/index.d.ts +37 -0
  129. package/dist/esm/index.d.ts.map +1 -0
  130. package/dist/esm/index.js +26 -0
  131. package/dist/esm/index.js.map +1 -0
  132. package/dist/esm/media-category-ref.d.ts +78 -0
  133. package/dist/esm/media-category-ref.d.ts.map +1 -0
  134. package/dist/esm/media-category-ref.js +180 -0
  135. package/dist/esm/media-category-ref.js.map +1 -0
  136. package/dist/esm/media-library.d.ts +30 -0
  137. package/dist/esm/media-library.d.ts.map +1 -0
  138. package/dist/esm/media-library.js +73 -0
  139. package/dist/esm/media-library.js.map +1 -0
  140. package/dist/esm/models/content-item.d.ts +80 -0
  141. package/dist/esm/models/content-item.d.ts.map +1 -0
  142. package/dist/esm/models/content-item.js +676 -0
  143. package/dist/esm/models/content-item.js.map +1 -0
  144. package/dist/esm/models/media-category-item.d.ts +29 -0
  145. package/dist/esm/models/media-category-item.d.ts.map +1 -0
  146. package/dist/esm/models/media-category-item.js +29 -0
  147. package/dist/esm/models/media-category-item.js.map +1 -0
  148. package/dist/esm/models/media-item.d.ts +74 -0
  149. package/dist/esm/models/media-item.d.ts.map +1 -0
  150. package/dist/esm/models/media-item.js +184 -0
  151. package/dist/esm/models/media-item.js.map +1 -0
  152. package/dist/esm/models/section-item.d.ts +58 -0
  153. package/dist/esm/models/section-item.d.ts.map +1 -0
  154. package/dist/esm/models/section-item.js +162 -0
  155. package/dist/esm/models/section-item.js.map +1 -0
  156. package/dist/esm/resources/channel-resource.d.ts +112 -0
  157. package/dist/esm/resources/channel-resource.d.ts.map +1 -0
  158. package/dist/esm/resources/channel-resource.js +102 -0
  159. package/dist/esm/resources/channel-resource.js.map +1 -0
  160. package/dist/esm/resources/content-resource.d.ts +50 -0
  161. package/dist/esm/resources/content-resource.d.ts.map +1 -0
  162. package/dist/esm/resources/content-resource.js +282 -0
  163. package/dist/esm/resources/content-resource.js.map +1 -0
  164. package/dist/esm/resources/content-type-resource.d.ts +283 -0
  165. package/dist/esm/resources/content-type-resource.d.ts.map +1 -0
  166. package/dist/esm/resources/content-type-resource.js +964 -0
  167. package/dist/esm/resources/content-type-resource.js.map +1 -0
  168. package/dist/esm/resources/group-resource.d.ts +96 -0
  169. package/dist/esm/resources/group-resource.d.ts.map +1 -0
  170. package/dist/esm/resources/group-resource.js +208 -0
  171. package/dist/esm/resources/group-resource.js.map +1 -0
  172. package/dist/esm/resources/list-resource.d.ts +111 -0
  173. package/dist/esm/resources/list-resource.d.ts.map +1 -0
  174. package/dist/esm/resources/list-resource.js +174 -0
  175. package/dist/esm/resources/list-resource.js.map +1 -0
  176. package/dist/esm/resources/media-resource.d.ts +69 -0
  177. package/dist/esm/resources/media-resource.d.ts.map +1 -0
  178. package/dist/esm/resources/media-resource.js +206 -0
  179. package/dist/esm/resources/media-resource.js.map +1 -0
  180. package/dist/esm/resources/media-type-resource.d.ts +70 -0
  181. package/dist/esm/resources/media-type-resource.d.ts.map +1 -0
  182. package/dist/esm/resources/media-type-resource.js +190 -0
  183. package/dist/esm/resources/media-type-resource.js.map +1 -0
  184. package/dist/esm/resources/navigation-resource.d.ts +664 -0
  185. package/dist/esm/resources/navigation-resource.d.ts.map +1 -0
  186. package/dist/esm/resources/navigation-resource.js +2344 -0
  187. package/dist/esm/resources/navigation-resource.js.map +1 -0
  188. package/dist/esm/resources/page-layout-resource.d.ts +83 -0
  189. package/dist/esm/resources/page-layout-resource.d.ts.map +1 -0
  190. package/dist/esm/resources/page-layout-resource.js +209 -0
  191. package/dist/esm/resources/page-layout-resource.js.map +1 -0
  192. package/dist/esm/resources/user-resource.d.ts +126 -0
  193. package/dist/esm/resources/user-resource.d.ts.map +1 -0
  194. package/dist/esm/resources/user-resource.js +312 -0
  195. package/dist/esm/resources/user-resource.js.map +1 -0
  196. package/dist/esm/section-ref.d.ts +185 -0
  197. package/dist/esm/section-ref.d.ts.map +1 -0
  198. package/dist/esm/section-ref.js +808 -0
  199. package/dist/esm/section-ref.js.map +1 -0
  200. package/dist/esm/site-structure.d.ts +18 -0
  201. package/dist/esm/site-structure.d.ts.map +1 -0
  202. package/dist/esm/site-structure.js +53 -0
  203. package/dist/esm/site-structure.js.map +1 -0
  204. package/dist/esm/t4-client.d.ts +121 -0
  205. package/dist/esm/t4-client.d.ts.map +1 -0
  206. package/dist/esm/t4-client.js +186 -0
  207. package/dist/esm/t4-client.js.map +1 -0
  208. package/dist/esm/type-registry.d.ts +31 -0
  209. package/dist/esm/type-registry.d.ts.map +1 -0
  210. package/dist/esm/type-registry.js +72 -0
  211. package/dist/esm/type-registry.js.map +1 -0
  212. package/dist/esm/types.d.ts +211 -0
  213. package/dist/esm/types.d.ts.map +1 -0
  214. package/dist/esm/types.js +2 -0
  215. package/dist/esm/types.js.map +1 -0
  216. package/dist/esm/utils.d.ts +147 -0
  217. package/dist/esm/utils.d.ts.map +1 -0
  218. package/dist/esm/utils.js +355 -0
  219. package/dist/esm/utils.js.map +1 -0
  220. package/docs/channels.md +62 -0
  221. package/docs/content-types.md +313 -0
  222. package/docs/content.md +199 -0
  223. package/docs/error-handling.md +86 -0
  224. package/docs/getting-started.md +146 -0
  225. package/docs/groups-and-users.md +167 -0
  226. package/docs/handlebars.md +145 -0
  227. package/docs/lists.md +98 -0
  228. package/docs/media-types.md +111 -0
  229. package/docs/media.md +169 -0
  230. package/docs/navigation/a-to-z.md +62 -0
  231. package/docs/navigation/breadcrumbs.md +67 -0
  232. package/docs/navigation/css-selector.md +53 -0
  233. package/docs/navigation/generate-file.md +48 -0
  234. package/docs/navigation/keyword-search.md +134 -0
  235. package/docs/navigation/language-switcher.md +37 -0
  236. package/docs/navigation/link-menu.md +105 -0
  237. package/docs/navigation/pagination.md +80 -0
  238. package/docs/navigation/previous-next-fulltext.md +43 -0
  239. package/docs/navigation/publish-to-one-file.md +93 -0
  240. package/docs/navigation/related-content.md +79 -0
  241. package/docs/navigation/related-section-branch.md +31 -0
  242. package/docs/navigation/return-to-index.md +35 -0
  243. package/docs/navigation/section-details.md +51 -0
  244. package/docs/navigation/section-iterator.md +33 -0
  245. package/docs/navigation/section-meta-info.md +39 -0
  246. package/docs/navigation/site-map.md +58 -0
  247. package/docs/navigation/top-content.md +80 -0
  248. package/docs/navigation/top-stories.md +47 -0
  249. package/docs/navigation.md +134 -0
  250. package/docs/page-layouts.md +71 -0
  251. package/docs/sections.md +224 -0
  252. package/docs/typescript.md +124 -0
  253. package/package.json +64 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"section-item.js","sourceRoot":"","sources":["../../../src/models/section-item.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,112 @@
1
+ import { HttpClient } from '../http-client.js';
2
+ /** Raw channel detail from GET /channel/{id} */
3
+ interface ApiChannelDetail {
4
+ id: number;
5
+ name: string;
6
+ description: string;
7
+ type: string;
8
+ defaultLanguage: string;
9
+ rootSectionID: number;
10
+ fileOutputPath: string;
11
+ indexFileName: string;
12
+ baseHref: string;
13
+ siteRoot: string;
14
+ channelPublishURL: string;
15
+ fullTextType: string;
16
+ fullTextExtension: string;
17
+ languages: Array<{
18
+ code: string;
19
+ name: string;
20
+ charset: string;
21
+ }>;
22
+ microSites: Array<{
23
+ id: number;
24
+ name: string;
25
+ }>;
26
+ permittedFileExtensions: Array<{
27
+ extension: string;
28
+ priority: number;
29
+ }>;
30
+ appliedPageLayout?: {
31
+ channelID: number;
32
+ sectionID: number;
33
+ pageLayoutID: number;
34
+ inheritablePageLayoutID: number;
35
+ };
36
+ [key: string]: unknown;
37
+ }
38
+ /** A language configured on a channel */
39
+ export interface ChannelLanguage {
40
+ code: string;
41
+ name: string;
42
+ charset: string;
43
+ }
44
+ /** A microsite nested under a channel */
45
+ export interface Microsite {
46
+ id: number;
47
+ name: string;
48
+ description: string;
49
+ rootSectionId: number;
50
+ parentId: number;
51
+ }
52
+ /** A channel returned from list() */
53
+ export interface ChannelSummary {
54
+ id: number;
55
+ name: string;
56
+ description: string;
57
+ rootSectionId: number;
58
+ microSites?: Microsite[];
59
+ }
60
+ /**
61
+ * Full channel details returned from get().
62
+ * Includes a publish() method to trigger a full channel publish.
63
+ */
64
+ export declare class Channel {
65
+ readonly id: number;
66
+ readonly name: string;
67
+ readonly description: string;
68
+ readonly defaultLayout: string;
69
+ readonly defaultLanguage: string;
70
+ readonly rootSectionId: number;
71
+ readonly fileOutputPath: string;
72
+ readonly indexFileName: string;
73
+ readonly baseHref: string;
74
+ readonly siteRoot: string;
75
+ readonly publishUrl: string;
76
+ readonly defaultFullTextLayout: string;
77
+ readonly fullTextExtension: string;
78
+ readonly languages: ChannelLanguage[];
79
+ readonly microSites?: Array<{
80
+ id: number;
81
+ name: string;
82
+ }>;
83
+ readonly fileExtensions: string[];
84
+ /** @internal */
85
+ private readonly _httpClient;
86
+ constructor(raw: ApiChannelDetail, httpClient: HttpClient);
87
+ /**
88
+ * Publishes this entire channel.
89
+ *
90
+ * Options:
91
+ * - `includeArchives` — publish archive sections too (default: `false`)
92
+ * - `overridePublishPeriodRestriction` — override publish period restriction (default: `false`)
93
+ */
94
+ publish(options?: {
95
+ includeArchives?: boolean;
96
+ overridePublishPeriodRestriction?: boolean;
97
+ language?: string;
98
+ }): Promise<void>;
99
+ }
100
+ /**
101
+ * Resource for channel operations.
102
+ */
103
+ export declare class ChannelResource {
104
+ private readonly httpClient;
105
+ constructor(httpClient: HttpClient);
106
+ /** Lists all channels. */
107
+ list(): Promise<ChannelSummary[]>;
108
+ /** Gets a single channel by ID with full details. Returns a Channel object with publish(). */
109
+ get(id: number): Promise<Channel>;
110
+ }
111
+ export {};
112
+ //# sourceMappingURL=channel-resource.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"channel-resource.d.ts","sourceRoot":"","sources":["../../../src/resources/channel-resource.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,102 @@
1
+ /**
2
+ * Full channel details returned from get().
3
+ * Includes a publish() method to trigger a full channel publish.
4
+ */
5
+ export class Channel {
6
+ constructor(raw, httpClient) {
7
+ Object.defineProperty(this, '_httpClient', { value: httpClient, enumerable: false });
8
+ this.id = raw.id;
9
+ this.name = raw.name;
10
+ this.description = raw.description ?? '';
11
+ this.defaultLayout = raw.type ?? '';
12
+ this.defaultLanguage = raw.defaultLanguage ?? 'en';
13
+ this.rootSectionId = raw.rootSectionID;
14
+ this.fileOutputPath = raw.fileOutputPath ?? '';
15
+ this.indexFileName = raw.indexFileName ?? '';
16
+ this.baseHref = raw.baseHref ?? '';
17
+ this.siteRoot = raw.siteRoot ?? '';
18
+ this.publishUrl = raw.channelPublishURL ?? '';
19
+ this.defaultFullTextLayout = raw.fullTextType ?? '';
20
+ this.fullTextExtension = raw.fullTextExtension ?? '';
21
+ this.languages = (raw.languages ?? []).map((l) => ({
22
+ code: l.code,
23
+ name: l.name,
24
+ charset: l.charset,
25
+ }));
26
+ this.microSites = (raw.microSites ?? []).length > 0
27
+ ? raw.microSites.map((ms) => ({ id: ms.id, name: ms.name }))
28
+ : undefined;
29
+ this.fileExtensions = (raw.permittedFileExtensions ?? [])
30
+ .sort((a, b) => a.priority - b.priority)
31
+ .map((e) => e.extension);
32
+ }
33
+ /**
34
+ * Publishes this entire channel.
35
+ *
36
+ * Options:
37
+ * - `includeArchives` — publish archive sections too (default: `false`)
38
+ * - `overridePublishPeriodRestriction` — override publish period restriction (default: `false`)
39
+ */
40
+ async publish(options) {
41
+ const language = options?.language ?? this.defaultLanguage;
42
+ await this._httpClient.request({
43
+ method: 'POST',
44
+ path: '/task/repository',
45
+ body: {
46
+ taskType: 'channelPublish',
47
+ channel: this.id,
48
+ sections: [this.rootSectionId],
49
+ branch: true,
50
+ publishCompleteChannel: true,
51
+ publishOptions: {
52
+ publishArchiveSections: options?.includeArchives ?? false,
53
+ overridePublishPeriodRestriction: options?.overridePublishPeriodRestriction ?? false,
54
+ },
55
+ taskLevel: 'channel',
56
+ selectedLanguage: language,
57
+ },
58
+ });
59
+ }
60
+ }
61
+ /**
62
+ * Resource for channel operations.
63
+ */
64
+ export class ChannelResource {
65
+ constructor(httpClient) {
66
+ this.httpClient = httpClient;
67
+ }
68
+ /** Lists all channels. */
69
+ async list() {
70
+ const raw = await this.httpClient.request({
71
+ method: 'GET',
72
+ path: '/channel',
73
+ });
74
+ return raw.map((ch) => {
75
+ const microSites = (ch.microSites ?? []).map((ms) => ({
76
+ id: ms.id,
77
+ name: ms.name,
78
+ description: ms.description ?? '',
79
+ rootSectionId: ms.rootSectionID,
80
+ parentId: ms.parentID ?? ch.id,
81
+ }));
82
+ const result = {
83
+ id: ch.id,
84
+ name: ch.name,
85
+ description: ch.description ?? '',
86
+ rootSectionId: ch.rootSectionID,
87
+ };
88
+ if (microSites.length > 0)
89
+ result.microSites = microSites;
90
+ return result;
91
+ });
92
+ }
93
+ /** Gets a single channel by ID with full details. Returns a Channel object with publish(). */
94
+ async get(id) {
95
+ const raw = await this.httpClient.request({
96
+ method: 'GET',
97
+ path: `/channel/${id}`,
98
+ });
99
+ return new Channel(raw, this.httpClient);
100
+ }
101
+ }
102
+ //# sourceMappingURL=channel-resource.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"channel-resource.js","sourceRoot":"","sources":["../../../src/resources/channel-resource.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ import { HttpClient } from '../http-client.js';
2
+ import { LanguageOption, CreateContentData, UpdateContentData } from '../types.js';
3
+ import { ContentItem } from '../models/content-item.js';
4
+ import { MediaCreateFn } from '../element-resolver.js';
5
+ /**
6
+ * Section-scoped resource for content CRUD operations.
7
+ * All requests are scoped to the section ID provided at construction time.
8
+ */
9
+ export declare class ContentResource {
10
+ private readonly httpClient;
11
+ private readonly sectionId;
12
+ private readonly defaultLanguage;
13
+ private readonly resolver;
14
+ private readonly typeRegistry;
15
+ /** Cache of content type templates keyed by content type ID */
16
+ private templateCache;
17
+ constructor(httpClient: HttpClient, sectionId: number, defaultLanguage: string, mediaCreateFn?: MediaCreateFn | null);
18
+ private getTemplate;
19
+ /**
20
+ * Builds the T4 elements map from developer-friendly field names and values.
21
+ * Resolves list values, dates, repeaters, etc. automatically.
22
+ */
23
+ private buildElements;
24
+ /**
25
+ * Builds repeater value array from developer-friendly input.
26
+ * Each repeater item gets its own element key resolution using the
27
+ * repeater's sub-content-type elements from contentTypeElementConfiguration.
28
+ */
29
+ private buildRepeaterValue;
30
+ /** Lists all content items in this section. */
31
+ list(options?: LanguageOption): Promise<ContentItem[]>;
32
+ /** Retrieves a single content item by ID. */
33
+ get(id: number, options?: LanguageOption): Promise<ContentItem>;
34
+ /** Creates a new content item in this section. */
35
+ create(data: CreateContentData, options?: LanguageOption): Promise<ContentItem>;
36
+ /** Updates an existing content item's fields. */
37
+ update(id: number, data: UpdateContentData, options?: LanguageOption): Promise<ContentItem>;
38
+ /** Deletes a content item by ID. */
39
+ delete(id: number, options?: LanguageOption): Promise<void>;
40
+ /** Permanently removes a content item. */
41
+ purge(id: number, options?: LanguageOption): Promise<void>;
42
+ /**
43
+ * Approves all pending content in this section.
44
+ * Fetches the content list, filters to pending items (status 1),
45
+ * and sends a single APPROVE request with all their IDs.
46
+ * Returns the number of items approved.
47
+ */
48
+ approveAll(options?: LanguageOption): Promise<number>;
49
+ }
50
+ //# sourceMappingURL=content-resource.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content-resource.d.ts","sourceRoot":"","sources":["../../../src/resources/content-resource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EAElB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,WAAW,EAAqB,MAAM,2BAA2B,CAAC;AAC3E,OAAO,EAAmE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAyCxH;;;GAGG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IACxC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;IACzC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkB;IAC3C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;IAE5C,+DAA+D;IAC/D,OAAO,CAAC,aAAa,CAAoD;gBAE7D,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,aAAa,GAAG,IAAI;YAQtG,WAAW;IAkCzB;;;OAGG;YACW,aAAa;IA+D3B;;;;OAIG;YACW,kBAAkB;IAuChC,+CAA+C;IACzC,IAAI,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAa5D,6CAA6C;IACvC,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC;IAarE,kDAAkD;IAC5C,MAAM,CAAC,IAAI,EAAE,iBAAiB,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC;IAgDrF,iDAAiD;IAC3C,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC;IA0EjG,oCAAoC;IAC9B,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAQjE,0CAA0C;IACpC,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAYhE;;;;;OAKG;IACG,UAAU,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;CAwB5D"}
@@ -0,0 +1,282 @@
1
+ import { resolveLanguage, toTimestamp, STATUS_CODES, TtlMap } from '../utils.js';
2
+ import { createContentItem } from '../models/content-item.js';
3
+ import { ElementResolver } from '../element-resolver.js';
4
+ import { TypeRegistry } from '../type-registry.js';
5
+ /**
6
+ * Section-scoped resource for content CRUD operations.
7
+ * All requests are scoped to the section ID provided at construction time.
8
+ */
9
+ export class ContentResource {
10
+ constructor(httpClient, sectionId, defaultLanguage, mediaCreateFn) {
11
+ /** Cache of content type templates keyed by content type ID */
12
+ this.templateCache = new TtlMap();
13
+ this.httpClient = httpClient;
14
+ this.sectionId = sectionId;
15
+ this.defaultLanguage = defaultLanguage;
16
+ this.typeRegistry = new TypeRegistry(httpClient);
17
+ this.resolver = new ElementResolver(httpClient, defaultLanguage, this.typeRegistry, mediaCreateFn);
18
+ }
19
+ async getTemplate(contentTypeId) {
20
+ const cached = this.templateCache.get(contentTypeId);
21
+ if (cached)
22
+ return cached;
23
+ // Fetch both the new content template and the full content type definition
24
+ const [template, rawContentType] = await Promise.all([
25
+ this.httpClient.request({
26
+ method: 'GET',
27
+ path: `/content/type/${contentTypeId}/${this.sectionId}`,
28
+ }),
29
+ this.httpClient.request({
30
+ method: 'GET',
31
+ path: `/contenttype/${contentTypeId}`,
32
+ }),
33
+ ]);
34
+ // Merge alias and contentTypeElementConfiguration from the full content type
35
+ for (const templateEl of template.contentType.contentTypeElements) {
36
+ const rawEl = rawContentType.contentTypeElements.find((e) => e.name === templateEl.name);
37
+ if (rawEl) {
38
+ if (rawEl.alias)
39
+ templateEl.alias = rawEl.alias;
40
+ if (rawEl.listId)
41
+ templateEl.listId = rawEl.listId;
42
+ if (rawEl.contentTypeElementConfiguration) {
43
+ templateEl.contentTypeElementConfiguration = rawEl.contentTypeElementConfiguration;
44
+ }
45
+ }
46
+ }
47
+ this.templateCache.set(contentTypeId, template);
48
+ return template;
49
+ }
50
+ /**
51
+ * Builds the T4 elements map from developer-friendly field names and values.
52
+ * Resolves list values, dates, repeaters, etc. automatically.
53
+ */
54
+ async buildElements(fields, elements, name, language, context) {
55
+ const result = {};
56
+ // Name element
57
+ const nameEl = elements.find((el) => el.name.toLowerCase() === 'name');
58
+ if (nameEl) {
59
+ result[`${nameEl.name}#${nameEl.id}:${nameEl.type}`] = name;
60
+ }
61
+ for (const [fieldName, value] of Object.entries(fields)) {
62
+ const fieldLower = fieldName.toLowerCase();
63
+ const element = elements.find((el) => el.name.toLowerCase() === fieldLower
64
+ || (el.alias && el.alias.toLowerCase() === fieldLower));
65
+ if (!element) {
66
+ const validNames = elements
67
+ .filter((el) => el.name.toLowerCase() !== 'name')
68
+ .map((el) => `"${el.alias || el.name}"`)
69
+ .join(', ');
70
+ throw new Error(`Unknown field "${fieldName}" on this content type. Valid fields are: ${validNames}`);
71
+ }
72
+ const key = `${element.name}#${element.id}:${element.type}`;
73
+ // Repeater — special handling (no maxSize validation)
74
+ const typeName = await this.typeRegistry.getNameById(element.type);
75
+ if (typeName === 'Repeater' && Array.isArray(value)) {
76
+ result[key] = await this.buildRepeaterValue(value, element, language);
77
+ continue;
78
+ }
79
+ const resolved = await this.resolver.resolveValue(value, element, language, elements, context);
80
+ // Validate maxSize on the resolved value (what actually gets sent to the API)
81
+ if (element.maxSize) {
82
+ const resolvedStr = String(resolved ?? '');
83
+ if (resolvedStr.length > element.maxSize) {
84
+ const friendlyName = element.alias || element.name;
85
+ throw new Error(`Field "${friendlyName}" exceeds max size: ${resolvedStr.length} characters (max ${element.maxSize})`);
86
+ }
87
+ }
88
+ result[key] = resolved;
89
+ }
90
+ return result;
91
+ }
92
+ /**
93
+ * Builds repeater value array from developer-friendly input.
94
+ * Each repeater item gets its own element key resolution using the
95
+ * repeater's sub-content-type elements from contentTypeElementConfiguration.
96
+ */
97
+ async buildRepeaterValue(items, element, language) {
98
+ const config = element.contentTypeElementConfiguration;
99
+ const repeaterElements = config?.contentTypeDTO?.contentTypeElements;
100
+ if (!repeaterElements || repeaterElements.length === 0)
101
+ return items;
102
+ const result = [];
103
+ for (const item of items) {
104
+ const repeaterId = -Math.floor(Math.random() * 100000);
105
+ // Repeater items use their own repeaterId as fromContentId for SS links
106
+ const repeaterContext = {
107
+ fromSectionId: this.sectionId,
108
+ fromContentId: repeaterId,
109
+ };
110
+ const elements = await this.buildElements(item.fields, repeaterElements, item.name, language, repeaterContext);
111
+ result.push({
112
+ repeaterId,
113
+ repeaterContent: {
114
+ name: item.name,
115
+ elements,
116
+ },
117
+ });
118
+ }
119
+ return result;
120
+ }
121
+ /** Lists all content items in this section. */
122
+ async list(options) {
123
+ const language = resolveLanguage(options?.language, this.defaultLanguage);
124
+ const response = await this.httpClient.request({
125
+ method: 'GET',
126
+ path: `/hierarchy/${this.sectionId}/${language}/contents?showAll=false&removeNonTranslated=false`,
127
+ });
128
+ return Promise.all((response.children ?? []).map((child) => createContentItem(child.content, this.httpClient, this.sectionId)));
129
+ }
130
+ /** Retrieves a single content item by ID. */
131
+ async get(id, options) {
132
+ const language = resolveLanguage(options?.language, this.defaultLanguage);
133
+ const dto = await this.httpClient.request({
134
+ method: 'GET',
135
+ path: `/content/${this.sectionId}/${id}/${language}`,
136
+ });
137
+ // Fetch template to get alias and list info for friendly field resolution
138
+ const template = await this.getTemplate(dto.contentTypeID);
139
+ return createContentItem(dto, this.httpClient, this.sectionId, this.resolver, template.contentType.contentTypeElements, this.typeRegistry);
140
+ }
141
+ /** Creates a new content item in this section. */
142
+ async create(data, options) {
143
+ const language = resolveLanguage(options?.language, this.defaultLanguage);
144
+ const template = await this.getTemplate(data.type);
145
+ const contentId = -Math.floor(Math.random() * 1000000);
146
+ const context = {
147
+ fromSectionId: this.sectionId,
148
+ fromContentId: contentId,
149
+ };
150
+ const elements = await this.buildElements(data.fields, template.contentType.contentTypeElements, data.name, language, context);
151
+ const statusName = data.status ?? 'pending';
152
+ const statusCode = STATUS_CODES[statusName] ?? 1;
153
+ const dto = await this.httpClient.request({
154
+ method: 'POST',
155
+ path: `/content/${this.sectionId}/${language}`,
156
+ body: {
157
+ id: contentId,
158
+ contentTypeID: data.type,
159
+ name: data.name,
160
+ language,
161
+ status: statusCode,
162
+ elements,
163
+ channels: template.channels,
164
+ canPublishNow: true,
165
+ canSaveAndApprove: true,
166
+ publishDate: toTimestamp(data.publishDate),
167
+ expiryDate: toTimestamp(data.expiryDate),
168
+ reviewDate: toTimestamp(data.reviewDate),
169
+ archiveSection: data.archiveSection ?? null,
170
+ owner: { id: data.owner ?? 0, type: 'USER' },
171
+ excludedMirrorSectionIds: [],
172
+ },
173
+ });
174
+ return createContentItem(dto, this.httpClient, this.sectionId, this.resolver, template.contentType.contentTypeElements, this.typeRegistry);
175
+ }
176
+ /** Updates an existing content item's fields. */
177
+ async update(id, data, options) {
178
+ const language = resolveLanguage(options?.language, this.defaultLanguage);
179
+ // 1. Fetch the existing content (full body needed for the POST)
180
+ const existing = await this.httpClient.request({
181
+ method: 'GET',
182
+ path: `/content/${this.sectionId}/${id}/${language}`,
183
+ });
184
+ // 2. Get the template for element resolution
185
+ const template = await this.getTemplate(existing.contentTypeID);
186
+ // 3. Resolve changed fields from friendly names → raw element keys
187
+ const mergedElements = { ...existing.elements };
188
+ if (data.fields && Object.keys(data.fields).length > 0) {
189
+ const context = {
190
+ fromSectionId: this.sectionId,
191
+ fromContentId: id,
192
+ };
193
+ const resolved = await this.buildElements(data.fields, template.contentType.contentTypeElements, data.name ?? existing.name, language, context);
194
+ // Merge resolved fields into existing elements (overwrite only changed keys)
195
+ Object.assign(mergedElements, resolved);
196
+ }
197
+ // 4. If name changed, update the Name element in mergedElements too
198
+ const name = data.name ?? existing.name;
199
+ if (data.name) {
200
+ const nameEl = template.contentType.contentTypeElements.find((el) => el.name.toLowerCase() === 'name');
201
+ if (nameEl) {
202
+ mergedElements[`${nameEl.name}#${nameEl.id}:${nameEl.type}`] = data.name;
203
+ }
204
+ }
205
+ // 5. Resolve status
206
+ const statusCode = data.status ? (STATUS_CODES[data.status] ?? 1) : 1;
207
+ // 6. POST the full body back
208
+ const dto = await this.httpClient.request({
209
+ method: 'POST',
210
+ path: `/content/${this.sectionId}/${id}/${language}`,
211
+ body: {
212
+ id: existing.id,
213
+ contentTypeID: existing.contentTypeID,
214
+ name,
215
+ language,
216
+ status: statusCode,
217
+ elements: mergedElements,
218
+ channels: existing.channels,
219
+ canPublishNow: true,
220
+ canSaveAndApprove: true,
221
+ publishDate: data.publishDate !== undefined ? toTimestamp(data.publishDate) : (existing.publishDate ?? null),
222
+ expiryDate: data.expiryDate !== undefined ? toTimestamp(data.expiryDate) : (existing.expiryDate ?? null),
223
+ reviewDate: data.reviewDate !== undefined ? toTimestamp(data.reviewDate) : (existing.reviewDate ?? null),
224
+ archiveSection: data.archiveSection !== undefined ? (data.archiveSection ?? null) : (existing.archiveSection ?? null),
225
+ owner: { id: data.owner ?? existing.owner?.id ?? 0, type: 'USER' },
226
+ excludedMirrorSectionIds: [],
227
+ sectionIDs: [this.sectionId],
228
+ version: existing.version,
229
+ lastModified: existing.lastModified,
230
+ },
231
+ });
232
+ return createContentItem(dto, this.httpClient, this.sectionId, this.resolver, template.contentType.contentTypeElements, this.typeRegistry);
233
+ }
234
+ /** Deletes a content item by ID. */
235
+ async delete(id, options) {
236
+ const language = resolveLanguage(options?.language, this.defaultLanguage);
237
+ await this.httpClient.request({
238
+ method: 'DELETE',
239
+ path: `/content/${this.sectionId}/${id}/${language}`,
240
+ });
241
+ }
242
+ /** Permanently removes a content item. */
243
+ async purge(id, options) {
244
+ const language = resolveLanguage(options?.language, this.defaultLanguage);
245
+ await this.httpClient.request({
246
+ method: 'POST',
247
+ path: '/content/purge',
248
+ body: {
249
+ languageCode: language,
250
+ contentIds: [String(id)],
251
+ },
252
+ });
253
+ }
254
+ /**
255
+ * Approves all pending content in this section.
256
+ * Fetches the content list, filters to pending items (status 1),
257
+ * and sends a single APPROVE request with all their IDs.
258
+ * Returns the number of items approved.
259
+ */
260
+ async approveAll(options) {
261
+ const language = resolveLanguage(options?.language, this.defaultLanguage);
262
+ const response = await this.httpClient.request({
263
+ method: 'GET',
264
+ path: `/hierarchy/${this.sectionId}/${language}/contents?showAll=false&removeNonTranslated=false`,
265
+ });
266
+ const pendingIds = (response.children ?? [])
267
+ .filter((child) => child.content.status === 1)
268
+ .map((child) => child.content.id);
269
+ if (pendingIds.length === 0)
270
+ return 0;
271
+ await this.httpClient.request({
272
+ method: 'APPROVE',
273
+ path: `/content/${language}`,
274
+ body: {
275
+ ids: pendingIds,
276
+ fastTrack: 'workflow',
277
+ },
278
+ });
279
+ return pendingIds.length;
280
+ }
281
+ }
282
+ //# sourceMappingURL=content-resource.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content-resource.js","sourceRoot":"","sources":["../../../src/resources/content-resource.ts"],"names":[],"mappings":"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"}