Alle Versionen seit 21.1.0
21.1.0
- chore: four guardrails against code being wrong while tests stay green (#1430)
- chore(green-index-feature-list): declare spec stub selector exception in lint config
- chore(skills): name the Wink Bug Tracker instead of printing its project number (#1438)
- docs: :memo: translations
- docs: document the host:{role:‘presentation’}+display:contents list-item pattern (#1445)
- docs: document the wink/* lint rules
- docs: require Storybook and Playwright verification for visual fixes
- docs(i18n): clarify en.json path is per-app
- docs(selector-prefix-cleanup): correct a wrong claim about seller-url (#1152)
- feat(bamboo): :sparkles: add Bamboo Specs export for WP-AP (Production Applications)
- feat(bamboo): :sparkles: add Bamboo Specs export for WS-SA (Staging Applications)
- feat(ledger): admin entry detail and booking money trail (#1468)
- feat(ledger): admin ledger account list and account statement (#1460)
- feat(ledger): admin ledger explorer (#1458)
- feat(signal-form): ban [formField] on the four field-bound controls (#1434)
- fix: close CI coverage debt from 0%-cache-hit run, plus 4 real bugs found along the way (#1417)
- fix(admin,portals): bulk action feedback + studio Cards nav highlight (#1407)
- fix(admin): restore bulk selection on a failed status update (#1464)
- fix(admin): warn on partial bulk status update instead of reporting full success (#1416)
- fix(analytics): disable animation on gradient-stacked-area-chart series (#1463)
- fix(book): catch dismissed rejection on hotel and booking-flow modals (#1451) (#1462)
- fix(booking,maps): resend on arrival day, ungate dual-axis status, opt-in marker clicks (#1406)
- fix(deps): correct ten peerDependency declarations so lint —all is clean again (#1440)
- fix(e2e-utils): attach cause to re-thrown package.json read error
- fix(e2e): start dev servers via npm script so @nx/playwright stops warning (#1412)
- fix(embed): point the seven embed snippets at where a client ID is obtained (#1444)
- fix(i18n): add missing TranslocoService mock stubs, fix book-flow assertion (#1411)
- fix(i18n): add the 56 link-manager keys missing from portal’s bundle (#1441)
- fix(ledger): correct the admin and portal ledger screens’ API contract (#1455)
- fix(managed-social): open the post grid on upcoming posts instead of the oldest ones (#1419)
- fix(media): require a folder or managingEntityId for every cloudinary upload (#1423)
- fix(property): drop the two RESAVENUE spec references left after its removal
- fix(routing): point fourteen dead absolute router links at routes that exist (#1435)
- fix(shared): resolve grid and table pagination summary through i18n (#1422)
- fix(social-list): give active-status toggle an accessible name
- fix(social-list): point the mobile Link Manager nav at routes that exist (#1424)
- fix(social-list): render a fallback thumbnail for youtube/tiktok/spotify/instagram winklinks (#1418)
- fix(social-list): settle the last five dead router links and promote the rule to error (#1439)
- fix(social-list): stop double-wrapping the loading skeleton in an extra li
- fix(social-list): use role=presentation + display:contents for list-view
- s (#1442)
- fix(social-list): wire defaultTheme into main.ts instead of dark portalTheme fallback
- fix(toast): send the WinkLinks syndication toast to the portal Link Manager (#1426)
- fix(tools): make the last two wink rules’ comment stripping string-aware (#1436)
- fix(workbench): remove stale googleMapsLoaded binding from settings story
- fix(workspace-generators): tolerate ProjectGraphError from removeGenerator in absorb-component tests
- refactor: :fire: removed RESAVENUE
- refactor(signal-form): bind controls to the field directly so option lists are type-checked (#1432)
21.2.0
- chore(deps): drop unused @ionic/cli and pin vulnerable build tooling
- docs: :globe_with_meridians: translations
- docs: correct stale claim that typecheck isn’t wired into CI yet
- docs: require claiming an issue before working on it
- feat(#1477): :sparkles: show Stripe pass-through fees and negative ledger balances (#1530)
- feat(admin): give the ledger nav its own feature flag (#1485)
- feat(e2e): add admin-e2e project (#1467) (#1478)
- feat(shared): add createFeatureSelectorWithFallback helper (#1527) (#1529)
- fix: guard unregistered feature selectors on all remaining domains (#1544)
- fix: repair 7 CI test failures across two unrelated stale-mock bugs
- fix: sync peerDependencies via sync-package-versions script
- fix: sync peerDependencies with actual imports on 5 lint-failing libs
- fix(#1534): stop the refunded pass-through panel reading as two Stripe charges (#1539)
- fix(#1540): bring every theme colour pair up to WCAG AA (#1543)
- fix(access,social-list): gate Link Manager routes on the ACL (#1508)
- fix(admin-e2e): correct wrong admin staging/production domain
- fix(admin): clamp grid skip when a reload lands on a now-empty page (#1505)
- fix(administration): declare missing util-select-from-route peer dep
- fix(analytics,shared): shares loading flag, Instagram window note, i18n analytics strings (#1516)
- fix(analytics): guard unregistered feature selectors on analytics domain (#1535)
- fix(authentication): jitter the aborted-GET retry delay
- fix(authentication): retry aborted GET requests once
- fix(book): guard TitleEffects against a mid-navigation snapshot read (#1490)
- fix(book): replace remaining transloco pipe sites with the directive (#1514)
- fix(booking): rename Stripe fee labels and complete Net Rate once known (#1552) (#1556)
- fix(booking): show refunds in the booking grids and their CSV exports (#1558)
- fix(extranet,automate,studio,payment-portal): gate remaining sidebar routes on the ACL (#1510)
- fix(geo-name): guard unregistered feature selectors on geo-name domain and publisher (#1532)
- fix(google-tag-manager): log and skip GA4 items on missing room/price instead of throwing (#1521)
- fix(inventory-supplier): guard unregistered feature selectors on inventory-supplier domain (#1537)
- fix(inventory,web-components): scope hotel-card loading/error state per identifier (#1512)
- fix(inventory): escape # and : in cloudinary text overlays (#1483) (#1495)
- fix(inventory): guard unregistered feature selectors on inventory domain (#1533)
- fix(inventory): partition static-inventory-grid store per curated list, not one flat scalar (#1500)
- fix(logging): fix logger.error(
, error) antipattern at 4 remaining sites (#1491) - fix(logging): give Sentry a real Error at every toast-effects failure site (#1488)
- fix(managed-social): cancel superseded grid/search requests instead of merging them (#1501)
- fix(managed-social): stop the post grid’s initial load from merging stale posts (#1492)
- fix(managing-entity,user,lead): switch admin grid$ effects to switchMap (#1507)
- fix(managing-entity): extract selectManagingEntity-from-route effect (#1548)
- fix(managing-entity): fall back to cookie/first entity when meid is unresolvable (#1515)
- fix(managing-entity): generalize selectManagingEntityFromRoute to accept a dispatcher (#1551)
- fix(managing-entity): surface load errors and fix TZ-flaky pipe test
- fix(meta): guard unregistered feature selectors on meta domain (#1538)
- fix(payment-admin): guard unregistered feature selectors on payment-admin domain (#1542)
- fix(payment-admin): show the booking lifecycle status, not a stringified object (#1561)
- fix(payment-admin): wire the missing bank-account create/edit routes (#1546)
- fix(payment-portal): guard unregistered feature selectors on payment-portal domain (#1541)
- fix(payment-widget): log per-failure Stripe decline reason, stop success event on error (#1523)
- fix(payment-widget): reset capturingFunds and surface error when Stripe confirm() rejects (#1525)
- fix(portal): guard unregistered feature selectors on inventory search (#1526)
- fix(rate-plan): stop restriction toggles defaulting on in edit mode (#1557)
- fix(rate-verifier): guard undefined map before reading occupancy fields (#1518)
- fix(review,inventory-supplier): cancel superseded grid-page requests instead of merging responses (#1499)
- fix(review,inventory-supplier): pair loading indicator start/stop on canceled requests (#1503)
- fix(review,inventory-supplier): replace grid entities on load-success instead of merging (#1496)
- fix(shortened-url,social-list): remove fabricated per-link click counts (#1513)
- fix(social-list): guard unregistered feature selectors on social-list domain (#1536)
- fix(social-list): return post-SSO login to the page the user came from (#1562)
- fix(special-rate): wait for server confirmation before navigating/trusting a save (#1560)
- fix(travel-inventory): stop add-on page crashing when a price is cleared (#1555)
- fix(webhook): guard unregistered feature selectors on webhook publisher (#1531)
- fix(workbench): satisfy Store dep and gravatar fixture in admin feature-decorator story (#1504)
- refactor(e2e): extract shared modal-focus dialog-trap helper (#1511)
- refactor(inventory): migrate theme-one pipes to @cloudinary/url-gen (#1481)
- test(e2e): add tsconfig.spec.json so 6 projects get a typecheck target (#1520)
21.3.0 Latest
- chore(workbench): add Storybook MCP addon, document Sentry read-token usage
- docs: :globe_with_meridians: localization updates
- docs: add implementation plan for the #1629 unknown-error-fallback migration
- docs(bamboo): keep specs mirroring live plans (#1697)
- feat(eslint-rules): add wink/no-orphaned-route-providers rule (#1528) (#1572)
- feat(skills): add fix-with-model complexity label to wink-file-bug
- feat(special-rate): add geo-location radius promotion qualifier (#1581)
- fix: adopt toErrorWithMessage across effects catchError handlers (#1629) (#1631)
- fix: sync peerDependencies with actual imports in four libraries
- fix(administration): add refund-eligible Issue refund button in admin (#1600)
- fix(administration): drop duplicate grid-load dispatch on lead/event routes
- fix(administration): force raster rendering on the coverage map (#1571)
- fix(administration): give admin “Cancel booking” its own real cancel flow (#1608)
- fix(analytics): stop gradient area chart crashing on hover (#1487) (#1580)
- fix(application): fix mergeEnvironments type inference and testing-utils build
- fix(auth): restore serialization of concurrent discovery-document loads (#1627)
- fix(authentication): guard OIDC discovery document against a null body (#1578)
- fix(book): stop reporting the Sojern pixel’s own load failures (#1609)
- fix(e2e): silence dotenv banner so nx json output stays parseable
- fix(error-handler): filter CefSharp/Outlook-SafeLinks promise-rejection noise (#1601)
- fix(error-handler): filter unattributable errors from partner GTM containers (#1628)
- fix(google-tag-manager): guard resetDataLayer against a stubbed GTM helper (#1607)
- fix(google-tag-manager): sweep analytics mapper throw sites to warn+skip (#1579)
- fix(inventory): resolve theme-one banner icon title through transloco (#1573)
- fix(managing-entity): cast loadStripe through unknown before jest.Mock
- fix(managing-entity): stop Stripe element mount racing component destroy (#1584)
- fix(payment-admin): darken dashboard rank column for WCAG AA contrast (#1570)
- fix(payment-admin): darken ledger accounts subtext for WCAG AA contrast (#1569)
- fix(payment-admin): gate refund eligibility in BookingContractRefundFormComponent itself (#1606)
- fix(payment-admin): sequence aggregate resource loads, fix ledger contrast (#1632)
- fix(payment-portal): migrate booking-funds dashboard to per-currency AccountAggregateFunds list (#1636)
- fix(payment-widget): stop Stripe element mount racing component destroy (#1589)
- fix(portals): start home hero typewriter once #typewriterEl renders (#1637)
- fix(property): block deletion when the usage check fails (#1648)
- fix(rate-plan,special-rate): fix removeMany typing that broke storybook build
- fix(rate-plan): declare rxjs peer dependency on feature-rate-plan-form
- fix(rate-plan): replace cached entity on server response instead of merging (#1646) (#1654)
- fix(rate-plan): wait for server confirmation before leaving the editor (#1645) (#1652)
- fix(receipt): raise the contrast of the not-found card header (#1696)
- fix(restaurant): surface why a restaurant stays a draft (#766) (#1585)
- fix(router): recover from a failed lazy-chunk import instead of reporting it (#1615)
- fix(router): regenerate stale route manifest and app-route type
- fix(sentry): stop shallow environment merge from dropping tracing config (#1614)
- fix(shared-styles): retune semantic colors for AA text contrast (#1545) (#1574)
- fix(shared): stop the WinkLinks timeframe picker pretending to work (#1616)
- fix(special-rate): drop switched-off inventory qualifiers from the payload (#1698)
- fix(special-rate): replace cached entity on server response instead of merging (#1683)
- fix(state): replace cached entity on server response in 26 ngrx stores (#1682) (#1684)
- fix(travel-inventory): require an image, not just any upload, to publish (#1590)
- fix(ui): raise contrast of money amounts, info badges and the amber refund badge (#1692)
- fix(web-components): load tailwind.css so wink: classes and daisyUI tokens compile (#1577)
- fix(web-components): scope Sentry capture to our own script’s origin (#1604)
- fix(web-components): show price on map markers instead of a static icon (#1575)
- fix(workbench): add specialRateSaved$ to mockSpecialRateFacade (#1583)
- refactor(shared): extract shared timeframe dropdown component (#1599)
- refactor(travel-inventory): extract shared photos-section descriptor (#1593) (#1597)
- refactor(workbench): share travel-inventory facade stubs across 8 domains (#1596)
- test(admin): perk journey, plus fix for the crushed perk form layout (#1690)
- test(book): add a read-only journey from search to checkout (#1695)
- test(e2e): stop reporting superseded and third-party cancellations as failures (#1687)
- test(e2e): stop the gate passing through outages: settle the network, never cache e2e (#1691)
- test(jest): add a ratchet so vacuous specs can only shrink (#1693)
- test(portal): cancellation policy journey, plus fixes for a raw i18n key and a lint false positive (#1689)
- test(portal): webhook journey, plus fix for the list not loading on reload (#1688)
- test(travel-inventory): extract shared photos-requirement test helper (#1598)
- test(workbench): add storybook sweep that renders every story as a ci gate (#1686)
