mcp-wordpress 2.2.0 → 2.4.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 (71) hide show
  1. package/README.md +503 -0
  2. package/dist/client/api.d.ts +90 -0
  3. package/dist/client/api.d.ts.map +1 -1
  4. package/dist/client/api.js +90 -0
  5. package/dist/client/api.js.map +1 -1
  6. package/dist/security/AISecurityScanner.d.ts +175 -0
  7. package/dist/security/AISecurityScanner.d.ts.map +1 -0
  8. package/dist/security/AISecurityScanner.js +645 -0
  9. package/dist/security/AISecurityScanner.js.map +1 -0
  10. package/dist/security/AutomatedRemediation.d.ts +145 -0
  11. package/dist/security/AutomatedRemediation.d.ts.map +1 -0
  12. package/dist/security/AutomatedRemediation.js +535 -0
  13. package/dist/security/AutomatedRemediation.js.map +1 -0
  14. package/dist/security/SecurityCIPipeline.d.ts +213 -0
  15. package/dist/security/SecurityCIPipeline.d.ts.map +1 -0
  16. package/dist/security/SecurityCIPipeline.js +684 -0
  17. package/dist/security/SecurityCIPipeline.js.map +1 -0
  18. package/dist/security/SecurityConfigManager.d.ts +294 -0
  19. package/dist/security/SecurityConfigManager.d.ts.map +1 -0
  20. package/dist/security/SecurityConfigManager.js +553 -0
  21. package/dist/security/SecurityConfigManager.js.map +1 -0
  22. package/dist/security/SecurityMonitoring.d.ts +245 -0
  23. package/dist/security/SecurityMonitoring.d.ts.map +1 -0
  24. package/dist/security/SecurityMonitoring.js +596 -0
  25. package/dist/security/SecurityMonitoring.js.map +1 -0
  26. package/dist/security/SecurityReviewer.d.ts +168 -0
  27. package/dist/security/SecurityReviewer.d.ts.map +1 -0
  28. package/dist/security/SecurityReviewer.js +683 -0
  29. package/dist/security/SecurityReviewer.js.map +1 -0
  30. package/dist/security/index.d.ts +182 -0
  31. package/dist/security/index.d.ts.map +1 -0
  32. package/dist/security/index.js +189 -0
  33. package/dist/security/index.js.map +1 -0
  34. package/dist/tools/media.d.ts +43 -4
  35. package/dist/tools/media.d.ts.map +1 -1
  36. package/dist/tools/media.js +43 -4
  37. package/dist/tools/media.js.map +1 -1
  38. package/dist/tools/posts.d.ts +225 -4
  39. package/dist/tools/posts.d.ts.map +1 -1
  40. package/dist/tools/posts.js +225 -4
  41. package/dist/tools/posts.js.map +1 -1
  42. package/docs/DOCKER_PUBLISHING_TROUBLESHOOTING.md +233 -0
  43. package/docs/PUBLISHING-TROUBLESHOOTING.md +227 -0
  44. package/docs/api/README.md +53 -11
  45. package/docs/api/openapi.json +10 -10
  46. package/docs/api/summary.json +1 -1
  47. package/docs/api/tools/wp_create_post.md +9 -3
  48. package/docs/api/tools/wp_delete_post.md +2 -3
  49. package/docs/api/tools/wp_get_current_user.md +7 -1
  50. package/docs/api/tools/wp_get_post.md +2 -3
  51. package/docs/api/tools/wp_get_post_revisions.md +1 -1
  52. package/docs/api/tools/wp_list_posts.md +10 -3
  53. package/docs/api/tools/wp_list_users.md +8 -1
  54. package/docs/api/tools/wp_search_site.md +8 -1
  55. package/docs/api/tools/wp_test_auth.md +8 -1
  56. package/docs/api/tools/wp_update_post.md +2 -3
  57. package/docs/examples/docker-production.md +801 -0
  58. package/docs/examples/multi-site-setup.md +575 -0
  59. package/docs/examples/single-site-setup.md +390 -0
  60. package/docs/examples/use-case-workflows.md +469 -0
  61. package/package.json +11 -3
  62. package/src/client/api.ts +90 -0
  63. package/src/security/AISecurityScanner.ts +780 -0
  64. package/src/security/AutomatedRemediation.ts +665 -0
  65. package/src/security/SecurityCIPipeline.ts +969 -0
  66. package/src/security/SecurityConfigManager.ts +829 -0
  67. package/src/security/SecurityMonitoring.ts +841 -0
  68. package/src/security/SecurityReviewer.ts +855 -0
  69. package/src/security/index.ts +249 -0
  70. package/src/tools/media.ts +43 -4
  71. package/src/tools/posts.ts +225 -4
@@ -1,27 +1,248 @@
1
1
  import { WordPressClient } from "../client/api.js";
2
2
  import { CreatePostRequest, PostQueryParams, UpdatePostRequest } from "../types/wordpress.js";
3
3
  /**
4
- * Provides tools for managing posts on a WordPress site.
5
- * This class encapsulates tool definitions and their corresponding handlers.
4
+ * Provides comprehensive tools for managing WordPress posts.
5
+ *
6
+ * This class encapsulates tool definitions and their corresponding handlers for:
7
+ * - Listing posts with advanced filtering and search capabilities
8
+ * - Creating new posts with full metadata support
9
+ * - Updating existing posts with validation
10
+ * - Deleting posts with trash/permanent options
11
+ * - Retrieving individual posts with detailed information
12
+ * - Managing post revisions and history
13
+ *
14
+ * @example
15
+ * ```typescript
16
+ * const postTools = new PostTools();
17
+ * const tools = postTools.getTools();
18
+ *
19
+ * // Use with a WordPress client
20
+ * const client = new WordPressClient(config);
21
+ * const result = await postTools.handleListPosts(client, { per_page: 10 });
22
+ * ```
23
+ *
24
+ * @since 1.0.0
25
+ * @author MCP WordPress Team
6
26
  */
7
27
  export declare class PostTools {
8
28
  /**
9
- * Retrieves the list of post management tools.
10
- * @returns An array of MCPTool definitions.
29
+ * Retrieves the complete list of post management tools available for MCP.
30
+ *
31
+ * Returns an array of tool definitions that can be registered with an MCP server.
32
+ * Each tool includes comprehensive parameter validation, error handling, and
33
+ * detailed documentation with usage examples.
34
+ *
35
+ * @returns {Array<MCPTool>} An array of MCPTool definitions for post management
36
+ *
37
+ * @example
38
+ * ```typescript
39
+ * const postTools = new PostTools();
40
+ * const tools = postTools.getTools();
41
+ * console.log(tools.length); // 6 tools: list, get, create, update, delete, revisions
42
+ * ```
11
43
  */
12
44
  getTools(): any[];
45
+ /**
46
+ * Handles listing posts from a WordPress site with comprehensive filtering options.
47
+ *
48
+ * This method provides advanced search capabilities, status filtering, pagination,
49
+ * and category/tag filtering. Results include enhanced metadata and author information.
50
+ * For large result sets (>50 posts), it automatically uses streaming for better performance.
51
+ *
52
+ * @param {WordPressClient} client - The WordPress client instance for API communication
53
+ * @param {PostQueryParams} params - Query parameters for filtering and pagination
54
+ * @param {number} [params.per_page=10] - Number of posts to return per page (max 100)
55
+ * @param {string} [params.search] - Search term to filter posts by title/content
56
+ * @param {string|string[]} [params.status] - Post status filter (publish, draft, etc.)
57
+ * @param {number[]} [params.categories] - Array of category IDs to filter by
58
+ * @param {number[]} [params.tags] - Array of tag IDs to filter by
59
+ * @param {number} [params.page=1] - Page number for pagination
60
+ *
61
+ * @returns {Promise<string>} Formatted list of posts with metadata and context
62
+ *
63
+ * @throws {EnhancedError} When validation fails or API request encounters an error
64
+ *
65
+ * @example
66
+ * ```typescript
67
+ * // Basic listing
68
+ * const result = await handleListPosts(client, {});
69
+ *
70
+ * // Advanced filtering
71
+ * const filtered = await handleListPosts(client, {
72
+ * search: "WordPress tips",
73
+ * status: "publish",
74
+ * categories: [1, 2],
75
+ * per_page: 20
76
+ * });
77
+ * ```
78
+ *
79
+ * @since 1.0.0
80
+ */
13
81
  handleListPosts(client: WordPressClient, params: PostQueryParams): Promise<any>;
82
+ /**
83
+ * Retrieves a single WordPress post by ID with complete details and metadata.
84
+ *
85
+ * This method fetches a specific post and returns comprehensive information including
86
+ * content, metadata, author details, categories, tags, and publication status.
87
+ *
88
+ * @param {WordPressClient} client - The WordPress client instance for API communication
89
+ * @param {Object} params - Parameters for post retrieval
90
+ * @param {number} params.id - The unique ID of the post to retrieve
91
+ *
92
+ * @returns {Promise<string>} Detailed post information formatted for display
93
+ *
94
+ * @throws {EnhancedError} When post ID is invalid or post is not found
95
+ *
96
+ * @example
97
+ * ```typescript
98
+ * // Get a specific post
99
+ * const post = await handleGetPost(client, { id: 123 });
100
+ * ```
101
+ *
102
+ * @since 1.0.0
103
+ */
14
104
  handleGetPost(client: WordPressClient, params: {
15
105
  id: number;
16
106
  }): Promise<any>;
107
+ /**
108
+ * Creates a new WordPress post with comprehensive validation and metadata support.
109
+ *
110
+ * This method handles the creation of new posts with full support for content,
111
+ * metadata, categories, tags, and publishing options. Includes automatic validation
112
+ * and sanitization of all input parameters.
113
+ *
114
+ * @param {WordPressClient} client - The WordPress client instance for API communication
115
+ * @param {CreatePostRequest} params - Post creation parameters
116
+ * @param {string} params.title - The post title
117
+ * @param {string} params.content - The post content in HTML format
118
+ * @param {string} [params.status="draft"] - Post status (publish, draft, pending, private)
119
+ * @param {string} [params.excerpt] - Post excerpt/summary
120
+ * @param {number[]} [params.categories] - Array of category IDs to assign
121
+ * @param {number[]} [params.tags] - Array of tag IDs to assign
122
+ *
123
+ * @returns {Promise<string>} Success message with the new post ID and details
124
+ *
125
+ * @throws {EnhancedError} When validation fails or post creation encounters an error
126
+ *
127
+ * @example
128
+ * ```typescript
129
+ * // Create a basic post
130
+ * const result = await handleCreatePost(client, {
131
+ * title: "My New Post",
132
+ * content: "<p>This is the post content.</p>",
133
+ * status: "publish"
134
+ * });
135
+ *
136
+ * // Create post with categories and tags
137
+ * const detailed = await handleCreatePost(client, {
138
+ * title: "WordPress Tips",
139
+ * content: "<p>Detailed WordPress tips...</p>",
140
+ * categories: [1, 2],
141
+ * tags: [5, 6],
142
+ * excerpt: "Learn essential WordPress tips"
143
+ * });
144
+ * ```
145
+ *
146
+ * @since 1.0.0
147
+ */
17
148
  handleCreatePost(client: WordPressClient, params: CreatePostRequest): Promise<any>;
149
+ /**
150
+ * Updates an existing WordPress post with validation and detailed confirmation.
151
+ *
152
+ * This method allows updating any aspect of a post including title, content, status,
153
+ * categories, and tags. Only provided fields are updated, leaving others unchanged.
154
+ *
155
+ * @param {WordPressClient} client - The WordPress client instance for API communication
156
+ * @param {UpdatePostRequest & {id: number}} params - Update parameters
157
+ * @param {number} params.id - The ID of the post to update
158
+ * @param {string} [params.title] - New post title
159
+ * @param {string} [params.content] - New post content in HTML format
160
+ * @param {string} [params.status] - New post status (publish, draft, pending, private)
161
+ * @param {string} [params.excerpt] - New post excerpt
162
+ * @param {number[]} [params.categories] - New category IDs to assign
163
+ * @param {number[]} [params.tags] - New tag IDs to assign
164
+ *
165
+ * @returns {Promise<string>} Success message confirming the update
166
+ *
167
+ * @throws {EnhancedError} When post ID is invalid or update fails
168
+ *
169
+ * @example
170
+ * ```typescript
171
+ * // Update post title and status
172
+ * const result = await handleUpdatePost(client, {
173
+ * id: 123,
174
+ * title: "Updated Post Title",
175
+ * status: "publish"
176
+ * });
177
+ *
178
+ * // Update content and categories
179
+ * const updated = await handleUpdatePost(client, {
180
+ * id: 123,
181
+ * content: "<p>New content here...</p>",
182
+ * categories: [1, 3, 5]
183
+ * });
184
+ * ```
185
+ *
186
+ * @since 1.0.0
187
+ */
18
188
  handleUpdatePost(client: WordPressClient, params: UpdatePostRequest & {
19
189
  id: number;
20
190
  }): Promise<any>;
191
+ /**
192
+ * Deletes a WordPress post with options for trash or permanent deletion.
193
+ *
194
+ * This method provides safe deletion with trash option (default) or permanent
195
+ * deletion when force is specified. Includes confirmation of the deletion action.
196
+ *
197
+ * @param {WordPressClient} client - The WordPress client instance for API communication
198
+ * @param {Object} params - Deletion parameters
199
+ * @param {number} params.id - The ID of the post to delete
200
+ * @param {boolean} [params.force=false] - Whether to permanently delete (true) or move to trash (false)
201
+ *
202
+ * @returns {Promise<string>} Confirmation message of the deletion action
203
+ *
204
+ * @throws {EnhancedError} When post ID is invalid or deletion fails
205
+ *
206
+ * @example
207
+ * ```typescript
208
+ * // Move post to trash (safe deletion)
209
+ * const result = await handleDeletePost(client, { id: 123 });
210
+ *
211
+ * // Permanently delete post (cannot be undone)
212
+ * const permanent = await handleDeletePost(client, {
213
+ * id: 123,
214
+ * force: true
215
+ * });
216
+ * ```
217
+ *
218
+ * @since 1.0.0
219
+ */
21
220
  handleDeletePost(client: WordPressClient, params: {
22
221
  id: number;
23
222
  force?: boolean;
24
223
  }): Promise<any>;
224
+ /**
225
+ * Retrieves revision history for a specific WordPress post.
226
+ *
227
+ * This method fetches all available revisions for a post, providing a complete
228
+ * history of changes including dates, authors, and modification details.
229
+ *
230
+ * @param {WordPressClient} client - The WordPress client instance for API communication
231
+ * @param {Object} params - Parameters for revision retrieval
232
+ * @param {number} params.id - The ID of the post to get revisions for
233
+ *
234
+ * @returns {Promise<string>} Formatted list of post revisions with details
235
+ *
236
+ * @throws {EnhancedError} When post ID is invalid or revisions cannot be retrieved
237
+ *
238
+ * @example
239
+ * ```typescript
240
+ * // Get all revisions for a post
241
+ * const revisions = await handleGetPostRevisions(client, { id: 123 });
242
+ * ```
243
+ *
244
+ * @since 1.0.0
245
+ */
25
246
  handleGetPostRevisions(client: WordPressClient, params: {
26
247
  id: number;
27
248
  }): Promise<any>;
@@ -1 +1 @@
1
- {"version":3,"file":"posts.d.ts","sourceRoot":"","sources":["../../src/tools/posts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAM9F;;;GAGG;AACH,qBAAa,SAAS;IACpB;;;OAGG;IACI,QAAQ,IAAI,GAAG,EAAE;IA0KX,eAAe,CAAC,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC;IAqM/E,aAAa,CAAC,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,GAAG,CAAC;IAkH5E,gBAAgB,CAAC,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC;IA2BlF,gBAAgB,CAAC,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,iBAAiB,GAAG;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,GAAG,CAAC;IASnG,gBAAgB,CAAC,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,GAAG,CAAC;IAUhG,sBAAsB,CAAC,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,GAAG,CAAC;CAgBnG;AAED,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"posts.d.ts","sourceRoot":"","sources":["../../src/tools/posts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAM9F;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,SAAS;IACpB;;;;;;;;;;;;;;;OAeG;IACI,QAAQ,IAAI,GAAG,EAAE;IA0KxB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAmCG;IACU,eAAe,CAAC,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC;IAqM5F;;;;;;;;;;;;;;;;;;;;;OAqBG;IACU,aAAa,CAAC,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,GAAG,CAAC;IAkHzF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAwCG;IACU,gBAAgB,CAAC,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC;IA2B/F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAsCG;IACU,gBAAgB,CAAC,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,iBAAiB,GAAG;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,GAAG,CAAC;IAShH;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACU,gBAAgB,CAAC,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,GAAG,CAAC;IAU7G;;;;;;;;;;;;;;;;;;;;;OAqBG;IACU,sBAAsB,CAAC,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,GAAG,CAAC;CAgBnG;AAED,eAAe,SAAS,CAAC"}
@@ -3,13 +3,45 @@ import { ErrorHandlers, EnhancedError } from "../utils/enhancedError.js";
3
3
  import { validateId, validatePaginationParams, validatePostParams } from "../utils/validation.js";
4
4
  import { WordPressDataStreamer, StreamingUtils } from "../utils/streaming.js";
5
5
  /**
6
- * Provides tools for managing posts on a WordPress site.
7
- * This class encapsulates tool definitions and their corresponding handlers.
6
+ * Provides comprehensive tools for managing WordPress posts.
7
+ *
8
+ * This class encapsulates tool definitions and their corresponding handlers for:
9
+ * - Listing posts with advanced filtering and search capabilities
10
+ * - Creating new posts with full metadata support
11
+ * - Updating existing posts with validation
12
+ * - Deleting posts with trash/permanent options
13
+ * - Retrieving individual posts with detailed information
14
+ * - Managing post revisions and history
15
+ *
16
+ * @example
17
+ * ```typescript
18
+ * const postTools = new PostTools();
19
+ * const tools = postTools.getTools();
20
+ *
21
+ * // Use with a WordPress client
22
+ * const client = new WordPressClient(config);
23
+ * const result = await postTools.handleListPosts(client, { per_page: 10 });
24
+ * ```
25
+ *
26
+ * @since 1.0.0
27
+ * @author MCP WordPress Team
8
28
  */
9
29
  export class PostTools {
10
30
  /**
11
- * Retrieves the list of post management tools.
12
- * @returns An array of MCPTool definitions.
31
+ * Retrieves the complete list of post management tools available for MCP.
32
+ *
33
+ * Returns an array of tool definitions that can be registered with an MCP server.
34
+ * Each tool includes comprehensive parameter validation, error handling, and
35
+ * detailed documentation with usage examples.
36
+ *
37
+ * @returns {Array<MCPTool>} An array of MCPTool definitions for post management
38
+ *
39
+ * @example
40
+ * ```typescript
41
+ * const postTools = new PostTools();
42
+ * const tools = postTools.getTools();
43
+ * console.log(tools.length); // 6 tools: list, get, create, update, delete, revisions
44
+ * ```
13
45
  */
14
46
  getTools() {
15
47
  return [
@@ -177,6 +209,42 @@ export class PostTools {
177
209
  },
178
210
  ];
179
211
  }
212
+ /**
213
+ * Handles listing posts from a WordPress site with comprehensive filtering options.
214
+ *
215
+ * This method provides advanced search capabilities, status filtering, pagination,
216
+ * and category/tag filtering. Results include enhanced metadata and author information.
217
+ * For large result sets (>50 posts), it automatically uses streaming for better performance.
218
+ *
219
+ * @param {WordPressClient} client - The WordPress client instance for API communication
220
+ * @param {PostQueryParams} params - Query parameters for filtering and pagination
221
+ * @param {number} [params.per_page=10] - Number of posts to return per page (max 100)
222
+ * @param {string} [params.search] - Search term to filter posts by title/content
223
+ * @param {string|string[]} [params.status] - Post status filter (publish, draft, etc.)
224
+ * @param {number[]} [params.categories] - Array of category IDs to filter by
225
+ * @param {number[]} [params.tags] - Array of tag IDs to filter by
226
+ * @param {number} [params.page=1] - Page number for pagination
227
+ *
228
+ * @returns {Promise<string>} Formatted list of posts with metadata and context
229
+ *
230
+ * @throws {EnhancedError} When validation fails or API request encounters an error
231
+ *
232
+ * @example
233
+ * ```typescript
234
+ * // Basic listing
235
+ * const result = await handleListPosts(client, {});
236
+ *
237
+ * // Advanced filtering
238
+ * const filtered = await handleListPosts(client, {
239
+ * search: "WordPress tips",
240
+ * status: "publish",
241
+ * categories: [1, 2],
242
+ * per_page: 20
243
+ * });
244
+ * ```
245
+ *
246
+ * @since 1.0.0
247
+ */
180
248
  async handleListPosts(client, params) {
181
249
  try {
182
250
  // Enhanced input validation and sanitization
@@ -345,6 +413,28 @@ export class PostTools {
345
413
  throw new Error(`Failed to list posts: ${getErrorMessage(error)}`);
346
414
  }
347
415
  }
416
+ /**
417
+ * Retrieves a single WordPress post by ID with complete details and metadata.
418
+ *
419
+ * This method fetches a specific post and returns comprehensive information including
420
+ * content, metadata, author details, categories, tags, and publication status.
421
+ *
422
+ * @param {WordPressClient} client - The WordPress client instance for API communication
423
+ * @param {Object} params - Parameters for post retrieval
424
+ * @param {number} params.id - The unique ID of the post to retrieve
425
+ *
426
+ * @returns {Promise<string>} Detailed post information formatted for display
427
+ *
428
+ * @throws {EnhancedError} When post ID is invalid or post is not found
429
+ *
430
+ * @example
431
+ * ```typescript
432
+ * // Get a specific post
433
+ * const post = await handleGetPost(client, { id: 123 });
434
+ * ```
435
+ *
436
+ * @since 1.0.0
437
+ */
348
438
  async handleGetPost(client, params) {
349
439
  try {
350
440
  // Input validation
@@ -444,6 +534,47 @@ export class PostTools {
444
534
  throw ErrorHandlers.generic("get post", error);
445
535
  }
446
536
  }
537
+ /**
538
+ * Creates a new WordPress post with comprehensive validation and metadata support.
539
+ *
540
+ * This method handles the creation of new posts with full support for content,
541
+ * metadata, categories, tags, and publishing options. Includes automatic validation
542
+ * and sanitization of all input parameters.
543
+ *
544
+ * @param {WordPressClient} client - The WordPress client instance for API communication
545
+ * @param {CreatePostRequest} params - Post creation parameters
546
+ * @param {string} params.title - The post title
547
+ * @param {string} params.content - The post content in HTML format
548
+ * @param {string} [params.status="draft"] - Post status (publish, draft, pending, private)
549
+ * @param {string} [params.excerpt] - Post excerpt/summary
550
+ * @param {number[]} [params.categories] - Array of category IDs to assign
551
+ * @param {number[]} [params.tags] - Array of tag IDs to assign
552
+ *
553
+ * @returns {Promise<string>} Success message with the new post ID and details
554
+ *
555
+ * @throws {EnhancedError} When validation fails or post creation encounters an error
556
+ *
557
+ * @example
558
+ * ```typescript
559
+ * // Create a basic post
560
+ * const result = await handleCreatePost(client, {
561
+ * title: "My New Post",
562
+ * content: "<p>This is the post content.</p>",
563
+ * status: "publish"
564
+ * });
565
+ *
566
+ * // Create post with categories and tags
567
+ * const detailed = await handleCreatePost(client, {
568
+ * title: "WordPress Tips",
569
+ * content: "<p>Detailed WordPress tips...</p>",
570
+ * categories: [1, 2],
571
+ * tags: [5, 6],
572
+ * excerpt: "Learn essential WordPress tips"
573
+ * });
574
+ * ```
575
+ *
576
+ * @since 1.0.0
577
+ */
447
578
  async handleCreatePost(client, params) {
448
579
  try {
449
580
  // Enhanced input validation using new validation utilities
@@ -467,6 +598,45 @@ export class PostTools {
467
598
  throw new Error(`Failed to create post: ${getErrorMessage(error)}`);
468
599
  }
469
600
  }
601
+ /**
602
+ * Updates an existing WordPress post with validation and detailed confirmation.
603
+ *
604
+ * This method allows updating any aspect of a post including title, content, status,
605
+ * categories, and tags. Only provided fields are updated, leaving others unchanged.
606
+ *
607
+ * @param {WordPressClient} client - The WordPress client instance for API communication
608
+ * @param {UpdatePostRequest & {id: number}} params - Update parameters
609
+ * @param {number} params.id - The ID of the post to update
610
+ * @param {string} [params.title] - New post title
611
+ * @param {string} [params.content] - New post content in HTML format
612
+ * @param {string} [params.status] - New post status (publish, draft, pending, private)
613
+ * @param {string} [params.excerpt] - New post excerpt
614
+ * @param {number[]} [params.categories] - New category IDs to assign
615
+ * @param {number[]} [params.tags] - New tag IDs to assign
616
+ *
617
+ * @returns {Promise<string>} Success message confirming the update
618
+ *
619
+ * @throws {EnhancedError} When post ID is invalid or update fails
620
+ *
621
+ * @example
622
+ * ```typescript
623
+ * // Update post title and status
624
+ * const result = await handleUpdatePost(client, {
625
+ * id: 123,
626
+ * title: "Updated Post Title",
627
+ * status: "publish"
628
+ * });
629
+ *
630
+ * // Update content and categories
631
+ * const updated = await handleUpdatePost(client, {
632
+ * id: 123,
633
+ * content: "<p>New content here...</p>",
634
+ * categories: [1, 3, 5]
635
+ * });
636
+ * ```
637
+ *
638
+ * @since 1.0.0
639
+ */
470
640
  async handleUpdatePost(client, params) {
471
641
  try {
472
642
  const post = await client.updatePost(params);
@@ -476,6 +646,35 @@ export class PostTools {
476
646
  throw new Error(`Failed to update post: ${getErrorMessage(error)}`);
477
647
  }
478
648
  }
649
+ /**
650
+ * Deletes a WordPress post with options for trash or permanent deletion.
651
+ *
652
+ * This method provides safe deletion with trash option (default) or permanent
653
+ * deletion when force is specified. Includes confirmation of the deletion action.
654
+ *
655
+ * @param {WordPressClient} client - The WordPress client instance for API communication
656
+ * @param {Object} params - Deletion parameters
657
+ * @param {number} params.id - The ID of the post to delete
658
+ * @param {boolean} [params.force=false] - Whether to permanently delete (true) or move to trash (false)
659
+ *
660
+ * @returns {Promise<string>} Confirmation message of the deletion action
661
+ *
662
+ * @throws {EnhancedError} When post ID is invalid or deletion fails
663
+ *
664
+ * @example
665
+ * ```typescript
666
+ * // Move post to trash (safe deletion)
667
+ * const result = await handleDeletePost(client, { id: 123 });
668
+ *
669
+ * // Permanently delete post (cannot be undone)
670
+ * const permanent = await handleDeletePost(client, {
671
+ * id: 123,
672
+ * force: true
673
+ * });
674
+ * ```
675
+ *
676
+ * @since 1.0.0
677
+ */
479
678
  async handleDeletePost(client, params) {
480
679
  try {
481
680
  await client.deletePost(params.id, params.force);
@@ -486,6 +685,28 @@ export class PostTools {
486
685
  throw new Error(`Failed to delete post: ${getErrorMessage(error)}`);
487
686
  }
488
687
  }
688
+ /**
689
+ * Retrieves revision history for a specific WordPress post.
690
+ *
691
+ * This method fetches all available revisions for a post, providing a complete
692
+ * history of changes including dates, authors, and modification details.
693
+ *
694
+ * @param {WordPressClient} client - The WordPress client instance for API communication
695
+ * @param {Object} params - Parameters for revision retrieval
696
+ * @param {number} params.id - The ID of the post to get revisions for
697
+ *
698
+ * @returns {Promise<string>} Formatted list of post revisions with details
699
+ *
700
+ * @throws {EnhancedError} When post ID is invalid or revisions cannot be retrieved
701
+ *
702
+ * @example
703
+ * ```typescript
704
+ * // Get all revisions for a post
705
+ * const revisions = await handleGetPostRevisions(client, { id: 123 });
706
+ * ```
707
+ *
708
+ * @since 1.0.0
709
+ */
489
710
  async handleGetPostRevisions(client, params) {
490
711
  try {
491
712
  const revisions = await client.getPostRevisions(params.id);
@@ -1 +1 @@
1
- {"version":3,"file":"posts.js","sourceRoot":"","sources":["../../src/tools/posts.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAClG,OAAO,EAAE,qBAAqB,EAAE,cAAc,EAAmB,MAAM,uBAAuB,CAAC;AAE/F;;;GAGG;AACH,MAAM,OAAO,SAAS;IACpB;;;OAGG;IACI,QAAQ;QACb,OAAO;YACL;gBACE,IAAI,EAAE,eAAe;gBACrB,WAAW,EACT,2KAA2K;oBAC3K,uBAAuB;oBACvB,oCAAoC;oBACpC,wDAAwD;oBACxD,wDAAwD;oBACxD,8DAA8D;oBAC9D,+DAA+D;oBAC/D,2FAA2F;gBAC7F,UAAU,EAAE;oBACV;wBACE,IAAI,EAAE,UAAU;wBAChB,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,+CAA+C;qBAC7D;oBACD;wBACE,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,gDAAgD;qBAC9D;oBACD;wBACE,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,wBAAwB;wBACrC,IAAI,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC;qBAC3D;oBACD;wBACE,IAAI,EAAE,YAAY;wBAClB,IAAI,EAAE,OAAO;wBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;wBACzB,WAAW,EAAE,kDAAkD;qBAChE;oBACD;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,OAAO;wBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;wBACzB,WAAW,EAAE,+CAA+C;qBAC7D;iBACF;gBACD,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;aACzC;YACD;gBACE,IAAI,EAAE,aAAa;gBACnB,WAAW,EACT,kHAAkH;gBACpH,UAAU,EAAE;oBACV;wBACE,IAAI,EAAE,IAAI;wBACV,IAAI,EAAE,QAAQ;wBACd,QAAQ,EAAE,IAAI;wBACd,WAAW,EAAE,qCAAqC;qBACnD;iBACF;gBACD,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;aACvC;YACD;gBACE,IAAI,EAAE,gBAAgB;gBACtB,WAAW,EACT,0HAA0H;oBAC1H,uBAAuB;oBACvB,yFAAyF;oBACzF,wEAAwE;oBACxE,8FAA8F;oBAC9F,2GAA2G;oBAC3G,6HAA6H;gBAC/H,UAAU,EAAE;oBACV;wBACE,IAAI,EAAE,OAAO;wBACb,IAAI,EAAE,QAAQ;wBACd,QAAQ,EAAE,IAAI;wBACd,WAAW,EAAE,yBAAyB;qBACvC;oBACD;wBACE,IAAI,EAAE,SAAS;wBACf,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,2CAA2C;qBACzD;oBACD;wBACE,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,qCAAqC;wBAClD,IAAI,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC;qBACjD;oBACD;wBACE,IAAI,EAAE,SAAS;wBACf,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,2BAA2B;qBACzC;oBACD;wBACE,IAAI,EAAE,YAAY;wBAClB,IAAI,EAAE,OAAO;wBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;wBACzB,WAAW,EAAE,iDAAiD;qBAC/D;oBACD;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,OAAO;wBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;wBACzB,WAAW,EAAE,4CAA4C;qBAC1D;iBACF;gBACD,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC;aAC1C;YACD;gBACE,IAAI,EAAE,gBAAgB;gBACtB,WAAW,EAAE,+EAA+E;gBAC5F,UAAU,EAAE;oBACV;wBACE,IAAI,EAAE,IAAI;wBACV,IAAI,EAAE,QAAQ;wBACd,QAAQ,EAAE,IAAI;wBACd,WAAW,EAAE,+BAA+B;qBAC7C;oBACD;wBACE,IAAI,EAAE,OAAO;wBACb,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,6BAA6B;qBAC3C;oBACD;wBACE,IAAI,EAAE,SAAS;wBACf,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,+CAA+C;qBAC7D;oBACD;wBACE,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,8BAA8B;wBAC3C,IAAI,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC;qBACjD;iBACF;gBACD,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC;aAC1C;YACD;gBACE,IAAI,EAAE,gBAAgB;gBACtB,WAAW,EAAE,iFAAiF;gBAC9F,UAAU,EAAE;oBACV;wBACE,IAAI,EAAE,IAAI;wBACV,IAAI,EAAE,QAAQ;wBACd,QAAQ,EAAE,IAAI;wBACd,WAAW,EAAE,+BAA+B;qBAC7C;oBACD;wBACE,IAAI,EAAE,OAAO;wBACb,IAAI,EAAE,SAAS;wBACf,WAAW,EAAE,0EAA0E;qBACxF;iBACF;gBACD,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC;aAC1C;YACD;gBACE,IAAI,EAAE,uBAAuB;gBAC7B,WAAW,EAAE,2FAA2F;gBACxG,UAAU,EAAE;oBACV;wBACE,IAAI,EAAE,IAAI;wBACV,IAAI,EAAE,QAAQ;wBACd,QAAQ,EAAE,IAAI;wBACd,WAAW,EAAE,0CAA0C;qBACxD;iBACF;gBACD,OAAO,EAAE,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC;aAChD;SACF,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,eAAe,CAAC,MAAuB,EAAE,MAAuB;QAC3E,IAAI,CAAC;YACH,6CAA6C;YAC7C,MAAM,mBAAmB,GAAG,wBAAwB,CAAC;gBACnD,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,MAAM,EAAE,MAAM,CAAC,MAAM;aACtB,CAAC,CAAC;YAEH,MAAM,eAAe,GAAG;gBACtB,GAAG,MAAM;gBACT,GAAG,mBAAmB;aACvB,CAAC;YAEF,oCAAoC;YACpC,IAAI,eAAe,CAAC,MAAM,EAAE,CAAC;gBAC3B,eAAe,CAAC,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;gBACvD,IAAI,eAAe,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACxC,OAAO,eAAe,CAAC,MAAM,CAAC;gBAChC,CAAC;YACH,CAAC;YAED,4CAA4C;YAC5C,IAAI,eAAe,CAAC,UAAU,EAAE,CAAC;gBAC/B,eAAe,CAAC,UAAU,GAAG,eAAe,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC,CAAC;YACrG,CAAC;YAED,IAAI,eAAe,CAAC,IAAI,EAAE,CAAC;gBACzB,eAAe,CAAC,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC;YACpF,CAAC;YAED,4BAA4B;YAC5B,IAAI,eAAe,CAAC,MAAM,EAAE,CAAC;gBAC3B,MAAM,aAAa,GAAG,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;gBAC3E,MAAM,eAAe,GAAG,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC;oBAC3D,CAAC,CAAC,eAAe,CAAC,MAAM;oBACxB,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;gBAE7B,KAAK,MAAM,aAAa,IAAI,eAAe,EAAE,CAAC;oBAC5C,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;wBAC3C,MAAM,aAAa,CAAC,eAAe,CAAC,QAAQ,EAAE,aAAa,EAAE,UAAU,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;oBACtG,CAAC;gBACH,CAAC;YACH,CAAC;YAED,oDAAoD;YACpD,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC;gBAC9B,eAAe,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAC,6CAA6C;YAC9E,CAAC;YAED,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;YACrD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvB,MAAM,UAAU,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzF,MAAM,UAAU,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,iBAAiB,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC5F,OAAO,iBAAiB,UAAU,GAAG,UAAU,+DAA+D,CAAC;YACjH,CAAC;YAED,kDAAkD;YAClD,IAAI,KAAK,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;gBACtB,MAAM,aAAa,GAA2B,EAAE,CAAC;gBAEjD,IAAI,KAAK,EAAE,MAAM,MAAM,IAAI,qBAAqB,CAAC,WAAW,CAAC,KAAK,EAAE;oBAClE,aAAa,EAAE,IAAI;oBACnB,iBAAiB,EAAE,IAAI;oBACvB,WAAW,EAAE,IAAI;oBACjB,SAAS,EAAE,EAAE;iBACd,CAAC,EAAE,CAAC;oBACH,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC7B,CAAC;gBAED,OAAO,cAAc,CAAC,uBAAuB,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;YACxE,CAAC;YAED,6CAA6C;YAC7C,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC;YACzE,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC;YAChC,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAC/B,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;gBACT,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;gBACzC,OAAO,GAAG,CAAC;YACb,CAAC,EACD,EAA4B,CAC7B,CAAC;YAEF,oBAAoB;YACpB,MAAM,QAAQ,GAAG;gBACf,yBAAyB,UAAU,QAAQ;gBAC3C,4BAA4B,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC;qBACrD,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,MAAM,KAAK,KAAK,EAAE,CAAC;qBAC/C,IAAI,CAAC,IAAI,CAAC,EAAE;gBACf,kBAAkB,OAAO,EAAE;gBAC3B,qBAAqB,IAAI,IAAI,EAAE,CAAC,cAAc,EAAE,EAAE;gBAClD,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,wBAAwB,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACpE,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,sBAAsB,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACpF,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,iBAAiB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;aACpE,CAAC;YAEF,mDAAmD;YACnD,MAAM,SAAS,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAC3E,MAAM,WAAW,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC3E,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAEhE,yEAAyE;YACzE,MAAM,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBACpD,SAAS,CAAC,MAAM,GAAG,CAAC;oBAClB,CAAC,CAAC,OAAO,CAAC,GAAG,CACT,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE;wBACzB,IAAI,CAAC;4BACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;4BACtC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,IAAI,QAAQ,EAAE,EAAE,EAAE,CAAC;wBAClE,CAAC;wBAAC,MAAM,CAAC;4BACP,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;wBACpC,CAAC;oBACH,CAAC,CAAC,CACH;oBACH,CAAC,CAAC,EAAE;gBACN,WAAW,CAAC,MAAM,GAAG,CAAC;oBACpB,CAAC,CAAC,OAAO,CAAC,GAAG,CACT,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE;wBAC3B,IAAI,CAAC;4BACH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;4BAC9C,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,IAAI,YAAY,EAAE,EAAE,EAAE,CAAC;wBACzD,CAAC;wBAAC,MAAM,CAAC;4BACP,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC;wBACxC,CAAC;oBACH,CAAC,CAAC,CACH;oBACH,CAAC,CAAC,EAAE;gBACN,MAAM,CAAC,MAAM,GAAG,CAAC;oBACf,CAAC,CAAC,OAAO,CAAC,GAAG,CACT,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE;wBACtB,IAAI,CAAC;4BACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;4BACpC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,OAAO,EAAE,EAAE,EAAE,CAAC;wBAC/C,CAAC;wBAAC,MAAM,CAAC;4BACP,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;wBACnC,CAAC;oBACH,CAAC,CAAC,CACH;oBACH,CAAC,CAAC,EAAE;aACP,CAAC,CAAC;YAEH,qCAAqC;YACrC,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC9D,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACnE,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAExD,MAAM,OAAO,GACX,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;gBACnB,MAAM;gBACN,KAAK;qBACF,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;oBACT,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;oBAC9B,MAAM,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE;wBACrD,IAAI,EAAE,SAAS;wBACf,KAAK,EAAE,OAAO;wBACd,GAAG,EAAE,SAAS;qBACf,CAAC,CAAC;oBACH,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,EAAE,QAAQ;wBACjC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK;wBACrE,CAAC,CAAC,EAAE,CAAC;oBAEP,oBAAoB;oBACpB,MAAM,UAAU,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC;oBACjE,MAAM,cAAc,GAAG,CAAC,CAAC,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,YAAY,EAAE,EAAE,CAAC,CAAC;oBACjG,MAAM,QAAQ,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,OAAO,EAAE,EAAE,CAAC,CAAC;oBAE3E,IAAI,QAAQ,GAAG,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,QAAQ,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC;oBACvE,QAAQ,IAAI,gBAAgB,UAAU,IAAI,CAAC;oBAC3C,QAAQ,IAAI,mBAAmB,aAAa,IAAI,CAAC;oBACjD,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC9B,QAAQ,IAAI,oBAAoB,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;oBAChE,CAAC;oBACD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACxB,QAAQ,IAAI,eAAe,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;oBACrD,CAAC;oBACD,IAAI,OAAO,EAAE,CAAC;wBACZ,QAAQ,IAAI,iBAAiB,OAAO,IAAI,CAAC;oBAC3C,CAAC;oBACD,QAAQ,IAAI,cAAc,CAAC,CAAC,IAAI,EAAE,CAAC;oBAEnC,OAAO,QAAQ,CAAC;gBAClB,CAAC,CAAC;qBACD,IAAI,CAAC,MAAM,CAAC,CAAC;YAElB,gDAAgD;YAChD,IAAI,YAAY,GAAG,OAAO,CAAC;YAC3B,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,CAAC;gBACrD,YAAY,IAAI,gGAAgG,eAAe,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;YACnJ,CAAC;YAED,OAAO,YAAY,CAAC;QACtB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,yBAAyB,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,aAAa,CAAC,MAAuB,EAAE,MAAsB;QACxE,IAAI,CAAC;YACH,mBAAmB;YACnB,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,OAAO,MAAM,CAAC,EAAE,KAAK,QAAQ,IAAI,MAAM,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC;gBAClE,MAAM,aAAa,CAAC,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE,kBAAkB,CAAC,CAAC;YAC3E,CAAC;YAED,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAE7C,kDAAkD;YAClD,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBACnD,IAAI,CAAC,MAAM;oBACT,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE;wBACV,IAAI,CAAC;4BACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;4BAC/C,OAAO,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,IAAI,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;wBAC7D,CAAC;wBAAC,MAAM,CAAC;4BACP,OAAO,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;wBAC/B,CAAC;oBACH,CAAC,CAAC,EAAE;oBACN,CAAC,CAAC,SAAS;gBACb,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;oBAC3C,CAAC,CAAC,OAAO,CAAC,GAAG,CACT,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE;wBAC/B,IAAI,CAAC;4BACH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;4BAC9C,OAAO,QAAQ,CAAC,IAAI,IAAI,YAAY,EAAE,EAAE,CAAC;wBAC3C,CAAC;wBAAC,MAAM,CAAC;4BACP,OAAO,YAAY,EAAE,EAAE,CAAC;wBAC1B,CAAC;oBACH,CAAC,CAAC,CACH;oBACH,CAAC,CAAC,EAAE;gBACN,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;oBAC/B,CAAC,CAAC,OAAO,CAAC,GAAG,CACT,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE;wBACzB,IAAI,CAAC;4BACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;4BACpC,OAAO,GAAG,CAAC,IAAI,IAAI,OAAO,EAAE,EAAE,CAAC;wBACjC,CAAC;wBAAC,MAAM,CAAC;4BACP,OAAO,OAAO,EAAE,EAAE,CAAC;wBACrB,CAAC;oBACH,CAAC,CAAC,CACH;oBACH,CAAC,CAAC,EAAE;aACP,CAAC,CAAC;YAEH,oDAAoD;YACpD,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC;YACzE,MAAM,aAAa,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1C,MAAM,YAAY,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,QAAQ;gBACpC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK;gBACzE,CAAC,CAAC,sBAAsB,CAAC;YAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YAEjH,IAAI,OAAO,GAAG,0BAA0B,IAAI,CAAC,EAAE,SAAS,CAAC;YACzD,OAAO,IAAI,6BAA6B,CAAC;YACzC,OAAO,IAAI,gBAAgB,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC;YACnD,OAAO,IAAI,iBAAiB,IAAI,CAAC,MAAM,IAAI,CAAC;YAC5C,OAAO,IAAI,eAAe,IAAI,CAAC,IAAI,IAAI,CAAC;YACxC,OAAO,IAAI,iBAAiB,MAAM,IAAI,CAAC;YACvC,OAAO,IAAI,eAAe,IAAI,CAAC,IAAI,MAAM,CAAC;YAE1C,OAAO,IAAI,iBAAiB,CAAC;YAC7B,OAAO,IAAI,oBAAoB,aAAa,CAAC,cAAc,EAAE,IAAI,CAAC;YAClE,OAAO,IAAI,mBAAmB,YAAY,CAAC,cAAc,EAAE,MAAM,CAAC;YAElE,OAAO,IAAI,mBAAmB,CAAC;YAC/B,OAAO,IAAI,sBAAsB,SAAS,UAAU,CAAC;YACrD,OAAO,IAAI,kBAAkB,OAAO,MAAM,CAAC;YAE3C,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC1B,OAAO,IAAI,sBAAsB,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;YAC7D,CAAC;YACD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpB,OAAO,IAAI,iBAAiB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;YAClD,CAAC;YACD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC7C,OAAO,IAAI,IAAI,CAAC;YAClB,CAAC;YAED,OAAO,IAAI,iBAAiB,CAAC;YAC7B,OAAO,IAAI,oBAAoB,IAAI,CAAC,IAAI,IAAI,CAAC;YAC7C,OAAO,IAAI,oBAAoB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,2BAA2B,IAAI,CAAC,EAAE,kBAAkB,CAAC;YAChH,OAAO,IAAI,kBAAkB,OAAO,IAAI,CAAC;YACzC,OAAO,IAAI,qBAAqB,IAAI,IAAI,EAAE,CAAC,cAAc,EAAE,EAAE,CAAC;YAE9D,OAAO,OAAO,CAAC;QACjB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,8BAA8B;YAC9B,MAAM,YAAY,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;YAE5C,IAAI,YAAY,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;gBACnF,MAAM,aAAa,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;YACrD,CAAC;YAED,IAAI,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;gBAC1E,MAAM,aAAa,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;YAClD,CAAC;YAED,IAAI,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;gBACvE,MAAM,aAAa,CAAC,gBAAgB,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;YAC1D,CAAC;YAED,IAAI,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;gBACzE,MAAM,aAAa,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YAC7C,CAAC;YAED,iCAAiC;YACjC,MAAM,aAAa,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,gBAAgB,CAAC,MAAuB,EAAE,MAAyB;QAC9E,IAAI,CAAC;YACH,2DAA2D;YAC3D,MAAM,eAAe,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;YAEnD,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;YACtD,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC;YAEzE,OAAO,CACL,sCAAsC;gBACtC,wBAAwB;gBACxB,aAAa,IAAI,CAAC,EAAE,IAAI;gBACxB,gBAAgB,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI;gBACvC,iBAAiB,IAAI,CAAC,MAAM,IAAI;gBAChC,eAAe,IAAI,CAAC,IAAI,IAAI;gBAC5B,oBAAoB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,2BAA2B,IAAI,CAAC,EAAE,kBAAkB;gBACpG,gBAAgB,OAAO,IAAI;gBAC3B,mBAAmB,IAAI,IAAI,EAAE,CAAC,cAAc,EAAE,EAAE,CACjD,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,aAAa,EAAE,CAAC;gBACnC,MAAM,KAAK,CAAC;YACd,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,0BAA0B,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACtE,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,gBAAgB,CAAC,MAAuB,EAAE,MAA0C;QAC/F,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YAC7C,OAAO,UAAU,IAAI,CAAC,EAAE,wBAAwB,CAAC;QACnD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,0BAA0B,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACtE,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,gBAAgB,CAAC,MAAuB,EAAE,MAAuC;QAC5F,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;YACjD,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,gBAAgB,CAAC;YACvE,OAAO,UAAU,MAAM,CAAC,EAAE,aAAa,MAAM,GAAG,CAAC;QACnD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,0BAA0B,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACtE,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,sBAAsB,CAAC,MAAuB,EAAE,MAAsB;QACjF,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC3D,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC3B,OAAO,+BAA+B,MAAM,CAAC,EAAE,GAAG,CAAC;YACrD,CAAC;YACD,MAAM,OAAO,GACX,SAAS,SAAS,CAAC,MAAM,uBAAuB,MAAM,CAAC,EAAE,OAAO;gBAChE,SAAS;qBACN,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,yBAAyB,CAAC,CAAC,MAAM,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC;qBAC3F,IAAI,CAAC,IAAI,CAAC,CAAC;YAChB,OAAO,OAAO,CAAC;QACjB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,iCAAiC,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC7E,CAAC;IACH,CAAC;CACF;AAED,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"posts.js","sourceRoot":"","sources":["../../src/tools/posts.ts"],"names":[],"mappings":"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"}