@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 @@
1
+ {"type":"commonjs"}
@@ -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,107 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ChannelResource = exports.Channel = void 0;
4
+ /**
5
+ * Full channel details returned from get().
6
+ * Includes a publish() method to trigger a full channel publish.
7
+ */
8
+ class Channel {
9
+ constructor(raw, httpClient) {
10
+ Object.defineProperty(this, '_httpClient', { value: httpClient, enumerable: false });
11
+ this.id = raw.id;
12
+ this.name = raw.name;
13
+ this.description = raw.description ?? '';
14
+ this.defaultLayout = raw.type ?? '';
15
+ this.defaultLanguage = raw.defaultLanguage ?? 'en';
16
+ this.rootSectionId = raw.rootSectionID;
17
+ this.fileOutputPath = raw.fileOutputPath ?? '';
18
+ this.indexFileName = raw.indexFileName ?? '';
19
+ this.baseHref = raw.baseHref ?? '';
20
+ this.siteRoot = raw.siteRoot ?? '';
21
+ this.publishUrl = raw.channelPublishURL ?? '';
22
+ this.defaultFullTextLayout = raw.fullTextType ?? '';
23
+ this.fullTextExtension = raw.fullTextExtension ?? '';
24
+ this.languages = (raw.languages ?? []).map((l) => ({
25
+ code: l.code,
26
+ name: l.name,
27
+ charset: l.charset,
28
+ }));
29
+ this.microSites = (raw.microSites ?? []).length > 0
30
+ ? raw.microSites.map((ms) => ({ id: ms.id, name: ms.name }))
31
+ : undefined;
32
+ this.fileExtensions = (raw.permittedFileExtensions ?? [])
33
+ .sort((a, b) => a.priority - b.priority)
34
+ .map((e) => e.extension);
35
+ }
36
+ /**
37
+ * Publishes this entire channel.
38
+ *
39
+ * Options:
40
+ * - `includeArchives` — publish archive sections too (default: `false`)
41
+ * - `overridePublishPeriodRestriction` — override publish period restriction (default: `false`)
42
+ */
43
+ async publish(options) {
44
+ const language = options?.language ?? this.defaultLanguage;
45
+ await this._httpClient.request({
46
+ method: 'POST',
47
+ path: '/task/repository',
48
+ body: {
49
+ taskType: 'channelPublish',
50
+ channel: this.id,
51
+ sections: [this.rootSectionId],
52
+ branch: true,
53
+ publishCompleteChannel: true,
54
+ publishOptions: {
55
+ publishArchiveSections: options?.includeArchives ?? false,
56
+ overridePublishPeriodRestriction: options?.overridePublishPeriodRestriction ?? false,
57
+ },
58
+ taskLevel: 'channel',
59
+ selectedLanguage: language,
60
+ },
61
+ });
62
+ }
63
+ }
64
+ exports.Channel = Channel;
65
+ /**
66
+ * Resource for channel operations.
67
+ */
68
+ class ChannelResource {
69
+ constructor(httpClient) {
70
+ this.httpClient = httpClient;
71
+ }
72
+ /** Lists all channels. */
73
+ async list() {
74
+ const raw = await this.httpClient.request({
75
+ method: 'GET',
76
+ path: '/channel',
77
+ });
78
+ return raw.map((ch) => {
79
+ const microSites = (ch.microSites ?? []).map((ms) => ({
80
+ id: ms.id,
81
+ name: ms.name,
82
+ description: ms.description ?? '',
83
+ rootSectionId: ms.rootSectionID,
84
+ parentId: ms.parentID ?? ch.id,
85
+ }));
86
+ const result = {
87
+ id: ch.id,
88
+ name: ch.name,
89
+ description: ch.description ?? '',
90
+ rootSectionId: ch.rootSectionID,
91
+ };
92
+ if (microSites.length > 0)
93
+ result.microSites = microSites;
94
+ return result;
95
+ });
96
+ }
97
+ /** Gets a single channel by ID with full details. Returns a Channel object with publish(). */
98
+ async get(id) {
99
+ const raw = await this.httpClient.request({
100
+ method: 'GET',
101
+ path: `/channel/${id}`,
102
+ });
103
+ return new Channel(raw, this.httpClient);
104
+ }
105
+ }
106
+ exports.ChannelResource = ChannelResource;
107
+ //# 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,286 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ContentResource = void 0;
4
+ const utils_js_1 = require("../utils.js");
5
+ const content_item_js_1 = require("../models/content-item.js");
6
+ const element_resolver_js_1 = require("../element-resolver.js");
7
+ const type_registry_js_1 = require("../type-registry.js");
8
+ /**
9
+ * Section-scoped resource for content CRUD operations.
10
+ * All requests are scoped to the section ID provided at construction time.
11
+ */
12
+ class ContentResource {
13
+ constructor(httpClient, sectionId, defaultLanguage, mediaCreateFn) {
14
+ /** Cache of content type templates keyed by content type ID */
15
+ this.templateCache = new utils_js_1.TtlMap();
16
+ this.httpClient = httpClient;
17
+ this.sectionId = sectionId;
18
+ this.defaultLanguage = defaultLanguage;
19
+ this.typeRegistry = new type_registry_js_1.TypeRegistry(httpClient);
20
+ this.resolver = new element_resolver_js_1.ElementResolver(httpClient, defaultLanguage, this.typeRegistry, mediaCreateFn);
21
+ }
22
+ async getTemplate(contentTypeId) {
23
+ const cached = this.templateCache.get(contentTypeId);
24
+ if (cached)
25
+ return cached;
26
+ // Fetch both the new content template and the full content type definition
27
+ const [template, rawContentType] = await Promise.all([
28
+ this.httpClient.request({
29
+ method: 'GET',
30
+ path: `/content/type/${contentTypeId}/${this.sectionId}`,
31
+ }),
32
+ this.httpClient.request({
33
+ method: 'GET',
34
+ path: `/contenttype/${contentTypeId}`,
35
+ }),
36
+ ]);
37
+ // Merge alias and contentTypeElementConfiguration from the full content type
38
+ for (const templateEl of template.contentType.contentTypeElements) {
39
+ const rawEl = rawContentType.contentTypeElements.find((e) => e.name === templateEl.name);
40
+ if (rawEl) {
41
+ if (rawEl.alias)
42
+ templateEl.alias = rawEl.alias;
43
+ if (rawEl.listId)
44
+ templateEl.listId = rawEl.listId;
45
+ if (rawEl.contentTypeElementConfiguration) {
46
+ templateEl.contentTypeElementConfiguration = rawEl.contentTypeElementConfiguration;
47
+ }
48
+ }
49
+ }
50
+ this.templateCache.set(contentTypeId, template);
51
+ return template;
52
+ }
53
+ /**
54
+ * Builds the T4 elements map from developer-friendly field names and values.
55
+ * Resolves list values, dates, repeaters, etc. automatically.
56
+ */
57
+ async buildElements(fields, elements, name, language, context) {
58
+ const result = {};
59
+ // Name element
60
+ const nameEl = elements.find((el) => el.name.toLowerCase() === 'name');
61
+ if (nameEl) {
62
+ result[`${nameEl.name}#${nameEl.id}:${nameEl.type}`] = name;
63
+ }
64
+ for (const [fieldName, value] of Object.entries(fields)) {
65
+ const fieldLower = fieldName.toLowerCase();
66
+ const element = elements.find((el) => el.name.toLowerCase() === fieldLower
67
+ || (el.alias && el.alias.toLowerCase() === fieldLower));
68
+ if (!element) {
69
+ const validNames = elements
70
+ .filter((el) => el.name.toLowerCase() !== 'name')
71
+ .map((el) => `"${el.alias || el.name}"`)
72
+ .join(', ');
73
+ throw new Error(`Unknown field "${fieldName}" on this content type. Valid fields are: ${validNames}`);
74
+ }
75
+ const key = `${element.name}#${element.id}:${element.type}`;
76
+ // Repeater — special handling (no maxSize validation)
77
+ const typeName = await this.typeRegistry.getNameById(element.type);
78
+ if (typeName === 'Repeater' && Array.isArray(value)) {
79
+ result[key] = await this.buildRepeaterValue(value, element, language);
80
+ continue;
81
+ }
82
+ const resolved = await this.resolver.resolveValue(value, element, language, elements, context);
83
+ // Validate maxSize on the resolved value (what actually gets sent to the API)
84
+ if (element.maxSize) {
85
+ const resolvedStr = String(resolved ?? '');
86
+ if (resolvedStr.length > element.maxSize) {
87
+ const friendlyName = element.alias || element.name;
88
+ throw new Error(`Field "${friendlyName}" exceeds max size: ${resolvedStr.length} characters (max ${element.maxSize})`);
89
+ }
90
+ }
91
+ result[key] = resolved;
92
+ }
93
+ return result;
94
+ }
95
+ /**
96
+ * Builds repeater value array from developer-friendly input.
97
+ * Each repeater item gets its own element key resolution using the
98
+ * repeater's sub-content-type elements from contentTypeElementConfiguration.
99
+ */
100
+ async buildRepeaterValue(items, element, language) {
101
+ const config = element.contentTypeElementConfiguration;
102
+ const repeaterElements = config?.contentTypeDTO?.contentTypeElements;
103
+ if (!repeaterElements || repeaterElements.length === 0)
104
+ return items;
105
+ const result = [];
106
+ for (const item of items) {
107
+ const repeaterId = -Math.floor(Math.random() * 100000);
108
+ // Repeater items use their own repeaterId as fromContentId for SS links
109
+ const repeaterContext = {
110
+ fromSectionId: this.sectionId,
111
+ fromContentId: repeaterId,
112
+ };
113
+ const elements = await this.buildElements(item.fields, repeaterElements, item.name, language, repeaterContext);
114
+ result.push({
115
+ repeaterId,
116
+ repeaterContent: {
117
+ name: item.name,
118
+ elements,
119
+ },
120
+ });
121
+ }
122
+ return result;
123
+ }
124
+ /** Lists all content items in this section. */
125
+ async list(options) {
126
+ const language = (0, utils_js_1.resolveLanguage)(options?.language, this.defaultLanguage);
127
+ const response = await this.httpClient.request({
128
+ method: 'GET',
129
+ path: `/hierarchy/${this.sectionId}/${language}/contents?showAll=false&removeNonTranslated=false`,
130
+ });
131
+ return Promise.all((response.children ?? []).map((child) => (0, content_item_js_1.createContentItem)(child.content, this.httpClient, this.sectionId)));
132
+ }
133
+ /** Retrieves a single content item by ID. */
134
+ async get(id, options) {
135
+ const language = (0, utils_js_1.resolveLanguage)(options?.language, this.defaultLanguage);
136
+ const dto = await this.httpClient.request({
137
+ method: 'GET',
138
+ path: `/content/${this.sectionId}/${id}/${language}`,
139
+ });
140
+ // Fetch template to get alias and list info for friendly field resolution
141
+ const template = await this.getTemplate(dto.contentTypeID);
142
+ return (0, content_item_js_1.createContentItem)(dto, this.httpClient, this.sectionId, this.resolver, template.contentType.contentTypeElements, this.typeRegistry);
143
+ }
144
+ /** Creates a new content item in this section. */
145
+ async create(data, options) {
146
+ const language = (0, utils_js_1.resolveLanguage)(options?.language, this.defaultLanguage);
147
+ const template = await this.getTemplate(data.type);
148
+ const contentId = -Math.floor(Math.random() * 1000000);
149
+ const context = {
150
+ fromSectionId: this.sectionId,
151
+ fromContentId: contentId,
152
+ };
153
+ const elements = await this.buildElements(data.fields, template.contentType.contentTypeElements, data.name, language, context);
154
+ const statusName = data.status ?? 'pending';
155
+ const statusCode = utils_js_1.STATUS_CODES[statusName] ?? 1;
156
+ const dto = await this.httpClient.request({
157
+ method: 'POST',
158
+ path: `/content/${this.sectionId}/${language}`,
159
+ body: {
160
+ id: contentId,
161
+ contentTypeID: data.type,
162
+ name: data.name,
163
+ language,
164
+ status: statusCode,
165
+ elements,
166
+ channels: template.channels,
167
+ canPublishNow: true,
168
+ canSaveAndApprove: true,
169
+ publishDate: (0, utils_js_1.toTimestamp)(data.publishDate),
170
+ expiryDate: (0, utils_js_1.toTimestamp)(data.expiryDate),
171
+ reviewDate: (0, utils_js_1.toTimestamp)(data.reviewDate),
172
+ archiveSection: data.archiveSection ?? null,
173
+ owner: { id: data.owner ?? 0, type: 'USER' },
174
+ excludedMirrorSectionIds: [],
175
+ },
176
+ });
177
+ return (0, content_item_js_1.createContentItem)(dto, this.httpClient, this.sectionId, this.resolver, template.contentType.contentTypeElements, this.typeRegistry);
178
+ }
179
+ /** Updates an existing content item's fields. */
180
+ async update(id, data, options) {
181
+ const language = (0, utils_js_1.resolveLanguage)(options?.language, this.defaultLanguage);
182
+ // 1. Fetch the existing content (full body needed for the POST)
183
+ const existing = await this.httpClient.request({
184
+ method: 'GET',
185
+ path: `/content/${this.sectionId}/${id}/${language}`,
186
+ });
187
+ // 2. Get the template for element resolution
188
+ const template = await this.getTemplate(existing.contentTypeID);
189
+ // 3. Resolve changed fields from friendly names → raw element keys
190
+ const mergedElements = { ...existing.elements };
191
+ if (data.fields && Object.keys(data.fields).length > 0) {
192
+ const context = {
193
+ fromSectionId: this.sectionId,
194
+ fromContentId: id,
195
+ };
196
+ const resolved = await this.buildElements(data.fields, template.contentType.contentTypeElements, data.name ?? existing.name, language, context);
197
+ // Merge resolved fields into existing elements (overwrite only changed keys)
198
+ Object.assign(mergedElements, resolved);
199
+ }
200
+ // 4. If name changed, update the Name element in mergedElements too
201
+ const name = data.name ?? existing.name;
202
+ if (data.name) {
203
+ const nameEl = template.contentType.contentTypeElements.find((el) => el.name.toLowerCase() === 'name');
204
+ if (nameEl) {
205
+ mergedElements[`${nameEl.name}#${nameEl.id}:${nameEl.type}`] = data.name;
206
+ }
207
+ }
208
+ // 5. Resolve status
209
+ const statusCode = data.status ? (utils_js_1.STATUS_CODES[data.status] ?? 1) : 1;
210
+ // 6. POST the full body back
211
+ const dto = await this.httpClient.request({
212
+ method: 'POST',
213
+ path: `/content/${this.sectionId}/${id}/${language}`,
214
+ body: {
215
+ id: existing.id,
216
+ contentTypeID: existing.contentTypeID,
217
+ name,
218
+ language,
219
+ status: statusCode,
220
+ elements: mergedElements,
221
+ channels: existing.channels,
222
+ canPublishNow: true,
223
+ canSaveAndApprove: true,
224
+ publishDate: data.publishDate !== undefined ? (0, utils_js_1.toTimestamp)(data.publishDate) : (existing.publishDate ?? null),
225
+ expiryDate: data.expiryDate !== undefined ? (0, utils_js_1.toTimestamp)(data.expiryDate) : (existing.expiryDate ?? null),
226
+ reviewDate: data.reviewDate !== undefined ? (0, utils_js_1.toTimestamp)(data.reviewDate) : (existing.reviewDate ?? null),
227
+ archiveSection: data.archiveSection !== undefined ? (data.archiveSection ?? null) : (existing.archiveSection ?? null),
228
+ owner: { id: data.owner ?? existing.owner?.id ?? 0, type: 'USER' },
229
+ excludedMirrorSectionIds: [],
230
+ sectionIDs: [this.sectionId],
231
+ version: existing.version,
232
+ lastModified: existing.lastModified,
233
+ },
234
+ });
235
+ return (0, content_item_js_1.createContentItem)(dto, this.httpClient, this.sectionId, this.resolver, template.contentType.contentTypeElements, this.typeRegistry);
236
+ }
237
+ /** Deletes a content item by ID. */
238
+ async delete(id, options) {
239
+ const language = (0, utils_js_1.resolveLanguage)(options?.language, this.defaultLanguage);
240
+ await this.httpClient.request({
241
+ method: 'DELETE',
242
+ path: `/content/${this.sectionId}/${id}/${language}`,
243
+ });
244
+ }
245
+ /** Permanently removes a content item. */
246
+ async purge(id, options) {
247
+ const language = (0, utils_js_1.resolveLanguage)(options?.language, this.defaultLanguage);
248
+ await this.httpClient.request({
249
+ method: 'POST',
250
+ path: '/content/purge',
251
+ body: {
252
+ languageCode: language,
253
+ contentIds: [String(id)],
254
+ },
255
+ });
256
+ }
257
+ /**
258
+ * Approves all pending content in this section.
259
+ * Fetches the content list, filters to pending items (status 1),
260
+ * and sends a single APPROVE request with all their IDs.
261
+ * Returns the number of items approved.
262
+ */
263
+ async approveAll(options) {
264
+ const language = (0, utils_js_1.resolveLanguage)(options?.language, this.defaultLanguage);
265
+ const response = await this.httpClient.request({
266
+ method: 'GET',
267
+ path: `/hierarchy/${this.sectionId}/${language}/contents?showAll=false&removeNonTranslated=false`,
268
+ });
269
+ const pendingIds = (response.children ?? [])
270
+ .filter((child) => child.content.status === 1)
271
+ .map((child) => child.content.id);
272
+ if (pendingIds.length === 0)
273
+ return 0;
274
+ await this.httpClient.request({
275
+ method: 'APPROVE',
276
+ path: `/content/${language}`,
277
+ body: {
278
+ ids: pendingIds,
279
+ fastTrack: 'workflow',
280
+ },
281
+ });
282
+ return pendingIds.length;
283
+ }
284
+ }
285
+ exports.ContentResource = ContentResource;
286
+ //# sourceMappingURL=content-resource.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content-resource.js","sourceRoot":"","sources":["../../../src/resources/content-resource.ts"],"names":[],"mappings":";;;AAOA,0CAAiF;AACjF,+DAA2E;AAC3E,gEAAwH;AACxH,0DAAmD;AAwCnD;;;GAGG;AACH,MAAa,eAAe;IAU1B,YAAY,UAAsB,EAAE,SAAiB,EAAE,eAAuB,EAAE,aAAoC;QAHpH,+DAA+D;QACvD,kBAAa,GAAuC,IAAI,iBAAM,EAAE,CAAC;QAGvE,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QACvC,IAAI,CAAC,YAAY,GAAG,IAAI,+BAAY,CAAC,UAAU,CAAC,CAAC;QACjD,IAAI,CAAC,QAAQ,GAAG,IAAI,qCAAe,CAAC,UAAU,EAAE,eAAe,EAAE,IAAI,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;IACrG,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,aAAqB;QAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QACrD,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;QAE1B,2EAA2E;QAC3E,MAAM,CAAC,QAAQ,EAAE,cAAc,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACnD,IAAI,CAAC,UAAU,CAAC,OAAO,CAAqB;gBAC1C,MAAM,EAAE,KAAK;gBACb,IAAI,EAAE,iBAAiB,aAAa,IAAI,IAAI,CAAC,SAAS,EAAE;aACzD,CAAC;YACF,IAAI,CAAC,UAAU,CAAC,OAAO,CAAiB;gBACtC,MAAM,EAAE,KAAK;gBACb,IAAI,EAAE,gBAAgB,aAAa,EAAE;aACtC,CAAC;SACH,CAAC,CAAC;QAEH,6EAA6E;QAC7E,KAAK,MAAM,UAAU,IAAI,QAAQ,CAAC,WAAW,CAAC,mBAAmB,EAAE,CAAC;YAClE,MAAM,KAAK,GAAG,cAAc,CAAC,mBAAmB,CAAC,IAAI,CACnD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,IAAI,CAClC,CAAC;YACF,IAAI,KAAK,EAAE,CAAC;gBACV,IAAI,KAAK,CAAC,KAAK;oBAAE,UAAU,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;gBAChD,IAAI,KAAK,CAAC,MAAM;oBAAE,UAAU,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;gBACnD,IAAI,KAAK,CAAC,+BAA+B,EAAE,CAAC;oBAC1C,UAAU,CAAC,+BAA+B,GAAG,KAAK,CAAC,+BAA+B,CAAC;gBACrF,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;QAChD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,aAAa,CACzB,MAA+B,EAC/B,QAA2B,EAC3B,IAAY,EACZ,QAAgB,EAChB,OAAwB;QAExB,MAAM,MAAM,GAA4B,EAAE,CAAC;QAE3C,eAAe;QACf,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,CAAC;QACvE,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;QAC9D,CAAC;QAED,KAAK,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACxD,MAAM,UAAU,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;YAC3C,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAC3B,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,UAAU;mBACvC,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,UAAU,CAAC,CACzD,CAAC;YACF,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,UAAU,GAAG,QAAQ;qBACxB,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC;qBAChD,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,IAAI,GAAG,CAAC;qBACvC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACd,MAAM,IAAI,KAAK,CACb,kBAAkB,SAAS,6CAA6C,UAAU,EAAE,CACrF,CAAC;YACJ,CAAC;YAED,MAAM,GAAG,GAAG,GAAG,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,EAAE,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YAE5D,sDAAsD;YACtD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACnE,IAAI,QAAQ,KAAK,UAAU,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBACpD,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,IAAI,CAAC,kBAAkB,CACzC,KAAwB,EACxB,OAAO,EACP,QAAQ,CACT,CAAC;gBACF,SAAS;YACX,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;YAE/F,8EAA8E;YAC9E,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gBACpB,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;gBAC3C,IAAI,WAAW,CAAC,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;oBACzC,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;oBACnD,MAAM,IAAI,KAAK,CACb,UAAU,YAAY,uBAAuB,WAAW,CAAC,MAAM,oBAAoB,OAAO,CAAC,OAAO,GAAG,CACtG,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,MAAM,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC;QACzB,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,kBAAkB,CAC9B,KAAsB,EACtB,OAAwB,EACxB,QAAgB;QAEhB,MAAM,MAAM,GAAG,OAAO,CAAC,+BAA+B,CAAC;QACvD,MAAM,gBAAgB,GAAG,MAAM,EAAE,cAAc,EAAE,mBAAmB,CAAC;QACrE,IAAI,CAAC,gBAAgB,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QAErE,MAAM,MAAM,GAAc,EAAE,CAAC;QAC7B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC;YAEvD,wEAAwE;YACxE,MAAM,eAAe,GAAmB;gBACtC,aAAa,EAAE,IAAI,CAAC,SAAS;gBAC7B,aAAa,EAAE,UAAU;aAC1B,CAAC;YAEF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CACvC,IAAI,CAAC,MAAM,EACX,gBAAgB,EAChB,IAAI,CAAC,IAAI,EACT,QAAQ,EACR,eAAe,CAChB,CAAC;YAEF,MAAM,CAAC,IAAI,CAAC;gBACV,UAAU;gBACV,eAAe,EAAE;oBACf,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,QAAQ;iBACT;aACF,CAAC,CAAC;QACL,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,+CAA+C;IAC/C,KAAK,CAAC,IAAI,CAAC,OAAwB;QACjC,MAAM,QAAQ,GAAG,IAAA,0BAAe,EAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QAC1E,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAmB;YAC/D,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,cAAc,IAAI,CAAC,SAAS,IAAI,QAAQ,mDAAmD;SAClG,CAAC,CAAC;QACH,OAAO,OAAO,CAAC,GAAG,CAChB,CAAC,QAAQ,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACtC,IAAA,mCAAiB,EAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,CAClE,CACF,CAAC;IACJ,CAAC;IAED,6CAA6C;IAC7C,KAAK,CAAC,GAAG,CAAC,EAAU,EAAE,OAAwB;QAC5C,MAAM,QAAQ,GAAG,IAAA,0BAAe,EAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QAC1E,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAa;YACpD,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,YAAY,IAAI,CAAC,SAAS,IAAI,EAAE,IAAI,QAAQ,EAAE;SACrD,CAAC,CAAC;QACH,0EAA0E;QAC1E,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAC3D,OAAO,IAAA,mCAAiB,EACtB,GAAG,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,WAAW,CAAC,mBAAmB,EAAE,IAAI,CAAC,YAAY,CACjH,CAAC;IACJ,CAAC;IAED,kDAAkD;IAClD,KAAK,CAAC,MAAM,CAAC,IAAuB,EAAE,OAAwB;QAC5D,MAAM,QAAQ,GAAG,IAAA,0BAAe,EAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QAE1E,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnD,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC;QAEvD,MAAM,OAAO,GAAmB;YAC9B,aAAa,EAAE,IAAI,CAAC,SAAS;YAC7B,aAAa,EAAE,SAAS;SACzB,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CACvC,IAAI,CAAC,MAAM,EACX,QAAQ,CAAC,WAAW,CAAC,mBAAmB,EACxC,IAAI,CAAC,IAAI,EACT,QAAQ,EACR,OAAO,CACR,CAAC;QAEF,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,IAAI,SAAS,CAAC;QAC5C,MAAM,UAAU,GAAG,uBAAY,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAEjD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAa;YACpD,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,YAAY,IAAI,CAAC,SAAS,IAAI,QAAQ,EAAE;YAC9C,IAAI,EAAE;gBACJ,EAAE,EAAE,SAAS;gBACb,aAAa,EAAE,IAAI,CAAC,IAAI;gBACxB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,QAAQ;gBACR,MAAM,EAAE,UAAU;gBAClB,QAAQ;gBACR,QAAQ,EAAE,QAAQ,CAAC,QAAQ;gBAC3B,aAAa,EAAE,IAAI;gBACnB,iBAAiB,EAAE,IAAI;gBACvB,WAAW,EAAE,IAAA,sBAAW,EAAC,IAAI,CAAC,WAAW,CAAC;gBAC1C,UAAU,EAAE,IAAA,sBAAW,EAAC,IAAI,CAAC,UAAU,CAAC;gBACxC,UAAU,EAAE,IAAA,sBAAW,EAAC,IAAI,CAAC,UAAU,CAAC;gBACxC,cAAc,EAAE,IAAI,CAAC,cAAc,IAAI,IAAI;gBAC3C,KAAK,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,KAAK,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE;gBAC5C,wBAAwB,EAAE,EAAE;aAC7B;SACF,CAAC,CAAC;QACH,OAAO,IAAA,mCAAiB,EACtB,GAAG,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,WAAW,CAAC,mBAAmB,EAAE,IAAI,CAAC,YAAY,CACjH,CAAC;IACJ,CAAC;IAED,iDAAiD;IACjD,KAAK,CAAC,MAAM,CAAC,EAAU,EAAE,IAAuB,EAAE,OAAwB;QACxE,MAAM,QAAQ,GAAG,IAAA,0BAAe,EAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QAE1E,gEAAgE;QAChE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAa;YACzD,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,YAAY,IAAI,CAAC,SAAS,IAAI,EAAE,IAAI,QAAQ,EAAE;SACrD,CAAC,CAAC;QAEH,6CAA6C;QAC7C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QAEhE,mEAAmE;QACnE,MAAM,cAAc,GAAG,EAAE,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC;QAChD,IAAI,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvD,MAAM,OAAO,GAAmB;gBAC9B,aAAa,EAAE,IAAI,CAAC,SAAS;gBAC7B,aAAa,EAAE,EAAE;aAClB,CAAC;YACF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CACvC,IAAI,CAAC,MAAM,EACX,QAAQ,CAAC,WAAW,CAAC,mBAAmB,EACxC,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,EAC1B,QAAQ,EACR,OAAO,CACR,CAAC;YACF,6EAA6E;YAC7E,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;QAC1C,CAAC;QAED,oEAAoE;QACpE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC;QACxC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,MAAM,MAAM,GAAG,QAAQ,CAAC,WAAW,CAAC,mBAAmB,CAAC,IAAI,CAC1D,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,MAAM,CACzC,CAAC;YACF,IAAI,MAAM,EAAE,CAAC;gBACX,cAAc,CAAC,GAAG,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;YAC3E,CAAC;QACH,CAAC;QAED,oBAAoB;QACpB,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,uBAAY,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAEtE,6BAA6B;QAC7B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAa;YACpD,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,YAAY,IAAI,CAAC,SAAS,IAAI,EAAE,IAAI,QAAQ,EAAE;YACpD,IAAI,EAAE;gBACJ,EAAE,EAAE,QAAQ,CAAC,EAAE;gBACf,aAAa,EAAE,QAAQ,CAAC,aAAa;gBACrC,IAAI;gBACJ,QAAQ;gBACR,MAAM,EAAE,UAAU;gBAClB,QAAQ,EAAE,cAAc;gBACxB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;gBAC3B,aAAa,EAAE,IAAI;gBACnB,iBAAiB,EAAE,IAAI;gBACvB,WAAW,EAAE,IAAI,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,IAAA,sBAAW,EAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,IAAI,IAAI,CAAC;gBAC5G,UAAU,EAAE,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,IAAA,sBAAW,EAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,IAAI,IAAI,CAAC;gBACxG,UAAU,EAAE,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,IAAA,sBAAW,EAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,IAAI,IAAI,CAAC;gBACxG,cAAc,EAAE,IAAI,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,IAAI,IAAI,CAAC;gBACrH,KAAK,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,KAAK,IAAI,QAAQ,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE;gBAClE,wBAAwB,EAAE,EAAE;gBAC5B,UAAU,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;gBAC5B,OAAO,EAAE,QAAQ,CAAC,OAAO;gBACzB,YAAY,EAAE,QAAQ,CAAC,YAAY;aACpC;SACF,CAAC,CAAC;QACH,OAAO,IAAA,mCAAiB,EACtB,GAAG,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,WAAW,CAAC,mBAAmB,EAAE,IAAI,CAAC,YAAY,CACjH,CAAC;IACJ,CAAC;IAED,oCAAoC;IACpC,KAAK,CAAC,MAAM,CAAC,EAAU,EAAE,OAAwB;QAC/C,MAAM,QAAQ,GAAG,IAAA,0BAAe,EAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QAC1E,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAO;YAClC,MAAM,EAAE,QAAQ;YAChB,IAAI,EAAE,YAAY,IAAI,CAAC,SAAS,IAAI,EAAE,IAAI,QAAQ,EAAE;SACrD,CAAC,CAAC;IACL,CAAC;IAED,0CAA0C;IAC1C,KAAK,CAAC,KAAK,CAAC,EAAU,EAAE,OAAwB;QAC9C,MAAM,QAAQ,GAAG,IAAA,0BAAe,EAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QAC1E,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAO;YAClC,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,gBAAgB;YACtB,IAAI,EAAE;gBACJ,YAAY,EAAE,QAAQ;gBACtB,UAAU,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;aACzB;SACF,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,UAAU,CAAC,OAAwB;QACvC,MAAM,QAAQ,GAAG,IAAA,0BAAe,EAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QAC1E,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAmB;YAC/D,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,cAAc,IAAI,CAAC,SAAS,IAAI,QAAQ,mDAAmD;SAClG,CAAC,CAAC;QAEH,MAAM,UAAU,GAAG,CAAC,QAAQ,CAAC,QAAQ,IAAI,EAAE,CAAC;aACzC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC;aAC7C,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAEpC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,CAAC,CAAC;QAEtC,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAO;YAClC,MAAM,EAAE,SAAS;YACjB,IAAI,EAAE,YAAY,QAAQ,EAAE;YAC5B,IAAI,EAAE;gBACJ,GAAG,EAAE,UAAU;gBACf,SAAS,EAAE,UAAU;aACtB;SACF,CAAC,CAAC;QAEH,OAAO,UAAU,CAAC,MAAM,CAAC;IAC3B,CAAC;CACF;AA/WD,0CA+WC"}