@emeryld/rrroutes-export 1.0.25 → 1.0.27

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/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@emeryld/rrroutes-export",
3
3
  "description": "Finalized leaves export helpers and CLI for RRRoutes",
4
- "version": "1.0.25",
4
+ "version": "1.0.27",
5
5
  "private": false,
6
6
  "type": "module",
7
7
  "main": "dist/index.cjs",
@@ -394,7 +394,7 @@
394
394
  }
395
395
 
396
396
  .changelog-commit-label {
397
- color: var(--muted);
397
+ color: var(--text);
398
398
  font-weight: 700;
399
399
  font-size: 12px;
400
400
  }
@@ -423,24 +423,6 @@
423
423
  .changelog-schema-type {
424
424
  color: var(--schema-accent);
425
425
  }
426
- .changelog-schema-details {
427
- margin-top: 6px;
428
- }
429
- .changelog-schema-details > summary {
430
- color: var(--schema-accent);
431
- font-size: 12px;
432
- }
433
- .changelog-schema-details-body {
434
- margin-top: 6px;
435
- display: grid;
436
- gap: 4px;
437
- }
438
- .changelog-schema-line > summary {
439
- font-size: 12px;
440
- }
441
- .changelog-schema-line .meta {
442
- margin-top: 4px;
443
- }
444
426
 
445
427
  .event-title-row {
446
428
  display: inline-flex;
@@ -696,14 +678,6 @@
696
678
  >
697
679
  Changelog
698
680
  </button>
699
- <button
700
- id="tabChangelogGrouped"
701
- class="field-chip"
702
- type="button"
703
- aria-pressed="false"
704
- >
705
- Grouped Changelog
706
- </button>
707
681
  </div>
708
682
  </div>
709
683
  </div>
@@ -892,7 +866,6 @@
892
866
  const VIEW_IDS = {
893
867
  leaves: 'leaves',
894
868
  changelog: 'changelog',
895
- changelogGrouped: 'changelogGrouped',
896
869
  }
897
870
 
898
871
  const VIEWER_MODE = {
@@ -927,12 +900,6 @@
927
900
  CHANGELOG_TIMELINE_FIELDS.map((field) => field.id),
928
901
  ),
929
902
  },
930
- [VIEW_IDS.changelogGrouped]: {
931
- fieldDefs: CHANGELOG_TIMELINE_FIELDS,
932
- defaultSelected: new Set(
933
- CHANGELOG_TIMELINE_FIELDS.map((field) => field.id),
934
- ),
935
- },
936
903
  }
937
904
 
938
905
  const state = {
@@ -950,9 +917,6 @@
950
917
  [VIEW_IDS.changelog]: new Set(
951
918
  TAB_CONFIG[VIEW_IDS.changelog].defaultSelected,
952
919
  ),
953
- [VIEW_IDS.changelogGrouped]: new Set(
954
- TAB_CONFIG[VIEW_IDS.changelogGrouped].defaultSelected,
955
- ),
956
920
  },
957
921
  }
958
922
 
@@ -978,9 +942,6 @@
978
942
  const controlsEl = document.querySelector('.controls')
979
943
  const tabLeavesBtn = document.getElementById('tabLeaves')
980
944
  const tabChangelogBtn = document.getElementById('tabChangelog')
981
- const tabChangelogGroupedBtn = document.getElementById(
982
- 'tabChangelogGrouped',
983
- )
984
945
 
985
946
  const URL_PARAM_KEY = 'filters'
986
947
  let isHydratingFromUrl = false
@@ -1718,8 +1679,9 @@
1718
1679
  content.appendChild(separatedSchemas)
1719
1680
  }
1720
1681
 
1721
- const routeHistory = state.changelogPayload?.byRoute?.[leaf.key]
1722
- if (Array.isArray(routeHistory) && routeHistory.length > 0) {
1682
+ const routeHistoryRaw = state.changelogPayload?.byRoute?.[leaf.key]
1683
+ const routeHistory = Array.isArray(routeHistoryRaw) ? routeHistoryRaw : []
1684
+ if (state.changelogPayload) {
1723
1685
  const commitBySha = new Map(
1724
1686
  (state.changelogPayload?.commits || []).map((commit) => [
1725
1687
  commit.sha,
@@ -1744,20 +1706,24 @@
1744
1706
  '',
1745
1707
  `Route Changelog (${routeHistory.length} event${routeHistory.length === 1 ? '' : 's'})`,
1746
1708
  )
1747
- if (state.viewerMode === VIEWER_MODE.bundle) {
1748
- routeChangelogSummary.classList.add('route-changelog-summary-gray')
1749
- }
1709
+ routeChangelogSummary.classList.add('route-changelog-summary-gray')
1750
1710
  routeChangelogDetails.appendChild(routeChangelogSummary)
1751
1711
 
1752
1712
  const routeChangelogBody = el('div', 'leaf-content')
1753
- routeHistoryNewestFirst.forEach((event) => {
1713
+ if (routeHistoryNewestFirst.length === 0) {
1754
1714
  routeChangelogBody.appendChild(
1755
- renderEventCard(event, commitBySha, {
1756
- showTitle: true,
1757
- item: { eventKind: 'route', routeKey: leaf.key, event },
1758
- }),
1715
+ el('div', 'meta', 'No changelog entries for this route.'),
1759
1716
  )
1760
- })
1717
+ } else {
1718
+ routeHistoryNewestFirst.forEach((event) => {
1719
+ routeChangelogBody.appendChild(
1720
+ renderEventCard(event, commitBySha, {
1721
+ showTitle: true,
1722
+ item: { eventKind: 'route', routeKey: leaf.key, event },
1723
+ }),
1724
+ )
1725
+ })
1726
+ }
1761
1727
  routeChangelogDetails.appendChild(routeChangelogBody)
1762
1728
  routeChangelogSection.appendChild(routeChangelogDetails)
1763
1729
  content.appendChild(routeChangelogSection)
@@ -2147,54 +2113,6 @@
2147
2113
  return row
2148
2114
  }
2149
2115
 
2150
- function schemaDiffRawDetail(delta) {
2151
- if (!delta || typeof delta !== 'object') return ''
2152
- if ('path' in delta) {
2153
- const location = formatPathLabel(delta.path) || String(delta.path || '')
2154
- if (delta.op === 'added') {
2155
- return `added ${location}: ${formatRouteSchemaEntry(delta.after)}`
2156
- }
2157
- if (delta.op === 'removed') {
2158
- return `removed ${location}: ${formatRouteSchemaEntry(delta.before)}`
2159
- }
2160
- return `changed ${location}: ${formatRouteSchemaEntry(delta.before)} -> ${formatRouteSchemaEntry(delta.after)}`
2161
- }
2162
- if ('section' in delta) {
2163
- const location = sourceSchemaLocation(delta.section, delta.path)
2164
- if (delta.op === 'added') {
2165
- return `added ${location}: ${JSON.stringify(delta.after || [])}`
2166
- }
2167
- if (delta.op === 'removed') {
2168
- return `removed ${location}: ${JSON.stringify(delta.before || [])}`
2169
- }
2170
- return `changed ${location}: ${JSON.stringify(delta.before || [])} -> ${JSON.stringify(delta.after || [])}`
2171
- }
2172
- return JSON.stringify(delta)
2173
- }
2174
-
2175
- function renderSchemaDiffNested(schemaDiff) {
2176
- if (!Array.isArray(schemaDiff) || schemaDiff.length === 0) return null
2177
- const wrapper = el('details', 'changelog-schema-details')
2178
- wrapper.appendChild(
2179
- el('summary', 'mono', `schema changes (${schemaDiff.length})`),
2180
- )
2181
- const body = el('div', 'changelog-schema-details-body')
2182
- schemaDiff.forEach((delta) => {
2183
- const lineNode = formatSchemaDiffLine(delta)
2184
- if (!lineNode) return
2185
- const lineDetails = el('details', 'changelog-schema-line')
2186
- const lineSummary = el('summary')
2187
- lineSummary.appendChild(lineNode)
2188
- lineDetails.appendChild(lineSummary)
2189
- lineDetails.appendChild(
2190
- el('div', 'meta mono', schemaDiffRawDetail(delta)),
2191
- )
2192
- body.appendChild(lineDetails)
2193
- })
2194
- wrapper.appendChild(body)
2195
- return wrapper
2196
- }
2197
-
2198
2116
  function renderEventCard(event, commitBySha, options = {}) {
2199
2117
  const card = el('div', 'leaf-content')
2200
2118
  const commit = commitBySha.get(event.commitSha)
@@ -2212,8 +2130,16 @@
2212
2130
  card.appendChild(renderEventTitle(options.item))
2213
2131
  }
2214
2132
  if (Array.isArray(event.schemaDiff) && event.schemaDiff.length > 0) {
2215
- const schemaDetails = renderSchemaDiffNested(event.schemaDiff)
2216
- if (schemaDetails) card.appendChild(schemaDetails)
2133
+ card.appendChild(
2134
+ el('div', 'meta', `schema changes: ${event.schemaDiff.length}`),
2135
+ )
2136
+ const schemaChanges = el('div')
2137
+ event.schemaDiff.forEach((delta) => {
2138
+ const lineNode = formatSchemaDiffLine(delta)
2139
+ if (!lineNode) return
2140
+ schemaChanges.appendChild(lineNode)
2141
+ })
2142
+ card.appendChild(schemaChanges)
2217
2143
  }
2218
2144
  if (Array.isArray(event.cfgDiff) && event.cfgDiff.length > 0) {
2219
2145
  card.appendChild(
@@ -2310,8 +2236,11 @@
2310
2236
  row.appendChild(renderEventTitle(item))
2311
2237
 
2312
2238
  if (Array.isArray(event.schemaDiff) && event.schemaDiff.length > 0) {
2313
- const schemaDetails = renderSchemaDiffNested(event.schemaDiff)
2314
- if (schemaDetails) row.appendChild(schemaDetails)
2239
+ event.schemaDiff.forEach((delta) => {
2240
+ const lineNode = formatSchemaDiffLine(delta)
2241
+ if (!lineNode) return
2242
+ row.appendChild(lineNode)
2243
+ })
2315
2244
  }
2316
2245
  if (Array.isArray(event.cfgDiff) && event.cfgDiff.length > 0) {
2317
2246
  event.cfgDiff.forEach((diff) => {
@@ -2529,10 +2458,7 @@
2529
2458
  function changelogItemsByTab(tabId) {
2530
2459
  const payload = state.changelogPayload
2531
2460
  if (!payload) return []
2532
- if (
2533
- tabId === VIEW_IDS.changelog ||
2534
- tabId === VIEW_IDS.changelogGrouped
2535
- ) {
2461
+ if (tabId === VIEW_IDS.changelog) {
2536
2462
  return buildChronologicalEvents(payload)
2537
2463
  }
2538
2464
  return []
@@ -2561,10 +2487,6 @@
2561
2487
  function renderTabButtons() {
2562
2488
  setPressed(tabLeavesBtn, state.activeTab === VIEW_IDS.leaves)
2563
2489
  setPressed(tabChangelogBtn, state.activeTab === VIEW_IDS.changelog)
2564
- setPressed(
2565
- tabChangelogGroupedBtn,
2566
- state.activeTab === VIEW_IDS.changelogGrouped,
2567
- )
2568
2490
  tabLeavesBtn.style.display = state.availableTabs.has(VIEW_IDS.leaves)
2569
2491
  ? ''
2570
2492
  : 'none'
@@ -2572,10 +2494,6 @@
2572
2494
  VIEW_IDS.changelog,
2573
2495
  )
2574
2496
  ? ''
2575
- : 'none'
2576
- tabChangelogGroupedBtn.style.display = state.availableTabs.has(
2577
- VIEW_IDS.changelogGrouped,
2578
- )
2579
2497
  ? ''
2580
2498
  : 'none'
2581
2499
  const isLeavesTab = state.activeTab === VIEW_IDS.leaves
@@ -2632,24 +2550,10 @@
2632
2550
  )
2633
2551
  if (filtered.length === 0) {
2634
2552
  resultsEl.appendChild(el('div', 'empty', 'No matches.'))
2635
- } else if (state.activeTab === VIEW_IDS.changelog) {
2553
+ } else {
2636
2554
  renderChangelogWithCommitSeparators(filtered, commitBySha, (item) =>
2637
2555
  renderChangelogEventLines(item, commitBySha),
2638
2556
  )
2639
- } else {
2640
- renderChangelogWithCommitSeparators(filtered, commitBySha, (item) => {
2641
- const details = el('details', 'leaf')
2642
- const summary = el('summary')
2643
- summary.appendChild(renderEventTitle(item))
2644
- details.appendChild(summary)
2645
- details.appendChild(
2646
- renderEventCard(item.event, commitBySha, {
2647
- showTitle: false,
2648
- item,
2649
- }),
2650
- )
2651
- return details
2652
- })
2653
2557
  }
2654
2558
  }
2655
2559
  syncFilterStateToUrl()
@@ -2674,11 +2578,7 @@
2674
2578
  : [
2675
2579
  {
2676
2580
  id: 'tabFields',
2677
- label:
2678
- state.activeTab === VIEW_IDS.changelog ||
2679
- state.activeTab === VIEW_IDS.changelogGrouped
2680
- ? 'Changelog fields'
2681
- : 'Source fields',
2581
+ label: 'Changelog fields',
2682
2582
  fieldIds: fieldDefs.map((field) => field.id),
2683
2583
  },
2684
2584
  ]
@@ -2864,8 +2764,7 @@
2864
2764
  isHydratingFromUrl = true
2865
2765
  if (
2866
2766
  parsed.activeTab === VIEW_IDS.leaves ||
2867
- parsed.activeTab === VIEW_IDS.changelog ||
2868
- parsed.activeTab === VIEW_IDS.changelogGrouped
2767
+ parsed.activeTab === VIEW_IDS.changelog
2869
2768
  ) {
2870
2769
  state.activeTab = parsed.activeTab
2871
2770
  }
@@ -2954,18 +2853,13 @@
2954
2853
  }
2955
2854
  if (state.changelogPayload) {
2956
2855
  state.availableTabs.add(VIEW_IDS.changelog)
2957
- if (state.viewerMode === VIEWER_MODE.bundle) {
2958
- state.availableTabs.add(VIEW_IDS.changelogGrouped)
2959
- }
2960
2856
  }
2961
2857
 
2962
2858
  if (!state.availableTabs.has(state.activeTab)) {
2963
2859
  if (state.availableTabs.has(VIEW_IDS.leaves)) {
2964
2860
  state.activeTab = VIEW_IDS.leaves
2965
- } else if (state.availableTabs.has(VIEW_IDS.changelog)) {
2966
- state.activeTab = VIEW_IDS.changelog
2967
2861
  } else {
2968
- state.activeTab = VIEW_IDS.changelogGrouped
2862
+ state.activeTab = VIEW_IDS.changelog
2969
2863
  }
2970
2864
  }
2971
2865
 
@@ -3029,9 +2923,6 @@
3029
2923
  tabChangelogBtn.addEventListener('click', () =>
3030
2924
  setActiveTab(VIEW_IDS.changelog),
3031
2925
  )
3032
- tabChangelogGroupedBtn.addEventListener('click', () =>
3033
- setActiveTab(VIEW_IDS.changelogGrouped),
3034
- )
3035
2926
 
3036
2927
  selectAllFieldsBtn.addEventListener('click', () =>
3037
2928
  setFieldSelection(new Set(currentFieldDefs().map((field) => field.id))),