@redpanda-data/docs-extensions-and-macros 4.15.7 → 4.15.9

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.
@@ -3,6 +3,118 @@
3
3
  * Outputs a console-parseable format for GitHub Actions
4
4
  */
5
5
 
6
+ /**
7
+ * Render Bloblang changes section for PR summary
8
+ * @param {object} data - Bloblang change data
9
+ * @param {array} data.newMethods - Array of new methods (with .name and optional .version)
10
+ * @param {array} data.newFunctions - Array of new functions (with .name and optional .version)
11
+ * @param {array} data.removedMethods - Array of removed methods
12
+ * @param {array} data.removedFunctions - Array of removed functions
13
+ * @param {array} data.deprecatedMethods - Array of deprecated methods
14
+ * @param {array} data.deprecatedFunctions - Array of deprecated functions
15
+ * @param {boolean} includeVersion - Whether to include version info in output
16
+ * @returns {array} Array of lines to add to the summary
17
+ */
18
+ function renderBloblangChanges(data, includeVersion = false) {
19
+ const lines = [];
20
+ const {
21
+ newMethods = [],
22
+ newFunctions = [],
23
+ removedMethods = [],
24
+ removedFunctions = [],
25
+ deprecatedMethods = [],
26
+ deprecatedFunctions = []
27
+ } = data;
28
+
29
+ const hasChanges = newMethods.length > 0 || newFunctions.length > 0 ||
30
+ removedMethods.length > 0 || removedFunctions.length > 0 ||
31
+ deprecatedMethods.length > 0 || deprecatedFunctions.length > 0;
32
+
33
+ if (!hasChanges) {
34
+ return lines;
35
+ }
36
+
37
+ lines.push('**Update Bloblang Guide Pages:**');
38
+ lines.push('');
39
+
40
+ if (newMethods.length > 0) {
41
+ lines.push(`New methods to add to \`modules/guides/pages/bloblang/methods.adoc\` (${newMethods.length}):`);
42
+ newMethods.forEach(method => {
43
+ const versionInfo = includeVersion && method.version ? ` — introduced in **${method.version}**` : '';
44
+ const name = typeof method === 'string' ? method : method.name;
45
+ lines.push(`- [ ] \`${name}\`${versionInfo}`);
46
+ });
47
+ lines.push('');
48
+ }
49
+
50
+ if (newFunctions.length > 0) {
51
+ lines.push(`New functions to add to \`modules/guides/pages/bloblang/functions.adoc\` (${newFunctions.length}):`);
52
+ newFunctions.forEach(func => {
53
+ const versionInfo = includeVersion && func.version ? ` — introduced in **${func.version}**` : '';
54
+ const name = typeof func === 'string' ? func : func.name;
55
+ lines.push(`- [ ] \`${name}\`${versionInfo}`);
56
+ });
57
+ lines.push('');
58
+ }
59
+
60
+ if (removedMethods.length > 0) {
61
+ lines.push(`Removed methods to delete from \`modules/guides/pages/bloblang/methods.adoc\` (${removedMethods.length}):`);
62
+ removedMethods.forEach(method => {
63
+ const versionInfo = includeVersion && method.version ? ` — removed in **${method.version}**` : '';
64
+ const name = typeof method === 'string' ? method : method.name;
65
+ lines.push(`- [ ] \`${name}\`${versionInfo}`);
66
+ });
67
+ lines.push('');
68
+ }
69
+
70
+ if (removedFunctions.length > 0) {
71
+ lines.push(`Removed functions to delete from \`modules/guides/pages/bloblang/functions.adoc\` (${removedFunctions.length}):`);
72
+ removedFunctions.forEach(func => {
73
+ const versionInfo = includeVersion && func.version ? ` — removed in **${func.version}**` : '';
74
+ const name = typeof func === 'string' ? func : func.name;
75
+ lines.push(`- [ ] \`${name}\`${versionInfo}`);
76
+ });
77
+ lines.push('');
78
+ }
79
+
80
+ if (deprecatedMethods.length > 0) {
81
+ lines.push(`Deprecated methods - add deprecation notice to \`modules/guides/pages/bloblang/methods.adoc\` (${deprecatedMethods.length}):`);
82
+ deprecatedMethods.forEach(method => {
83
+ const versionInfo = includeVersion && method.version ? ` — deprecated in **${method.version}**` : '';
84
+ const name = typeof method === 'string' ? method : method.name;
85
+ lines.push(`- [ ] \`${name}\`${versionInfo}`);
86
+ });
87
+ lines.push('');
88
+ }
89
+
90
+ if (deprecatedFunctions.length > 0) {
91
+ lines.push(`Deprecated functions - add deprecation notice to \`modules/guides/pages/bloblang/functions.adoc\` (${deprecatedFunctions.length}):`);
92
+ deprecatedFunctions.forEach(func => {
93
+ const versionInfo = includeVersion && func.version ? ` — deprecated in **${func.version}**` : '';
94
+ const name = typeof func === 'string' ? func : func.name;
95
+ lines.push(`- [ ] \`${name}\`${versionInfo}`);
96
+ });
97
+ lines.push('');
98
+ }
99
+
100
+ lines.push('**How to add includes:**');
101
+ lines.push('');
102
+ lines.push('For methods, find the appropriate category section in `methods.adoc` and add:');
103
+ lines.push('```asciidoc');
104
+ lines.push('include::redpanda-connect:partial$bloblang-methods/method_name.adoc[leveloffset=+2]');
105
+ lines.push('```');
106
+ lines.push('');
107
+ lines.push('For functions, add to the Functions section in `functions.adoc`:');
108
+ lines.push('```asciidoc');
109
+ lines.push('include::redpanda-connect:partial$bloblang-functions/function_name.adoc[leveloffset=+2]');
110
+ lines.push('```');
111
+ lines.push('');
112
+ lines.push('**Note:** Partials are auto-generated. Includes must be added manually in alphabetical order within their section.');
113
+ lines.push('');
114
+
115
+ return lines;
116
+ }
117
+
6
118
  /**
7
119
  * Generate PR summary for multiple releases
8
120
  * @param {object} masterDiff - Master diff with releases array
@@ -21,9 +133,9 @@ function generateMultiVersionPRSummary(masterDiff, binaryAnalysis = null, drafte
21
133
 
22
134
  lines.push('<!-- PR_SUMMARY_START -->');
23
135
  lines.push('');
24
- lines.push('## 📊 Redpanda Connect Documentation Update');
136
+ lines.push('## Redpanda Connect Documentation Update');
25
137
  lines.push('');
26
- lines.push(`**📦 Multi-Release Update:** ${startVersion} → ${endVersion}`);
138
+ lines.push(`**Multi-Release Update:** ${startVersion} → ${endVersion}`);
27
139
  lines.push(`**Releases Processed:** ${processedReleases}`);
28
140
 
29
141
  if (binaryAnalysis) {
@@ -44,10 +156,10 @@ function generateMultiVersionPRSummary(masterDiff, binaryAnalysis = null, drafte
44
156
  lines.push(`- **${total.newFields}** new fields across ${total.releaseCount || 0} release(s)`);
45
157
  }
46
158
  if (total.removedComponents > 0) {
47
- lines.push(`- **${total.removedComponents}** removed connectors ⚠️`);
159
+ lines.push(`- **${total.removedComponents}** removed connectors`);
48
160
  }
49
161
  if (total.removedFields > 0) {
50
- lines.push(`- **${total.removedFields}** removed fields ⚠️`);
162
+ lines.push(`- **${total.removedFields}** removed fields`);
51
163
  }
52
164
  if (total.deprecatedComponents > 0) {
53
165
  lines.push(`- **${total.deprecatedComponents}** deprecated connectors`);
@@ -56,7 +168,19 @@ function generateMultiVersionPRSummary(masterDiff, binaryAnalysis = null, drafte
56
168
  lines.push(`- **${total.deprecatedFields}** deprecated fields`);
57
169
  }
58
170
  if (total.changedDefaults > 0) {
59
- lines.push(`- **${total.changedDefaults}** changed default values ⚠️`);
171
+ lines.push(`- **${total.changedDefaults}** changed default values`);
172
+ }
173
+ if (total.newBloblangMethods > 0) {
174
+ lines.push(`- **${total.newBloblangMethods}** new Bloblang methods`);
175
+ }
176
+ if (total.removedBloblangMethods > 0) {
177
+ lines.push(`- **${total.removedBloblangMethods}** removed Bloblang methods`);
178
+ }
179
+ if (total.newBloblangFunctions > 0) {
180
+ lines.push(`- **${total.newBloblangFunctions}** new Bloblang functions`);
181
+ }
182
+ if (total.removedBloblangFunctions > 0) {
183
+ lines.push(`- **${total.removedBloblangFunctions}** removed Bloblang functions`);
60
184
  }
61
185
 
62
186
  lines.push('');
@@ -76,7 +200,7 @@ function generateMultiVersionPRSummary(masterDiff, binaryAnalysis = null, drafte
76
200
 
77
201
  for (const release of releases) {
78
202
  const releaseNotesUrl = `https://github.com/redpanda-data/connect/releases/tag/v${release.toVersion}`;
79
- lines.push(`#### 🔖 Version ${release.toVersion}`);
203
+ lines.push(`#### Version ${release.toVersion}`);
80
204
  lines.push(`> [Release notes](${releaseNotesUrl})`);
81
205
  lines.push('');
82
206
 
@@ -140,7 +264,7 @@ function generateMultiVersionPRSummary(masterDiff, binaryAnalysis = null, drafte
140
264
  // Removed components
141
265
  const removedComponents = details.removedComponents || [];
142
266
  if (summary.removedComponents > 0 && removedComponents.length > 0) {
143
- lines.push(`**⚠️ Removed Connectors (${summary.removedComponents}):**`);
267
+ lines.push(`**Removed Connectors (${summary.removedComponents}):**`);
144
268
  lines.push('');
145
269
  removedComponents.forEach(comp => {
146
270
  lines.push(`- \`${comp.name}\` (${comp.type})`);
@@ -151,7 +275,7 @@ function generateMultiVersionPRSummary(masterDiff, binaryAnalysis = null, drafte
151
275
  // Removed fields
152
276
  const removedFields = details.removedFields || [];
153
277
  if (summary.removedFields > 0 && removedFields.length > 0) {
154
- lines.push(`**⚠️ Removed Fields (${summary.removedFields}):**`);
278
+ lines.push(`**Removed Fields (${summary.removedFields}):**`);
155
279
  lines.push('');
156
280
  lines.push('| Component | Field |');
157
281
  lines.push('|-----------|-------|');
@@ -176,7 +300,7 @@ function generateMultiVersionPRSummary(masterDiff, binaryAnalysis = null, drafte
176
300
  // Changed defaults
177
301
  const changedDefaults = details.changedDefaults || [];
178
302
  if (summary.changedDefaults > 0 && changedDefaults.length > 0) {
179
- lines.push(`**⚠️ Changed Defaults (${summary.changedDefaults}):**`);
303
+ lines.push(`**Changed Defaults (${summary.changedDefaults}):**`);
180
304
  lines.push('');
181
305
  lines.push('| Component | Field | Old Default | New Default |');
182
306
  lines.push('|-----------|-------|-------------|-------------|');
@@ -192,7 +316,7 @@ function generateMultiVersionPRSummary(masterDiff, binaryAnalysis = null, drafte
192
316
  // Writer action items (aggregate)
193
317
  lines.push('---');
194
318
  lines.push('');
195
- lines.push('### ✍️ Writer Action Items');
319
+ lines.push('### Writer Action Items');
196
320
  lines.push('');
197
321
 
198
322
  // Collect all new connectors across all releases with full details
@@ -200,6 +324,12 @@ function generateMultiVersionPRSummary(masterDiff, binaryAnalysis = null, drafte
200
324
  const allRemovedConnectors = [];
201
325
  const allDeprecatedFields = [];
202
326
  const allChangedDefaults = [];
327
+ const allNewBloblangMethods = [];
328
+ const allRemovedBloblangMethods = [];
329
+ const allNewBloblangFunctions = [];
330
+ const allRemovedBloblangFunctions = [];
331
+ const allDeprecatedBloblangMethods = [];
332
+ const allDeprecatedBloblangFunctions = [];
203
333
 
204
334
  releases.forEach(release => {
205
335
  const details = release.details || {};
@@ -253,6 +383,48 @@ function generateMultiVersionPRSummary(masterDiff, binaryAnalysis = null, drafte
253
383
  version: release.toVersion
254
384
  });
255
385
  });
386
+
387
+ // New/removed Bloblang methods
388
+ (details.newBloblangMethods || []).forEach(methodName => {
389
+ allNewBloblangMethods.push({
390
+ name: methodName,
391
+ version: release.toVersion
392
+ });
393
+ });
394
+ (details.removedBloblangMethods || []).forEach(methodName => {
395
+ allRemovedBloblangMethods.push({
396
+ name: methodName,
397
+ version: release.toVersion
398
+ });
399
+ });
400
+
401
+ // New/removed Bloblang functions
402
+ (details.newBloblangFunctions || []).forEach(funcName => {
403
+ allNewBloblangFunctions.push({
404
+ name: funcName,
405
+ version: release.toVersion
406
+ });
407
+ });
408
+ (details.removedBloblangFunctions || []).forEach(funcName => {
409
+ allRemovedBloblangFunctions.push({
410
+ name: funcName,
411
+ version: release.toVersion
412
+ });
413
+ });
414
+
415
+ // Deprecated Bloblang methods/functions
416
+ (details.deprecatedBloblangMethods || []).forEach(methodName => {
417
+ allDeprecatedBloblangMethods.push({
418
+ name: methodName,
419
+ version: release.toVersion
420
+ });
421
+ });
422
+ (details.deprecatedBloblangFunctions || []).forEach(funcName => {
423
+ allDeprecatedBloblangFunctions.push({
424
+ name: funcName,
425
+ version: release.toVersion
426
+ });
427
+ });
256
428
  });
257
429
 
258
430
  // Priority 1: New connectors needing documentation
@@ -292,7 +464,7 @@ function generateMultiVersionPRSummary(masterDiff, binaryAnalysis = null, drafte
292
464
 
293
465
  // Priority 2: Removed connectors needing migration docs
294
466
  if (allRemovedConnectors.length > 0) {
295
- lines.push('**⚠️ Update Migration Guide for Removed Connectors:**');
467
+ lines.push('**Update Migration Guide for Removed Connectors:**');
296
468
  lines.push('');
297
469
  allRemovedConnectors.forEach(conn => {
298
470
  lines.push(`- [ ] \`${conn.name}\` ${conn.type} — removed in **${conn.version}**`);
@@ -302,7 +474,7 @@ function generateMultiVersionPRSummary(masterDiff, binaryAnalysis = null, drafte
302
474
 
303
475
  // Priority 3: Deprecated fields needing docs update
304
476
  if (allDeprecatedFields.length > 0) {
305
- lines.push('**📋 Update Docs for Deprecated Fields:**');
477
+ lines.push('**Update Docs for Deprecated Fields:**');
306
478
  lines.push('');
307
479
  allDeprecatedFields.forEach(field => {
308
480
  const guidance = field.description ? ` (${truncateToSentence(field.description, 1)})` : '';
@@ -313,7 +485,7 @@ function generateMultiVersionPRSummary(masterDiff, binaryAnalysis = null, drafte
313
485
 
314
486
  // Priority 4: Changed defaults that may affect users
315
487
  if (allChangedDefaults.length > 0) {
316
- lines.push('**⚠️ Review Changed Defaults for Breaking Changes:**');
488
+ lines.push('**Review Changed Defaults for Breaking Changes:**');
317
489
  lines.push('');
318
490
  allChangedDefaults.forEach(change => {
319
491
  const oldVal = change.oldDefault !== undefined ? JSON.stringify(change.oldDefault) : 'none';
@@ -323,6 +495,17 @@ function generateMultiVersionPRSummary(masterDiff, binaryAnalysis = null, drafte
323
495
  lines.push('');
324
496
  }
325
497
 
498
+ // Bloblang methods and functions
499
+ const bloblangLines = renderBloblangChanges({
500
+ newMethods: allNewBloblangMethods,
501
+ newFunctions: allNewBloblangFunctions,
502
+ removedMethods: allRemovedBloblangMethods,
503
+ removedFunctions: allRemovedBloblangFunctions,
504
+ deprecatedMethods: allDeprecatedBloblangMethods,
505
+ deprecatedFunctions: allDeprecatedBloblangFunctions
506
+ }, true); // includeVersion = true for multi-version summaries
507
+ lines.push(...bloblangLines);
508
+
326
509
  // Add commercial name reminder if there are new connectors
327
510
  if (allNewConnectors.length > 0) {
328
511
  lines.push('---');
@@ -368,7 +551,7 @@ function generatePRSummary(diffData, binaryAnalysis = null, draftedConnectors =
368
551
 
369
552
  // Single version format (original logic)
370
553
  // Quick Summary Section
371
- lines.push('## 📊 Redpanda Connect Documentation Update');
554
+ lines.push('## Redpanda Connect Documentation Update');
372
555
  lines.push('');
373
556
  lines.push(`**OSS Version:** ${diffData.comparison.oldVersion} → ${diffData.comparison.newVersion}`);
374
557
 
@@ -383,7 +566,7 @@ function generatePRSummary(diffData, binaryAnalysis = null, draftedConnectors =
383
566
  const hasChanges = Object.values(stats).some(v => v > 0) || (draftedConnectors && draftedConnectors.length > 0);
384
567
 
385
568
  if (!hasChanges) {
386
- lines.push('**No changes detected** - Documentation is up to date');
569
+ lines.push('**No changes detected** - Documentation is up to date');
387
570
  lines.push('');
388
571
  lines.push('<!-- PR_SUMMARY_END -->');
389
572
  return lines.join('\n');
@@ -418,11 +601,11 @@ function generatePRSummary(diffData, binaryAnalysis = null, draftedConnectors =
418
601
  }
419
602
 
420
603
  if (stats.removedComponents > 0) {
421
- lines.push(`- **${stats.removedComponents}** removed connector${stats.removedComponents !== 1 ? 's' : ''} ⚠️`);
604
+ lines.push(`- **${stats.removedComponents}** removed connector${stats.removedComponents !== 1 ? 's' : ''}`);
422
605
  }
423
606
 
424
607
  if (stats.removedFields > 0) {
425
- lines.push(`- **${stats.removedFields}** removed field${stats.removedFields !== 1 ? 's' : ''} ⚠️`);
608
+ lines.push(`- **${stats.removedFields}** removed field${stats.removedFields !== 1 ? 's' : ''}`);
426
609
  }
427
610
 
428
611
  if (stats.deprecatedComponents > 0) {
@@ -433,15 +616,39 @@ function generatePRSummary(diffData, binaryAnalysis = null, draftedConnectors =
433
616
  lines.push(`- **${stats.deprecatedFields}** deprecated field${stats.deprecatedFields !== 1 ? 's' : ''}`);
434
617
  }
435
618
 
619
+ if (stats.newBloblangMethods > 0) {
620
+ lines.push(`- **${stats.newBloblangMethods}** new Bloblang method${stats.newBloblangMethods !== 1 ? 's' : ''}`);
621
+ }
622
+
623
+ if (stats.newBloblangFunctions > 0) {
624
+ lines.push(`- **${stats.newBloblangFunctions}** new Bloblang function${stats.newBloblangFunctions !== 1 ? 's' : ''}`);
625
+ }
626
+
627
+ if (stats.removedBloblangMethods > 0) {
628
+ lines.push(`- **${stats.removedBloblangMethods}** removed Bloblang method${stats.removedBloblangMethods !== 1 ? 's' : ''}`);
629
+ }
630
+
631
+ if (stats.removedBloblangFunctions > 0) {
632
+ lines.push(`- **${stats.removedBloblangFunctions}** removed Bloblang function${stats.removedBloblangFunctions !== 1 ? 's' : ''}`);
633
+ }
634
+
635
+ if (stats.deprecatedBloblangMethods > 0) {
636
+ lines.push(`- **${stats.deprecatedBloblangMethods}** deprecated Bloblang method${stats.deprecatedBloblangMethods !== 1 ? 's' : ''}`);
637
+ }
638
+
639
+ if (stats.deprecatedBloblangFunctions > 0) {
640
+ lines.push(`- **${stats.deprecatedBloblangFunctions}** deprecated Bloblang function${stats.deprecatedBloblangFunctions !== 1 ? 's' : ''}`);
641
+ }
642
+
436
643
  if (stats.changedDefaults > 0) {
437
- lines.push(`- **${stats.changedDefaults}** default value change${stats.changedDefaults !== 1 ? 's' : ''} ⚠️`);
644
+ lines.push(`- **${stats.changedDefaults}** default value change${stats.changedDefaults !== 1 ? 's' : ''}`);
438
645
  }
439
646
 
440
647
  lines.push('');
441
648
 
442
649
  // Writer Reminder for Commercial Names
443
650
  if (stats.newComponents > 0) {
444
- lines.push('### ✍️ Writer Action Required');
651
+ lines.push('### Writer Action Required');
445
652
  lines.push('');
446
653
  lines.push('For each new connector, add the `:page-commercial-names:` attribute to the frontmatter:');
447
654
  lines.push('');
@@ -524,7 +731,7 @@ function generatePRSummary(diffData, binaryAnalysis = null, draftedConnectors =
524
731
  if (stats.changedDefaults > 0) breakingChanges.push('changed defaults');
525
732
 
526
733
  if (breakingChanges.length > 0) {
527
- lines.push('### ⚠️ Breaking Changes Detected');
734
+ lines.push('### Breaking Changes Detected');
528
735
  lines.push('');
529
736
  lines.push(`This update includes **${breakingChanges.join(', ')}** that may affect existing configurations.`);
530
737
  lines.push('');
@@ -598,7 +805,7 @@ function generatePRSummary(diffData, binaryAnalysis = null, draftedConnectors =
598
805
  }
599
806
 
600
807
  if (missingDescriptions.length > 0) {
601
- lines.push('### ⚠️ Missing Descriptions');
808
+ lines.push('### Missing Descriptions');
602
809
  lines.push('');
603
810
  lines.push(`**${missingDescriptions.length}** item${missingDescriptions.length !== 1 ? 's' : ''} missing descriptions - these need writer attention:`);
604
811
  lines.push('');
@@ -643,7 +850,7 @@ function generatePRSummary(diffData, binaryAnalysis = null, draftedConnectors =
643
850
  if (missingDescriptions.length > 0) {
644
851
  actionItems.push({
645
852
  priority: 0,
646
- text: `⚠️ Add descriptions for ${missingDescriptions.length} component${missingDescriptions.length !== 1 ? 's' : ''}/field${missingDescriptions.length !== 1 ? 's' : ''} (see Missing Descriptions section)`
853
+ text: `Add descriptions for ${missingDescriptions.length} component${missingDescriptions.length !== 1 ? 's' : ''}/field${missingDescriptions.length !== 1 ? 's' : ''} (see Missing Descriptions section)`
647
854
  });
648
855
  }
649
856
 
@@ -721,9 +928,20 @@ function generatePRSummary(diffData, binaryAnalysis = null, draftedConnectors =
721
928
 
722
929
  lines.push('');
723
930
 
931
+ // Bloblang methods and functions
932
+ const bloblangLines = renderBloblangChanges({
933
+ newMethods: diffData.details.newBloblangMethods || [],
934
+ newFunctions: diffData.details.newBloblangFunctions || [],
935
+ removedMethods: diffData.details.removedBloblangMethods || [],
936
+ removedFunctions: diffData.details.removedBloblangFunctions || [],
937
+ deprecatedMethods: diffData.details.deprecatedBloblangMethods || [],
938
+ deprecatedFunctions: diffData.details.deprecatedBloblangFunctions || []
939
+ }, false); // includeVersion = false for single-version summaries
940
+ lines.push(...bloblangLines);
941
+
724
942
  // Detailed breakdown (expandable)
725
943
  lines.push('<details>');
726
- lines.push('<summary><strong>📋 Detailed Changes</strong> (click to expand)</summary>');
944
+ lines.push('<summary><strong>Detailed Changes</strong> (click to expand)</summary>');
727
945
  lines.push('');
728
946
 
729
947
  // New Connectors
@@ -861,7 +1079,7 @@ function generatePRSummary(diffData, binaryAnalysis = null, draftedConnectors =
861
1079
 
862
1080
  // Removed Connectors
863
1081
  if (stats.removedComponents > 0) {
864
- lines.push('#### ⚠️ Removed Connectors');
1082
+ lines.push('#### Removed Connectors');
865
1083
  lines.push('');
866
1084
  diffData.details.removedComponents.forEach(c => {
867
1085
  lines.push(`- **${c.name}** (${c.type})`);
@@ -871,7 +1089,7 @@ function generatePRSummary(diffData, binaryAnalysis = null, draftedConnectors =
871
1089
 
872
1090
  // Removed Fields
873
1091
  if (stats.removedFields > 0) {
874
- lines.push('#### ⚠️ Removed Fields');
1092
+ lines.push('#### Removed Fields');
875
1093
  lines.push('');
876
1094
 
877
1095
  const fieldsByComponent = {};
@@ -927,7 +1145,7 @@ function generatePRSummary(diffData, binaryAnalysis = null, draftedConnectors =
927
1145
 
928
1146
  // Changed Defaults
929
1147
  if (stats.changedDefaults > 0) {
930
- lines.push('#### ⚠️ Changed Default Values');
1148
+ lines.push('#### Changed Default Values');
931
1149
  lines.push('');
932
1150
 
933
1151
  const changesByComponent = {};
@@ -950,6 +1168,66 @@ function generatePRSummary(diffData, binaryAnalysis = null, draftedConnectors =
950
1168
  });
951
1169
  }
952
1170
 
1171
+ // New Bloblang Methods
1172
+ if (stats.newBloblangMethods > 0 && diffData.details.newBloblangMethods) {
1173
+ lines.push('#### New Bloblang Methods');
1174
+ lines.push('');
1175
+ diffData.details.newBloblangMethods.forEach(methodName => {
1176
+ lines.push(`- \`${methodName}\``);
1177
+ });
1178
+ lines.push('');
1179
+ }
1180
+
1181
+ // New Bloblang Functions
1182
+ if (stats.newBloblangFunctions > 0 && diffData.details.newBloblangFunctions) {
1183
+ lines.push('#### New Bloblang Functions');
1184
+ lines.push('');
1185
+ diffData.details.newBloblangFunctions.forEach(funcName => {
1186
+ lines.push(`- \`${funcName}\``);
1187
+ });
1188
+ lines.push('');
1189
+ }
1190
+
1191
+ // Removed Bloblang Methods
1192
+ if (stats.removedBloblangMethods > 0 && diffData.details.removedBloblangMethods) {
1193
+ lines.push('#### Removed Bloblang Methods');
1194
+ lines.push('');
1195
+ diffData.details.removedBloblangMethods.forEach(methodName => {
1196
+ lines.push(`- \`${methodName}\``);
1197
+ });
1198
+ lines.push('');
1199
+ }
1200
+
1201
+ // Removed Bloblang Functions
1202
+ if (stats.removedBloblangFunctions > 0 && diffData.details.removedBloblangFunctions) {
1203
+ lines.push('#### Removed Bloblang Functions');
1204
+ lines.push('');
1205
+ diffData.details.removedBloblangFunctions.forEach(funcName => {
1206
+ lines.push(`- \`${funcName}\``);
1207
+ });
1208
+ lines.push('');
1209
+ }
1210
+
1211
+ // Deprecated Bloblang Methods
1212
+ if (stats.deprecatedBloblangMethods > 0 && diffData.details.deprecatedBloblangMethods) {
1213
+ lines.push('#### Deprecated Bloblang Methods');
1214
+ lines.push('');
1215
+ diffData.details.deprecatedBloblangMethods.forEach(methodName => {
1216
+ lines.push(`- \`${methodName}\``);
1217
+ });
1218
+ lines.push('');
1219
+ }
1220
+
1221
+ // Deprecated Bloblang Functions
1222
+ if (stats.deprecatedBloblangFunctions > 0 && diffData.details.deprecatedBloblangFunctions) {
1223
+ lines.push('#### Deprecated Bloblang Functions');
1224
+ lines.push('');
1225
+ diffData.details.deprecatedBloblangFunctions.forEach(funcName => {
1226
+ lines.push(`- \`${funcName}\``);
1227
+ });
1228
+ lines.push('');
1229
+ }
1230
+
953
1231
  // Cloud Support Gap Analysis
954
1232
  if (binaryAnalysis && binaryAnalysis.comparison.notInCloud.length > 0) {
955
1233
  lines.push('#### 🔍 Cloud Support Gap Analysis');