mcp-wordpress 2.3.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.
- package/README.md +503 -0
- package/dist/client/api.d.ts +90 -0
- package/dist/client/api.d.ts.map +1 -1
- package/dist/client/api.js +90 -0
- package/dist/client/api.js.map +1 -1
- package/dist/tools/media.d.ts +43 -4
- package/dist/tools/media.d.ts.map +1 -1
- package/dist/tools/media.js +43 -4
- package/dist/tools/media.js.map +1 -1
- package/dist/tools/posts.d.ts +225 -4
- package/dist/tools/posts.d.ts.map +1 -1
- package/dist/tools/posts.js +225 -4
- package/dist/tools/posts.js.map +1 -1
- package/docs/DOCKER_PUBLISHING_TROUBLESHOOTING.md +233 -0
- package/docs/PUBLISHING-TROUBLESHOOTING.md +227 -0
- package/docs/api/README.md +53 -11
- package/docs/api/openapi.json +10 -10
- package/docs/api/summary.json +1 -1
- package/docs/api/tools/wp_create_post.md +9 -3
- package/docs/api/tools/wp_delete_post.md +2 -3
- package/docs/api/tools/wp_get_current_user.md +7 -1
- package/docs/api/tools/wp_get_post.md +2 -3
- package/docs/api/tools/wp_get_post_revisions.md +1 -1
- package/docs/api/tools/wp_list_posts.md +10 -3
- package/docs/api/tools/wp_list_users.md +8 -1
- package/docs/api/tools/wp_search_site.md +8 -1
- package/docs/api/tools/wp_test_auth.md +8 -1
- package/docs/api/tools/wp_update_post.md +2 -3
- package/docs/examples/docker-production.md +801 -0
- package/docs/examples/multi-site-setup.md +575 -0
- package/docs/examples/single-site-setup.md +390 -0
- package/docs/examples/use-case-workflows.md +469 -0
- package/package.json +4 -1
- package/src/client/api.ts +90 -0
- package/src/tools/media.ts +43 -4
- package/src/tools/posts.ts +225 -4
package/dist/tools/posts.js
CHANGED
|
@@ -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
|
|
7
|
-
*
|
|
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
|
-
*
|
|
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);
|
package/dist/tools/posts.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"posts.js","sourceRoot":"","sources":["../../src/tools/posts.ts"],"names":[],"mappings":"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"}
|
|
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;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,OAAO,SAAS;IACpB;;;;;;;;;;;;;;;OAeG;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;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAmCG;IACI,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;IAED;;;;;;;;;;;;;;;;;;;;;OAqBG;IACI,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;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAwCG;IACI,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;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAsCG;IACI,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;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACI,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;IAED;;;;;;;;;;;;;;;;;;;;;OAqBG;IACI,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"}
|
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
# Docker Publishing Troubleshooting Guide
|
|
2
|
+
|
|
3
|
+
This guide helps resolve Docker Hub publishing failures and provides tools for manual intervention when the automated release process encounters issues.
|
|
4
|
+
|
|
5
|
+
## 🚨 Current Status - Multiple Missing Versions
|
|
6
|
+
|
|
7
|
+
**Investigation Results:**
|
|
8
|
+
- NPM Publishing: ✅ All versions available (2.0.4, 2.1.0, 2.2.0, 2.3.0)
|
|
9
|
+
- Docker Hub Publishing: ❌ Multiple versions missing since v2.0.4
|
|
10
|
+
|
|
11
|
+
**Missing Docker Hub Versions:**
|
|
12
|
+
- v2.0.4 (original issue)
|
|
13
|
+
- v2.1.0, v2.2.0, v2.3.0 (subsequent failures)
|
|
14
|
+
|
|
15
|
+
**Root Cause:** Systemic Docker publishing failure in release workflow since v2.0.4 release.
|
|
16
|
+
|
|
17
|
+
**Available Versions on Docker Hub:**
|
|
18
|
+
- ✅ v2.0.0, v2.0.1, v2.0.2, v2.0.3 (working)
|
|
19
|
+
- ❌ v2.0.4, v2.1.0, v2.2.0, v2.3.0 (missing)
|
|
20
|
+
|
|
21
|
+
### Bulk Recovery Process
|
|
22
|
+
|
|
23
|
+
To resolve all missing versions at once:
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
# Fix all missing versions
|
|
27
|
+
for version in 2.0.4 2.1.0 2.2.0 2.3.0; do
|
|
28
|
+
./scripts/fix-docker-publishing.sh republish $version
|
|
29
|
+
sleep 60 # Wait between publishes
|
|
30
|
+
done
|
|
31
|
+
|
|
32
|
+
# Verify all versions
|
|
33
|
+
./scripts/fix-docker-publishing.sh status
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
### Missing Docker Hub Versions
|
|
37
|
+
|
|
38
|
+
**Symptoms:**
|
|
39
|
+
- NPM publishing succeeds but Docker Hub fails
|
|
40
|
+
- Verification workflow reports missing versions
|
|
41
|
+
- GitHub releases exist but corresponding Docker images are absent
|
|
42
|
+
|
|
43
|
+
**Root Causes:**
|
|
44
|
+
- Docker Hub API rate limiting
|
|
45
|
+
- Network timeouts during multi-platform builds
|
|
46
|
+
- Docker registry authentication issues
|
|
47
|
+
- Temporary Docker Hub service disruptions
|
|
48
|
+
|
|
49
|
+
## 🔧 Resolution Tools
|
|
50
|
+
|
|
51
|
+
### 1. Quick Fix Script
|
|
52
|
+
|
|
53
|
+
For immediate resolution of publishing failures:
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
# Fix specific v2.0.4 issue (automatic)
|
|
57
|
+
./scripts/fix-docker-publishing.sh fix-2.0.4
|
|
58
|
+
|
|
59
|
+
# Check any version status
|
|
60
|
+
./scripts/fix-docker-publishing.sh check 2.1.0
|
|
61
|
+
|
|
62
|
+
# Trigger manual republish
|
|
63
|
+
./scripts/fix-docker-publishing.sh republish 2.0.4
|
|
64
|
+
|
|
65
|
+
# Check status of recent versions
|
|
66
|
+
./scripts/fix-docker-publishing.sh status
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### 2. Manual Docker Publishing Script
|
|
70
|
+
|
|
71
|
+
For detailed control over the publishing process:
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
# Requires Docker credentials in environment
|
|
75
|
+
export DOCKER_USERNAME="your-username"
|
|
76
|
+
export DOCKER_PASSWORD="your-token"
|
|
77
|
+
|
|
78
|
+
# Publish missing version
|
|
79
|
+
./scripts/manual-docker-publish.sh 2.0.4
|
|
80
|
+
|
|
81
|
+
# Publish for specific platforms only
|
|
82
|
+
./scripts/manual-docker-publish.sh 2.0.4 linux/amd64
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
### 3. GitHub Workflow Manual Trigger
|
|
86
|
+
|
|
87
|
+
Using GitHub CLI or web interface:
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
# Using GitHub CLI
|
|
91
|
+
gh workflow run manual-docker-republish.yml -f version=2.0.4
|
|
92
|
+
|
|
93
|
+
# Verify only (no publishing)
|
|
94
|
+
gh workflow run manual-docker-republish.yml -f version=2.0.4 -f verify_only=true
|
|
95
|
+
|
|
96
|
+
# Custom platforms
|
|
97
|
+
gh workflow run manual-docker-republish.yml -f version=2.0.4 -f platforms=linux/amd64
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
## 🔍 Verification Process
|
|
101
|
+
|
|
102
|
+
### Automated Verification
|
|
103
|
+
|
|
104
|
+
The improved verification workflow now includes:
|
|
105
|
+
|
|
106
|
+
1. **Docker Hub API Check** - Queries the registry API
|
|
107
|
+
2. **Docker Pull Verification** - Attempts to pull the image
|
|
108
|
+
3. **Enhanced Debugging** - Shows available tags and detailed logs
|
|
109
|
+
4. **Multiple Tag Format Support** - Checks both `v2.0.4` and `2.0.4` formats
|
|
110
|
+
|
|
111
|
+
### Manual Verification
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
# Check via Docker Hub API
|
|
115
|
+
curl -s https://hub.docker.com/v2/repositories/docdyhr/mcp-wordpress/tags | \
|
|
116
|
+
jq '.results[] | select(.name | test("2.0.4")) | {name: .name, last_updated: .last_updated}'
|
|
117
|
+
|
|
118
|
+
# Check via Docker pull
|
|
119
|
+
docker pull docdyhr/mcp-wordpress:2.0.4
|
|
120
|
+
docker pull docdyhr/mcp-wordpress:v2.0.4
|
|
121
|
+
|
|
122
|
+
# Verify image metadata
|
|
123
|
+
docker inspect docdyhr/mcp-wordpress:2.0.4 | jq '.[].Config.Labels'
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
## 🛠️ Workflow Improvements
|
|
127
|
+
|
|
128
|
+
### Enhanced Release Workflow
|
|
129
|
+
|
|
130
|
+
The release workflow now includes:
|
|
131
|
+
|
|
132
|
+
- **Retry Mechanism**: Automatic retry on Docker build failure
|
|
133
|
+
- **Immediate Verification**: Post-build image validation
|
|
134
|
+
- **Better Error Reporting**: Detailed failure notifications
|
|
135
|
+
- **Graceful Degradation**: Continue if NPM succeeds but Docker fails
|
|
136
|
+
|
|
137
|
+
### Improved Verification Workflow
|
|
138
|
+
|
|
139
|
+
- **Multi-Method Verification**: API + Docker pull validation
|
|
140
|
+
- **Enhanced Debugging**: Shows available tags and API responses
|
|
141
|
+
- **Better Issue Creation**: More detailed error reports with fix instructions
|
|
142
|
+
- **Retry Integration**: Automatic retry triggers for failed publishes
|
|
143
|
+
|
|
144
|
+
## 📋 Troubleshooting Checklist
|
|
145
|
+
|
|
146
|
+
### Before Manual Intervention
|
|
147
|
+
|
|
148
|
+
- [ ] Check if NPM version exists: `npm view mcp-wordpress@2.0.4`
|
|
149
|
+
- [ ] Verify GitHub tag exists: `git tag -l | grep v2.0.4`
|
|
150
|
+
- [ ] Check recent workflow runs for error patterns
|
|
151
|
+
- [ ] Verify Docker Hub credentials in repository secrets
|
|
152
|
+
|
|
153
|
+
### During Manual Fix
|
|
154
|
+
|
|
155
|
+
- [ ] Run verification first: `./scripts/fix-docker-publishing.sh check 2.0.4`
|
|
156
|
+
- [ ] Use appropriate script based on access level (local vs. GitHub Actions)
|
|
157
|
+
- [ ] Monitor workflow progress if using GitHub Actions
|
|
158
|
+
- [ ] Wait for Docker Hub propagation (30-60 seconds)
|
|
159
|
+
|
|
160
|
+
### After Resolution
|
|
161
|
+
|
|
162
|
+
- [ ] Verify via multiple methods (API, Docker pull)
|
|
163
|
+
- [ ] Run verification workflow: `gh workflow run verify-release.yml -f version=2.0.4`
|
|
164
|
+
- [ ] Update any dependent systems or documentation
|
|
165
|
+
- [ ] Close related GitHub issues
|
|
166
|
+
|
|
167
|
+
## 🔐 Security Considerations
|
|
168
|
+
|
|
169
|
+
### Credential Management
|
|
170
|
+
|
|
171
|
+
- **GitHub Actions**: Uses repository secrets (secure)
|
|
172
|
+
- **Local Scripts**: Requires environment variables (use with caution)
|
|
173
|
+
- **Docker Tokens**: Use Docker Hub access tokens, not passwords
|
|
174
|
+
|
|
175
|
+
### Image Integrity
|
|
176
|
+
|
|
177
|
+
All published images include:
|
|
178
|
+
- **Provenance**: Build attestation data
|
|
179
|
+
- **SBOM**: Software Bill of Materials
|
|
180
|
+
- **Signatures**: Cryptographic verification
|
|
181
|
+
- **Metadata**: Complete OCI labels
|
|
182
|
+
|
|
183
|
+
## 📈 Monitoring & Alerts
|
|
184
|
+
|
|
185
|
+
### Automated Monitoring
|
|
186
|
+
|
|
187
|
+
- **Verification Workflow**: Runs after every release
|
|
188
|
+
- **Issue Creation**: Automatic tickets for failures
|
|
189
|
+
- **Status Checks**: Integration with GitHub commit status
|
|
190
|
+
|
|
191
|
+
### Manual Monitoring
|
|
192
|
+
|
|
193
|
+
```bash
|
|
194
|
+
# Check recent publishing status
|
|
195
|
+
./scripts/fix-docker-publishing.sh status
|
|
196
|
+
|
|
197
|
+
# Monitor workflow runs
|
|
198
|
+
gh run list --workflow=release.yml --limit=5
|
|
199
|
+
gh run list --workflow=verify-release.yml --limit=5
|
|
200
|
+
|
|
201
|
+
# Check Docker Hub directly
|
|
202
|
+
curl -s https://hub.docker.com/v2/repositories/docdyhr/mcp-wordpress/tags | \
|
|
203
|
+
jq '.results[0:5] | .[] | {name: .name, last_updated: .last_updated}'
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
## 🆘 Emergency Recovery
|
|
207
|
+
|
|
208
|
+
If all automated methods fail:
|
|
209
|
+
|
|
210
|
+
1. **Manual Docker Build:**
|
|
211
|
+
```bash
|
|
212
|
+
git checkout v2.0.4
|
|
213
|
+
docker buildx build --platform linux/amd64,linux/arm64 \
|
|
214
|
+
--tag docdyhr/mcp-wordpress:2.0.4 \
|
|
215
|
+
--tag docdyhr/mcp-wordpress:v2.0.4 \
|
|
216
|
+
--push .
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
2. **Contact Repository Maintainer:**
|
|
220
|
+
- Create detailed issue with error logs
|
|
221
|
+
- Include attempted resolution steps
|
|
222
|
+
- Mention urgency level and impact
|
|
223
|
+
|
|
224
|
+
3. **Fallback Options:**
|
|
225
|
+
- Use previous version temporarily
|
|
226
|
+
- Build local image for immediate needs
|
|
227
|
+
- Use GitHub Container Registry as alternative
|
|
228
|
+
|
|
229
|
+
## 📞 Support
|
|
230
|
+
|
|
231
|
+
- **GitHub Issues**: [Create Issue](https://github.com/docdyhr/mcp-wordpress/issues/new)
|
|
232
|
+
- **Workflow Logs**: Check Actions tab for detailed error information
|
|
233
|
+
- **Docker Hub Status**: [Docker Hub Status Page](https://status.docker.com/)
|