From 09ed45e8f2b7536d412b3ef8b8c8dae030252cce Mon Sep 17 00:00:00 2001 From: Zihua Li Date: Mon, 13 May 2024 13:14:30 +0800 Subject: [PATCH] Regenerate CHANGELOG from GitHub releases (#4199) --- .github/workflows/changelog.yml | 22 ++ CHANGELOG.md | 375 ++++++++++++++++++-------------- package-lock.json | 273 ++++++++++++++++++++--- package.json | 1 + scripts/changelog.mjs | 68 ++++++ scripts/release.js | 48 +--- 6 files changed, 552 insertions(+), 235 deletions(-) create mode 100644 .github/workflows/changelog.yml create mode 100644 scripts/changelog.mjs diff --git a/.github/workflows/changelog.yml b/.github/workflows/changelog.yml new file mode 100644 index 0000000000..3c6228b2f4 --- /dev/null +++ b/.github/workflows/changelog.yml @@ -0,0 +1,22 @@ +name: Generate Changelog + +on: + release: + types: [published] + +jobs: + changelog: + runs-on: ubuntu-latest + steps: + - name: Git checkout + uses: actions/checkout@v3 + + - name: Use Node.js + uses: actions/setup-node@v3 + with: + node-version: 20 + + - run: npm ci + - run: node ./scripts/changelog.mjs + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/CHANGELOG.md b/CHANGELOG.md index 05562e9d9e..df9bd5bec5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,16 +1,18 @@ -# [Unreleased] +# v2.0.1 (2024-05-01) -# 2.0.1 +## Bug Fixes - Prevent overriding of theme's default toolbar settings mistakenly [#4120](https://github.com/quilljs/quill/pull/4120) - Improve typings for methods that return a Delta [#4136](https://github.com/quilljs/quill/pull/4136) - Fix toolbar icons for h3-h6 [#4131](https://github.com/quilljs/quill/pull/4131) -# 2.0.0 +[All changes](https://github.com/quilljs/quill/releases/tag/v2.0.1) + +# v2.0.0 (2024-04-17) We are thrilled to announce the release of Quill 2.0! Please check out the [announcement post](https://slab.com/blog/announcing-quill-2-0/). -### Major Improvements +## Major Improvements - Quill is now a valid ESM package for better ecosystem (e.g. bundlers) and tree-shaking support - Nested Quill support [#3590](https://github.com/quilljs/quill/pull/3590) @@ -20,7 +22,7 @@ We are thrilled to announce the release of Quill 2.0! Please check out the [anno - Auto detect scrolling container [#3840](https://github.com/quilljs/quill/pull/3840) - **Clipboard**: Improve support for pasting from Google Docs and Microsoft Word -### Performance Improvements +## Performance Improvements Quill 2.0 includes many performance optimizations, the most important of which is the improved rendering speed for large content. @@ -28,7 +30,7 @@ Quill 2.0 includes many performance optimizations, the most important of which i - Avoid fetching selections when possible [#3538](https://github.com/quilljs/quill/pull/3538) - No need to setContents when container is empty [#3539](https://github.com/quilljs/quill/pull/3539) -### Code Modernization +## Code Modernization - Migrated to TypeScript - Provided official TypeScript declarations @@ -36,9 +38,9 @@ Quill 2.0 includes many performance optimizations, the most important of which i - Migrated to Playwright for E2E testing - Migrated website to Gatsby -For all commits, please see the [2.0.0 release page](https://github.com/quilljs/quill/releases/tag/v2.0.0). +[All changes](https://github.com/quilljs/quill/releases/tag/v2.0.0) -# 2.0.0-rc.5 +# v2.0.0-rc.5 (2024-04-04) - **Clipboard** Add support for Quill v1 list attributes - Fix overload declarations for `quill.formatText()` and other methods @@ -46,7 +48,9 @@ For all commits, please see the [2.0.0 release page](https://github.com/quilljs/ - Expose Range type - Allow ref for insertBefore to be null -# 2.0.0-rc.4 +[All changes](https://github.com/quilljs/quill/releases/tag/v2.0.0-rc.5) + +# v2.0.0-rc.4 (2024-03-24) - Include source maps for Parchment - **Clipboard** Support pasting links copied from iOS share sheets @@ -54,51 +58,65 @@ For all commits, please see the [2.0.0 release page](https://github.com/quilljs/ - Expose types for Quill options - Remove empty .css.js files generated by bundlers -# 2.0.0-rc.3 +[All changes](https://github.com/quilljs/quill/releases/tag/v2.0.0-rc.4) + +# v2.0.0-rc.3 (2024-03-16) - Fix `Quill#getSemanticHTML()` for list items - Remove unnecessary Firefox workaround - **Clipboard** Fix redundant newlines when pasting from external sources - Add `formats` option for specifying allowed formats -# 2.0.0-rc.2 +[All changes](https://github.com/quilljs/quill/releases/tag/v2.0.0-rc.3) + +# v2.0.0-rc.2 (2024-02-15) - Fix toolbar button state not updated in some cases - Narrower `BubbleTheme.tooltip` type - Fix `Selection#getBounds()` when starting range at end of text node - Improve compatibility with esbuild -# 2.0.0-rc.1 +[All changes](https://github.com/quilljs/quill/releases/tag/v2.0.0-rc.2) + +# v2.0.0-rc.1 (2024-02-12) + +- Remove unnecessary lodash usages. -- Remove unnecessary lodash usages +[All changes](https://github.com/quilljs/quill/releases/tag/v2.0.0-rc.1) -# 2.0.0-rc.0 +# v2.0.0-rc.0 (2024-02-03) -- **Clipboard** Convert newlines between inline elements to a space -- **Clipboard** Avoid generating unsupported formats on paste -- **Clipboard** Improve support for pasting from Google Docs and Microsoft Word -- **Clipboard** Ignore whitespace between pasted empty paragraphs -- **Syntax** Support highlight.js v10 and v11 +- **Clipboard** Convert newlines between inline elements to a space. +- **Clipboard** Avoid generating unsupported formats on paste. +- **Clipboard** Improve support for pasting from Google Docs and Microsoft Word. +- **Clipboard** Ignore whitespace between pasted empty paragraphs. +- **Syntax** Support highlight.js v10 and v11. -# 2.0.0-beta.2 +[All changes](https://github.com/quilljs/quill/releases/tag/v2.0.0-rc.0) -- Fix IME not working correctly in Safari -- **Clipboard** Support paste as plain text -- Fix `Quill.getText()` not respecting `length` parameter -- **History** Fix redo shortcut not working on Linux and Windows +# v2.0.0-beta.2 (2024-01-30) -# 2.0.0-beta.1 +- Fix IME not working correctly in Safari. +- **Clipboard** Support paste as plain text. +- Fix `Quill.getText()` not respecting `length` parameter. +- **History** Fix redo shortcut not working on Linux and Windows. -- Fix syntax label from "Javascript" to "JavaScript" -- Fix typing errors for emitter -- Inline SVG images for easier bundler setup -- Improve typing for Registry +[All changes](https://github.com/quilljs/quill/releases/tag/v2.0.0-beta.2) -# 2.0.0-beta.0 +# v2.0.0-beta.1 (2024-01-21) + +- Fix syntax label from "Javascript" to "JavaScript". +- Fix typing errors for emitter. +- Inline SVG images for easier bundler setup. +- Improve typing for Registry. + +[All changes](https://github.com/quilljs/quill/releases/tag/v2.0.0-beta.1) + +# v2.0.0-beta.0 (2023-12-08) In the upcoming 2.0 release, Quill has been significantly modernized. Leveraging the latest browser-supported APIs, Quill now delivers a more efficient and reliable editing experience. -### Major Improvements +## Major Improvements - Nested Quill support [#3590](https://github.com/quilljs/quill/pull/3590) - Improved IME and spell corrector support [#3807](https://github.com/quilljs/quill/pull/3807) @@ -106,16 +124,15 @@ In the upcoming 2.0 release, Quill has been significantly modernized. Leveraging - **History**: Record selection in history module [#3823](https://github.com/quilljs/quill/pull/3823) - Auto detect scrolling container [#3840](https://github.com/quilljs/quill/pull/3840) -### Performance Improvements +## Performance Improvements -Quill 2.0 includes many performance optimizations, -the most important of which is the improved rendering speed for large content. +Quill 2.0 includes many performance optimizations, the most important of which is the improved rendering speed for large content. - Improve inserting performance [#3815](https://github.com/quilljs/quill/pull/3815) - Avoid fetching selections when possible [#3538](https://github.com/quilljs/quill/pull/3538) - No need to setContents when container is empty [#3539](https://github.com/quilljs/quill/pull/3539) -### Code Modernization +## Code Modernization - Migrated to TypeScript - Provided official TypeScript declarations @@ -123,48 +140,32 @@ the most important of which is the improved rendering speed for large content. - Migrated to Playwright for E2E testing - Migrated website to Gatsby -### All Changes - -- Fix UI node interactions with line-level navigation shortcuts [#3898](https://github.com/quilljs/quill/pull/3898) -- Use `` instead of `` for Strike format [Commit](https://github.com/quilljs/quill/commit/16427683890374ed5acba96765757c44f5d5f2f5) -- **Keyboard**: Backspace will keep the format when previous line is empty [#3013](https://github.com/quilljs/quill/pull/3013) -- **Keyboard**: Discontinue inline formats on enter [#3428](https://github.com/quilljs/quill/pull/3428) -- Fix length mismatch when copying code [#3028](https://github.com/quilljs/quill/pull/3028) -- Keep list numbers continuous when separated by certain elements [#3086](https://github.com/quilljs/quill/pull/3086) -- Header/paragraph doesn't reset list numbering in Firefox [#3272](https://github.com/quilljs/quill/pull/3272) -- Fix `Quill#setContents()` on block embed ending [Commit](https://github.com/quilljs/quill/commit/84d22342d5e3eb33453d4601d2c7f55d26b47495) -- Track all implicit newline indexes and shift for delete [Commit](https://github.com/quilljs/quill/commit/cf101f681158a48b1b477c1544680cc9614425ae) -- **Clipboard**: Fix pasting in checklist does not preserve indentation [#3064](https://github.com/quilljs/quill/pull/3064) -- **Clipboard**: Prefer file over html when uploading [Commit](https://github.com/quilljs/quill/commit/e164f12603f646d919c853a7db02137399dbf696) -- **Clipboard**: Keep newlines in pre tag [#3687](https://github.com/quilljs/quill/pull/3687) -- **Clipboard**: Cut across lines shouldn't affect the formatting of the line above [#3286](https://github.com/quilljs/quill/pull/3286) -- getLeaf() should ignore non-leaf blots [#3489](https://github.com/quilljs/quill/pull/3489) -- **Selection**: Fix getBounds of empty text nodes [#3491](https://github.com/quilljs/quill/pull/3491) -- Keep cursor unlinked to avoid elements being pushed down inside [#3534](https://github.com/quilljs/quill/pull/3534) -- Fix combineFormats with multiple values repeated [#3336](https://github.com/quilljs/quill/issues/3336) -- Fix selection-change not firing on DOM mutations [#3591](https://github.com/quilljs/quill/pull/3591) -- Improve Tab handling in code block [#3593](https://github.com/quilljs/quill/pull/3593) -- Add SMS to link protocol whitelist [#2851](https://github.com/quilljs/quill/pull/2851) -- Fix embed inherits formats unexpectedly [#3783](https://github.com/quilljs/quill/pull/3783) -- Fix HTML and Delta not matching [#3784](https://github.com/quilljs/quill/pull/3784) -- Fix inline embed insertions with applyDelta() [#3793](https://github.com/quilljs/quill/pull/3793) -- Fix inserting newlines into formatted text [#3582](https://github.com/quilljs/quill/pull/3582) -- **History**: Pass source for history actions [#3514](https://github.com/quilljs/quill/pull/3514) -- **History**: Handle native undo/redo [#3115](https://github.com/quilljs/quill/pull/3115) -- Fix block embed attributor errors [#3825](https://github.com/quilljs/quill/pull/3825) -- **Clipboard**: getHTML() should include outer tag when range is entire line [#3850](https://github.com/quilljs/quill/pull/3850) - -# 1.3.6 +[All changes](https://github.com/quilljs/quill/releases/tag/v2.0.0-beta.0) + +# v1.3.7 (2019-09-09) + +Security related bug fixes. + +- https://app.snyk.io/vuln/npm:extend:20180424 +- https://www.npmjs.com/advisories/1039 + +Thank you [@danfuzz](https://github.com/danfuzz), [@danielw93](https://github.com/danielw93), [@jonathanlloyd](https://github.com/jonathanlloyd), and [@k-sai-kiranmayee](https://github.com/k-sai-kiranmayee) for your contributions to this release. + +[All changes](https://github.com/quilljs/quill/releases/tag/v1.3.7) + +# v1.3.6 (2018-03-12) - Make picker accessible [#1999](https://github.com/quilljs/quill/pull/1999) - Fix Japanese composition in Chrome 65 [#2009](https://github.com/quilljs/quill/issues/2009) Thanks to [@berylw](https://github.com/berylw) and [@erinsinger93](https://github.com/erinsinger93) for contributions to this release! -# 1.3.5 +[All changes](https://github.com/quilljs/quill/releases/tag/v1.3.6) + +# v1.3.5 (2018-01-22) - Fix indent preservation of a checked checklist item [#1818](https://github.com/quilljs/quill/issues/1818) -- Added the asterisk "\*" character as a shortcut to trigger bullet list formatting [#1819](https://github.com/quilljs/quill/pull/1819) + - added as a shortcut to trigger bullet list formatting [#1819](https://github.com/quilljs/quill/pull/1819) - Fix pasting text-align styles [#1873](https://github.com/quilljs/quill/issues/1873) - Fix cursor position after dangerouslyPasteHTML [#1886](https://github.com/quilljs/quill/issues/1886) - Fix value of history stack in text-change handler [#1906](https://github.com/quilljs/quill/pull/1906) @@ -172,14 +173,18 @@ Thanks to [@berylw](https://github.com/berylw) and [@erinsinger93](https://githu Thank you [@araruna](https://github.com/araruna), [@bryanrsmith](https://github.com/bryanrsmith), [@haugstrup](https://github.com/haugstrup), [@icylace](https://github.com/icylace), [@leimig](https://github.com/leimig), [@LFDM](https://github.com/LFDM), [@nikparo](https://github.com/nikparo), [@rafpaf](https://github.com/rafpaf) and [@vk2sky](https://github.com/vk2sky) for your contributions to this release. -# 1.3.4 +[All changes](https://github.com/quilljs/quill/releases/tag/v1.3.5) + +# v1.3.4 (2017-11-06) - Loosen dependency specification [#1748](https://github.com/quilljs/quill/issues/1748) - Loosen list autofill constraint [#1749](https://github.com/quilljs/quill/issues/1749) Thanks to [@danfuzz](https://github.com/danfuzz) and [@SoftVision-CarmenFat](https://github.com/SoftVision-CarmenFat) for contributions to this release! -# 1.3.3 +[All changes](https://github.com/quilljs/quill/releases/tag/v1.3.4) + +# v1.3.3 (2017-10-09) - Fix `getFormat` with no parameters while editor is not focused [#1548](https://github.com/quilljs/quill/issues/1548) - Remove automatic highlighting across embeds [#1691](https://github.com/quilljs/quill/issues/1691) @@ -189,7 +194,9 @@ Thanks to [@danfuzz](https://github.com/danfuzz) and [@SoftVision-CarmenFat](htt Thank you [@altschuler](https://github.com/altschuler), [@arrocke](https://github.com/arrocke), [@guillaumepotier](https://github.com/guillaumepotier), [@sferoze](https://github.com/sferoze) and [@volser](https://github.com/volser) for your contributions to this release. -# 1.3.2 +[All changes](https://github.com/quilljs/quill/releases/tag/v1.3.3) + +# v1.3.2 (2017-09-04) - Pasting into code block should always paste as code [#1624](https://github.com/quilljs/quill/issues/1624) - Fix removing embed selection when arrow keys change selection [#1633](https://github.com/quilljs/quill/issues/1633) @@ -199,14 +206,18 @@ Thank you [@altschuler](https://github.com/altschuler), [@arrocke](https://githu Thanks to [@abramz](https://github.com/abramz), [@amitm02](https://github.com/amitm02), [@eamodio](https://github.com/eamodio), [@HWliao](https://github.com/HWliao), [@mmitis](https://github.com/mmitis), [@nelsonpecora](https://github.com/nelsonpecora), [@nipunjain87](https://github.com/nipunjain87), and [@ValueBerry](https://github.com/ValueBerry) for contributions to this release! -# 1.3.1 +[All changes](https://github.com/quilljs/quill/releases/tag/v1.3.2) + +# v1.3.1 (2017-08-07) - Fix placeholder when emptying text [#1594](https://github.com/quilljs/quill/issues/1594) - Fix inserting newline after header [#1616](https://github.com/quilljs/quill/issues/1616) Thank you [@Natim](https://github.com/Natim) and [@stephenLYao](https://github.com/stephenLYao) for your contributions to this release. -# 1.3.0 +[All changes](https://github.com/quilljs/quill/releases/tag/v1.3.1) + +# v1.3.0 (2017-07-17) Add `matchVisual` [configuration](https://quilljs.com/docs/modules/clipboard/#configuration) to Clipboard. @@ -224,7 +235,9 @@ Add `matchVisual` [configuration](https://quilljs.com/docs/modules/clipboard/#co Thanks to [@alexkrolick](https://github.com/alexkrolick), [@amitm02](https://github.com/amitm02), [@Christilut](https://github.com/Christilut), [@danielschwartz](https://github.com/danielschwartz), [@emanuelbsilva](https://github.com/emanuelbsilva), [@ersommer](https://github.com/ersommer), [@fiurrr](https://github.com/fiurrr), [@jackmu95](https://github.com/jackmu95), [@jmzhang](https://github.com/jmzhang), [@mdpye](https://github.com/mdpye), [@ralrom](https://github.com/ralrom), [@sferoze](https://github.com/sferoze), [@simon-at-fugu](https://github.com/simon-at-fugu), and [@yogadzx](https://github.com/yogadzx) for contributions to this release! -# 1.2.6 +[All changes](https://github.com/quilljs/quill/releases/tag/v1.3.0) + +# v1.2.6 (2017-06-05) - Disable Grammarly by default [#574](https://github.com/quilljs/quill/issues/574) - Fix RTL list spacing [#1485](https://github.com/quilljs/quill/pull/1485) @@ -233,7 +246,9 @@ Thanks to [@alexkrolick](https://github.com/alexkrolick), [@amitm02](https://git Thank you [@amitm02](https://github.com/amitm02), [@benbro](https://github.com/benbro) [@nickbaum](https://github.com/nickbaum), [@stalniy](https://github.com/stalniy) and [@ygrishajev](https://github.com/ygrishajev) for your contributions to this release. -# 1.2.5 +[All changes](https://github.com/quilljs/quill/releases/tag/v1.2.6) + +# v1.2.5 (2017-05-29) - Fix cursor shifting to be exclusive of user cursor [#1367](https://github.com/quilljs/quill/issues/1367) - Fix iOS hover state on toolbar [#1388](https://github.com/quilljs/quill/issues/1388) @@ -245,7 +260,9 @@ Thank you [@amitm02](https://github.com/amitm02), [@benbro](https://github.com/b Thanks to [@aliciawood](https://github.com/aliciawood), [@benbro](https://github.com/benbro), [@denis-aes](https://github.com/denis-aes), [@despreju](https://github.com/despreju), [@GlenKPeterson](https://github.com/GlenKPeterson), [@haugstrup](https://github.com/haugstrup), [@jziggas](https://github.com/jziggas), [@RobAley](https://github.com/RobAley), [@sheley1998](https://github.com/sheley1998), [@silverprize](https://github.com/silverprize), and [@yairy](https://github.com/yairy) for contributions to this release! -# 1.2.4 +[All changes](https://github.com/quilljs/quill/releases/tag/v1.2.5) + +# v1.2.4 (2017-04-18) - Fix pasting nested list [#906](https://github.com/quilljs/quill/issues/906) - Fix delete key interaction at end of list [#1277](https://github.com/quilljs/quill/issues/1277) @@ -259,7 +276,9 @@ Thanks to [@aliciawood](https://github.com/aliciawood), [@benbro](https://github Thanks to [@bigggge](https://github.com/bigggge), [@CoenWarmer](https://github.com/CoenWarmer), [@cutteroid](https://github.com/cutteroid), [@jay-cox](https://github.com/jay-cox), [@kiewic](https://github.com/kiewic), [@kloots](https://github.com/kloots), [@MichaelTontchev](https://github.com/MichaelTontchev), [@montlebalm](https://github.com/montlebalm), [@RichardNeill](https://github.com/RichardNeill), and [@vasconita](https://github.com/vasconita) for your contributions to this release. -# 1.2.3 +[All changes](https://github.com/quilljs/quill/releases/tag/v1.2.4) + +# v1.2.3 (2017-03-29) - Fix scrolling when appending new lines [#1276](https://github.com/quilljs/quill/issues/1276) [#1361](https://github.com/quilljs/quill/issues/1361) - Fix binding to explicit shortcut key [#1365](https://github.com/quilljs/quill/issues/1365) @@ -267,13 +286,17 @@ Thanks to [@bigggge](https://github.com/bigggge), [@CoenWarmer](https://github.c Thank you [@artaommahe](https://github.com/artaommahe), [@c-w](https://github.com/c-w), [@EladBet](https://github.com/EladBet), [@emenoh](https://github.com/emenoh), and [@montlebalm](https://github.com/montlebalm) for contributions to this release! -# 1.2.2 +[All changes](https://github.com/quilljs/quill/releases/tag/v1.2.3) + +# v1.2.2 (2017-02-27) - Fix backspace/delete on Windows/Ubuntu [#1334](https://github.com/quilljs/quill/issues/1334) Thanks to [@dinusuresh](https://github.com/dinusuresh) for your contributions to this release. -# 1.2.1 +[All changes](https://github.com/quilljs/quill/releases/tag/v1.2.2) + +# v1.2.1 (2017-02-27) - Fix link removal on Snow theme [#1259](https://github.com/quilljs/quill/issues/1259) - Fix CMD+backspace on empty editor [#1319](https://github.com/quilljs/quill/issues/1319) @@ -281,7 +304,9 @@ Thanks to [@dinusuresh](https://github.com/dinusuresh) for your contributions to Thank you [@danielschwartz](https://github.com/@danielschwartz), [@JedWatson](https://github.com/@JedWatson), [@montlebalm](https://github.com/@montlebalm), and [@simi](https://github.com/@simi) for contributions to this release! -# 1.2.0 +[All changes](https://github.com/quilljs/quill/releases/tag/v1.2.1) + +# v1.2.0 (2017-01-21) Add concept of experimental APIs: they are APIs meant to try out support for use cases we would like to address, but gives flexibility to find the right API interface. As such they are not covered by Semantic Versioning. Several are added to start things off: `find`, `getIndex`, `getLeaf`, `getLine`, `getLines`. @@ -289,7 +314,9 @@ Add concept of experimental APIs: they are APIs meant to try out support for use Thanks to [@haugstrup](https://github.com/haugstrup) for your contributions to this release. -# 1.1.10 +[All changes](https://github.com/quilljs/quill/releases/tag/v1.2.0) + +# v1.1.10 (2017-01-16) - Preserve user selection on API changes [#1152](https://github.com/quilljs/quill/issues/1152) - Fix backspacing into emojis [#1230](https://github.com/quilljs/quill/issues/1230) @@ -298,17 +325,21 @@ Thanks to [@haugstrup](https://github.com/haugstrup) for your contributions to t Thank you [@benbro](https://github.com/benbro), [@haugstrup](https://github.com/haugstrup), [@peterweck](https://github.com/peterweck) and [@sbevels](https://github.com/sbevels) for contributions to this release! -# 1.1.9 +[All changes](https://github.com/quilljs/quill/releases/tag/v1.1.10) -- Flip tooltips when vertically out of bounds [#851](https://github.com/quilljs/quill/issues/851) -- Fix IE11 autolinking and control backspace [#1028](https://github.com/quilljs/quill/issues/1028) -- Only show tooltip when user initiates selection change [#1193](https://github.com/quilljs/quill/issues/1193) -- Fix bug needing to click twice on align [#1220](https://github.com/quilljs/quill/issues/1220) -- Fix cut + pasting videos [#1222](https://github.com/quilljs/quill/issues/1222) +# v1.1.9 (2017-01-02) -Thanks to [@amitguptagwl](https://github.com/amitguptagwl), [@antonlabunets](https://github.com/antonlabunets), [@benbro](https://github.com/benbro), [@eamodio](https://github.com/eamodio) and [@ygrishajev](https://github.com/ygrishajev) for your contributions to this release. +- Support pasting italics from Google Docs [#1185](https://github.com/quilljs/quill/issues/1185) +- Fix setting dropdown picker back to default [#1191](https://github.com/quilljs/quill/issues/1191) +- Fix code-block formatting on empty first line in Firefox [#1195](https://github.com/quilljs/quill/issues/1195) +- Prevent formatting via keyboard shortcuts when not whitelisted [#1197](https://github.com/quilljs/quill/issues/1197) +- Fix select-all copy and overwrite paste in Firefox [#1202](https://github.com/quilljs/quill/issues/1202) + +Thank you [@adfaure](https://github.com/adfaure), [@berndschimmer](https://github.com/berndschimmer), [@CoenWarmer](https://github.com/CoenWarmer), [@montlebalm](https://github.com/montlebalm), and [@TraceyYau](https://github.com/TraceyYau) for contributions to this release! + +[All changes](https://github.com/quilljs/quill/releases/tag/v1.1.9) -# 1.1.8 +# v1.1.8 (2016-12-23) - Support pasting italics from Google Docs [#1185](https://github.com/quilljs/quill/issues/1185) - Fix setting dropdown picker back to default [#1191](https://github.com/quilljs/quill/issues/1191) @@ -318,7 +349,9 @@ Thanks to [@amitguptagwl](https://github.com/amitguptagwl), [@antonlabunets](htt Thank you [@adfaure](https://github.com/adfaure), [@berndschimmer](https://github.com/berndschimmer), [@CoenWarmer](https://github.com/CoenWarmer), [@montlebalm](https://github.com/montlebalm), and [@TraceyYau](https://github.com/TraceyYau) for contributions to this release! -# 1.1.7 +[All changes](https://github.com/quilljs/quill/releases/tag/v1.1.8) + +# v1.1.7 (2016-12-13) - Fix dropdown values reverting to default [#901](https://github.com/quilljs/quill/issues/901) - Add config to prevent scroll jumping on paste [#1082](https://github.com/quilljs/quill/issues/1082) @@ -329,7 +362,9 @@ Thank you [@adfaure](https://github.com/adfaure), [@berndschimmer](https://githu Thanks to [@cutteroid](https://github.com/cutteroid), [@houxg](https://github.com/houxg), [@jasongisstl](https://github.com/jasongisstl), [@nikparo](https://github.com/nikparo), [@sbevels](https://github.com/sbevels), and [sferoze](https://github.com/sferoze) for your contributions to this release. -# 1.1.6 +[All changes](https://github.com/quilljs/quill/releases/tag/v1.1.7) + +# v1.1.6 (2016-12-06) ### Features @@ -342,7 +377,9 @@ Checklists [#759](https://github.com/quilljs/quill/issues/759) support has been Thank you [@jgmediadesign](https://github.com/jgmediadesign) and [@julienbmobile](https://github.com/julienbmobile) for contributions to this release! -# 1.1.5 +[All changes](https://github.com/quilljs/quill/releases/tag/v1.1.6) + +# v1.1.5 (2016-11-07) - Remove unnecessary type attribute in documentation [#1087](https://github.com/quilljs/quill/pull/1087) - Fix chrome 52+ input file label open slow [#1090](https://github.com/quilljs/quill/pull/1090) @@ -350,22 +387,28 @@ Thank you [@jgmediadesign](https://github.com/jgmediadesign) and [@julienbmobile Thank you [@jleen](https://github.com/jleen), [@kaelig](https://github.com/kaelig), and [@YouHan26](https://github.com/YouHan26) for your contributions to this release. -# 1.1.3 +[All changes](https://github.com/quilljs/quill/releases/tag/v1.1.5) + +# v1.1.3 (2016-10-24) - Update quill-delta [delta#2](https://github.com/quilljs/delta/issues/2) - Fix link creation [#1073](https://github.com/quilljs/quill/issues/1073) Thanks to [@eamodio](https://github.com/eamodio) and [@metsavir](https://github.com/metsavir) for contributions to this release! -# 1.1.2 +[All changes](https://github.com/quilljs/quill/releases/tag/v1.1.3) + +# v1.1.2 (2016-10-24) - Fix setContents on already formatted text [#1065](https://github.com/quilljs/quill/issues/1065) - Fix regression [#1067](https://github.com/quilljs/quill/issues/1067) - Improve documentation [#1069](https://github.com/quilljs/quill/pull/1069) [#1070](https://github.com/quilljs/quill/pull/1070) -Thank you [@benbro](https://github.com/benbro), [@derickruiz](https://github.com/derickruiz), [@eamodio](https://github.com/eamodio), [@hallaathrad](https://github.com/hallaathrad), and [@philly385](https://github.com/philly385) for your contributions to this release. +Thank you [benbro](https://github.com/benbro), [derickruiz](https://github.com/derickruiz), [eamodio](https://github.com/eamodio), [hallaathrad](https://github.com/hallaathrad), and [philly385](https://github.com/philly385) for your contributions to this release. -# 1.1.1 +[All changes](https://github.com/quilljs/quill/releases/tag/v1.1.2) + +# v1.1.1 (2016-10-21) ### Bug fixes @@ -379,7 +422,9 @@ Thanks to [@artaommahe](https://github.com/artaommahe), [@benbro](https://github Special thanks to [@DadaMonad](https://github.com/DadaMonad) for contributions on [fast-diff](https://github.com/jhchen/fast-diff) that enabled the [#746](https://github.com/quilljs/quill/issues/746) fix. -# 1.1.0 +[All changes](https://github.com/quilljs/quill/releases/tag/v1.1.1) + +# v1.1.0 (2016-10-17) ### Additions @@ -401,7 +446,9 @@ So a `strict` configuration option has been added. It is true by default so the Thank you [@benbro](https://github.com/benbro), [@cutteroid](https://github.com/cutteroid), [@evansolomon](https://github.com/evansolomon), [@felipeochoa](https://github.com/felipeochoa), [jackmu95](https://github.com/jackmu95), [@joedynamite](https://github.com/joedynamite), [@lance13c](https://github.com/lance13c), [@leebenson](https://github.com/leebenson), [@maartenvanvliet](https://github.com/maartenvanvliet), [@sarbbottam](https://github.com/sarbbottam), [@viljark](https://github.com/viljark), [@w00fz](https://github.com/w00fz) for their contributions to this release. -# 1.0.6 +[All changes](https://github.com/quilljs/quill/releases/tag/v1.1.0) + +# v1.0.6 (2016-09-30) Documentation clarifications and bug fixes. @@ -412,11 +459,9 @@ Documentation clarifications and bug fixes. Thanks to [@dropfen](https://github.com/dropfen), [@evansolomon](https://github.com/evansolomon), [@hallaathrad](https://github.com/hallaathrad), [@janyksteenbeek](https://github.com/janyksteenbeek), [@jackmu95](https://github.com/jackmu95), [@marktron](https://github.com/marktron), [@mcat-ee](https://github.com/mcat-ee), [@unhammer](https://github.com/unhammer), and [@zeke](https://github.com/zeke) for contributions to this release! -# 1.0.5 +[All changes](https://github.com/quilljs/quill/releases/tag/v1.0.6) -Became 1.0.6 with a build/deploy fix. - -# 1.0.4 +# v1.0.4 (2016-09-19) - Fix bubble theme defaults [#963](https://github.com/quilljs/quill/issues/963) - Fix browsers modifying inline nesting order [#971](https://github.com/quilljs/quill/issues/971) @@ -426,28 +471,38 @@ Became 1.0.6 with a build/deploy fix. Thank you [jackmu95](https://github.com/jackmu95), [kristeehan](https://github.com/kristeehan), [ruffle1986](https://github.com/ruffle1986), [sergop321](https://github.com/sergop321), [sferoze](https://github.com/sferoze), and [sijad](https://github.com/sijad) for contributions to this release. -# 1.0.3 +[All changes](https://github.com/quilljs/quill/releases/tag/v1.0.4) + +# v1.0.3 (2016-09-07) - Fix [#928](https://github.com/quilljs/quill/issues/928) Thank you [@scottmessinger](https://github.com/scottmessinger) for the bug report. -# 1.0.2 +[All changes](https://github.com/quilljs/quill/releases/tag/v1.0.3) + +# v1.0.2 (2016-09-07) - Fix building quill.core.js [docs #11](https://github.com/quilljs/quilljs.github.io/issues/11) - Fix regression of [#793](https://github.com/quilljs/quill/issues/793) Thanks to [@eamodio](https://github.com/eamodio) and [@neandrake](https://github.com/neandrake) for their contributions to this release. -# 1.0.0 +[All changes](https://github.com/quilljs/quill/releases/tag/v1.0.2) + +# v1.0.0 (2016-09-06) Quill 1.0 is released! Read the [official announcement](https://quilljs.com/blog/announcing-quill-1-0/). -# 1.0.0-rc.4 +[All changes](https://github.com/quilljs/quill/releases/tag/v1.0.0) + +# v1.0.0-rc.4 (2016-08-31) Fix one important bug [fdd920](https://github.com/quilljs/quill/commit/fdd920250c05403ed9e5d6d86826a00167ba0b09) -# 1.0.0-rc.3 +[All changes](https://github.com/quilljs/quill/releases/tag/v1.0.0-rc.4) + +# v1.0.0-rc.3 (2016-08-29) A few bug fixes, one with with possibly significant implications. See the [issue #889](https://github.com/quilljs/quill/issues/889) and [commit fix](https://github.com/quilljs/quill/commit/be24c62a6234818548658fcb5e1935a0c07b4eb7) for more details. @@ -462,7 +517,9 @@ A few bug fixes, one with with possibly significant implications. See the [issue Thank you [@benbro](https://github.com/benbro), [@cgilboy](https://github.com/cgilboy), [@cutteroid](https://github.com/cutteroid), and [@routman](https://github.com/routman) for contributions to this release! -# 1.0.0-rc.2 +[All changes](https://github.com/quilljs/quill/releases/tag/v1.0.0-rc.3) + +# v1.0.0-rc.2 (2016-08-23) A few bug fixes, including one significant [one](https://github.com/quilljs/quill/issues/883) @@ -474,7 +531,9 @@ A few bug fixes, including one significant [one](https://github.com/quilljs/quil Thanks to [benbro](https://github.com/benbro), [cutteroid](https://github.com/cutteroid), and [CapTec](https://github.com/CapTec) for their contributions to this release. -# 1.0.0-rc.1 +[All changes](https://github.com/quilljs/quill/releases/tag/v1.0.0-rc.2) + +# v1.0.0-rc.1 (2016-08-23) A few bug fixes and performance improvements. @@ -493,7 +552,9 @@ A few bug fixes and performance improvements. Thank you [@benbro](https://github.com/benbro), [@fernandogmar](https://github.com/fernandogmar), [@sachinrekhi](https://github.com/sachinrekhi), [@sferoze](https://github.com/sferoze), and [@stalniy](https://github.com/stalniy) for contributions to this release! -# 1.0.0-rc.0 +[All changes](https://github.com/quilljs/quill/releases/tag/v1.0.0-rc.1) + +# v1.0.0-rc.0 (2016-08-18) Take a look at [Quill 1.0 Release Candidate](https://quilljs.com/blog/quill-1-0-release-candidate-released/) for more details. @@ -545,7 +606,9 @@ A huge thank you to all contributors to through the beta! Special thanks goes to - [@u9520107](https://github.com/u9520107) - [@WriterStat](https://github.com/WriterStat) -# 1.0.0-beta.11 +[All changes](https://github.com/quilljs/quill/releases/tag/v1.0.0-rc.0) + +# v1.0.0-beta.11 (2016-08-03) Fixed some regressive bugs from previous release. @@ -553,11 +616,13 @@ Fixed some regressive bugs from previous release. - Fix activating more than one format before typing [#841](https://github.com/quilljs/quill/issues/841) - Run default matchers before before user defined ones [#843](https://github.com/quilljs/quill/issues/843) -- Fix merging theme configurations [#844](https://github.com/quilljs/quill/issues/844), [#845](845) +- Fix merging theme configurations [#844](https://github.com/quilljs/quill/issues/844), [#845](https://github.com/quilljs/quill/issues/845) Thanks [benbro](https://github.com/benbro), [jackmu95](https://github.com/jackmu95), and [george-norris-salesforce](https://github.com/george-norris-salesforce) for the bug reports. -# 1.0.0-beta.10 +[All changes](https://github.com/quilljs/quill/releases/tag/v1.0.0-beta.11) + +# v1.0.0-beta.10 (2016-08-03) Lots of bug fixes and performance improvements. @@ -586,7 +651,9 @@ Lots of bug fixes and performance improvements. Thanks to [benbro](https://github.com/benbro), [clemmy](https://github.com/clemmy), [crisbeto](https://github.com/crisbeto), [cutteroid](https://github.com/cutteroid), [jackmu95](https://github.com/jackmu95), [kylebragger](https://github.com/kylebragger), [sachinrekhi](https://github.com/sachinrekhi), [stalniy](https://github.com/stalniy), and [tOgg1](https://github.com/tOgg1) for their contributions to this release. -# 1.0.0-beta.9 +[All changes](https://github.com/quilljs/quill/releases/tag/v1.0.0-beta.10) + +# v1.0.0-beta.9 (2016-07-19) Potentially the final beta before a release candidate, if no major issues are discovered. @@ -611,7 +678,9 @@ Potentially the final beta before a release candidate, if no major issues are di Thank you [@benbro](https://github.com/benbro), [@KameSama](https://github.com/KameSama), and [@sachinrekhi](https://github.com/sachinrekhi) for contributions to this release! -# 1.0.0-beta.8 +[All changes](https://github.com/quilljs/quill/releases/tag/v1.0.0-beta.9) + +# v1.0.0-beta.8 (2016-07-08) Weekly beta preview release. The editor is almost ready for release candidacy but a couple cycles will be spent on the Snow and Bubble interfaces. @@ -637,15 +706,13 @@ Image insertion is being reworked in the provided Snow and Bubble themes. The ol - Fix align button active state [#780](https://github.com/quilljs/quill/issues/780) - Fix format text on falsy value [#782](https://github.com/quilljs/quill/issues/782) - Use native cut [#785](https://github.com/quilljs/quill/issues/785) -- Fix initializing document where last line is formatted [#786](https://github.com/quilljs/quill/issues/786) +- Fix inializing document where last line is formatted [#786](https://github.com/quilljs/quill/issues/786) Thanks to [benbro](https://github.com/benbro), [bram2w](https://github.com/bram2w), [clemmy](https://github.com/clemmy), [DadaMonad](https://github.com/DadaMonad), [ersommer](https://github.com/ersommer), [michaeljosephrosenthal](https://github.com/michaeljosephrosenthal), [mmorearty](https://github.com/mmorearty), [mshamaiev-intel471](https://github.com/mshamaiev-intel471), and [sachinrekhi](https://github.com/sachinrekhi) for their contributions to this release. -# 1.0.0-beta.7 - -Became 1.0.0-beta.8 with a fix. +[All changes](https://github.com/quilljs/quill/releases/tag/v1.0.0-beta.8) -# 1.0.0-beta.6 +# v1.0.0-beta.6 (2016-06-21) Weekly beta preview release. @@ -668,7 +735,9 @@ Weekly beta preview release. Thank you [abejdaniels](https://github.com/abejdaniels), [benbro](https://github.com/benbro), [davelozier](https://github.com/davelozier), [fernandogmar](https://github.com/fernandogmar), [KameSama](https://github.com/KameSama), and [WriterStat](https://github.com/WriterStat) for contributions to this release. -# 1.0.0-beta.5 +[All changes](https://github.com/quilljs/quill/releases/tag/v1.0.0-beta.6) + +# v1.0.0-beta.5 (2016-06-14) Weekly beta preview release. @@ -686,7 +755,9 @@ Weekly beta preview release. Thanks to [benbro](https://github.com/benbro), [lukechapman](https://github.com/lukechapman), [sachinrekhi](https://github.com/sachinrekhi), and [saw](https://github.com/saw) for their contributions to this release. -# 1.0.0-beta.4 +[All changes](https://github.com/quilljs/quill/releases/tag/v1.0.0-beta.5) + +# v1.0.0-beta.4 (2016-06-03) Weekly beta preview release. @@ -713,6 +784,10 @@ Weekly beta preview release. Thank you [@benbro](https://github.com/benbro), [@brynjagr](https://github.com/brynjagr), and [@sachinrekhi](https://github.com/sachinrekhi) for contributions to this release. +[All changes](https://github.com/quilljs/quill/releases/tag/v1.0.0-beta.4) + +# v1.0.0-beta.3 (2016-05-25) + # 1.0.0-beta.3 Weekly beta preview release. @@ -742,7 +817,9 @@ Weekly beta preview release. Thanks to [@benbro](https://github.com/benbro), [@Cinamonas](https://github.com/Cinamonas), [@emanuelbsilva](https://github.com/emanuelbsilva), [@jasonmng](https://github.com/jasonmng), [@jonnolen](https://github.com/jonnolen), [@LucVanPelt](https://github.com/LucVanPelt), [@sachinrekhi](https://github.com/sachinrekhi), [@sagacitysite](https://github.com/sagacitysite), [@WriterStat](https://github.com/WriterStat) for their contributions to this release. -# 1.0.0-beta.2 +[All changes](https://github.com/quilljs/quill/releases/tag/v1.0.0-beta.3) + +# v1.0.0-beta.2 (2016-05-15) Weekly beta preview release. Major emphasis on keyboard API and customization. @@ -764,7 +841,7 @@ Weekly beta preview release. Major emphasis on keyboard API and customization. - Allow native handling of backspace [#473](https://github.com/quilljs/quill/issues/473) [#548](https://github.com/quilljs/quill/issues/548) [#565](https://github.com/quilljs/quill/issues/565) - removeFormat() removes last line block formats [#649](https://github.com/quilljs/quill/issues/649) -- Fix text direction icon direction [#654](https://github.com/quilljs/quill/issues/654) +- Fix text direction icon directon [#654](https://github.com/quilljs/quill/issues/654) - Fix text insertion into root scroll [#655](https://github.com/quilljs/quill/issues/655) - Fix focusing on placeholder text in FF [#656](https://github.com/quilljs/quill/issues/656) - Hide placeholder on formatted line [#657](https://github.com/quilljs/quill/issues/657) @@ -772,7 +849,9 @@ Weekly beta preview release. Major emphasis on keyboard API and customization. Thanks to [@anovi](https://github.com/anovi), [@benbro](https://github.com/benbro), [@jbrowning](https://github.com/jbrowning), [@kei-ito](https://github.com/kei-ito), [@quentez](https://github.com/quentez), [@u9520107](https://github.com/u9520107) for their contributions to this release! -# 1.0.0-beta.1 +[All changes](https://github.com/quilljs/quill/releases/tag/v1.0.0-beta.2) + +# v1.0.0-beta.1 (2016-05-10) Weekly beta preview release. @@ -799,46 +878,10 @@ Weekly beta preview release. Thanks to [@benbro](https://github.com/benbro) for the bug reports for this release! -# 1.0.0-beta.0 - -Please see the [Upgrading to 1.0](http://beta.quilljs.com/guides/upgrading-to-1-0/) guide. - -# 0.20.1 - -Patch release for everything prior to Parchment's integration into Quill. - -### Features - -- API for hotkey removal [#110](https://github.com/quilljs/quill/issues/110), [#453](https://github.com/quilljs/quill/pull/453) - -### Bug Fixes - -- Editor jumps to top when clicking formatting buttons [#288](https://github.com/quilljs/quill/issues/288) -- Editor does not preserve bold text when pasted from itself [#306](https://github.com/quilljs/quill/issues/306) -- Focus issues when scrolled down in IE10+ [#415](https://github.com/quilljs/quill/issues/415) -- Error if keyboard shortcut used for unavailable format [#432](https://github.com/quilljs/quill/issues/432) -- Scrolls to cursor if not visible after enter/deletion/paste [#433](https://github.com/quilljs/quill/issues/433) +[All changes](https://github.com/quilljs/quill/releases/tag/v1.0.0-beta.1) -Thanks to [@devtimi](https://github.com/devtimi), [@emannes](https://github.com/emannes), [@ivan-i](https://github.com/ivan-i), [@magus](https://github.com/magus), [@Nick-The-Uncharted](https://github.com/Nick-The-Uncharted), [@rlivsey](https://github.com/rlivsey), [@thomsbg](https://github.com/thomsbg), [@wallylawless](https://github.com/wallylawless) for their bug reports and pull requests! +# v1.0.0-beta.0 (2016-05-04) -# 0.20.0 - -### Breaking Changes - -- `getBounds` now returns `null` instead of throwing an error [#412](https://github.com/quilljs/quill/pull/412) - -### Features - -- Allow `Document` module to be `Quill.require`'d [#400](https://github.com/quilljs/quill/pull/400) -- Paste manager can optionally accept a custom conversion function [#401](https://github.com/quilljs/quill/pull/401) -- Undo manager can optionally only affect user initiated changes [#413](https://github.com/quilljs/quill/pull/413) - -### Bug Fixes - -- Retain formats between lines [#403](https://github.com/quilljs/quill/pull/403) -- Fix bug that allows nested format tags [#406](https://github.com/quilljs/quill/pull/406) -- Flatten nested list instead of truncating on paste [#421](https://github.com/quilljs/quill/issues/421) -- Fix handling Chrome's usage of font-weight instead of tags [#423](https://github.com/quilljs/quill/issues/423) -- Fix bug that allows nested parent tags [#426](https://github.com/quilljs/quill/pull/426) +Please see the [Upgrading to 1.0](http://beta.quilljs.com/guides/upgrading-to-1-0/) guide. -Thank you [@thomsbg](https://github.com/thomsbg), [@yyjhao](https://github.com/yyjhao), [@willrowe](https://github.com/willrowe), [@hryanjones](https://github.com/hryanjones), [@nickretallack](https://github.com/nickretallack) for your contributions to this release! +[All changes](https://github.com/quilljs/quill/releases/tag/v1.0.0-beta.0) diff --git a/package-lock.json b/package-lock.json index 04d72faef2..b69b5098d8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,6 +12,7 @@ "packages/*" ], "devDependencies": { + "execa": "^9.0.2", "npm-run-all": "^4.1.5" }, "engines": { @@ -5702,12 +5703,30 @@ "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.7.2.tgz", "integrity": "sha512-RbhOOTCNoCrbfkRyoXODZp75MlpiHMgbE5MEBZAnnnLyQNgrigEj4p0lzsMDyc1zVsJDLrivB58tgg3emX0eEA==" }, + "node_modules/@sec-ant/readable-stream": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@sec-ant/readable-stream/-/readable-stream-0.4.1.tgz", + "integrity": "sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==", + "dev": true + }, "node_modules/@sinclair/typebox": { "version": "0.27.8", "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", "dev": true }, + "node_modules/@sindresorhus/merge-streams": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-4.0.0.tgz", + "integrity": "sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/@stitches/core": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/@stitches/core/-/core-1.2.8.tgz", @@ -10245,23 +10264,26 @@ } }, "node_modules/execa": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", - "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/execa/-/execa-9.0.2.tgz", + "integrity": "sha512-oO281GF7ksH/Ogv1xyDf1prvFta/6/XkGKxRUvA3IB2MU1rCJGlFs86HRZhdooow1ISkR0Np0rOxUCIJVw36Rg==", "dev": true, "dependencies": { + "@sindresorhus/merge-streams": "^4.0.0", "cross-spawn": "^7.0.3", - "get-stream": "^8.0.1", - "human-signals": "^5.0.0", - "is-stream": "^3.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^5.1.0", - "onetime": "^6.0.0", + "figures": "^6.1.0", + "get-stream": "^9.0.0", + "human-signals": "^7.0.0", + "is-plain-obj": "^4.1.0", + "is-stream": "^4.0.1", + "npm-run-path": "^5.2.0", + "pretty-ms": "^9.0.0", "signal-exit": "^4.1.0", - "strip-final-newline": "^3.0.0" + "strip-final-newline": "^4.0.0", + "yoctocolors": "^2.0.0" }, "engines": { - "node": ">=16.17" + "node": ">=18" }, "funding": { "url": "https://github.com/sindresorhus/execa?sponsor=1" @@ -10460,6 +10482,21 @@ "node": ">=0.8.0" } }, + "node_modules/figures": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-6.1.0.tgz", + "integrity": "sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg==", + "dev": true, + "dependencies": { + "is-unicode-supported": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/file-entry-cache": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", @@ -10816,12 +10853,16 @@ } }, "node_modules/get-stream": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", - "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-9.0.1.tgz", + "integrity": "sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==", "dev": true, + "dependencies": { + "@sec-ant/readable-stream": "^0.4.1", + "is-stream": "^4.0.1" + }, "engines": { - "node": ">=16" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -12144,12 +12185,12 @@ } }, "node_modules/human-signals": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", - "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-7.0.0.tgz", + "integrity": "sha512-74kytxOUSvNbjrT9KisAbaTZ/eJwD/LrbM/kh5j0IhPuJzwuA19dWvniFGwBzN9rVjg+O/e+F310PjObDXS+9Q==", "dev": true, "engines": { - "node": ">=16.17.0" + "node": ">=18.18.0" } }, "node_modules/iconv-lite": { @@ -12745,12 +12786,12 @@ } }, "node_modules/is-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-4.0.1.tgz", + "integrity": "sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==", "dev": true, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -12798,6 +12839,18 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-unicode-supported": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-2.0.0.tgz", + "integrity": "sha512-FRdAyx5lusK1iHG0TWpVtk9+1i+GjrzRffhDg4ovQ7mcidMQ6mj+MhKPmvh7Xwyv5gIS06ns49CA7Sqg7lC22Q==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-weakmap": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", @@ -14829,6 +14882,18 @@ "node": ">=4" } }, + "node_modules/parse-ms": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-4.0.0.tgz", + "integrity": "sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/parse5": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", @@ -15336,6 +15401,21 @@ "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", "dev": true }, + "node_modules/pretty-ms": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-9.0.0.tgz", + "integrity": "sha512-E9e9HJ9R9NasGOgPaPE8VMeiPKAyWR5jcFpNnwIejslIhWqdqOrb2wShBsncMPUb+BcCd2OPYfh7p2W6oemTng==", + "dev": true, + "dependencies": { + "parse-ms": "^4.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/prism-react-renderer": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/prism-react-renderer/-/prism-react-renderer-2.3.1.tgz", @@ -16910,12 +16990,12 @@ } }, "node_modules/strip-final-newline": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", - "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-4.0.0.tgz", + "integrity": "sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw==", "dev": true, "engines": { - "node": ">=12" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -18280,6 +18360,133 @@ } } }, + "node_modules/vitest/node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/vitest/node_modules/execa": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", + "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^8.0.1", + "human-signals": "^5.0.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": ">=16.17" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/vitest/node_modules/get-stream": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", + "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", + "dev": true, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/vitest/node_modules/human-signals": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", + "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", + "dev": true, + "engines": { + "node": ">=16.17.0" + } + }, + "node_modules/vitest/node_modules/is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/vitest/node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/vitest/node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/vitest/node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/vitest/node_modules/strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/vitest/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, "node_modules/w3c-keyname": { "version": "2.2.8", "resolved": "https://registry.npmjs.org/w3c-keyname/-/w3c-keyname-2.2.8.tgz", @@ -19001,6 +19208,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/yoctocolors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/yoctocolors/-/yoctocolors-2.0.0.tgz", + "integrity": "sha512-esbDnt0Z1zI1KgvOZU90hJbL6BkoUbrP9yy7ArNZ6TmxBxydMJTYMf9FZjmwwcA8ZgEQzriQ3hwZ0NYXhlFo8Q==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/zwitch": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", diff --git a/package.json b/package.json index 0f60ef8229..695b3f1a57 100644 --- a/package.json +++ b/package.json @@ -45,6 +45,7 @@ }, "engineStrict": true, "devDependencies": { + "execa": "^9.0.2", "npm-run-all": "^4.1.5" } } diff --git a/scripts/changelog.mjs b/scripts/changelog.mjs new file mode 100644 index 0000000000..d2df907c49 --- /dev/null +++ b/scripts/changelog.mjs @@ -0,0 +1,68 @@ +/** + * Fetch the latest release from GitHub and prepend it to the CHANGELOG.md + * Nothing will happen if the latest release is already in the CHANGELOG.md + */ +import { execa } from "execa"; +import { readFile, writeFile } from "node:fs/promises"; +import { fileURLToPath } from "node:url"; +import { dirname, join } from "node:path"; + +const changelogFilename = "CHANGELOG.md"; + +const changeLogFilePath = join( + dirname(fileURLToPath(import.meta.url)), + "..", + changelogFilename +); + +const currentChangeLog = await readFile(changeLogFilePath, "utf-8"); + +const { stdout } = await execa("gh", [ + "release", + "list", + "--exclude-drafts", + "--json=tagName,publishedAt,name,isLatest", +]); + +const release = JSON.parse(stdout).find((release) => release.isLatest); + +if (currentChangeLog.includes(`# ${release.tagName}`)) { + process.exit(0); +} + +const filteredReleaseNote = (note) => { + const ignoreSections = [ + "## new contributors", + "## all changes", + "## other changes", + ]; + ignoreSections.forEach((section) => { + const index = note.toLowerCase().indexOf(section); + if (index > -1) { + note = note.slice(0, index).replace(/#\s*$/, ""); + } + }); + return note.trim(); +}; + +const formatDate = (date) => { + const str = date.toISOString(); + return str.substring(0, str.indexOf("T")); +}; + +const { body } = JSON.parse( + (await execa("gh", ["release", "view", release.tagName, "--json=body"])) + .stdout +); + +const note = `# ${release.tagName} (${formatDate(new Date(release.publishedAt))})\n\n${filteredReleaseNote(body)}\n\n[All changes](https://github.com/quilljs/quill/releases/tag/${release.tagName})\n`; + +await writeFile(changeLogFilePath, `${note}\n${currentChangeLog}`); + +await execa("git", ["add", changelogFilename]); +await execa("git", [ + "commit", + "-m", + `Update ${changelogFilename}: ${release.tagName}`, +]); +await execa("git", ["push", "origin", "main"]); diff --git a/scripts/release.js b/scripts/release.js index e1a79dc2c6..1f62be9328 100755 --- a/scripts/release.js +++ b/scripts/release.js @@ -86,38 +86,9 @@ console.log( `Releasing with version: ${currentVersion} -> ${version} and dist-tag: ${distTag}` ); -/* - * Update version in CHANGELOG.md - */ -console.log("Updating CHANGELOG.md and bumping versions"); -const changelog = fs.readFileSync("CHANGELOG.md", "utf8"); -const UNRELEASED_PLACEHOLDER = "# [Unreleased]"; - -const index = changelog.indexOf(UNRELEASED_PLACEHOLDER); -if (index === -1) { - exitWithError(`Could not find "${UNRELEASED_PLACEHOLDER}" in CHANGELOG.md`); -} -let nextVersionIndex = changelog.indexOf("\n# ", index); -if (nextVersionIndex === -1) { - nextVersionIndex = changelog.length - 1; -} - -const releaseNots = changelog - .substring(index + UNRELEASED_PLACEHOLDER.length, nextVersionIndex) - .trim(); - -fs.writeFileSync( - "CHANGELOG.md", - changelog.replace( - UNRELEASED_PLACEHOLDER, - `${UNRELEASED_PLACEHOLDER}\n\n# ${version}` - ) -); - /* * Bump npm versions */ -exec("git add CHANGELOG.md"); exec(`npm version ${version} --workspaces --force`); exec("git add **/package.json"); exec(`npm version ${version} --include-workspace-root --force`); @@ -164,19 +135,12 @@ exec(`npm publish --tag ${distTag}${dryRun ? " --dry-run" : ""}`, { if (distTag === "experimental") { console.log("Skipping GitHub release for experimental version"); } else { - const filename = `release-note-${version}-${(Math.random() * 1000) | 0}.txt`; - fs.writeFileSync(filename, releaseNots); - try { - const prereleaseFlag = distTag === "latest" ? "--latest" : " --prerelease"; - const releaseCommand = `gh release create v${version} ${prereleaseFlag} -t "Version ${version}" --notes-file "${filename}"`; - if (dryRun) { - console.log(`Skipping: "${releaseCommand}" in dry-run mode`); - console.log(`Release note:\n${releaseNots}`); - } else { - exec(releaseCommand); - } - } finally { - fs.unlinkSync(filename); + const prereleaseFlag = distTag === "latest" ? "--latest" : " --prerelease"; + const releaseCommand = `gh release create v${version} ${prereleaseFlag} -t "Version ${version}" --generate-notes`; + if (dryRun) { + console.log(`Skipping: "${releaseCommand}" in dry-run mode`); + } else { + exec(releaseCommand); } }