From a10be2de05dd9fbd251bab8cca3754e573f5711d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 3 Jun 2024 07:49:15 -0500 Subject: [PATCH 01/95] Bump shiki from 1.6.1 to 1.6.2 (#5888) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [shiki](https://github.com/shikijs/shiki/tree/HEAD/packages/shiki) from 1.6.1 to 1.6.2.
Release notes

Sourced from shiki's releases.

v1.6.2

   🚀 Features

    View changes on GitHub
Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=shiki&package-manager=npm_and_yarn&previous-version=1.6.1&new-version=1.6.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index 681d57e60..33df44a9f 100644 --- a/package.json +++ b/package.json @@ -37,6 +37,6 @@ "markdown-it-deflist": "^3.0.0", "markdown-it-table": "^4.1.1", "sass": "^1.77.4", - "shiki": "^1.6.1" + "shiki": "^1.6.2" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b9d88a615..e0b0cf30f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -58,8 +58,8 @@ importers: specifier: ^1.77.4 version: 1.77.4 shiki: - specifier: ^1.6.1 - version: 1.6.1 + specifier: ^1.6.2 + version: 1.6.2 packages: @@ -375,8 +375,8 @@ packages: '@protobufjs/utf8@1.1.0': resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} - '@shikijs/core@1.6.1': - resolution: {integrity: sha512-CqYyepN4SnBopaoXYwng4NO8riB5ask/LTCkhOFq+GNGtr2X+aKeD767eYdqYukeixEUvv4bXdyTYVaogj7KBw==} + '@shikijs/core@1.6.2': + resolution: {integrity: sha512-guW5JeDzZ7uwOjTfCOFZ2VtVXk5tmkMzBYbKGfXsmAH1qYOej49L5jQDcGmwd6/OgvpmWhzO2GNJkQIFnbwLPQ==} '@sindresorhus/slugify@2.2.1': resolution: {integrity: sha512-MkngSCRZ8JdSOCHRaYd+D01XhvU3Hjy6MGl06zhOk614hp9EOAp5gIkBeQg7wtmxpitU6eAL4kdiRMcJa2dlrw==} @@ -2549,8 +2549,8 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} - shiki@1.6.1: - resolution: {integrity: sha512-1Pu/A1rtsG6HZvQm4W0NExQ45e02og+rPog7PDaFDiMumZgOYnZIu4JtGQeAIfMwdbKSjJQoCUr79vDLKUUxWA==} + shiki@1.6.2: + resolution: {integrity: sha512-X3hSm5GzzBd/BmPmGfkueOUADLyBoZo1ojYQXhd+NU2VJn458yt4duaS0rVzC+WtqftSV7mTVvDw+OB9AHi3Eg==} side-channel@1.0.6: resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} @@ -3355,7 +3355,7 @@ snapshots: '@protobufjs/utf8@1.1.0': {} - '@shikijs/core@1.6.1': {} + '@shikijs/core@1.6.2': {} '@sindresorhus/slugify@2.2.1': dependencies: @@ -5830,9 +5830,9 @@ snapshots: shebang-regex@3.0.0: {} - shiki@1.6.1: + shiki@1.6.2: dependencies: - '@shikijs/core': 1.6.1 + '@shikijs/core': 1.6.2 side-channel@1.0.6: dependencies: From 8a1434b8d99f67dda93dd541a5088f135734ef11 Mon Sep 17 00:00:00 2001 From: Dominik Roszkowski Date: Mon, 3 Jun 2024 21:21:38 +0200 Subject: [PATCH 02/95] Update patterns.md with destructuring of record with named fields (#5875) Co-authored-by: Marya <111139605+MaryaBelanger@users.noreply.github.com> Co-authored-by: Marya Belanger --- examples/language/lib/patterns/destructuring.dart | 11 +++++++++++ src/content/language/patterns.md | 8 ++++++++ 2 files changed, 19 insertions(+) diff --git a/examples/language/lib/patterns/destructuring.dart b/examples/language/lib/patterns/destructuring.dart index b44ad4554..d291b5255 100644 --- a/examples/language/lib/patterns/destructuring.dart +++ b/examples/language/lib/patterns/destructuring.dart @@ -42,6 +42,10 @@ void main() { return ('doug', 25); } + ({String name, int age}) getData() { + return (name: 'doug', age: 25); + } + var json = {}; { @@ -57,6 +61,13 @@ void main() { var (name, age) = userInfo(json); // #enddocregion destructure-multiple-returns-2 } + + { + // #docregion destructure-multiple-returns-3 + final (:name, :age) = + getData(); // For example, return (name: 'doug', age: 25); + // #enddocregion destructure-multiple-returns-3 + } } { // #docregion destructure-class-instances diff --git a/src/content/language/patterns.md b/src/content/language/patterns.md index 78ef57f40..12a1925c1 100644 --- a/src/content/language/patterns.md +++ b/src/content/language/patterns.md @@ -303,6 +303,14 @@ as its subpattern: var (name, age) = userInfo(json); ``` +To destructure a record with named fields using a pattern: + + +```dart +final (:name, :age) = + getData(); // For example, return (name: 'doug', age: 25); +``` + ### Destructuring class instances [Object patterns][object] match against named object types, allowing From 06d639ed8f11dc8074d893e769218314d39d1e0a Mon Sep 17 00:00:00 2001 From: Anthony Sansone Date: Mon, 3 Jun 2024 17:32:21 -0500 Subject: [PATCH 03/95] Clarify capitalization of abbr and acronym (#5876) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Thanks for your contribution! Please replace this text with a description of what this PR is changing or adding and why, list any relevant issues, and review the contribution guidelines below. Fixes #4111 --- - [ ] I’ve reviewed the contributor guide and applied the relevant portions to this PR. - [ ] This PR doesn't contain automatically generated corrections or text (Grammarly, LLMs, and similar). - [ ] This PR follows the [Google Developer Documentation Style Guidelines](https://developers.google.com/style) — for example, it doesn't use _i.e._ or _e.g._, and it avoids _I_ and _we_ (first person). - [ ] This PR uses [semantic line breaks](https://github.com/dart-lang/site-shared/blob/main/doc/writing-for-dart-and-flutter-websites.md#semantic-line-breaks) of 80 characters or fewer.
Contribution guidelines:
- See our [contributor guide](https://github.com/dart-lang/site-www/blob/main/CONTRIBUTING.md) for general expectations for PRs. - Larger or significant changes should be discussed in an issue before creating a PR. - Code changes should generally follow the [Dart style guide](https://dart.dev/effective-dart) and use `dart format`. - Updates to [code excerpts](https://github.com/dart-lang/site-shared/blob/main/doc/code-excerpts.md) indicated by ` --------- Co-authored-by: Marya <111139605+MaryaBelanger@users.noreply.github.com> --- src/content/effective-dart/style.md | 102 +++++++++++++++++----------- 1 file changed, 61 insertions(+), 41 deletions(-) diff --git a/src/content/effective-dart/style.md b/src/content/effective-dart/style.md index bf32e30bf..fc4dd4bce 100644 --- a/src/content/effective-dart/style.md +++ b/src/content/effective-dart/style.md @@ -22,16 +22,14 @@ code. Identifiers come in three flavors in Dart. -* `UpperCamelCase` names capitalize the first letter of each word, including - the first. +* `UpperCamelCase` names capitalize the first letter of each word, including + the first. -* `lowerCamelCase` names capitalize the first letter of each word, *except* - the first which is always lowercase, even if it's an acronym. - -* `lowercase_with_underscores` names use only lowercase letters, - even for acronyms, - and separate words with `_`. +* `lowerCamelCase` names capitalize the first letter of each word, *except* + the first which is always lowercase, even if it's an acronym. +* `lowercase_with_underscores` names use only lowercase letters, + even for acronyms, and separate words with `_`. ### DO name types using `UpperCamelCase` @@ -196,12 +194,12 @@ as in the following cases: We initially used Java's `SCREAMING_CAPS` style for constants. We changed for a few reasons: -* `SCREAMING_CAPS` looks bad for many cases, particularly enum values for - things like CSS colors. -* Constants are often changed to final non-const variables, which would - necessitate a name change. -* The `values` property automatically defined on an enum type is const and - lowercase. +* `SCREAMING_CAPS` looks bad for many cases, + particularly enum values for things like CSS colors. +* Constants are often changed to final non-const variables, + which would necessitate a name change. +* The `values` property defined on an enum type is const and lowercase. + ::: [protobufs.]: {{site.pub-pkg}}/protobuf @@ -209,41 +207,63 @@ changed for a few reasons: ### DO capitalize acronyms and abbreviations longer than two letters like words -Capitalized acronyms can be hard to read, and -multiple adjacent acronyms can lead to ambiguous names. -For example, given a name that starts with `HTTPSFTP`, there's no way -to tell if it's referring to HTTPS FTP or HTTP SFTP. - -To avoid this, acronyms and abbreviations are capitalized like regular words. +Capitalized acronyms can be hard to read, +and multiple adjacent acronyms can lead to ambiguous names. +For example, given an identifier `HTTPSFTP`, +the reader can't tell if it refers to `HTTPS` `FTP` or `HTTP` `SFTP`. +To avoid this, +capitalize most acronyms and abbreviations like regular words. +This identifier would be `HttpsFtp` if referring to the former +or `HttpSftp` for the latter. -**Exception:** Two-letter *acronyms* like IO (input/output) are fully -capitalized: `IO`. On the other hand, two-letter *abbreviations* like -ID (identification) are still capitalized like regular words: `Id`. +Two-letter abbreviations and acronyms are the exception. +If both letters are capitalized in English, +then they should both stay capitalized when used in an identifer. +Otherwise, capitalize it like a word. ```dart tag=good -class HttpConnection {} -class DBIOPort {} -class TVVcr {} -class MrRogers {} - -var httpRequest = ... -var uiHandler = ... -var userId = ... -Id id; +// Longer than two letters, so always like a word: +Http // "hypertext transfer protocol" +Nasa // "national aeronautics and space administration" +Uri // "uniform resource locator" +Esq // "esquire" +Ave // "avenue" + +// Two letters, capitalized in English, so capitalized in an identifier: +ID // "identifier" +TV // "television" +UI // "user interface" + +// Two letters, not capitalized in English, so like a word in an identifier: +Mr // "mister" +St // "street" +Rd // "road" ``` ```dart tag=bad -class HTTPConnection {} -class DbIoPort {} -class TvVcr {} -class MRRogers {} - -var hTTPRequest = ... -var uIHandler = ... -var userID = ... -ID iD; +HTTP // "hypertext transfer protocol" +NASA // "national aeronautics and space administration" +URI // "uniform resource locator" +esq // "esquire" +Ave // "avenue" + +Id // "identifier" +Tv // "television" +Ui // "user interface" + +MR // "mister" +ST // "street" +RD // "road" ``` +When any form of abbreviation comes at the beginning +of a lowerCamelCase identifier, lowercase the identifer: + +```dart +var httpConnection = connect(); +var tvSet = Television(); +var mrRogers = 'hello, neighbor'; +``` ### PREFER using `_`, `__`, etc. for unused callback parameters From 2b87002c9ed8334519efc9bf889467b2dbf4eef9 Mon Sep 17 00:00:00 2001 From: Stanislav Chernyshev Date: Tue, 4 Jun 2024 22:48:40 +0300 Subject: [PATCH 04/95] Added new dart book (#5869) Added information about the new book on Dart. The material is relevant for Dart 3.4 Co-authored-by: Anthony Sansone --- src/_data/books-dart.yml | 7 +++++++ src/content/assets/img/cover/basics-dart.webp | Bin 0 -> 8902 bytes 2 files changed, 7 insertions(+) create mode 100644 src/content/assets/img/cover/basics-dart.webp diff --git a/src/_data/books-dart.yml b/src/_data/books-dart.yml index aec63bf57..09feb6eef 100644 --- a/src/_data/books-dart.yml +++ b/src/_data/books-dart.yml @@ -35,3 +35,10 @@ cover: o-guia-de-dart.webp link: "https://www.casadocodigo.com.br/products/livro-dart" desc: "Fundamentos, prática, conceitos avançados e tudo mais. Embarque neste livro que te guiará no aprendizado de Dart.
Fundamentals, practice, the concepts and everything. Embark on a journey of learning Dart in Portuguese." +- title: "Основы Dart" + authors: + - Stanislav Chernyshev + publisher: Издательский дом «Питер» + cover: basics-dart.webp + link: "https://www.piter.com/collection/biblioteka-programmista/product/osnovy-dart" + desc: "Книга «Основы Dart» адресована тем, кто интересуется этим удивительным языком программирования. Вы узнаете об истории создания, синтаксисе и особенностях языка, таких как встроенные типы данных, и многом другом. В главе 2 вас ждет проект, который будет изменяться и расти вместе с вашими знаниями и навыками, а к главе 6 преобразится в полноценное клиент-серверное приложение. После каждой новой итерации проекта, вас будут ждать предложения по внесению изменений в его кодовую базу, что позволит прокачать свои hard-скиллы. Исходный код рассматриваемых в книге примеров можно найти в GitHub-репозитории автора (весь код в книге соответствует Dart 3.4)." diff --git a/src/content/assets/img/cover/basics-dart.webp b/src/content/assets/img/cover/basics-dart.webp new file mode 100644 index 0000000000000000000000000000000000000000..5c2694d264b6a42b5e4ee5237e4e32fa743cba7e GIT binary patch literal 8902 zcmaiZbx>T-w(j5wE(rmG4iF>^Gw9&%9)bmeyUySeEJ$z$O9%w_-~1PSgo z^Z1>2&b{}KSNC<*uDyEg@9U-2UDaDtQBJNE2mt8HN@?h52mzz9tYL>?)foz1`i)Ul<2U`1F8J)8&aij1`R+no-bW`N(x=MgF- z;%s}ej)`$T1Y8^~WcCpy51d`0b~4&C8&Ev+ZStreXVsgT7n!qdP5%A956BCo^=#Od z@pbEJKt5_$yzVXmm5)TsdY)HY(;bVeAOQg~$R-rsec=&m5PS=sGIpk$L$w6-q3Dj$ z?)UG&_pnjaH@d6VzJO)%tvhU#APR&+&6PaNAQ9&QIO282w{25M)B{0)9P$Pgb%xr+ z7{e&0J81fWL@l?)v=QAg-+jIey+m@{{y@@=8E+e#BQG9uFRQPJ9<0|#cZG+ql^?)G zFV;~5ZA~b{hjwJ|U1G1XjVPeS_?G1wc5K{8w<@M6midsJ6<`?f8)@PP2w*~nA@NQV z?`BY_BGj&z2NL4}`WNRH&S}M-@mgCsaw?$uHUhbVRKFSRCvp~72xvi(+|XST-6!9m zZj295TLH%bi6|7R`Y;g%YZzS+w+NW5xHXHiN9iIf9*iarRonk`EA{_)_QQ1K*C)d? zEe?&p_~ex4W47G&&VDgvO{Zv20t*ubthixh3S!nq>E~$#8s8<}50_SaWAMSyx2TeQ z@`{i2Bys6ofC!lgul?8cHK#wXJPcbpZWLI2Z9y~VmAUM~+@FB2CF)&r&>9{B(4TIeYZUeeBFa;A{#ubGMVreK?wZsg;Gh&E#c<{EnS)7?d)md; z`t8KA>>ZYgA`^VF&DebAhXqT*uz_(KS7b!W%xEW%rOV=(8N$KFU8&By<0Iv*h%o6x z!IC|k+*gbG{b*@{q9R7HKI&YoUd(}ie$0VrLGo0vkyPZ`L5$G5;=QN+_9D9({N`1vX^vYj2+GcIikVE^cYJQI};xmEuMYBn@64X#w=`MVC!;;Cc+z80+hZ$xh~7=A!f>OK7e1Mdoirk~IIP4DT(vsCajHJ;kBe z+pK_)+@5#PUmD7KBu&4b8o6>MdNhc@U#A;@e$TiI=@UG>+u`j2xZ3B*0rY<8#fHpc z2&w=8NTkIA>h4RXV#chv0Sa}X(r|vZan%LD+N`R<@4%1OwWOpMvGv?=z`8m+Nz-%HV(7Zs)NwpFV3k6M*R6lYhc&rJzkX zpEfQqva`JLy+zoj6#-)DWGG}H#qYP{*!ca5y>1Qf44?nu({4x8z--31*#14u@nc@C z-l}!`6Xeuxtkx6j%DkD)?k{xrT@dtZ#*lbM3Smw<4{vRd4@|3O9x>S?mIW43<^LJ- z{b1nlb8_|8B-7CcdQ_Y3zGYv z+(KR@JG`Zm%48xToTM9kDt`S^$E5yggK%k)HjA*aji8sM;5uM1@jh1+($uc4dWMaG3HZ8ff@2{9N&&ri=iS!LJII1)9gkUt?^uuVVD z9Dmk5zP$x3F)-8-mr)gcDH4R*zY=}@Y~%XXuTDs}O`7xbX-<*!<{bWXJvTR2reibW z%ao_ISp*uv3rkgsolUq!FKMr^mdqY#8?Z9btt&@pf`V_t8bru9S$@pDl$CQmt)d*g z8rm`toq5uE#mc8bOBY)`SLFeMGZt{<(%qG1^Mq;VGo9_7urtOXIW_-iW8E5uvd;{rh9T?`@^Ur#z|HO zzsxNJ*6-V|(K$CbGMeGbj?w0_xl>h_it{?^CynE_u$8wYt_=v;nbp@oPx7se~Cq`cpJkv6Er!&2= zqj7q8k;QcHNMVPE{@zB4f(-~dku)Z|$x1hQ>PYP-T^0TALzvzUHD$1&PS*0o*1*=zVx5pYod80emrLL2E}D{*CzV;;xCT5 zw?p1X`fUw)1$U!+N`SgwK4e7M#QK2YXLMSwor^pVhNOS!yo|8B)y!Vp{BQ~C#?|ZW z8`;NiaVEu zg8Nn=9XmkkX%!R_wynA_cHYQg!?Ze~kJI=uf4}rb zhu+0uQrI@yDXsjhMOyk$vA=^YmH8}6kg-QidzCA5ho${W#vHsXYm|L$(alE$NyR!` zUTAM5b5v1q{MCaKmvp3xF4j@MFCjTwa9(uDLOWnl(5*H>xl}E|s_7|g8aN#izB;X% zTW0`$6E0UjB-5wQoU-yoEpSr?{hfJyNA9?^oi&vD+TDICa0)?{>dzXJ>#% zWg(9~{@UuDv@4eTP`Qjnlt3lHshEaEAuTaL(^9EE*6<=MJT){5GipLl!Dv8k%dpd01`9d(P^0;y^r@GGM!({254QtYsNUO@Q=^-lqn4V0#T`tp85f23H@o@n#z9*tRz>|XMY zqQBj&no$L@C0-Mrg6kJzJ<6L)ntO#P|2{3<_(tpXbs{nyE+ZlGW~VDEYB-FDP5i2U zJ7A4Efy#MI=(+Uve)C{!gm)Y%`OdRF9EKwesWug!3RRhCyBvM1o~IZ&{L>s~`2}p3 zei_WSlgC-+@Qm}EK>2GSu>?)bx*!nVZ#1{9k*E+`%|bzBPcIbhAAkrn!-t;EI`3jAXABrYVwc z_h_>t!p@kW;HmGFzOq?@$BnRT0llsS4ErrkPYMl;lmP+l4c~&e2NR)< zbUzPAbM5#>@88dAmh-1Vb*GAierJTP&8=}iX`89#(@iz-BU2%;Vd`$YOuDh!yx4VY zN?w*v*Rdx5*!Pz6$4<)b`21T7M}mcyXtb%cF*YjPcCYZK$+!b-i(ecz+LLvBArd3@ny$?f^Po zmEd4b-Nq~LwT!#O;@7d6|z8|K%V-Pd}g{Y;^K+YhEORzN%CNq!f!X2 zxfmZv2gMg}e;t2pvNlp~Ybbbi-S4~-^j$1uSI=b@{;~8)@$Isf;S>21liz6f@uz-V zTV!$Nw;bGGR89HfY5nqd$W3?+J|ac=NeWcIs_+)`HS^L&oit3882Yj*1$BeuPC?v29PhWla;wsatCPat`-J=qmT43Wtw{t)X2{f;|Tu&^k9(X#9d09 zy1tv{gd2hSWB)wSYD_1z-a%uxJB@s?$Q8*8Ghb|eS$E2>dqbm|D66XR@xuu6*vPM! z;^#=0_}U9j+BDs2`_sC=ldL`{OzMEj^xN$?+`SXpVGpkJ*%x3#)V+RBMa4<{NV)jt zj9(uxkIC1a#9Sh@)!&Jaj0^aBu(=Ht5lZk8w$a`F+%XL8Joxwar-^ap%J<;!zMS&7 z_`%JHF#DW=&k7kj&{x8IBTFn+*;N)}*QofT6V22_*q}1Lt`@O2@2mf{( zmFyq7-4PkFTArU7oso@GP-1AbpV(WM!KG{;hbf28Wt|Nm7+mqkvduoj?2`j)oeM7N z9JXV<6gZUkya1xn=2i~ZVy~gpAkOUOn5PDZ6;O^;N)3-f%{>sITx?u;E@(aA!WUW1 zZ)z^I3rbryRw-?HMt%3(7$7m6Epbq#K{ti7gPSqT1mp08hPdv$F)l6V7ql-s8;Kb5 z&jpKCm`8%DXv!;u-#|kNrLjpxd}6X0)#VBtTwmyr&!2dCUc&ktgeX_J(sfVdy@P$R zom|*IHIZ3le=fAKi*?A+c>c3t^zcn}m_np_Y0uBsWEOtR-eL-PuN`ZX1SNJlG9YXc zUaQifab}k2+dogk72pvf+Zi&x`Ahx8g4;%7p$w~C&ksK}y>!<0bNzYL{l4Os4&wvi za7d=|($~P(81U!Sc4c0L?cP*HTi&>g%10gDbe7OG=Cb!VJ%sCm_th>M0)ItNvHG6I z=nm(SQJaY31rFbm&aCqkv|j@esZPr4Tn~7o3--Jp)J>^-qC%V~Fmw8u3i}?a+rP=X zzO1dyg}o|@!A$Ti$QCx5#2`-ox-W`7&U#9r#i}#Ur#;?j;}+{KCD>+4My6&4BTr{e zQe2Uk;jj#H)^U-zZoOy2ckZ?ii^6_<*)F}{n&A2%?+np+=is?g1x{Y!f$GXGR)~^Am|;wJ zfiLWy#eBqp8wObJw31tWqxkzgv&PdP)hp=OybUu0=D#n3~A`_GYi%^m*P!u zAwL;gd7g?s-CLSJeHE~dGhqEm_yTlqFsEv;87hJDW@5~={@6O%Sh{WUY-`ka!JsXc~t=`0f z_!wDInBt(2s{uj{<|widiQ&<=%cg-{rYLnB$IWK%gs0O0Q7|=cQN-U0;|;;H#fe#n z?tHGYZdXiEMG;wF8K)hZY%F#Hn`R7KzJ-EK`#m4Suxy<<4)IW#Ria{B>s1=6>}+iy zm71DWA?`TC?67*rR%$(>(gJTA$XAjm(N{usDsQQmUX3EN<1zwyHHaTME$gUea@jQ! zho&di{|c5a4od7;rpu>@KBHzAKCZbwmu|$0l(s@$F%!m1$dk?pElw5rI2&3X;p+1b z;9$@#-hd(&ijGLOPSI&3_}|$ev--NZ7)U`9g8uvQD0M z+e^YtWe>v{OmCkHWy2{etPZ}Pn@?s07hb1xW-qz+y(_+77cb}6qb8-{i1j_UV!V5@ zuB0h%b!o@3)J}owHxnZbQGt~qv>@-a`r^b_j@RLRm02uk5~I}^lxJI{?kCNWrnNY| ztKFl5Kcfk`qgQ_P7k6LpjQPGKbf;l7anIPcmtHG1^C8lNFdp1D->*JJY)*Y0$#}(+ zNRzy-%^2(kB2h0M#;wCKTWk!{#H%{4?7-AEPeW|j%V~b+OiI?Y|Jr_b5oJy{Li5HXIvdL2 z$Db`WM)$f%s&tCcDtFlTo-=>z@lEYzxW4Yd4#_AZ#VGjpxyv&rJ|YwqS^nnt(Mi=0 zBuPtndZK=*bLvVwbd@L-TWv9heYS_i0moMM{(OB1WTaP|votWS$Oa2Z?}k&j`9x=U z=lEFp6gWHU4^Gz$=(MmFjCigtUZdCZ%`<}J#;uLgtfH)B9~cbidHu|yWkNK&g?()$ zYKJmP>ZCs48o7Q6VtB<)=*SvXxXU+qeYP0b;!C?BmR(p2q(oRgwWj=!O zQojCWy->S+i}DCknxJf{f3_?bFjQP$A&K#mN*MU(@xq6_K$UWAMi^gWWbMoQZ--C> zMpy#pyT9oyW0Mb<&I8TI^EJlu$2@$ty8=E?l1Odh#ZWZ!?&bMY85c zWs`-hzI9rb?D)p7;vwMZOFVy)+}*ttW_qs6+eGR_wFd3G1s6do-jgCgd9ajr|1Dm> zFfRGY{vUJ(L5fKhCAKqiYzMjmR^v`Vi(BORj$S_tE}k1W*a9;@JgA|da^_k%f>wO~ zP2>B?2@6fJ4G_!6K-}xAK0YM-$JhJYHPO%cRf@2aE(;0d zL4NF8Bm=ZN=tYyCY<=uq7&N=C`I4h@zpODavW=s#jokqITTK+pZw6?_0tmj}H@R6i z6dfD{rS!NIQE_kz4;suPn)$L&@cJ$&**s_GSyv0%yFEkseGEtQrEB9e*Bf2?EjqeW zfI{0AQQFr=dI~S!t`QeQ+N(Ij(M=qp=M`M7haH*|&cst!108R=^5^Z%!U{>(64iqv%lO$X&Y^NEt=8zM{6krnB5Iut5-bb6m5@JA)*NNL+bD^o{6c|?G4K-OElH1f z!b#Ble4;O>QWOm?!yhCQ_Ol^XnHj{^`G7OkPhpAL$f&Kjtfxg7T2pEA3<6UTVJc>p z{Gp}Y+nC<(4er_u-J<*W^t{Y*JSKoq1Tm+Y5_fsOo0)X1dW9}xypD)NLZ>op<8Iz8 zz5bdQvhKcNJ6~p`0ExbuC7X9L^DDO-DSR#g^=LV1uNW_5R5X(jZ) zrm(Xk?QRfb3Z*e;GX$KnAT5tF#$WO;X1>H#s^87Mo(=v`zhLb7s%6Bn2W?`G$zLCb zqL$j^&sZqIhbTvHw_lAt6bs$sOG@G;!h^B8!mrJySLG zV%%2`yJc6Mkv#c@q}I}J&?M}dY{Geqz8W3^TxK}PCu~a1exfa!8`z_UYjD8%{!rR+ z9X^o9o0lthvGDt*JC?w3z0A?(3>yIyuL7@Vw4@zVp7N;8?$q)3yTY;(hs^FKhJN<+ z!07JHlkj}6J&8==d2<{mkPyQGcf?x0m7IL3(YiFk7F+xSHEjfnP{g-#JvY3GQw`)V z8Ke}xE)_wq_Weq#xQzH+;hd$aVyf4#Y+g_gd;NLc_k1Sq+c2AN6*g;&28%jt*%65= zTKKSZOP}J%(oV$=dOpb)rx~gw8??flFK$h8% ze2RZMoP;L7<52rgh-%h#6t@RjysvxMq{w|ca$WMUVB7}6t1R_L$qPDeBh5(}^oX%>D?w+>s2mN*H4FD%G z4uGkZk^7});c18s<$(#2g`CUAN8^;B)OaFR0D=AZek4y8fkd^h$0ux1VO^J2DIg1% zf$CFbVCCeF4R)&Yiuaa6&$(jeCRG#}~Tp)wdW&IrN>c&;4gm!S2c;ktMatg;DqnE!+a)BsoG!;V9 z%q8+-8{J{A*eu<-hbW~Sukg74Tqjey#l+h#*7Vruk51V)yQnp!>7`i#3e0yiU=c z`vs44FClL6SqBIbo0`bzmo!+F-wP-zb2S^*X)k zrXAuJEW}{y#0ND={@W{kJ@P%mt-q8L!YwVm-FCQ;bhfDR zap+2*esJSxxih%BmfrAmOm^}j)`*VO68Eb*8^&B@P+$LYGDu~b@M6ka?YF7xUD2Jm zA-|p7Ol&-EOn0Pj5zwh81k{U&)Sj-FUbP7Px=UeB{-ZGM z$=fkC!!JppaAx6rCVfZ*RT=U(%jZ4pMd!%k8=646#A_Rk0`v@XC2eCwr-$T;vm2Tz zKq+RMV%{yyir*&i>m~`}arXtt>M6<*KfV0;|)`M4><9O?g+8X?>N zVV+-3hFd^TPEL}WPX@vVk(8B_fy(jmN%28=r1|+J1%UtNSp1K0|GymYqjB&*b^IT7 c{g3LgS^g3Kt4$v#|JCT0PLJK~^4P}z2N;e03IG5A literal 0 HcmV?d00001 From dc7c42c1fc8f0b58a5997554fd5aa3fc737e55da Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 5 Jun 2024 09:13:08 -0500 Subject: [PATCH 05/95] Bump github/codeql-action from 3.25.7 to 3.25.8 (#5895) Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.25.7 to 3.25.8.
Changelog

Sourced from github/codeql-action's changelog.

CodeQL Action Changelog

See the releases page for the relevant changes to the CodeQL CLI and language packs.

Note that the only difference between v2 and v3 of the CodeQL Action is the node version they support, with v3 running on node 20 while we continue to release v2 to support running on node 16. For example 3.22.11 was the first v3 release and is functionally identical to 2.22.11. This approach ensures an easy way to track exactly which features are included in different versions, indicated by the minor and patch version numbers.

[UNRELEASED]

No user facing changes.

3.25.8 - 04 Jun 2024

  • Update default CodeQL bundle version to 2.17.4. #2321

3.25.7 - 31 May 2024

  • We are rolling out a feature in May/June 2024 that will reduce the Actions cache usage of the Action by keeping only the newest TRAP cache for each language. #2306

3.25.6 - 20 May 2024

  • Update default CodeQL bundle version to 2.17.3. #2295

3.25.5 - 13 May 2024

  • Add a compatibility matrix of supported CodeQL Action, CodeQL CLI, and GitHub Enterprise Server versions to the https://github.com/github/codeql-action/blob/main/README.md. #2273
  • Avoid printing out a warning for a missing on.push trigger when the CodeQL Action is triggered via a workflow_call event. #2274
  • The tools: latest input to the init Action has been renamed to tools: linked. This option specifies that the Action should use the tools shipped at the same time as the Action. The old name will continue to work for backwards compatibility, but we recommend that new workflows use the new name. #2281

3.25.4 - 08 May 2024

  • Update default CodeQL bundle version to 2.17.2. #2270

3.25.3 - 25 Apr 2024

  • Update default CodeQL bundle version to 2.17.1. #2247
  • Workflows running on macos-latest using CodeQL CLI versions before v2.15.1 will need to either upgrade their CLI version to v2.15.1 or newer, or change the platform to an Intel MacOS runner, such as macos-12. ARM machines with SIP disabled, including the newest macos-latest image, are unsupported for CLI versions before 2.15.1. #2261

3.25.2 - 22 Apr 2024

No user facing changes.

3.25.1 - 17 Apr 2024

  • We are rolling out a feature in April/May 2024 that improves the reliability and performance of analyzing code when analyzing a compiled language with the autobuild build mode. #2235
  • Fix a bug where the init Action would fail if --overwrite was specified in CODEQL_ACTION_EXTRA_OPTIONS. #2245

3.25.0 - 15 Apr 2024

  • The deprecated feature for extracting dependencies for a Python analysis has been removed. #2224

... (truncated)

Commits
  • 2e230e8 Merge pull request #2323 from github/update-v3.25.8-18b06dd1d
  • 66ad891 Update changelog for v3.25.8
  • 18b06dd Merge pull request #2322 from github/dependabot/npm_and_yarn/npm-10d82c2911
  • 200dd0c Update checked-in dependencies
  • 2bb35ea bump the npm group with 4 updates
  • 9c15e42 Merge pull request #2321 from github/update-bundle/codeql-bundle-v2.17.4
  • 98e7922 Merge branch 'main' into update-bundle/codeql-bundle-v2.17.4
  • 440350b Add changelog note
  • d4fcc8b Update default bundle to codeql-bundle-v2.17.4
  • add199b Merge pull request #2320 from github/angelapwen/use-linked-in-tests
  • Additional commits viewable in compare view

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github/codeql-action&package-manager=github_actions&previous-version=3.25.7&new-version=3.25.8)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/codeql-analysis.yml | 6 +++--- .github/workflows/scorecards-analysis.yml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 91d6cbf8c..068f06167 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -33,7 +33,7 @@ jobs: # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL - uses: github/codeql-action/init@f079b8493333aace61c81488f8bd40919487bd9f + uses: github/codeql-action/init@2e230e8fe0ad3a14a340ad0815ddb96d599d2aff with: languages: ${{ matrix.language }} # If you wish to specify custom queries, you can do so here or in a config file. @@ -44,7 +44,7 @@ jobs: # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). # If this step fails, then you should remove it and run the build manually (see below) - name: Autobuild - uses: github/codeql-action/autobuild@f079b8493333aace61c81488f8bd40919487bd9f + uses: github/codeql-action/autobuild@2e230e8fe0ad3a14a340ad0815ddb96d599d2aff # ℹ️ Command-line programs to run using the OS shell. # 📚 https://git.io/JvXDl @@ -58,4 +58,4 @@ jobs: # make release - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@f079b8493333aace61c81488f8bd40919487bd9f + uses: github/codeql-action/analyze@2e230e8fe0ad3a14a340ad0815ddb96d599d2aff diff --git a/.github/workflows/scorecards-analysis.yml b/.github/workflows/scorecards-analysis.yml index 6fdef2548..06bfbfcfa 100644 --- a/.github/workflows/scorecards-analysis.yml +++ b/.github/workflows/scorecards-analysis.yml @@ -49,6 +49,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@f079b8493333aace61c81488f8bd40919487bd9f + uses: github/codeql-action/upload-sarif@2e230e8fe0ad3a14a340ad0815ddb96d599d2aff with: sarif_file: results.sarif From 85740665f1f03f006e9cf216d974993c2d4b4ec5 Mon Sep 17 00:00:00 2001 From: Anthony Sansone Date: Thu, 6 Jun 2024 08:11:05 -0500 Subject: [PATCH 06/95] Fix factory constructor example (#5889) Fixes #5615 Fixes #5616 --- src/content/codelabs/dart-cheatsheet.md | 205 ++++++++++++------------ 1 file changed, 103 insertions(+), 102 deletions(-) diff --git a/src/content/codelabs/dart-cheatsheet.md b/src/content/codelabs/dart-cheatsheet.md index 99b83bfd4..7f8f50ba8 100644 --- a/src/content/codelabs/dart-cheatsheet.md +++ b/src/content/codelabs/dart-cheatsheet.md @@ -1,6 +1,6 @@ --- -title: Dart cheatsheet codelab -description: Interactively learn (or relearn) some of Dart's unique features. +title: Dart cheatsheet +description: Learn some of Dart's unique features through DartPad js: [{url: '/assets/js/inject_dartpad.js', defer: true}] --- @@ -11,7 +11,7 @@ but it has a few unique features. This codelab walks you through the most important of these language features. -The embedded editors in this codelab have partially completed code snippets. +The embedded editors in this cheatsheet have partially completed code snippets. You can use these editors to test your knowledge by completing the code and clicking the **Run** button. The editors also contain thorough test code; **don't edit the test code**, but feel free to study it to learn about testing. @@ -114,12 +114,12 @@ int? a; // The initial value of a is null. To learn more about null safety in Dart, read the [sound null safety guide](/null-safety). - ### Code example {:.no_toc} -Try to declare two variables below: -- A nullable `String` named `name` with the value `'Jane'`. -- A nullable `String` named `address` with the value `null`. +Declare two variables in this DartPad: + +* A nullable `String` named `name` with the value `'Jane'`. +* A nullable `String` named `address` with the value `null`. Ignore all initial errors in the DartPad. @@ -157,7 +157,6 @@ void main() {
- ## Null-aware operators Dart offers some handy operators for dealing with values that might be null. One is the @@ -1180,9 +1179,10 @@ void main() { ## Exceptions -Dart code can throw and catch exceptions. In contrast to Java, all of Dart's exceptions are unchecked -exceptions. Methods don't declare which exceptions they might throw, and you aren't required to catch -any exceptions. +Dart code can throw and catch exceptions. +In contrast to Java, all of Dart's exceptions are unchecked. +Methods don't declare which exceptions they might throw and +you aren't required to catch any exceptions. Dart provides `Exception` and `Error` types, but you're allowed to throw any non-null object: @@ -1273,12 +1273,17 @@ abstract class Logger { } void tryFunction(VoidFunction untrustworthy, Logger logger) { - // Invoking this method might cause an exception. - // TODO: Catch and handle them using try-on-catch-finally. - untrustworthy(); + try { + untrustworthy(); + } on ExceptionWithMessage catch (e) { + logger.logException(e.runtimeType, e.message); + } on Exception catch (e) { + logger.logException(e.runtimeType); + } finally { + logger.doneLogging(); + } } - // Tests your solution (Don't edit!): class MyLogger extends Logger { Type? lastType; @@ -1755,17 +1760,19 @@ class Shape { ### Code example {:.no_toc} -Fill in the factory constructor named `IntegerHolder.fromList`, -making it do the following: +Replace the line `TODO();` in the factory constructor +named `IntegerHolder.fromList` to return the following: * If the list has **one** value, - create an `IntegerSingle` with that value. + create an `IntegerSingle` instance using that value. * If the list has **two** values, - create an `IntegerDouble` with the values in order. + create an `IntegerDouble` instance using the values in order. * If the list has **three** values, - create an `IntegerTriple` with the values in order. + create an `IntegerTriple` instance using the values in order. * Otherwise, throw an `Error`. +If you succeed, the console should display `Success!`. + ```dartpad class IntegerHolder { IntegerHolder(); @@ -1778,107 +1785,99 @@ class IntegerHolder { class IntegerSingle extends IntegerHolder { final int a; - IntegerSingle(this.a); + + IntegerSingle(this.a); } class IntegerDouble extends IntegerHolder { final int a; final int b; - IntegerDouble(this.a, this.b); + + IntegerDouble(this.a, this.b); } class IntegerTriple extends IntegerHolder { final int a; final int b; final int c; - IntegerTriple(this.a, this.b, this.c); -} + IntegerTriple(this.a, this.b, this.c); +} -// Tests your solution (Don't edit!): +// Tests your solution (Don't edit from this point to end of file): void main() { final errs = []; - bool _throwed = false; - try { - IntegerHolder.fromList([]); - } on UnimplementedError { - print('Test failed. Did you implement the method?'); - return; - } on Error { - _throwed = true; - } catch (e) { - print('Called IntegerSingle.fromList([]) and got an exception of \n type ${e.runtimeType}.'); - return; + // Run 5 tests to see which values have valid integer holders + for (var tests = 0; tests < 5; tests++) { + if (!testNumberOfArgs(errs, tests)) return; } - - if (!_throwed) { - errs.add('Called IntegerSingle.fromList([]) and didn\'t throw Error.'); - } - try { - final obj = IntegerHolder.fromList([1]); - - if (obj is! IntegerSingle) { - errs.add('Called IntegerHolder.fromList([1]) and got an object of type \n ${obj.runtimeType} instead of IntegerSingle.'); - } else { - if (obj.a != 1) { - errs.add('Called IntegerHolder.fromList([1]) and got an IntegerSingle with \n an \'a\' value of ${obj.a} instead of the expected (1).'); - } - } - } catch (e) { - print('Called IntegerHolder.fromList([]) and got an exception of \n type ${e.runtimeType}.'); - return; + // The goal is no errors with values 1 to 3, + // but have errors with values 0 and 4. + // The testNumberOfArgs method adds to the errs array if + // the values 1 to 3 have an error and + // the values 0 and 4 don't have an error + if (errs.isEmpty) { + print('Success!'); + } else { + errs.forEach(print); } +} +bool testNumberOfArgs(List errs, int count) { + bool _threw = false; + final ex = List.generate(count, (index) => index + 1); + final callTxt = "IntegerHolder.fromList(${ex})"; try { - final obj = IntegerHolder.fromList([1, 2]); - - if (obj is! IntegerDouble) { - errs.add('Called IntegerHolder.fromList([1, 2]) and got an object of type \n ${obj.runtimeType} instead of IntegerDouble.'); - } else { - if (obj.a != 1) { - errs.add('Called IntegerHolder.fromList([1, 2]) and got an IntegerDouble \n with an \'a\' value of ${obj.a} instead of the expected (1).'); - } - - if (obj.b != 2) { - errs.add('Called IntegerHolder.fromList([1, 2]) and got an IntegerDouble \n with an \'b\' value of ${obj.b} instead of the expected (2).'); - } - } + final obj = IntegerHolder.fromList(ex); + final String vals = count == 1 ? "value" : "values"; + // Uncomment the next line if you want to see the results realtime + // print("Testing with ${count} ${vals} using ${obj.runtimeType}."); + testValues(errs, ex, obj, callTxt); + } on Error { + _threw = true; } catch (e) { - print('Called IntegerHolder.fromList([1, 2]) and got an exception \n of type ${e.runtimeType}.'); - return; + switch (count) { + case (< 1 && > 3): + if (!_threw) { + errs.add('Called ${callTxt} and it didn\'t throw an Error.'); + } + default: + errs.add('Called $callTxt and received an Error.'); + } } + return true; +} - try { - final obj = IntegerHolder.fromList([1, 2, 3]); - - if (obj is! IntegerTriple) { - errs.add('Called IntegerHolder.fromList([1, 2, 3]) and got an object of type \n ${obj.runtimeType} instead of IntegerTriple.'); +void testValues(List errs, List expectedValues, IntegerHolder obj, + String callText) { + for (var i = 0; i < expectedValues.length; i++) { + int found; + if (obj is IntegerSingle) { + found = obj.a; + } else if (obj is IntegerDouble) { + found = i == 0 ? obj.a : obj.b; + } else if (obj is IntegerTriple) { + found = i == 0 + ? obj.a + : i == 1 + ? obj.b + : obj.c; } else { - if (obj.a != 1) { - errs.add('Called IntegerHolder.fromList([1, 2, 3]) and got an IntegerTriple \n with an \'a\' value of ${obj.a} instead of the expected (1).'); - } - - if (obj.b != 2) { - errs.add('Called IntegerHolder.fromList([1, 2, 3]) and got an IntegerTriple \n with an \'a\' value of ${obj.b} instead of the expected (2).'); - } - - if (obj.c != 3) { - errs.add('Called IntegerHolder.fromList([1, 2, 3]) and got an IntegerTriple \n with an \'a\' value of ${obj.b} instead of the expected (2).'); - } + throw ArgumentError( + "This IntegerHolder type (${obj.runtimeType}) is unsupported."); } - } catch (e) { - print('Called IntegerHolder.fromList([1, 2, 3]) and got an exception \n of type ${e.runtimeType}.'); - return; - } - if (errs.isEmpty) { - print('Success!'); - } else { - errs.forEach(print); + if (found != expectedValues[i]) { + errs.add( + "Called $callText and got a ${obj.runtimeType} " + + "with a property at index $i value of $found " + + "instead of the expected (${expectedValues[i]})."); + } } } + ```
@@ -1888,17 +1887,18 @@ void main() { check the length of the list, then create and return an `IntegerSingle`, `IntegerDouble`, or `IntegerTriple` as appropriate. - ```dart - factory IntegerHolder.fromList(List list) { - if (list.length == 1) { + Replace `TODO();` with the following code block. + + ```dart + switch (list.length) { + case 1: return IntegerSingle(list[0]); - } else if (list.length == 2) { + case 2: return IntegerDouble(list[0], list[1]); - } else if (list.length == 3) { + case 3: return IntegerTriple(list[0], list[1], list[2]); - } else { - throw Error(); - } + default: + throw ArgumentError("List must between 1 and 3 items. This list was ${list.length} items."); } ``` @@ -2084,9 +2084,10 @@ void main() { ## What's next? -We hope you enjoyed using this codelab to learn or test your knowledge of +We hope you enjoyed using this cheatsheet to learn some of the most interesting features of the Dart language. -Here are some suggestions for what to do now: + +What you can try next includes: * Try [other Dart codelabs](/codelabs). * Read the [Dart language tour](/language). From b4f0968c6dc96917f34357faf6f1547285da3d46 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 7 Jun 2024 10:25:09 -0500 Subject: [PATCH 07/95] Bump firebase-tools from 13.10.2 to 13.11.1 (#5900) --- package.json | 2 +- pnpm-lock.yaml | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 33df44a9f..2aee98678 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ "devDependencies": { "@11ty/eleventy": "3.0.0-alpha.10", "@11ty/eleventy-img": "5.0.0-beta.4", - "firebase-tools": "^13.10.2", + "firebase-tools": "^13.11.1", "hast-util-from-html": "^2.0.1", "hast-util-select": "^6.0.2", "hast-util-to-text": "^4.0.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e0b0cf30f..0878f428a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -19,8 +19,8 @@ importers: specifier: 5.0.0-beta.4 version: 5.0.0-beta.4(encoding@0.1.13) firebase-tools: - specifier: ^13.10.2 - version: 13.10.2(encoding@0.1.13) + specifier: ^13.11.1 + version: 13.11.1(encoding@0.1.13) hast-util-from-html: specifier: ^2.0.1 version: 2.0.1 @@ -1214,8 +1214,8 @@ packages: resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} engines: {node: '>= 0.8'} - firebase-tools@13.10.2: - resolution: {integrity: sha512-vdD2//pncVg0jf2Wxo4jNJVxOiS4yJE7lx60H0xONkVW4P+hg4xe7y0O+RxOzajw4hbrUq4geyRZDQK1VlIKuw==} + firebase-tools@13.11.1: + resolution: {integrity: sha512-n+x0QmzSPVGPbDd9zrobpgQX8H4RNRjvlNAZlmnU3MEviNxRctv0up3mZvNingd47tH1Rf8MYo1yAFQw6er9Ww==} engines: {node: '>=18.0.0 || >=20.0.0'} hasBin: true @@ -4249,7 +4249,7 @@ snapshots: transitivePeerDependencies: - supports-color - firebase-tools@13.10.2(encoding@0.1.13): + firebase-tools@13.11.1(encoding@0.1.13): dependencies: '@google-cloud/cloud-sql-connector': 1.3.0(encoding@0.1.13) '@google-cloud/pubsub': 4.4.0(encoding@0.1.13) From 23fd8ec88c08245e6c67ae9e841ee86854daac9e Mon Sep 17 00:00:00 2001 From: Marya <111139605+MaryaBelanger@users.noreply.github.com> Date: Fri, 7 Jun 2024 11:29:07 -0700 Subject: [PATCH 08/95] Glossary entries for "Subtype" and "Subclass" (#4958) Fixes #4784 --------- Co-authored-by: Anthony Sansone Co-authored-by: Parker Lougheed --- src/content/resources/glossary.md | 57 +++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) diff --git a/src/content/resources/glossary.md b/src/content/resources/glossary.md index 952e212d2..ead48da00 100644 --- a/src/content/resources/glossary.md +++ b/src/content/resources/glossary.md @@ -279,3 +279,60 @@ If not, the pattern _refutes_, or denies, the match. Refutable patterns appear in [_matching contexts_][]. [_matching contexts_]: /language/patterns#matching + +## Subclass + +A _subclass_ is a class that inherits the implementation of another class by using the +[`extends`](/language/extend) keyword, or by [mixin application](#mixin-application). + +```dart +class A extends B {} // A is a subclass of B; B is the superclass of A. + +class B1 extends A with M {} // B1 has the superclass `A with M`, which has the superclass A. +``` + +A subclass relation also implies an associated [subtype](#subtype) relation. +For example, `class A` implicitly defines an associated type `A` +which instances of the class `A` inhabit. +So, `class A extends B` declares not just that the class +`A` is a subclass of `B`, but also establishes that the *type* `A` is a +*subtype* of the type `B`. + +Subclass relations are a subset of subtype relations. +When the documentation says "`S` must be a subtype of `T`", +it's fine for `S` to be a subclass of `T`. +However, the converse is not true: not all subtypes are subclasses. +See the [subtype](#subtype) entry for more information. + +## Subtype + +A _subtype_ relation is where a value of a certain type is substitutable +where the value of another type, the supertype, is expected. +For example, if `S` is a subtype of `T`, +then you can substitute a value of type `S` +where a value of type `T` is expected. + +A subtype supports all of the operations of its supertype +(and possibly some extra operations). +In practice, this means you can assign the value of a subtype +to any location expecting the supertype, +and all of the methods of the supertype are available on the subtype. + +This is true at least statically. +A specific API might not allow the substitution at run time, +depending on its operations. + +Some subtype relations are based on the structure of the type, +like with nullable types (for example, `int` is a subtype of `int?`) +and function types +(for example, `String Function()` is a subtype of `void Function()`). + +Subtypes can also be introduced for classes by +[implementation](/language/classes#implicit-interfaces) +or [inheritance](/language/extend) (direct or indirect): + +```dart +class A implements B {} // A is a subtype of B, but NOT a subclass of B. + +class C extends D {} // C is a subtype AND a subclass of D. +``` From 653f7ea1c3a2e22d844d2da54b1a5413fb1016c1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 10 Jun 2024 11:49:25 -0500 Subject: [PATCH 09/95] Bump shiki from 1.6.2 to 1.6.3 (#5902) --- package.json | 2 +- pnpm-lock.yaml | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index 2aee98678..6b2f25997 100644 --- a/package.json +++ b/package.json @@ -37,6 +37,6 @@ "markdown-it-deflist": "^3.0.0", "markdown-it-table": "^4.1.1", "sass": "^1.77.4", - "shiki": "^1.6.2" + "shiki": "^1.6.3" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0878f428a..c97ebdf18 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -58,8 +58,8 @@ importers: specifier: ^1.77.4 version: 1.77.4 shiki: - specifier: ^1.6.2 - version: 1.6.2 + specifier: ^1.6.3 + version: 1.6.3 packages: @@ -375,8 +375,8 @@ packages: '@protobufjs/utf8@1.1.0': resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} - '@shikijs/core@1.6.2': - resolution: {integrity: sha512-guW5JeDzZ7uwOjTfCOFZ2VtVXk5tmkMzBYbKGfXsmAH1qYOej49L5jQDcGmwd6/OgvpmWhzO2GNJkQIFnbwLPQ==} + '@shikijs/core@1.6.3': + resolution: {integrity: sha512-QnJKHFUW95GnlJLJGP6QLx4M69HM0KlXk+R2Y8lr/x4nAx1Yb/lsuxq4XwybuUjTxbJk+BT0g/kvn0bcsjGGHg==} '@sindresorhus/slugify@2.2.1': resolution: {integrity: sha512-MkngSCRZ8JdSOCHRaYd+D01XhvU3Hjy6MGl06zhOk614hp9EOAp5gIkBeQg7wtmxpitU6eAL4kdiRMcJa2dlrw==} @@ -2549,8 +2549,8 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} - shiki@1.6.2: - resolution: {integrity: sha512-X3hSm5GzzBd/BmPmGfkueOUADLyBoZo1ojYQXhd+NU2VJn458yt4duaS0rVzC+WtqftSV7mTVvDw+OB9AHi3Eg==} + shiki@1.6.3: + resolution: {integrity: sha512-lE1/YGlzFY0hQSyEfsZj18xGrTWxyhFQkaiILALqTBZPbJeYFWpbUhlmTGPOupYB/qC+H6sV4UznJzcEh3WMHQ==} side-channel@1.0.6: resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} @@ -3355,7 +3355,7 @@ snapshots: '@protobufjs/utf8@1.1.0': {} - '@shikijs/core@1.6.2': {} + '@shikijs/core@1.6.3': {} '@sindresorhus/slugify@2.2.1': dependencies: @@ -5830,9 +5830,9 @@ snapshots: shebang-regex@3.0.0: {} - shiki@1.6.2: + shiki@1.6.3: dependencies: - '@shikijs/core': 1.6.2 + '@shikijs/core': 1.6.3 side-channel@1.0.6: dependencies: From 84a53ab8cc9ab3f56efa299cbd4580f3a8a0dd5b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 10 Jun 2024 11:55:38 -0500 Subject: [PATCH 10/95] Bump firebase-tools from 13.11.1 to 13.11.2 (#5903) Bumps [firebase-tools](https://github.com/firebase/firebase-tools) from 13.11.1 to 13.11.2.
Release notes

Sourced from firebase-tools's releases.

v13.11.2

  • Adds a warning to firebase dataconnect:sdk:generate when no generated SDKs are configured.
  • Fixes some cases where firebase init dataconnect did not write project files correctly.
Commits
  • 1462828 13.11.2
  • 7e6b3d0 Add a warning when running dataconnect:sdk:generate without any sdks configur...
  • 2360d3c Fix status bar showing always (#7289)
  • ead816b Fixing issues with init dataconnect (#7295)
  • 13ffce6 Add dataconnect e2e test to CI (#7242)
  • fe3bfb7 Fix a minor bug when CLI prompts for location service even when a existing da...
  • 565c16b [firebase-release] Removed change log and reset repo after 13.11.1 release
  • See full diff in compare view

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=firebase-tools&package-manager=npm_and_yarn&previous-version=13.11.1&new-version=13.11.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 6b2f25997..5a412b5de 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ "devDependencies": { "@11ty/eleventy": "3.0.0-alpha.10", "@11ty/eleventy-img": "5.0.0-beta.4", - "firebase-tools": "^13.11.1", + "firebase-tools": "^13.11.2", "hast-util-from-html": "^2.0.1", "hast-util-select": "^6.0.2", "hast-util-to-text": "^4.0.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c97ebdf18..10e8055f1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -19,8 +19,8 @@ importers: specifier: 5.0.0-beta.4 version: 5.0.0-beta.4(encoding@0.1.13) firebase-tools: - specifier: ^13.11.1 - version: 13.11.1(encoding@0.1.13) + specifier: ^13.11.2 + version: 13.11.2(encoding@0.1.13) hast-util-from-html: specifier: ^2.0.1 version: 2.0.1 @@ -1214,8 +1214,8 @@ packages: resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} engines: {node: '>= 0.8'} - firebase-tools@13.11.1: - resolution: {integrity: sha512-n+x0QmzSPVGPbDd9zrobpgQX8H4RNRjvlNAZlmnU3MEviNxRctv0up3mZvNingd47tH1Rf8MYo1yAFQw6er9Ww==} + firebase-tools@13.11.2: + resolution: {integrity: sha512-LNvaNO/hLeTo2JLuz2HQoXnGVhgD51ztny7ozFh2XTsAHuyTRtwmoXFFIBsvW3UGguiPAXR1LetoTVXXHB7oHA==} engines: {node: '>=18.0.0 || >=20.0.0'} hasBin: true @@ -4249,7 +4249,7 @@ snapshots: transitivePeerDependencies: - supports-color - firebase-tools@13.11.1(encoding@0.1.13): + firebase-tools@13.11.2(encoding@0.1.13): dependencies: '@google-cloud/cloud-sql-connector': 1.3.0(encoding@0.1.13) '@google-cloud/pubsub': 4.4.0(encoding@0.1.13) From fd7bc4fc86b5ad4ff180deff22bdb57ae5c39f6f Mon Sep 17 00:00:00 2001 From: Teddy Toussaint Date: Mon, 10 Jun 2024 19:36:24 +0200 Subject: [PATCH 11/95] Fix typo on Mixins page (#5898) Replace "memebers" with "members". Fix a small typo in the Mixins page. --- src/content/language/mixins.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/content/language/mixins.md b/src/content/language/mixins.md index ab047e8e0..a9dd3876e 100644 --- a/src/content/language/mixins.md +++ b/src/content/language/mixins.md @@ -96,7 +96,7 @@ class Virtuoso with Musician { #### Access state in the mixin's subclass -Declaring abstract memebers also allows you to access state on the subclass +Declaring abstract members also allows you to access state on the subclass of a mixin, by calling getters which are defined as abstract on the mixin: ```dart From d46161e49487a7f2923922eccd4917b9e53f17a2 Mon Sep 17 00:00:00 2001 From: Kamil Krawczyk Date: Mon, 10 Jun 2024 19:36:51 +0200 Subject: [PATCH 12/95] Fix arrow symbol typo in the functions.md (#5899) In the first note, in the first sentence, the arrow symbol is written as '=\\>'. The backslash character must be removed. --- src/content/language/functions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/content/language/functions.md b/src/content/language/functions.md index 768e5ebe9..c88c822a8 100644 --- a/src/content/language/functions.md +++ b/src/content/language/functions.md @@ -49,7 +49,7 @@ The => expr syntax is a shorthand for is sometimes referred to as _arrow_ syntax. :::note -Only _expressions_ can appear between the arrow (`=\>`) and the semicolon (`;`). +Only _expressions_ can appear between the arrow (`=>`) and the semicolon (`;`). Expressions evaluate to values. This means that you can't write a statement where Dart expects a value. For example, From b2b5c71cc1f2c6f1ba11418a761444f5f48a2441 Mon Sep 17 00:00:00 2001 From: Parker Lougheed Date: Mon, 10 Jun 2024 16:31:40 -0500 Subject: [PATCH 13/95] Remove mostly empty tutorials and codelabs section from sidenav (#5858) - Supersedes https://github.com/dart-lang/site-www/pull/4875 to make way for new getting started content. - Begins consolidating the idea of "codelab" and "tutorial", for a future where we drop codelabs from the site. - Add codelabs and tutorial not already in sidenav elsewhere to the sidenav. - Keep tutorial index, but put it in under resources. Closes https://github.com/dart-lang/site-www/pull/4875 --------- Co-authored-by: Anthony Sansone --- firebase.json | 13 ++++-- src/_data/docs_cards.yml | 2 +- src/_data/side-nav.yml | 46 ++++++++----------- src/content/codelabs/index.md | 37 --------------- src/content/guides/language/index.md | 4 +- src/content/guides/whats-new.md | 12 ++--- src/content/index.html | 4 +- src/content/language/async.md | 6 +-- src/content/language/concurrency.md | 6 +-- src/content/language/index.md | 4 +- src/content/language/loops.md | 2 +- .../async}/async-await.md | 16 +++---- .../libraries/async/futures-error-handling.md | 2 +- .../collections}/iterables.md | 21 +++++---- src/content/libraries/dart-async.md | 12 ++--- src/content/libraries/dart-core.md | 4 +- src/content/null-safety/index.md | 2 +- .../resources/coming-from/js-to-dart.md | 10 ++-- .../resources/coming-from/swift-to-dart.md | 6 +-- .../dart-cheatsheet.md | 10 ++-- src/content/tools/dartpad/index.md | 6 +-- src/content/tools/dartpad/troubleshoot.md | 4 +- src/content/tutorials/index.md | 41 ++++++++++++----- src/content/tutorials/server/cmdline.md | 4 +- src/content/tutorials/server/fetch-data.md | 2 +- src/content/tutorials/server/get-started.md | 5 +- src/content/web/get-started.md | 4 +- 27 files changed, 130 insertions(+), 155 deletions(-) delete mode 100644 src/content/codelabs/index.md rename src/content/{codelabs => libraries/async}/async-await.md (98%) rename src/content/{codelabs => libraries/collections}/iterables.md (98%) rename src/content/{codelabs => resources}/dart-cheatsheet.md (99%) diff --git a/firebase.json b/firebase.json index 99ee79fe4..c5c77d5d0 100644 --- a/firebase.json +++ b/firebase.json @@ -45,7 +45,7 @@ { "source": "/articles/archive/event-loop", "destination": "https://medium.com/dartlang/dart-asynchronous-programming-isolates-and-event-loops-bffc3e296a6a", "type": 301 }, { "source": "/articles/archive/numeric-computation", "destination": "/guides/language/numbers", "type": 301 }, { "source": "/articles/archive/zones", "destination": "/libraries/async/zones", "type": 301 }, - { "source": "/articles/await-async", "destination": "/codelabs/async-await", "type": 301 }, + { "source": "/articles/await-async", "destination": "/libraries/async/async-await", "type": 301 }, { "source": "/articles/broadcast-streams", "destination": "https://medium.com/dartlang/dart-asynchronous-programming-streams-dab952023ed7", "type": 301 }, { "source": "/articles/converters-and-codecs", "destination": "/libraries/convert/converters-and-codecs", "type": 301 }, { "source": "/articles/creating-streams", "destination": "/libraries/async/creating-streams", "type": 301 }, @@ -64,7 +64,7 @@ { "source": "/articles/js-dart-interop", "destination": "/web/libraries#js-interop", "type": 301 }, { "source": "/articles/json-web-service", "destination": "/guides/json", "type": 301 }, { "source": "/articles/language", "destination": "/language", "type": 301 }, - { "source": "/articles/language/await-async", "destination": "/codelabs/async-await", "type": 301 }, + { "source": "/articles/language/await-async", "destination": "/libraries/async/async-await", "type": 301 }, { "source": "/articles/language/mixins", "destination": "/language/mixins", "type": 301 }, { "source": "/articles/language/optional-types", "destination": "/resources/faq#types", "type": 301 }, { "source": "/articles/libraries", "destination": "/libraries", "type": 301 }, @@ -84,7 +84,7 @@ { "source": "/articles/server{,/**}", "destination": "/server", "type": 301 }, { "source": "/articles/snapshots", "destination": "/tools/dart-compile", "type": 301 }, { "source": "/articles/style-guide{,/**}", "destination": "/effective-dart/style", "type": 301 }, - { "source": "/articles/using-future-based-apis{,/**}", "destination": "/codelabs/async-await", "type": 301 }, + { "source": "/articles/using-future-based-apis{,/**}", "destination": "/libraries/async/async-await", "type": 301 }, { "source": "/articles/why-dart-types", "destination": "/resources/faq#types", "type": 301 }, { "source": "/articles/zones", "destination": "/libraries/async/zones", "type": 301 }, { "source": "/assets/dart-logo-for-shares*.png", "destination": "/assets/img/logo/dart-logo-for-shares.png", "type": 301 }, @@ -96,6 +96,9 @@ { "source": "/cl", "destination": "https://dart-review.googlesource.com/q/status:open+-is:wip", "type": 301 }, { "source": "/cl/:rest*", "destination": "https://dart-review.googlesource.com/c/sdk/+/:rest*", "type": 301 }, { "source": "/cloud{,/**}", "destination": "/server/google-cloud", "type": 301 }, + { "source": "/codelabs", "destination": "/tutorials", "type": 301 }, + { "source": "/codelabs/async-await", "destination": "/libraries/async/async-await", "type": 301 }, + { "source": "/codelabs/dart-cheatsheet", "destination": "/resources/dart-cheatsheet", "type": 301 }, { "source": "/codelabs/null-safety{,/**}", "destination": "/null-safety/understanding-null-safety", "type": 301 }, { "source": "/codelabs/server{,/**}", "destination": "/tutorials/server/httpserver", "type": 301 }, { "source": "/code-of-conduct", "destination": "/community/code-of-conduct", "type": 301 }, @@ -139,7 +142,7 @@ { "source": "/docs/tutorials/cmdline", "destination": "/tutorials/server/cmdline", "type": 301 }, { "source": "/docs/tutorials/connect-dart-html", "destination": "/library/dart-html", "type": 301 }, { "source": "/docs/tutorials/fetchdata", "destination": "/tutorials/server/fetch-data", "type": 301 }, - { "source": "/docs/tutorials/futures", "destination": "/codelabs/async-await", "type": 301 }, + { "source": "/docs/tutorials/futures", "destination": "/libraries/async/async-await", "type": 301 }, { "source": "/docs/tutorials/get-started", "destination": "/tutorials/server/get-started", "type": 301 }, { "source": "/docs/tutorials/httpserver", "destination": "/tutorials/server/httpserver", "type": 301 }, { "source": "/docs/tutorials/indexeddb{,/**}", "destination": "https://api.dart.dev/stable/dart-indexed_db/dart-indexed_db-library.html", "type": 301 }, @@ -317,7 +320,7 @@ { "source": "/tutorials/dart-vm", "destination": "/tutorials/server", "type": 301 }, { "source": "/tutorials/dart-vm/:page*", "destination": "/tutorials/server/:page*", "type": 301 }, { "source": "/tutorials/language", "destination": "/language", "type": 301 }, - { "source": "/tutorials/language/futures", "destination": "/codelabs/async-await", "type": 301 }, + { "source": "/tutorials/language/futures", "destination": "/libraries/async/async-await", "type": 301 }, { "source": "/tutorials/language/streams", "destination": "/libraries/async/using-streams", "type": 301 }, { "source": "/tutorials/libraries", "destination": "/libraries", "type": 301 }, { "source": "/tutorials/libraries/shared-pkgs", "destination": "/guides/packages", "type": 301 }, diff --git a/src/_data/docs_cards.yml b/src/_data/docs_cards.yml index db15813d3..6aff5d233 100644 --- a/src/_data/docs_cards.yml +++ b/src/_data/docs_cards.yml @@ -12,4 +12,4 @@ url: /tools/sdk - name: Futures, async, await description: How to write asynchronous Dart code that uses futures and the async and await keywords. - url: /codelabs/async-await + url: /libraries/async/async-await diff --git a/src/_data/side-nav.yml b/src/_data/side-nav.yml index d8cefcbe5..25655f694 100644 --- a/src/_data/side-nav.yml +++ b/src/_data/side-nav.yml @@ -1,22 +1,3 @@ -- title: Tutorials & codelabs - expanded: false - children: - - title: Tutorials - match-page-url-exactly: true - permalink: /tutorials - - title: Codelabs - expanded: true - children: - - title: List of Dart codelabs - match-page-url-exactly: true - permalink: /codelabs - - title: Language cheatsheet - permalink: /codelabs/dart-cheatsheet - - title: Iterable collections - permalink: /codelabs/iterables - - title: Asynchronous programming - permalink: /codelabs/async-await - - title: Language expanded: false children: @@ -57,6 +38,8 @@ permalink: /language/patterns - title: Pattern types permalink: /language/pattern-types + - title: Applied tutorial + permalink: https://codelabs.developers.google.com/codelabs/dart-patterns-records - title: Functions permalink: /language/functions - title: Control flow @@ -138,12 +121,18 @@ - title: dart:html permalink: /libraries/dart-html - divider - - title: Using streams - permalink: /libraries/async/using-streams - - title: Creating streams - permalink: /libraries/async/creating-streams - - title: Futures and error handling - permalink: /libraries/async/futures-error-handling + - title: Iterable collections + permalink: /libraries/collections/iterables + - title: Asynchronous programming + children: + - title: Tutorial + permalink: /libraries/async/async-await + - title: Futures and error handling + permalink: /libraries/async/futures-error-handling + - title: Using streams + permalink: /libraries/async/using-streams + - title: Creating streams + permalink: /libraries/async/creating-streams - title: Effective Dart expanded: false @@ -199,8 +188,6 @@ - title: Development expanded: false children: - - title: Futures, async, await - permalink: /codelabs/async-await - title: JSON permalink: /guides/json - title: Number representation @@ -355,6 +342,8 @@ - title: Resources expanded: false children: + - title: Language cheatsheet + permalink: /resources/dart-cheatsheet - title: Breaking changes permalink: /resources/breaking-changes - title: Language evolution @@ -379,6 +368,9 @@ permalink: /resources/books - title: Videos permalink: /resources/videos + - title: Tutorials + match-page-url-exactly: true + permalink: /tutorials - title: Related sites expanded: true diff --git a/src/content/codelabs/index.md b/src/content/codelabs/index.md deleted file mode 100644 index 8d0c82f9b..000000000 --- a/src/content/codelabs/index.md +++ /dev/null @@ -1,37 +0,0 @@ ---- -title: Codelabs -description: Links to Dart codelabs. -toc: false ---- - -The Dart codelabs provide a guided, -hands-on coding experience—no download required! - -## General - -### [Dart cheatsheet](/codelabs/dart-cheatsheet) - -Use DartPad to learn or remind yourself of -some of the most commonly used, yet unique features of the Dart language. - -### [Iterable collections](/codelabs/iterables) - -Use DartPad to learn or remind yourself of how to use -lists, sets, and other iterable collections in Dart, -with special attention to filtering and mapping values. - -### [Asynchronous programming: futures, async, await](/codelabs/async-await) - -Use DartPad to learn or remind yourself of how to write -asynchronous code using futures and the `async` and `await` keywords. - -### [Records and Patterns in Dart 3](https://codelabs.developers.google.com/codelabs/dart-patterns-records) - -Discover Dart 3's new records and patterns features. -Learn how you can use them in a Flutter app to help you -write more readable and maintainable Dart code. - -## Flutter - -To learn about Flutter, try one of the -[Flutter codelabs.]({{site.flutter-docs}}/codelabs) diff --git a/src/content/guides/language/index.md b/src/content/guides/language/index.md index cd8652d5e..1c88e8b30 100644 --- a/src/content/guides/language/index.md +++ b/src/content/guides/language/index.md @@ -29,9 +29,9 @@ These two resources are popular with both beginning Dart developers and experts. * [Customizing static analysis](/tools/analysis)
A guide to customizing the analyzer using an analysis options file. * Asynchronous programming - * [Futures, async, await](/codelabs/async-await)
+ * [Futures, async, await](/libraries/async/async-await)
Learn about and practice writing asynchronous code, using DartPad. - * [Streams](/tutorials/language/streams)
+ * [Streams](/libraries/async/using-streams)
A beginner's guide to handling sequences of asynchronous events. * [Specification](/guides/language/spec)
A definitive, highly technical description of the Dart language. diff --git a/src/content/guides/whats-new.md b/src/content/guides/whats-new.md index 5e3a6cedd..d1ad575fb 100644 --- a/src/content/guides/whats-new.md +++ b/src/content/guides/whats-new.md @@ -579,7 +579,7 @@ we made the following changes to this site: * Introduced a new section to the language tour documenting [initializing formal parameters][]. * Documented DartPad's [support for packages][]. - * Fixed formatting in the [asynchronous programming codelab][] + * Fixed formatting in the [asynchronous programming tutorial][] and elaborated on [why asynchronous code matters][]. * Updated the [security][] page to match our current security practices. * Added a key binding (`/`) to automatically focus the search bar. @@ -621,8 +621,8 @@ we made the following changes to this site: [native types]: /interop/c-interop#interface-with-native-types [initializing formal parameters]: /language/constructors#use-initializing-formal-parameters [support for packages]: /tools/dartpad#library-support -[asynchronous programming codelab]: /codelabs/async-await -[why asynchronous code matters]: /codelabs/async-await#why-asynchronous-code-matters +[asynchronous programming tutorial]: /libraries/async/async-await +[why asynchronous code matters]: /libraries/async/async-await#why-asynchronous-code-matters [security]: /security @@ -851,7 +851,7 @@ we made the following changes to this site: [HTTP server tutorial]: /tutorials/server/httpserver [`lints`]: {{site.pub-pkg}}/lints [Numbers in Dart]: /guides/language/numbers -[streams tutorial]: /tutorials/language/streams +[streams tutorial]: /libraries/async/using-streams [typedef section]: /language/typedefs [Using Google APIs]: /resources/google-apis [Using Google Cloud]: /server/google-cloud @@ -895,7 +895,7 @@ In addition to bug fixes and incremental improvements, we made the following cha * Updated the [language evolution page][evolution] to add information about language versioning and to reflect Dart 2.12. -* Updated the [library tour][] and [codelabs][] +* Updated the [library tour][] and [tutorials][] to reflect sound null safety. * Updated pages across the site to use [the `dart` tool][] instead of deprecated commands. @@ -918,7 +918,7 @@ We also switched from Travis CI to GitHub Actions, and we made multiple CSS chan [language tour]: /language [`late` variables]: /language/variables#late-variables [library tour]: /libraries -[codelabs]: /codelabs +[tutorials]: /tutorials [the `dart` tool]: /tools/dart-tool [`dart analyze`]: /tools/dart-analyze [`dart compile`]: /tools/dart-compile diff --git a/src/content/index.html b/src/content/index.html index 38cf58ef8..1f9e376c3 100644 --- a/src/content/index.html +++ b/src/content/index.html @@ -99,7 +99,7 @@
- Mature and complete async-await + Mature and complete async-await for user interfaces containing event-driven code, paired with isolate-based concurrency
@@ -256,7 +256,7 @@
- Mature and complete async-await + Mature and complete async-await for user interfaces containing event-driven code, paired with isolate-based concurrency.
diff --git a/src/content/language/async.md b/src/content/language/async.md index 3c06bc8d1..c7b737a8d 100644 --- a/src/content/language/async.md +++ b/src/content/language/async.md @@ -31,7 +31,7 @@ When you need the result of a completed Future, you have two options: * Use `async` and `await`, as described here and in the - [asynchronous programming codelab](/codelabs/async-await). + [asynchronous programming tutorial](/libraries/async/async-await). * Use the Future API, as described in the [`dart:async` documentation](/libraries/dart-async#future). @@ -117,7 +117,7 @@ use the [unawaited_futures linter rule][]. ::: For an interactive introduction to using futures, `async`, and `await`, -see the [asynchronous programming codelab](/codelabs/async-await). +see the [asynchronous programming tutorial](/libraries/async/async-await). ## Declaring async functions @@ -149,7 +149,7 @@ If your function doesn't return a useful value, make its return type `Future`. For an interactive introduction to using futures, `async`, and `await`, -see the [asynchronous programming codelab](/codelabs/async-await). +see the [asynchronous programming tutorial](/libraries/async/async-await). {% comment %} TODO #1117: Where else should we cover generalized void? diff --git a/src/content/language/concurrency.md b/src/content/language/concurrency.md index 396e845ee..c4bb3d59b 100644 --- a/src/content/language/concurrency.md +++ b/src/content/language/concurrency.md @@ -224,9 +224,9 @@ Stream sumStream(Stream stream) async* { ``` If you'd like to learn more about using `async`, `await`, `Stream`s and -`Future`s, visit the [asynchronous programming codelab][]. +`Future`s, check out the [asynchronous programming tutorial][]. -[asynchronous programming codelab]: /codelabs/async-await +[asynchronous programming tutorial]: /libraries/async/async-await ## Isolates @@ -280,7 +280,7 @@ complete. A well-behaved app starts quickly, getting to the event loop as soon as possible. The app then responds to each queued event promptly, using asynchronous operations as necessary. -[async-await]: /codelabs/async-await +[async-await]: /libraries/async/async-await ### The isolate life cycle diff --git a/src/content/language/index.md b/src/content/language/index.md index a8796ac62..27864e527 100644 --- a/src/content/language/index.md +++ b/src/content/language/index.md @@ -16,8 +16,8 @@ listed under **Language** in the left side menu. For coverage of Dart's core libraries, check out the [core library documentation](/libraries). -You can also try the [Dart cheatsheet codelab](/codelabs/dart-cheatsheet), -for a more hands-on introduction. +You can also check out the [Dart cheatsheet](/resources/dart-cheatsheet), +for a more interactive introduction. ## Hello World diff --git a/src/content/language/loops.md b/src/content/language/loops.md index c0c150bd5..2b998f7bd 100644 --- a/src/content/language/loops.md +++ b/src/content/language/loops.md @@ -74,7 +74,7 @@ for (final Candidate(:name, :yearsExperience) in candidates) { :::tip To practice using `for-in`, follow the -[Iterable collections codelab](/codelabs/iterables). +[Iterable collections tutorial](/libraries/collections/iterables). ::: Iterable classes also have a [forEach()][] method as another option: diff --git a/src/content/codelabs/async-await.md b/src/content/libraries/async/async-await.md similarity index 98% rename from src/content/codelabs/async-await.md rename to src/content/libraries/async/async-await.md index 4e101ecf3..82dab7e85 100644 --- a/src/content/codelabs/async-await.md +++ b/src/content/libraries/async/async-await.md @@ -6,32 +6,32 @@ js: [{url: '/assets/js/inject_dartpad.js', defer: true}] -This codelab teaches you how to write asynchronous code using +This tutorial teaches you how to write asynchronous code using futures and the `async` and `await` keywords. Using embedded DartPad editors, you can test your knowledge by running example code and completing exercises. -To get the most out of this codelab, you should have the following: +To get the most out of this tutorial, you should have the following: * Knowledge of [basic Dart syntax](/language). * Some experience writing asynchronous code in another language. -This codelab covers the following material: +This tutorial covers the following material: * How and when to use the `async` and `await` keywords. * How using `async` and `await` affects execution order. * How to handle errors from an asynchronous call using `try-catch` expressions in `async` functions. -Estimated time to complete this codelab: 40-60 minutes. +Estimated time to complete this tutorial: 40-60 minutes. :::note This page uses embedded DartPads to display examples and exercises. {% render 'dartpads-embedded-troubleshooting.md' %} ::: -The exercises in this codelab have partially completed code snippets. +The exercises in this tutorial have partially completed code snippets. You can use DartPad to test your knowledge by completing the code and clicking the **Run** button. **Don't edit the test code in the `main` function or below**. @@ -1078,13 +1078,13 @@ bool _logoutSucceeds = false; ## What's next? -Congratulations, you've finished the codelab! If you'd like to learn more, here +Congratulations, you've finished the tutorial! If you'd like to learn more, here are some suggestions for where to go next: - Play with [DartPad]({{site.dartpad}}). -- Try another [codelab](/codelabs). +- Try another [tutorial](/tutorials). - Learn more about futures and asynchronous code in Dart: - - [Streams tutorial](/tutorials/language/streams): + - [Streams tutorial](/libraries/async/using-streams): Learn how to work with a sequence of asynchronous events. - [Concurrency in Dart](/language/concurrency): Understand and learn how to implement concurrency in Dart. diff --git a/src/content/libraries/async/futures-error-handling.md b/src/content/libraries/async/futures-error-handling.md index 5754111f1..6bb36607a 100644 --- a/src/content/libraries/async/futures-error-handling.md +++ b/src/content/libraries/async/futures-error-handling.md @@ -20,7 +20,7 @@ You don't need this page if your code uses the language's asynchrony support: `async`, `await`, and error handling using try-catch. For more information, see the -[asynchronous programming codelab](/codelabs/async-await). +[asynchronous programming tutorial](/libraries/async/async-await). ::: diff --git a/src/content/codelabs/iterables.md b/src/content/libraries/collections/iterables.md similarity index 98% rename from src/content/codelabs/iterables.md rename to src/content/libraries/collections/iterables.md index 6fea696c3..309c9aee4 100644 --- a/src/content/codelabs/iterables.md +++ b/src/content/libraries/collections/iterables.md @@ -1,42 +1,43 @@ --- title: Iterable collections -description: An interactive guide to using Iterable objects such as lists and sets. +description: >- + An interactive guide to using Iterable objects such as lists and sets. js: [{url: '/assets/js/inject_dartpad.js', defer: true}] --- -This codelab teaches you how to use collections that +This tutorial teaches you how to use collections that implement the [Iterable][iterable class] class—for example [List][list class] and [Set.][set class] Iterables are basic building blocks for all sorts of Dart applications, and you're probably already using them, even without noticing. -This codelab helps you make the most out of them. +This tutorial helps you make the most out of them. Using the embedded DartPad editors, you can test your knowledge by running example code and completing exercises. -To get the most out of this codelab, +To get the most out of this tutorial, you should have basic knowledge of [Dart syntax](/language). -This codelab covers the following material: +This tutorial covers the following material: * How to read elements of an Iterable. * How to check if the elements of an Iterable satisfy a condition. * How to filter the contents of an Iterable. * How to map the contents of an Iterable to a different value. -Estimated time to complete this codelab: 60 minutes. +Estimated time to complete this tutorial: 60 minutes. :::note This page uses embedded DartPads to display examples and exercises. {% render 'dartpads-embedded-troubleshooting.md' %} ::: -The exercises in this codelab have partially completed code snippets. +The exercises in this tutorial have partially completed code snippets. You can use DartPad to test your knowledge by completing the code and clicking the **Run** button. **Don't edit the test code in the `main` function or below**. @@ -1211,14 +1212,14 @@ bool isValidEmailAddress(EmailAddress email) { ## What's next -Congratulations, you finished the codelab! +Congratulations, you finished the tutorial! If you want to learn more, here are some suggestions for where to go next: * Play with [DartPad.]({{site.dartpad}}) -* Try another [codelab](/codelabs). +* Try another [tutorial](/tutorials). * Read the [Iterable API reference][iterable class] - to learn about methods not covered by this codelab. + to learn about methods that this tutorial doesn't cover. [hashmap class]: {{site.dart-api}}/{{site.sdkInfo.channel}}/dart-collection/HashMap-class.html [iterable class]: {{site.dart-api}}/{{site.sdkInfo.channel}}/dart-core/Iterable-class.html diff --git a/src/content/libraries/dart-async.md b/src/content/libraries/dart-async.md index f0463b72a..45c45af49 100644 --- a/src/content/libraries/dart-async.md +++ b/src/content/libraries/dart-async.md @@ -23,7 +23,7 @@ dart:async library ([API reference][dart:async]). You don't always need to use the Future or Stream APIs directly. The Dart language supports asynchronous coding using keywords such as `async` and `await`. -Check out the [asynchronous programming codelab](/codelabs/async-await) +Check out the [asynchronous programming tutorial](/libraries/async/async-await) for details. ::: @@ -101,7 +101,7 @@ function from your function. ::: For more information on using `await` and related Dart language features, -see the [asynchronous programming codelab](/codelabs/async-await). +see the [asynchronous programming tutorial](/libraries/async/async-await). ### Basic usage @@ -342,7 +342,7 @@ DOM event listeners in a row, then the second kind of event is never handled. For more information on using `await` and related Dart language features, see the -[asynchronous programming codelab](/codelabs/async-await). +[asynchronous programming tutorial](/libraries/async/async-await). ### Listening for stream data @@ -453,11 +453,11 @@ inputStream.transform(utf8.decoder).transform(const LineSplitter()).listen( For some examples of using Future and Stream in command-line apps, check out the [dart:io documentation][]. -Also see these articles, codelabs, and tutorials: +Also see these articles and tutorials: -- [Asynchronous programming: futures, async, await](/codelabs/async-await) +- [Asynchronous programming: futures, async, await](/libraries/async/async-await) - [Futures and error handling](/libraries/async/futures-error-handling) -- [Asynchronous programming: streams](/tutorials/language/streams) +- [Asynchronous programming: streams](/libraries/async/using-streams) - [Creating streams in Dart](/libraries/async/creating-streams) - [Dart asynchronous programming: Isolates and event loops](/language/concurrency) diff --git a/src/content/libraries/dart-core.md b/src/content/libraries/dart-core.md index fbcbb5f02..7c34b4825 100644 --- a/src/content/libraries/dart-core.md +++ b/src/content/libraries/dart-core.md @@ -299,7 +299,7 @@ lists, sets, and maps. :::tip To practice using APIs that are available to both lists and sets, -follow the [Iterable collections codelab](/codelabs/iterables). +follow the [Iterable collections tutorial](/libraries/collections/iterables). ::: ### Lists @@ -947,7 +947,7 @@ void main() { The [Iterable][] and [Iterator][] classes support sequential access to a collection of values. To practice using these collections, -follow the [Iterable collections codelab](/codelabs/iterables). +follow the [Iterable collections tutorial](/libraries/collections/iterables). If you create a class that can provide Iterators for use in for-in loops, extend (if possible) or implement Iterable. diff --git a/src/content/null-safety/index.md b/src/content/null-safety/index.md index 14d2abd78..631b150a4 100644 --- a/src/content/null-safety/index.md +++ b/src/content/null-safety/index.md @@ -52,7 +52,7 @@ int? aNullableInt = null; - To try some interactive examples, try out some of the null-safety orientated examples in the - [Dart cheatsheet](/codelabs/dart-cheatsheet). + [Dart cheatsheet](/resources/dart-cheatsheet). - To learn more about null safety, check out [Understanding null safety](/null-safety/understanding-null-safety). diff --git a/src/content/resources/coming-from/js-to-dart.md b/src/content/resources/coming-from/js-to-dart.md index ad5b76ffb..b11646d1a 100644 --- a/src/content/resources/coming-from/js-to-dart.md +++ b/src/content/resources/coming-from/js-to-dart.md @@ -1805,9 +1805,9 @@ Future asyncFunction() async { To learn more about `Future`s and the `async`/`await` syntax, see the -[Asynchronous programming][] codelab. +[Asynchronous programming][] tutorial. -[Asynchronous programming]: /codelabs/async-await +[Asynchronous programming]: /libraries/async/async-await ### Streams @@ -1963,7 +1963,7 @@ Learn more about futures, streams, and other asynchronous functionality in the [asynchronous programming][] docs. -[asynchronous programming]: /tutorials/language/streams +[asynchronous programming]: /libraries/async/using-streams ## Classes @@ -2775,11 +2775,11 @@ Some possible next steps: * [Language tour][] to learn more about the Dart language * [Core library documentation][] to learn about Dart's core libraries -* [Dart codelabs][] for hands-on experience learning a variety of topics +* [Dart tutorials][] for applied practice covering a variety of topics * [Effective Dart][] to learn about common conventions and guidelines when writing Dart code [Language tour]: /language [Core library documentation]: /libraries -[Dart codelabs]: /codelabs +[Dart tutorials]: /tutorials [Effective Dart]: /effective-dart diff --git a/src/content/resources/coming-from/swift-to-dart.md b/src/content/resources/coming-from/swift-to-dart.md index bb3a6a508..0ee1de50e 100644 --- a/src/content/resources/coming-from/swift-to-dart.md +++ b/src/content/resources/coming-from/swift-to-dart.md @@ -2558,10 +2558,10 @@ Future asyncFunction() async { } ``` -For more information and some hands-on practice, -check out the [Asynchronous programming][] codelab. +For more information and interactive practice, +check out the [Asynchronous programming][] tutorial. -[Asynchronous programming]: /codelabs/async-await +[Asynchronous programming]: /libraries/async/async-await ### Streams diff --git a/src/content/codelabs/dart-cheatsheet.md b/src/content/resources/dart-cheatsheet.md similarity index 99% rename from src/content/codelabs/dart-cheatsheet.md rename to src/content/resources/dart-cheatsheet.md index 7f8f50ba8..af510df64 100644 --- a/src/content/codelabs/dart-cheatsheet.md +++ b/src/content/resources/dart-cheatsheet.md @@ -1,6 +1,6 @@ --- title: Dart cheatsheet -description: Learn some of Dart's unique features through DartPad +description: Interactively learn (or relearn) some of Dart's unique features. js: [{url: '/assets/js/inject_dartpad.js', defer: true}] --- @@ -8,10 +8,10 @@ js: [{url: '/assets/js/inject_dartpad.js', defer: true}] The Dart language is designed to be easy to learn for coders coming from other languages, but it has a few unique features. -This codelab walks you through +This tutorial walks you through the most important of these language features. -The embedded editors in this cheatsheet have partially completed code snippets. +The embedded editors in this tutorial have partially completed code snippets. You can use these editors to test your knowledge by completing the code and clicking the **Run** button. The editors also contain thorough test code; **don't edit the test code**, but feel free to study it to learn about testing. @@ -2084,12 +2084,12 @@ void main() { ## What's next? -We hope you enjoyed using this cheatsheet to learn +We hope you enjoyed using this tutorial to learn or test your knowledge of some of the most interesting features of the Dart language. What you can try next includes: -* Try [other Dart codelabs](/codelabs). +* Try [other Dart tutorials](/tutorials). * Read the [Dart language tour](/language). * Play with [DartPad.]({{site.dartpad}}) * [Get the Dart SDK](/get-dart). diff --git a/src/content/tools/dartpad/index.md b/src/content/tools/dartpad/index.md index 8ed561d24..f8d23bfad 100644 --- a/src/content/tools/dartpad/index.md +++ b/src/content/tools/dartpad/index.md @@ -5,7 +5,7 @@ description: The tool that lets you interactively play with Dart in a browser. DartPad is an [open source tool]({{site.repo.dart.org}}/dart-pad) that lets you play with the Dart language in any modern browser. -Many pages in this site—especially [codelabs](/codelabs)—have +Many pages in this site—especially [tutorials](/tutorials), have [embedded DartPads](#embedding). To open DartPad as a standalone web page, visit the [DartPad site (dartpad.dev)][DartPad]{:target="_blank" rel="noopener"}. @@ -105,7 +105,7 @@ You can find this SDK version at the bottom right of DartPad. You can embed DartPad inside of web pages, customizing it to suit your use case. -For example, the [futures codelab][] +For example, the [futures tutorial][] contains multiple embedded DartPads labeled as _examples_ and _exercises_. @@ -115,4 +115,4 @@ For technical details on embedding DartPads, see the [DartPad]: {{site.dartpad}} [DartPad embedding guide.]: {{site.repo.dart.org}}/dart-pad/wiki/Embedding-Guide [deferred loading]: /language/libraries#lazily-loading-a-library -[futures codelab]: /codelabs/async-await +[futures tutorial]: /libraries/async/async-await diff --git a/src/content/tools/dartpad/troubleshoot.md b/src/content/tools/dartpad/troubleshoot.md index 6e7d0e025..1fa5970b4 100644 --- a/src/content/tools/dartpad/troubleshoot.md +++ b/src/content/tools/dartpad/troubleshoot.md @@ -12,7 +12,7 @@ For an overview of DartPad, see the ## Embedded DartPads don't appear -The dart.dev homepage and many codelabs have embedded DartPads. +The dart.dev homepage and many tutorials have embedded DartPads. If these DartPads don't appear at all, then try the following: @@ -28,7 +28,7 @@ then try the following: If you've disabled cookies, change your settings to **allow cookies for dartpad.dev**. If you're using embedded DartPads, - such as in the [Dart cheatsheet codelab](/codelabs/dart-cheatsheet) or the + such as in the [Dart cheatsheet](/resources/dart-cheatsheet) or the [implicit animations codelab]({{site.flutter-docs}}/codelabs/implicit-animations), you might need to allow cookies for the embedding site domain, as well (in these cases, **dart.dev** and **docs.flutter.dev**, respectively). diff --git a/src/content/tutorials/index.md b/src/content/tutorials/index.md index 0f90d72d8..4d3eef1e3 100644 --- a/src/content/tutorials/index.md +++ b/src/content/tutorials/index.md @@ -5,19 +5,16 @@ description: Tutorials for writing Dart apps. These tutorials teach you how to use the Dart language, tools, and APIs to build applications. -If you want a hands-on coding experience, try a -**[codelab](/codelabs)**. -## The basics +## Learn the basics {:#basics} The following tours assume a basic familiarity with the Dart language, -which you can get from skimming the -[language tour](/language). -Next, learn about futures by following the -[asynchronous programming codelab](/codelabs/async-await). +which you can get from skimming the [language tour](/language). +Next, to learn about futures, try the +[asynchronous programming tutorial](/libraries/async/async-await). Once you're familiar with the language and futures, -learn about _streams_ and _packages_, +learn about _iterables_, _streams_, and _packages_, which are fundamental to most Dart programs.
@@ -34,10 +31,32 @@ which are fundamental to most Dart programs.
-## Server-side Dart tutorials + +## Build server-side apps {:#server} {% include 'server-tutorials.md' %} -## More tutorials + +## Keep learning -Check out the [Flutter codelabs and tutorials]({{site.flutter-docs}}/codelabs). +To get more experience developing with Dart, +try more of the available tutorials! + +
+
+

Dart cheatsheet

+

Quickly try out some of Dart's unique language features.

+
+
+

Records and Patterns

+

Discover Dart's support for records and patterns.

+
+
+

Iterable collections

+

Learn to analyze and manipulate data stored in collections.

+
+
+

Flutter codelabs and tutorials

+

Expand your Dart skills by building Flutter apps.

+
+
diff --git a/src/content/tutorials/server/cmdline.md b/src/content/tutorials/server/cmdline.md index b6173c077..da8cd1ee4 100644 --- a/src/content/tutorials/server/cmdline.md +++ b/src/content/tutorials/server/cmdline.md @@ -31,8 +31,8 @@ the [`Future`]({{_api}}/dart-async/Future-class.html) and [`Stream`]({{_api}}/dart-async/Stream-class.html) classes for asynchronous support. To learn more about these features, see the -[asynchronous programming codelab](/codelabs/async-await) and the -[streams tutorial](/tutorials/language/streams). +[asynchronous programming tutorial](/libraries/async/async-await) and the +[streams tutorial](/libraries/async/using-streams). ::: This tutorial teaches you how to build command-line apps diff --git a/src/content/tutorials/server/fetch-data.md b/src/content/tutorials/server/fetch-data.md index c76214552..57db6ea9f 100644 --- a/src/content/tutorials/server/fetch-data.md +++ b/src/content/tutorials/server/fetch-data.md @@ -230,7 +230,7 @@ access the network and perform potentially time-consuming operations, therefore they do so asynchronously and return a [`Future`][]. If you haven't encountered futures yet, you can learn about them—as well as the `async` and `await` keywords—in the -[asynchronous programming codelab](/codelabs/async-await). +[asynchronous programming tutorial](/libraries/async/async-await). ::: diff --git a/src/content/tutorials/server/get-started.md b/src/content/tutorials/server/get-started.md index c07d833fd..525e2a36c 100644 --- a/src/content/tutorials/server/get-started.md +++ b/src/content/tutorials/server/get-started.md @@ -127,6 +127,7 @@ Use the `dart compile` tool to AOT compile the program to machine code: ```console $ dart compile exe bin/cli.dart ``` + Notice how the compiled program starts instantly, completing quickly: ```console @@ -142,9 +143,7 @@ sys 0m0.006s Check out these resources: -* Additional tutorials and codelabs for Dart - * [Tutorials](/tutorials) - * [Codelabs](/codelabs) +* Dart [tutorials](/tutorials) * Dart language, libraries, and conventions * [Language tour](/language) * [Dart core library documentation](/libraries) diff --git a/src/content/web/get-started.md b/src/content/web/get-started.md index 1d720af85..c4164a4f9 100644 --- a/src/content/web/get-started.md +++ b/src/content/web/get-started.md @@ -186,9 +186,7 @@ Check out these resources: * [Web libraries and packages](/web/libraries) * [`package:web` overview](/interop/js-interop/package-web) * [Introduction to the DOM][] -* Tutorials and codelabs for Dart - * [Tutorials](/tutorials) - * [Codelabs](/codelabs) +* Dart [tutorials](/tutorials) If you get stuck, find help at [Community and support.](/community) From ce644d1b1426754fd24cb12d97eae016e41a3987 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 11 Jun 2024 09:29:26 -0500 Subject: [PATCH 14/95] Bump @11ty/eleventy from 3.0.0-alpha.10 to 3.0.0-alpha.11 (#5905) --- package.json | 2 +- pnpm-lock.yaml | 53 +++++++++++++++++++++++++++++++++++--------------- 2 files changed, 38 insertions(+), 17 deletions(-) diff --git a/package.json b/package.json index 5a412b5de..564367e2a 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,7 @@ "bootstrap-scss": "^4.6.2" }, "devDependencies": { - "@11ty/eleventy": "3.0.0-alpha.10", + "@11ty/eleventy": "3.0.0-alpha.11", "@11ty/eleventy-img": "5.0.0-beta.4", "firebase-tools": "^13.11.2", "hast-util-from-html": "^2.0.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 10e8055f1..fb487985d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -13,8 +13,8 @@ importers: version: 4.6.2 devDependencies: '@11ty/eleventy': - specifier: 3.0.0-alpha.10 - version: 3.0.0-alpha.10 + specifier: 3.0.0-alpha.11 + version: 3.0.0-alpha.11 '@11ty/eleventy-img': specifier: 5.0.0-beta.4 version: 5.0.0-beta.4(encoding@0.1.13) @@ -69,8 +69,8 @@ packages: '@11ty/dependency-tree@3.0.0': resolution: {integrity: sha512-+M+/KdAptDTK4USkI124CKoScvt2y0v1EoLBjS2rUi9zydjWgEC7+EJJ7Eu1DXuObe0JmY09LORjdBGKNPxgtg==} - '@11ty/eleventy-dev-server@2.0.0': - resolution: {integrity: sha512-hqxQV92Bos0uyZa3P+BAX0nQqjQQMi4vCSxcQHNYEB/jjGV6CnurLBSn63U1VoixGAL4SpHm9OdTa2oVOTUx6Q==} + '@11ty/eleventy-dev-server@2.0.1': + resolution: {integrity: sha512-G92KbOx5vg2G3mlQQ1B0+L+Ni7pcn1yeMgQdnT8b2G20ZnbGNtuGYEPehbQV4Xqr2iAtoBfbihNskbLDoVtNOg==} engines: {node: '>=18'} hasBin: true @@ -90,8 +90,12 @@ packages: resolution: {integrity: sha512-Zy2leMK1DQR6Q6ZPSagv7QpJaAz9uVbb+RmVetYFp3foMeQtOSZx7w2u5daRFmP+PeNq9vO9H4xtBToYFWZwHA==} engines: {node: '>=12'} - '@11ty/eleventy@3.0.0-alpha.10': - resolution: {integrity: sha512-lnymV2KjhxPNs+e4otrjwr/kh7AEE/yTAwgVRtpdo8BA+zSDHaw+aeq/2L+h2nhQ9Z1a4ExIjQqk7K51E40tlA==} + '@11ty/eleventy-utils@1.0.3': + resolution: {integrity: sha512-nULO91om7vQw4Y/UBjM8i7nJ1xl+/nyK4rImZ41lFxiY2d+XUz7ChAj1CDYFjrLZeu0utAYJTZ45LlcHTkUG4g==} + engines: {node: '>=12'} + + '@11ty/eleventy@3.0.0-alpha.11': + resolution: {integrity: sha512-NNhx2rySlFWfij2YQ87eU+03yLOhBNPRqGDTK/gjvsi/bY/OSAbb3sQLrycQpM6V5XtMlIqh6C1adxT0CMz3Rg==} engines: {node: '>=18'} hasBin: true @@ -932,6 +936,15 @@ packages: supports-color: optional: true + debug@4.3.5: + resolution: {integrity: sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + deep-equal-in-any-order@2.0.6: resolution: {integrity: sha512-RfnWHQzph10YrUjvWwhd15Dne8ciSJcZ3U6OD7owPwiVwsdE5IFSoZGg8rlwJD11ES+9H5y8j3fCofviRHOqLQ==} @@ -2978,20 +2991,20 @@ snapshots: '@11ty/dependency-tree-esm@1.0.0': dependencies: - '@11ty/eleventy-utils': 1.0.2 + '@11ty/eleventy-utils': 1.0.3 acorn: 8.11.3 dependency-graph: 0.11.0 normalize-path: 3.0.0 '@11ty/dependency-tree@3.0.0': dependencies: - '@11ty/eleventy-utils': 1.0.2 + '@11ty/eleventy-utils': 1.0.3 - '@11ty/eleventy-dev-server@2.0.0': + '@11ty/eleventy-dev-server@2.0.1': dependencies: - '@11ty/eleventy-utils': 1.0.2 + '@11ty/eleventy-utils': 1.0.3 chokidar: 3.6.0 - debug: 4.3.4 + debug: 4.3.5 dev-ip: 1.0.1 finalhandler: 1.2.0 mime: 3.0.0 @@ -3033,7 +3046,7 @@ snapshots: '@11ty/eleventy-plugin-bundle@2.0.2': dependencies: - debug: 4.3.4 + debug: 4.3.5 transitivePeerDependencies: - supports-color @@ -3041,20 +3054,24 @@ snapshots: dependencies: normalize-path: 3.0.0 - '@11ty/eleventy@3.0.0-alpha.10': + '@11ty/eleventy-utils@1.0.3': + dependencies: + normalize-path: 3.0.0 + + '@11ty/eleventy@3.0.0-alpha.11': dependencies: '@11ty/dependency-tree': 3.0.0 '@11ty/dependency-tree-esm': 1.0.0 - '@11ty/eleventy-dev-server': 2.0.0 + '@11ty/eleventy-dev-server': 2.0.1 '@11ty/eleventy-plugin-bundle': 2.0.2 - '@11ty/eleventy-utils': 1.0.2 + '@11ty/eleventy-utils': 1.0.3 '@11ty/lodash-custom': 4.17.21 '@11ty/posthtml-urls': 1.0.0 '@sindresorhus/slugify': 2.2.1 bcp-47-normalize: 2.3.0 chokidar: 3.6.0 cross-spawn: 7.0.3 - debug: 4.3.4 + debug: 4.3.5 dependency-graph: 1.0.0 fast-glob: 3.3.2 graceful-fs: 4.2.11 @@ -3932,6 +3949,10 @@ snapshots: dependencies: ms: 2.1.2 + debug@4.3.5: + dependencies: + ms: 2.1.2 + deep-equal-in-any-order@2.0.6: dependencies: lodash.mapvalues: 4.6.0 From 8fa5bf134d08bcba4780fd57c93a5ffaeeb80416 Mon Sep 17 00:00:00 2001 From: Anthony Sansone Date: Tue, 11 Jun 2024 13:42:37 -0500 Subject: [PATCH 15/95] Adds skip to main link (#5894) Fixes #5795 -- Adds an invisible skip to main content button for visually impaired site users --- src/_layouts/default.html | 1 + src/_sass/_site.scss | 11 +++++++++++ 2 files changed, 12 insertions(+) diff --git a/src/_layouts/default.html b/src/_layouts/default.html index 76244b72d..3f5552e83 100644 --- a/src/_layouts/default.html +++ b/src/_layouts/default.html @@ -8,6 +8,7 @@ {% endif -%} {% endif -%} + {% render 'cookie-notice.html' %} {% render 'gtags.html' %} {% include 'page-header.html', obsolete:obsolete %} diff --git a/src/_sass/_site.scss b/src/_sass/_site.scss index 37ab8050b..234718ef4 100644 --- a/src/_sass/_site.scss +++ b/src/_sass/_site.scss @@ -874,3 +874,14 @@ div.tabs__content h1, h2, h3, h4, h5, h6 { margin-top: 0; } } + +#skip { + position: absolute; + top: -1000%; + left: -1000%; +} + +#skip:focus { + top: 10px; + left: 10px; +} \ No newline at end of file From b1d04351e9ccfbade517686c6dc5645158beeb2e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 12 Jun 2024 11:23:45 -0500 Subject: [PATCH 16/95] Bump @11ty/eleventy from 3.0.0-alpha.11 to 3.0.0-alpha.12 (#5907) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [@11ty/eleventy](https://github.com/11ty/eleventy) from 3.0.0-alpha.11 to 3.0.0-alpha.12.
Release notes

Sourced from @​11ty/eleventy's releases.

Pre-release: Eleventy v3.0.0-alpha.12

Quick follow-up to fix regression introduced in v3.0.0-alpha.11 with the bundled InputPathToUrl plugin: #3319

Full Changelog: https://github.com/11ty/eleventy/compare/v3.0.0-alpha.11...v3.0.0-alpha.12 Full Eleventy v3 Milestone: https://github.com/11ty/eleventy/milestone/40

We need your help!

11ty is now operating independently, with full time development and maintenance funded by our Open Collective supporters. We need your help to keep going! We have a goal of $6000 USD recurring monthly budget. Read more about this fundraising push or head directly to our Open Collective to start your recurring contribution!

Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@11ty/eleventy&package-manager=npm_and_yarn&previous-version=3.0.0-alpha.11&new-version=3.0.0-alpha.12)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 32 ++++++++++++++++---------------- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/package.json b/package.json index 564367e2a..952b57800 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,7 @@ "bootstrap-scss": "^4.6.2" }, "devDependencies": { - "@11ty/eleventy": "3.0.0-alpha.11", + "@11ty/eleventy": "3.0.0-alpha.12", "@11ty/eleventy-img": "5.0.0-beta.4", "firebase-tools": "^13.11.2", "hast-util-from-html": "^2.0.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index fb487985d..86c5ec0df 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -13,8 +13,8 @@ importers: version: 4.6.2 devDependencies: '@11ty/eleventy': - specifier: 3.0.0-alpha.11 - version: 3.0.0-alpha.11 + specifier: 3.0.0-alpha.12 + version: 3.0.0-alpha.12 '@11ty/eleventy-img': specifier: 5.0.0-beta.4 version: 5.0.0-beta.4(encoding@0.1.13) @@ -94,8 +94,8 @@ packages: resolution: {integrity: sha512-nULO91om7vQw4Y/UBjM8i7nJ1xl+/nyK4rImZ41lFxiY2d+XUz7ChAj1CDYFjrLZeu0utAYJTZ45LlcHTkUG4g==} engines: {node: '>=12'} - '@11ty/eleventy@3.0.0-alpha.11': - resolution: {integrity: sha512-NNhx2rySlFWfij2YQ87eU+03yLOhBNPRqGDTK/gjvsi/bY/OSAbb3sQLrycQpM6V5XtMlIqh6C1adxT0CMz3Rg==} + '@11ty/eleventy@3.0.0-alpha.12': + resolution: {integrity: sha512-dtBcjyAeUDKzYgrJ6/wTqZIUXCgEWGjlBhRT/5jX8GJ4yTkDxtmTzCbkaWOwvmqpYB5+OuZdnee9wAmm1pRDsQ==} engines: {node: '>=18'} hasBin: true @@ -3058,7 +3058,7 @@ snapshots: dependencies: normalize-path: 3.0.0 - '@11ty/eleventy@3.0.0-alpha.11': + '@11ty/eleventy@3.0.0-alpha.12': dependencies: '@11ty/dependency-tree': 3.0.0 '@11ty/dependency-tree-esm': 1.0.0 @@ -3443,13 +3443,13 @@ snapshots: agent-base@6.0.2: dependencies: - debug: 4.3.4 + debug: 4.3.5 transitivePeerDependencies: - supports-color agent-base@7.1.1: dependencies: - debug: 4.3.4 + debug: 4.3.5 transitivePeerDependencies: - supports-color @@ -4443,7 +4443,7 @@ snapshots: dependencies: basic-ftp: 5.0.5 data-uri-to-buffer: 6.0.2 - debug: 4.3.4 + debug: 4.3.5 fs-extra: 11.2.0 transitivePeerDependencies: - supports-color @@ -4672,28 +4672,28 @@ snapshots: dependencies: '@tootallnate/once': 2.0.0 agent-base: 6.0.2 - debug: 4.3.4 + debug: 4.3.5 transitivePeerDependencies: - supports-color http-proxy-agent@7.0.2: dependencies: agent-base: 7.1.1 - debug: 4.3.4 + debug: 4.3.5 transitivePeerDependencies: - supports-color https-proxy-agent@5.0.1: dependencies: agent-base: 6.0.2 - debug: 4.3.4 + debug: 4.3.5 transitivePeerDependencies: - supports-color https-proxy-agent@7.0.4: dependencies: agent-base: 7.1.1 - debug: 4.3.4 + debug: 4.3.5 transitivePeerDependencies: - supports-color @@ -5384,7 +5384,7 @@ snapshots: dependencies: '@tootallnate/quickjs-emscripten': 0.23.0 agent-base: 7.1.1 - debug: 4.3.4 + debug: 4.3.5 get-uri: 6.0.3 http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.4 @@ -5562,7 +5562,7 @@ snapshots: proxy-agent@6.4.0: dependencies: agent-base: 7.1.1 - debug: 4.3.4 + debug: 4.3.5 http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.4 lru-cache: 7.18.3 @@ -5879,7 +5879,7 @@ snapshots: socks-proxy-agent@8.0.3: dependencies: agent-base: 7.1.1 - debug: 4.3.4 + debug: 4.3.5 socks: 2.8.3 transitivePeerDependencies: - supports-color @@ -6132,7 +6132,7 @@ snapshots: universal-analytics@0.5.3: dependencies: - debug: 4.3.4 + debug: 4.3.5 uuid: 8.3.2 transitivePeerDependencies: - supports-color From 72e4ceea43c86cf048e890c89c1365d5490ab1da Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 12 Jun 2024 11:23:52 -0500 Subject: [PATCH 17/95] Bump shiki from 1.6.3 to 1.6.4 (#5908) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [shiki](https://github.com/shikijs/shiki/tree/HEAD/packages/shiki) from 1.6.3 to 1.6.4.
Release notes

Sourced from shiki's releases.

v1.6.4

   🚀 Features

    View changes on GitHub
Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=shiki&package-manager=npm_and_yarn&previous-version=1.6.3&new-version=1.6.4)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index 952b57800..c8f29048a 100644 --- a/package.json +++ b/package.json @@ -37,6 +37,6 @@ "markdown-it-deflist": "^3.0.0", "markdown-it-table": "^4.1.1", "sass": "^1.77.4", - "shiki": "^1.6.3" + "shiki": "^1.6.4" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 86c5ec0df..a760ccd97 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -58,8 +58,8 @@ importers: specifier: ^1.77.4 version: 1.77.4 shiki: - specifier: ^1.6.3 - version: 1.6.3 + specifier: ^1.6.4 + version: 1.6.4 packages: @@ -379,8 +379,8 @@ packages: '@protobufjs/utf8@1.1.0': resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} - '@shikijs/core@1.6.3': - resolution: {integrity: sha512-QnJKHFUW95GnlJLJGP6QLx4M69HM0KlXk+R2Y8lr/x4nAx1Yb/lsuxq4XwybuUjTxbJk+BT0g/kvn0bcsjGGHg==} + '@shikijs/core@1.6.4': + resolution: {integrity: sha512-WTU9rzZae1p2v6LOxMf6LhtmZOkIHYYW160IuahUyJy7YXPPjyWZLR1ag+SgD22ZMxZtz1gfU6Tccc8t0Il/XA==} '@sindresorhus/slugify@2.2.1': resolution: {integrity: sha512-MkngSCRZ8JdSOCHRaYd+D01XhvU3Hjy6MGl06zhOk614hp9EOAp5gIkBeQg7wtmxpitU6eAL4kdiRMcJa2dlrw==} @@ -2562,8 +2562,8 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} - shiki@1.6.3: - resolution: {integrity: sha512-lE1/YGlzFY0hQSyEfsZj18xGrTWxyhFQkaiILALqTBZPbJeYFWpbUhlmTGPOupYB/qC+H6sV4UznJzcEh3WMHQ==} + shiki@1.6.4: + resolution: {integrity: sha512-X88chM7w8jnadoZtjPTi5ahCJx9pc9f8GfEkZAEYUTlcUZIEw2D/RY86HI/LkkE7Nj8TQWkiBfaFTJ3VJT6ESg==} side-channel@1.0.6: resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} @@ -3372,7 +3372,7 @@ snapshots: '@protobufjs/utf8@1.1.0': {} - '@shikijs/core@1.6.3': {} + '@shikijs/core@1.6.4': {} '@sindresorhus/slugify@2.2.1': dependencies: @@ -5851,9 +5851,9 @@ snapshots: shebang-regex@3.0.0: {} - shiki@1.6.3: + shiki@1.6.4: dependencies: - '@shikijs/core': 1.6.3 + '@shikijs/core': 1.6.4 side-channel@1.0.6: dependencies: From 7b77106eafa11ce9fe248d77bf9398a21171e8e5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 12 Jun 2024 12:35:51 -0500 Subject: [PATCH 18/95] Bump sass from 1.77.4 to 1.77.5 (#5909) Bumps [sass](https://github.com/sass/dart-sass) from 1.77.4 to 1.77.5.
Release notes

Sourced from sass's releases.

Dart Sass 1.77.5

To install Sass 1.77.5, download one of the packages below and add it to your PATH, or see the Sass website for full installation instructions.

Changes

  • Fully trim redundant selectors generated by @extend.

See the full changelog for changes in earlier releases.

Changelog

Sourced from sass's changelog.

1.77.5

  • Fully trim redundant selectors generated by @extend.
Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=sass&package-manager=npm_and_yarn&previous-version=1.77.4&new-version=1.77.5)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index c8f29048a..dfc315020 100644 --- a/package.json +++ b/package.json @@ -36,7 +36,7 @@ "markdown-it-container": "^4.0.0", "markdown-it-deflist": "^3.0.0", "markdown-it-table": "^4.1.1", - "sass": "^1.77.4", + "sass": "^1.77.5", "shiki": "^1.6.4" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a760ccd97..76542ea59 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -55,8 +55,8 @@ importers: specifier: ^4.1.1 version: 4.1.1 sass: - specifier: ^1.77.4 - version: 1.77.4 + specifier: ^1.77.5 + version: 1.77.5 shiki: specifier: ^1.6.4 version: 1.6.4 @@ -2498,8 +2498,8 @@ packages: safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - sass@1.77.4: - resolution: {integrity: sha512-vcF3Ckow6g939GMA4PeU7b2K/9FALXk2KF9J87txdHzXbUF9XRQRwSxcAs/fGaTnJeBFd7UoV22j3lzMLdM0Pw==} + sass@1.77.5: + resolution: {integrity: sha512-oDfX1mukIlxacPdQqNb6mV2tVCrnE+P3nVYioy72V5tlk56CPNcO4TCuFcaCRKKfJ1M3lH95CleRS+dVKL2qMg==} engines: {node: '>=14.0.0'} hasBin: true @@ -5752,7 +5752,7 @@ snapshots: safer-buffer@2.1.2: {} - sass@1.77.4: + sass@1.77.5: dependencies: chokidar: 3.6.0 immutable: 4.3.6 From 3373c8a26cf5671ca3781ce28d80d7584d7a953a Mon Sep 17 00:00:00 2001 From: Anthony Sansone Date: Wed, 12 Jun 2024 13:06:14 -0500 Subject: [PATCH 19/95] Fix brand link (#5906) Fixes #5904 --------- Co-authored-by: Marya <111139605+MaryaBelanger@users.noreply.github.com> --- src/content/brand.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/content/brand.md b/src/content/brand.md index 42e9b58ec..ad79f7175 100644 --- a/src/content/brand.md +++ b/src/content/brand.md @@ -16,8 +16,9 @@ material, as determined by Google. Use of the Dart trademarks that is not expressly permitted by these guidelines is prohibited absent written permission from Google. -The official Dart logos can be found in the [Dart and Flutter logo -assets](https://drive.google.com/corp/drive/folders/1KXNtO9My2AMpDOF9A9Y_4aj4_BcgmDDT) Drive folder. +The official Dart logos can be found in the +[Dart and Flutter logo assets](https://services.google.com/fh/files/misc/dart_brand_guidelines_assets.zip) +archive. ## General rules that govern the use of the Dart trademarks From 18191a8a91b0e3da0ecc1d5c85c13bb85fcd3a39 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 13 Jun 2024 11:00:50 -0500 Subject: [PATCH 20/95] Bump @11ty/eleventy from 3.0.0-alpha.12 to 3.0.0-alpha.13 (#5911) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [@11ty/eleventy](https://github.com/11ty/eleventy) from 3.0.0-alpha.12 to 3.0.0-alpha.13.
Release notes

Sourced from @​11ty/eleventy's releases.

Pre-release Eleventy v3.0.0-alpha.13

  • Fixes to facilitate RSS plugin updates: 80d9f980a5a2b655ee28cf1d45fb6e6d3370e707 and #3320
  • Breaking: Changes custom template syntax permalink compilation default to raw #2780
  • Breaking: Removes advanced filters option in HTML <base> plugin to rename Universal Filters for this plugin (htmlBaseUrl, addPathPrefixToFullUrl, and transformWithHtmlBase). Renaming filters in this plugin will cause cross-plugin compatibility issues in other places in your project.

Full Changelog: https://github.com/11ty/eleventy/compare/v3.0.0-alpha.12...v3.0.0-alpha.13 Full Eleventy v3 Milestone: https://github.com/11ty/eleventy/milestone/40

We need your help!

11ty is now operating independently, with full time development and maintenance funded by our Open Collective supporters. We need your help to keep going! We have a goal of $6000 USD recurring monthly budget. Read more about this fundraising push or head directly to our Open Collective to start your recurring contribution!

Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@11ty/eleventy&package-manager=npm_and_yarn&previous-version=3.0.0-alpha.12&new-version=3.0.0-alpha.13)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index dfc315020..f411dd4bf 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,7 @@ "bootstrap-scss": "^4.6.2" }, "devDependencies": { - "@11ty/eleventy": "3.0.0-alpha.12", + "@11ty/eleventy": "3.0.0-alpha.13", "@11ty/eleventy-img": "5.0.0-beta.4", "firebase-tools": "^13.11.2", "hast-util-from-html": "^2.0.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 76542ea59..c2ce6b1ee 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -13,8 +13,8 @@ importers: version: 4.6.2 devDependencies: '@11ty/eleventy': - specifier: 3.0.0-alpha.12 - version: 3.0.0-alpha.12 + specifier: 3.0.0-alpha.13 + version: 3.0.0-alpha.13 '@11ty/eleventy-img': specifier: 5.0.0-beta.4 version: 5.0.0-beta.4(encoding@0.1.13) @@ -94,8 +94,8 @@ packages: resolution: {integrity: sha512-nULO91om7vQw4Y/UBjM8i7nJ1xl+/nyK4rImZ41lFxiY2d+XUz7ChAj1CDYFjrLZeu0utAYJTZ45LlcHTkUG4g==} engines: {node: '>=12'} - '@11ty/eleventy@3.0.0-alpha.12': - resolution: {integrity: sha512-dtBcjyAeUDKzYgrJ6/wTqZIUXCgEWGjlBhRT/5jX8GJ4yTkDxtmTzCbkaWOwvmqpYB5+OuZdnee9wAmm1pRDsQ==} + '@11ty/eleventy@3.0.0-alpha.13': + resolution: {integrity: sha512-LZ1mI2JoB/vu6eIzeh9Eim0istAmKiJ0C5LEYG8HigvGgVsADd7OGHpOeOpDgKjotPSO+DTVh48gQj/cW2mRNw==} engines: {node: '>=18'} hasBin: true @@ -3058,7 +3058,7 @@ snapshots: dependencies: normalize-path: 3.0.0 - '@11ty/eleventy@3.0.0-alpha.12': + '@11ty/eleventy@3.0.0-alpha.13': dependencies: '@11ty/dependency-tree': 3.0.0 '@11ty/dependency-tree-esm': 1.0.0 From dac460a97a3341d40fdab7f43e1bd2f9564d2a26 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 13 Jun 2024 11:41:02 -0500 Subject: [PATCH 21/95] Bump actions/checkout from 4.1.6 to 4.1.7 (#5912) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [actions/checkout](https://github.com/actions/checkout) from 4.1.6 to 4.1.7.
Release notes

Sourced from actions/checkout's releases.

v4.1.7

What's Changed

New Contributors

Full Changelog: https://github.com/actions/checkout/compare/v4.1.6...v4.1.7

Changelog

Sourced from actions/checkout's changelog.

Changelog

v4.1.7

v4.1.6

v4.1.5

v4.1.4

v4.1.3

v4.1.2

v4.1.1

v4.1.0

v4.0.0

v3.6.0

v3.5.3

... (truncated)

Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=actions/checkout&package-manager=github_actions&previous-version=4.1.6&new-version=4.1.7)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Anthony Sansone --- .github/workflows/codeql-analysis.yml | 2 +- .github/workflows/scorecards-analysis.yml | 2 +- .github/workflows/test.yml | 10 +++++----- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 068f06167..23db69b39 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -29,7 +29,7 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 + uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL diff --git a/.github/workflows/scorecards-analysis.yml b/.github/workflows/scorecards-analysis.yml index 06bfbfcfa..a603950b4 100644 --- a/.github/workflows/scorecards-analysis.yml +++ b/.github/workflows/scorecards-analysis.yml @@ -21,7 +21,7 @@ jobs: steps: - name: "Checkout code" - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 + uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 with: persist-credentials: false diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index cededc0ae..1cf39e9d0 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -37,7 +37,7 @@ jobs: experimental: false continue-on-error: ${{ matrix.experimental }} steps: - - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 + - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 with: submodules: recursive - uses: dart-lang/setup-dart@f0ead981b4d9a35b37f30d36160575d60931ec30 @@ -56,7 +56,7 @@ jobs: name: Check if code excerpts are up to date runs-on: ubuntu-latest steps: - - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 + - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 with: submodules: recursive - uses: dart-lang/setup-dart@f0ead981b4d9a35b37f30d36160575d60931ec30 @@ -71,7 +71,7 @@ jobs: name: Build site and check links runs-on: ubuntu-latest steps: - - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 + - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 with: submodules: recursive - uses: dart-lang/setup-dart@f0ead981b4d9a35b37f30d36160575d60931ec30 @@ -97,7 +97,7 @@ jobs: name: Check if text can be replaced with site variables runs-on: ubuntu-latest steps: - - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 + - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 with: submodules: recursive - uses: dart-lang/setup-dart@f0ead981b4d9a35b37f30d36160575d60931ec30 @@ -112,7 +112,7 @@ jobs: name: Validate Firebase configuration runs-on: ubuntu-latest steps: - - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 + - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 with: submodules: recursive - uses: dart-lang/setup-dart@f0ead981b4d9a35b37f30d36160575d60931ec30 From 1bc64417fbc199bf27079123d61bd78eb4dcb130 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 13 Jun 2024 11:41:25 -0500 Subject: [PATCH 22/95] Bump github/codeql-action from 3.25.8 to 3.25.9 (#5913) Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.25.8 to 3.25.9.
Changelog

Sourced from github/codeql-action's changelog.

CodeQL Action Changelog

See the releases page for the relevant changes to the CodeQL CLI and language packs.

Note that the only difference between v2 and v3 of the CodeQL Action is the node version they support, with v3 running on node 20 while we continue to release v2 to support running on node 16. For example 3.22.11 was the first v3 release and is functionally identical to 2.22.11. This approach ensures an easy way to track exactly which features are included in different versions, indicated by the minor and patch version numbers.

[UNRELEASED]

  • Update default CodeQL bundle version to 2.17.5. #2327

3.25.9 - 12 Jun 2024

  • Avoid failing database creation if the database folder already exists and contains some unexpected files. Requires CodeQL 2.18.0 or higher. #2330
  • The init Action will attempt to clean up the database cluster directory before creating a new database and at the end of the job. This will help to avoid issues where the database cluster directory is left in an inconsistent state. #2332

3.25.8 - 04 Jun 2024

  • Update default CodeQL bundle version to 2.17.4. #2321

3.25.7 - 31 May 2024

  • We are rolling out a feature in May/June 2024 that will reduce the Actions cache usage of the Action by keeping only the newest TRAP cache for each language. #2306

3.25.6 - 20 May 2024

  • Update default CodeQL bundle version to 2.17.3. #2295

3.25.5 - 13 May 2024

  • Add a compatibility matrix of supported CodeQL Action, CodeQL CLI, and GitHub Enterprise Server versions to the https://github.com/github/codeql-action/blob/main/README.md. #2273
  • Avoid printing out a warning for a missing on.push trigger when the CodeQL Action is triggered via a workflow_call event. #2274
  • The tools: latest input to the init Action has been renamed to tools: linked. This option specifies that the Action should use the tools shipped at the same time as the Action. The old name will continue to work for backwards compatibility, but we recommend that new workflows use the new name. #2281

3.25.4 - 08 May 2024

  • Update default CodeQL bundle version to 2.17.2. #2270

3.25.3 - 25 Apr 2024

  • Update default CodeQL bundle version to 2.17.1. #2247
  • Workflows running on macos-latest using CodeQL CLI versions before v2.15.1 will need to either upgrade their CLI version to v2.15.1 or newer, or change the platform to an Intel MacOS runner, such as macos-12. ARM machines with SIP disabled, including the newest macos-latest image, are unsupported for CLI versions before 2.15.1. #2261

3.25.2 - 22 Apr 2024

No user facing changes.

3.25.1 - 17 Apr 2024

  • We are rolling out a feature in April/May 2024 that improves the reliability and performance of analyzing code when analyzing a compiled language with the autobuild build mode. #2235
  • Fix a bug where the init Action would fail if --overwrite was specified in CODEQL_ACTION_EXTRA_OPTIONS. #2245

... (truncated)

Commits
  • 530d4fe Merge pull request #2334 from github/update-v3.25.9-37809d1f1
  • 65db484 Update changelog for v3.25.9
  • 37809d1 Merge pull request #2332 from github/henrymercer/cleanup-db-location
  • 159d911 Tweak changelog entries
  • ed34eb9 Skip init-post cleanup on GitHub-hosted runners
  • 31fe7dd Merge pull request #2326 from github/dependabot/npm_and_yarn/npm-8402b9d28a
  • d8d73c0 Clean up DB cluster directory at the end of each job
  • 3d849e9 Include underlying error in error message
  • 945bb87 Merge pull request #2331 from github/igfoo/bash
  • 9ee83fa Update checked-in dependencies
  • Additional commits viewable in compare view

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github/codeql-action&package-manager=github_actions&previous-version=3.25.8&new-version=3.25.9)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Anthony Sansone --- .github/workflows/codeql-analysis.yml | 6 +++--- .github/workflows/scorecards-analysis.yml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 23db69b39..9ee60e5a8 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -33,7 +33,7 @@ jobs: # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL - uses: github/codeql-action/init@2e230e8fe0ad3a14a340ad0815ddb96d599d2aff + uses: github/codeql-action/init@530d4feaa9c62aaab2d250371e2061eb7a172363 with: languages: ${{ matrix.language }} # If you wish to specify custom queries, you can do so here or in a config file. @@ -44,7 +44,7 @@ jobs: # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). # If this step fails, then you should remove it and run the build manually (see below) - name: Autobuild - uses: github/codeql-action/autobuild@2e230e8fe0ad3a14a340ad0815ddb96d599d2aff + uses: github/codeql-action/autobuild@530d4feaa9c62aaab2d250371e2061eb7a172363 # ℹ️ Command-line programs to run using the OS shell. # 📚 https://git.io/JvXDl @@ -58,4 +58,4 @@ jobs: # make release - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@2e230e8fe0ad3a14a340ad0815ddb96d599d2aff + uses: github/codeql-action/analyze@530d4feaa9c62aaab2d250371e2061eb7a172363 diff --git a/.github/workflows/scorecards-analysis.yml b/.github/workflows/scorecards-analysis.yml index a603950b4..b7600cc29 100644 --- a/.github/workflows/scorecards-analysis.yml +++ b/.github/workflows/scorecards-analysis.yml @@ -49,6 +49,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@2e230e8fe0ad3a14a340ad0815ddb96d599d2aff + uses: github/codeql-action/upload-sarif@530d4feaa9c62aaab2d250371e2061eb7a172363 with: sarif_file: results.sarif From ee8ca5702aced9048d024c6ae72fe9c07bbc84be Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 14 Jun 2024 13:46:10 -0500 Subject: [PATCH 23/95] Bump github/codeql-action from 3.25.9 to 3.25.10 (#5915) Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.25.9 to 3.25.10.
Changelog

Sourced from github/codeql-action's changelog.

CodeQL Action Changelog

See the releases page for the relevant changes to the CodeQL CLI and language packs.

Note that the only difference between v2 and v3 of the CodeQL Action is the node version they support, with v3 running on node 20 while we continue to release v2 to support running on node 16. For example 3.22.11 was the first v3 release and is functionally identical to 2.22.11. This approach ensures an easy way to track exactly which features are included in different versions, indicated by the minor and patch version numbers.

[UNRELEASED]

No user facing changes.

3.25.10 - 13 Jun 2024

  • Update default CodeQL bundle version to 2.17.5. #2327

3.25.9 - 12 Jun 2024

  • Avoid failing database creation if the database folder already exists and contains some unexpected files. Requires CodeQL 2.18.0 or higher. #2330
  • The init Action will attempt to clean up the database cluster directory before creating a new database and at the end of the job. This will help to avoid issues where the database cluster directory is left in an inconsistent state. #2332

3.25.8 - 04 Jun 2024

  • Update default CodeQL bundle version to 2.17.4. #2321

3.25.7 - 31 May 2024

  • We are rolling out a feature in May/June 2024 that will reduce the Actions cache usage of the Action by keeping only the newest TRAP cache for each language. #2306

3.25.6 - 20 May 2024

  • Update default CodeQL bundle version to 2.17.3. #2295

3.25.5 - 13 May 2024

  • Add a compatibility matrix of supported CodeQL Action, CodeQL CLI, and GitHub Enterprise Server versions to the https://github.com/github/codeql-action/blob/main/README.md. #2273
  • Avoid printing out a warning for a missing on.push trigger when the CodeQL Action is triggered via a workflow_call event. #2274
  • The tools: latest input to the init Action has been renamed to tools: linked. This option specifies that the Action should use the tools shipped at the same time as the Action. The old name will continue to work for backwards compatibility, but we recommend that new workflows use the new name. #2281

3.25.4 - 08 May 2024

  • Update default CodeQL bundle version to 2.17.2. #2270

3.25.3 - 25 Apr 2024

  • Update default CodeQL bundle version to 2.17.1. #2247
  • Workflows running on macos-latest using CodeQL CLI versions before v2.15.1 will need to either upgrade their CLI version to v2.15.1 or newer, or change the platform to an Intel MacOS runner, such as macos-12. ARM machines with SIP disabled, including the newest macos-latest image, are unsupported for CLI versions before 2.15.1. #2261

3.25.2 - 22 Apr 2024

No user facing changes.

... (truncated)

Commits
  • 23acc5c Merge pull request #2337 from github/update-v3.25.10-5bf6dad35
  • 9b72dbd Update changelog for v3.25.10
  • 5bf6dad Merge pull request #2329 from github/henrymercer/csharp-buildless-rollback-me...
  • feec81c Merge branch 'main' into henrymercer/csharp-buildless-rollback-mechanism
  • 789b5f8 Merge pull request #2328 from github/henrymercer/direct-tracing-fix
  • c36b5fc Merge pull request #2327 from github/update-bundle/codeql-bundle-v2.17.5
  • b3642aa Merge branch 'main' into update-bundle/codeql-bundle-v2.17.5
  • 1fc6e20 Merge pull request #2335 from github/mergeback/v3.25.9-to-main-530d4fea
  • 356bee4 Update checked-in dependencies
  • 385808c Update changelog and version after v3.25.9
  • Additional commits viewable in compare view

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github/codeql-action&package-manager=github_actions&previous-version=3.25.9&new-version=3.25.10)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/codeql-analysis.yml | 6 +++--- .github/workflows/scorecards-analysis.yml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 9ee60e5a8..70113bd41 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -33,7 +33,7 @@ jobs: # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL - uses: github/codeql-action/init@530d4feaa9c62aaab2d250371e2061eb7a172363 + uses: github/codeql-action/init@23acc5c183826b7a8a97bce3cecc52db901f8251 with: languages: ${{ matrix.language }} # If you wish to specify custom queries, you can do so here or in a config file. @@ -44,7 +44,7 @@ jobs: # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). # If this step fails, then you should remove it and run the build manually (see below) - name: Autobuild - uses: github/codeql-action/autobuild@530d4feaa9c62aaab2d250371e2061eb7a172363 + uses: github/codeql-action/autobuild@23acc5c183826b7a8a97bce3cecc52db901f8251 # ℹ️ Command-line programs to run using the OS shell. # 📚 https://git.io/JvXDl @@ -58,4 +58,4 @@ jobs: # make release - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@530d4feaa9c62aaab2d250371e2061eb7a172363 + uses: github/codeql-action/analyze@23acc5c183826b7a8a97bce3cecc52db901f8251 diff --git a/.github/workflows/scorecards-analysis.yml b/.github/workflows/scorecards-analysis.yml index b7600cc29..548321326 100644 --- a/.github/workflows/scorecards-analysis.yml +++ b/.github/workflows/scorecards-analysis.yml @@ -49,6 +49,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@530d4feaa9c62aaab2d250371e2061eb7a172363 + uses: github/codeql-action/upload-sarif@23acc5c183826b7a8a97bce3cecc52db901f8251 with: sarif_file: results.sarif From e1aa3b1f13c5fa1169031ea9c7b14f1180621bb6 Mon Sep 17 00:00:00 2001 From: Michael Thomsen Date: Mon, 17 Jun 2024 10:24:49 +0200 Subject: [PATCH 24/95] Update cookie notice bar text (#5916) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Update cookiebar per go/cookiebar, 2B --- - [x] I’ve reviewed the contributor guide and applied the relevant portions to this PR. - [x] This PR doesn't contain automatically generated corrections or text (Grammarly, LLMs, and similar). - [x] This PR follows the [Google Developer Documentation Style Guidelines](https://developers.google.com/style) — for example, it doesn't use _i.e._ or _e.g._, and it avoids _I_ and _we_ (first person). - [x] This PR uses [semantic line breaks](https://github.com/dart-lang/site-shared/blob/main/doc/writing-for-dart-and-flutter-websites.md#semantic-line-breaks) of 80 characters or fewer.
Contribution guidelines:
- See our [contributor guide](https://github.com/dart-lang/site-www/blob/main/CONTRIBUTING.md) for general expectations for PRs. - Larger or significant changes should be discussed in an issue before creating a PR. - Code changes should generally follow the [Dart style guide](https://dart.dev/effective-dart) and use `dart format`. - Updates to [code excerpts](https://github.com/dart-lang/site-shared/blob/main/doc/code-excerpts.md) indicated by ` --------- Co-authored-by: Parker Lougheed --- src/_includes/cookie-notice.html | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/_includes/cookie-notice.html b/src/_includes/cookie-notice.html index 2570d9073..edbb6b27e 100644 --- a/src/_includes/cookie-notice.html +++ b/src/_includes/cookie-notice.html @@ -1,10 +1,9 @@ From 2ca9178ba4acada3758f59b64428c7b7fc3c982d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 17 Jun 2024 11:08:22 -0500 Subject: [PATCH 25/95] Bump shiki from 1.6.4 to 1.6.5 (#5917) --- package.json | 2 +- pnpm-lock.yaml | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index f411dd4bf..4c4508da5 100644 --- a/package.json +++ b/package.json @@ -37,6 +37,6 @@ "markdown-it-deflist": "^3.0.0", "markdown-it-table": "^4.1.1", "sass": "^1.77.5", - "shiki": "^1.6.4" + "shiki": "^1.6.5" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c2ce6b1ee..0f2068d74 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -58,8 +58,8 @@ importers: specifier: ^1.77.5 version: 1.77.5 shiki: - specifier: ^1.6.4 - version: 1.6.4 + specifier: ^1.6.5 + version: 1.6.5 packages: @@ -379,8 +379,8 @@ packages: '@protobufjs/utf8@1.1.0': resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} - '@shikijs/core@1.6.4': - resolution: {integrity: sha512-WTU9rzZae1p2v6LOxMf6LhtmZOkIHYYW160IuahUyJy7YXPPjyWZLR1ag+SgD22ZMxZtz1gfU6Tccc8t0Il/XA==} + '@shikijs/core@1.6.5': + resolution: {integrity: sha512-XcQYt6e4L61ruAxHiL3Xg1DL/XkWWjzDdeckB/DtN8jAxoAU+bcxsV6DetC8NafHpL4YpGhxy9iXF0ND/u6HmA==} '@sindresorhus/slugify@2.2.1': resolution: {integrity: sha512-MkngSCRZ8JdSOCHRaYd+D01XhvU3Hjy6MGl06zhOk614hp9EOAp5gIkBeQg7wtmxpitU6eAL4kdiRMcJa2dlrw==} @@ -2562,8 +2562,8 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} - shiki@1.6.4: - resolution: {integrity: sha512-X88chM7w8jnadoZtjPTi5ahCJx9pc9f8GfEkZAEYUTlcUZIEw2D/RY86HI/LkkE7Nj8TQWkiBfaFTJ3VJT6ESg==} + shiki@1.6.5: + resolution: {integrity: sha512-iFzypldJG0zeyRHKAhaSGCf+YWXpMMyUyOrCVFBFKGGdF5vrB6jbd66/SQljxV20aSrVZEAQwUto/hhuNi/CIg==} side-channel@1.0.6: resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} @@ -3372,7 +3372,7 @@ snapshots: '@protobufjs/utf8@1.1.0': {} - '@shikijs/core@1.6.4': {} + '@shikijs/core@1.6.5': {} '@sindresorhus/slugify@2.2.1': dependencies: @@ -5851,9 +5851,9 @@ snapshots: shebang-regex@3.0.0: {} - shiki@1.6.4: + shiki@1.6.5: dependencies: - '@shikijs/core': 1.6.4 + '@shikijs/core': 1.6.5 side-channel@1.0.6: dependencies: From 9fdfd04a9182606ee925999826e242d49e19d591 Mon Sep 17 00:00:00 2001 From: Parker Lougheed Date: Mon, 17 Jun 2024 13:11:00 -0500 Subject: [PATCH 26/95] Begin incorporating linter rule diagnostic messages (#5914) --- src/content/tools/diagnostic-messages.md | 4608 +++++++++++++++++++++- 1 file changed, 4580 insertions(+), 28 deletions(-) diff --git a/src/content/tools/diagnostic-messages.md b/src/content/tools/diagnostic-messages.md index 9d2a671ab..3bf964be8 100644 --- a/src/content/tools/diagnostic-messages.md +++ b/src/content/tools/diagnostic-messages.md @@ -30,7 +30,7 @@ that might work in unexpected ways. [bottom type]: https://dart.dev/null-safety/understanding-null-safety#top-and-bottom [debugPrint]: https://api.flutter.dev/flutter/foundation/debugPrint.html -[ffi]: https://dart.dev/guides/libraries/c-interop +[ffi]: https://dart.dev/interop/c-interop [IEEE 754]: https://en.wikipedia.org/wiki/IEEE_754 [irrefutable pattern]: https://dart.dev/resources/glossary#irrefutable-pattern [kDebugMode]: https://api.flutter.dev/flutter/foundation/kDebugMode-constant.html @@ -3721,7 +3721,7 @@ void f() { try { } catch (e) { } [!on String {!] - [!]}!] + [!}!] } ``` @@ -3772,7 +3772,7 @@ void f() { try { } on num { } [!on int {!] - [!]}!] + [!}!] } ``` @@ -23761,6 +23761,100 @@ const int x = 0; const int y = x; ``` +### workspace_field_not_list + +_The value of the 'workspace' field is required to be a list of relative file +paths._ + +#### Description + +The analyzer produces this diagnostic when the value of the `workspace` key +isn't a list. + +#### Example + +The following code produces this diagnostic because the value of the +`workspace` key is a string when a list is expected: + +```yaml +name: example +workspace: [!notPaths!] +``` + +#### Common fixes + +Change the value of the workspace field so that it's a list: + +```yaml +name: example +workspace: + - pkg/package_1 + - pkg/package_2 +``` + +### workspace_value_not_string + +_Workspace entries are required to be directory paths (strings)._ + +#### Description + +The analyzer produces this diagnostic when a `workspace` list contains a +value that isn't a string. + +#### Example + +The following code produces this diagnostic because the `workspace` list +contains a map: + +```yaml +name: example +workspace: + - [!image.gif: true!] +``` + +#### Common fixes + +Change the `workspace` list so that it only contains valid POSIX-style directory +paths: + +```yaml +name: example +workspace: + - pkg/package_1 + - pkg/package_2 +``` + +### workspace_value_not_subdirectory + +_Workspace values must be a relative path of a subdirectory of '{0}'._ + +#### Description + +The analyzer produces this diagnostic when a `workspace` list contains a +value that is not a subdirectory of the directory containing the `pubspec.yaml`` file. + +#### Example + +The following code produces this diagnostic because the value in the `workspace` list is not a +relative path of a subdirectory of the directory containing the 'pubspec.yaml' file: + +```yaml +name: example +workspace: + - /home/my_package +``` + +#### Common fixes + +Change the `workspace` list so that it only contains only subdirectory paths. + +```yaml +name: example +workspace: + - pkg/package_1 + - pkg/package_2 +``` + ### wrong_number_of_parameters_for_operator _Operator '-' should declare 0 or 1 parameter, but {0} found._ @@ -24154,55 +24248,4513 @@ Iterable get zero sync* { } ``` -### invalid_use_of_do_not_submit_member +### always_declare_return_types -_Uses of '{0}' should not be submitted to source control._ +_Missing return type on method._ #### Description -The analyzer produces this diagnostic when a member that is annotated with -[`@doNotSubmit`][meta-doNotSubmit] is referenced outside of a member -declaration that is also annotated with `@doNotSubmit`. +The analyzer produces this diagnostic when a method or function doesn't +have an explicit return type. #### Example -Given a file `a.dart` containing the following declaration: +The following code produces this diagnostic because the function `f` +doesn't have a return type: ```dart -import 'package:meta/meta.dart'; +[!f!]() {} +``` -@doNotSubmit -void emulateCrash() { /* ... */ } +#### Common fixes + +Add an explicit return type: + +```dart +void f() {} ``` -The following code produces this diagnostic because the declaration is -being referenced outside of a member that is also annotated with -`@doNotSubmit`: +### always_put_control_body_on_new_line + +_Statement should be on a separate line._ + +#### Description + +The analyzer produces this diagnostic when the code being controlled by a +control flow statement (`if`, `for`, `while`, or `do`) is on the same line +as the control flow statement. + +#### Example + +The following code produces this diagnostic because the `return` statement +is on the same line as the `if` that controls whether the `return` will be +executed: ```dart -import 'a.dart'; +void f(bool b) { + if (b) [!return!]; +} +``` -void f() { - [!emulateCrash!](); +#### Common fixes + +Put the controlled statement onto a separate, indented, line: + +```dart +void f(bool b) { + if (b) + return; } ``` +### always_put_required_named_parameters_first + +_Required named parameters should be before optional named parameters._ + +#### Description + +The analyzer produces this diagnostic when required named parameters occur +after optional named parameters. + +#### Example + +The following code produces this diagnostic because the required parameter +`x` is after the optional parameter `y`: + +```dart +void f({int? y, required int [!x!]}) {} +``` + #### Common fixes -Most commonly, when complete with local testing, the reference to the -member should be removed. +Reorder the parameters so that all required named parameters are before +any optional named parameters: -If building additional functionality on top of the member, annotate the -newly added member with `@doNotSubmit` as well: +```dart +void f({required int x, int? y}) {} +``` + +### always_use_package_imports + +_Use 'package:' imports for files in the 'lib' directory._ + +#### Description + +The analyzer produces this diagnostic when an `import` in a library inside +the `lib` directory uses a relative path to import another library inside +the `lib` directory of the same package. + +#### Example + +Given that a file named `a.dart` and the code below are both inside the +`lib` directory of the same package, the following code produces this +diagnostic because a relative URI is used to import `a.dart`: ```dart -import 'package:meta/meta.dart'; +import [!'a.dart'!]; +``` -import 'a.dart'; +#### Common fixes -@doNotSubmit -void emulateCrashWithOtherFunctionality() { - emulateCrash(); - // do other things. +Use a package import: + +```dart +import 'package:p/a.dart'; +``` + +### annotate_overrides + +_The member '{0}' overrides an inherited member but isn't annotated with +'@override'._ + +#### Description + +The analyzer produces this diagnostic when a member overrides an inherited +member, but isn't annotated with `@override`. + +#### Example + +The following code produces this diagnostic because the method `m` in the +class `B` overrides the method with the same name in class `A`, but isn't +marked as an intentional override: + +```dart +class A { + void m() {} +} + +class B extends A { + void [!m!]() {} +} +``` + +#### Common fixes + +If the member in the subclass is intended to override the member in the +superclass, then add an `@override` annotation: + +```dart +class A { + void m() {} +} + +class B extends A { + @override + void m() {} +} +``` + +If the member in the subclass is not intended to override the member in +the superclass, then rename one of the members: + +```dart +class A { + void m() {} +} + +class B extends A { + void m2() {} +} +``` + +### avoid_empty_else + +_Empty statements are not allowed in an 'else' clause._ + +#### Description + +The analyzer produces this diagnostic when the statement after an `else` +is an empty statement (a semicolon). + +For more information, see the documentation for +[`avoid_empty_else`](https://dart.dev/diagnostics/avoid_empty_else). + +#### Example + +The following code produces this diagnostic because the statement +following the `else` is an empty statement: + +```dart +void f(int x, int y) { + if (x > y) + print("1"); + else [!;!] + print("2"); +} +``` + +#### Common fixes + +If the statement after the empty statement is intended to be executed only +when the condition is `false`, then remove the empty statement: + +```dart +void f(int x, int y) { + if (x > y) + print("1"); + else + print("2"); +} +``` + +If there is no code that is intended to be executed only when the +condition is `false`, then remove the whole `else` clause: + +```dart +void f(int x, int y) { + if (x > y) + print("1"); + print("2"); +} +``` + +### avoid_function_literals_in_foreach_calls + +_Function literals shouldn't be passed to 'forEach'._ + +#### Description + +The analyzer produces this diagnostic when the argument to +`Iterable.forEach` is a closure. + +#### Example + +The following code produces this diagnostic because the argument to the +invocation of `forEach` is a closure: + +```dart +void f(Iterable s) { + s.[!forEach!]((e) => print(e)); +} +``` + +#### Common fixes + +If the closure can be replaced by a tear-off, then replace the closure: + +```dart +void f(Iterable s) { + s.forEach(print); +} +``` + +If the closure can't be replaced by a tear-off, then use a `for` loop to +iterate over the elements: + +```dart +void f(Iterable s) { + for (var e in s) { + print(e); + } +} +``` + +### avoid_init_to_null + +_Redundant initialization to 'null'._ + +#### Description + +The analyzer produces this diagnostic when a nullable variable is +explicitly initialized to `null`. The variable can be a local variable, +field, or top-level variable. + +A variable or field that isn't explicitly initialized automatically gets +initialized to `null`. There's no concept of "uninitialized memory" in +Dart. + +#### Example + +The following code produces this diagnostic because the variable `f` is +explicitly initialized to `null`: + +```dart +class C { + int? [!f = null!]; + + void m() { + if (f != null) { + print(f); + } + } } ``` + +#### Common fixes + +Remove the unnecessary initialization: + +```dart +class C { + int? f; + + void m() { + if (f != null) { + print(f); + } + } +} +``` + +### avoid_print + +_Don't invoke 'print' in production code._ + +#### Description + +The analyzer produces this diagnostic when the function `print` is invoked +in production code. + +#### Example + +The following code produces this diagnostic because the function `print` +can't be invoked in production: + +```dart +void f(int x) { + [!print!]('x = $x'); +} +``` + +#### Common fixes + +If you're writing code that uses Flutter, then use the function +[`debugPrint`][debugPrint], guarded by a test +using [`kDebugMode`][kDebugMode]: + +```dart +import 'package:flutter/foundation.dart'; + +void f(int x) { + if (kDebugMode) { + debugPrint('x = $x'); + } +} +``` + +If you're writing code that doesn't use Flutter, then use a logging +service, such as [`package:logging`][package-logging], to write the +information. + +### avoid_relative_lib_imports + +_Can't use a relative path to import a library in 'lib'._ + +#### Description + +The analyzer produces this diagnostic when the URI in an `import` +directive has `lib` in the path. + +#### Example + +Assuming that there is a file named `a.dart` in the `lib` directory: + +```dart +class A {} +``` + +The following code produces this diagnostic because the import contains a +path that includes `lib`: + +```dart +import [!'../lib/a.dart'!]; +``` + +#### Common fixes + +Rewrite the import to not include `lib` in the URI: + +```dart +import 'a.dart'; +``` + +### avoid_renaming_method_parameters + +_The parameter name '{0}' doesn't match the name '{1}' in the overridden +method._ + +#### Description + +The analyzer produces this diagnostic when a method that overrides a +method from a superclass changes the names of the parameters. + +#### Example + +The following code produces this diagnostic because the parameter of the +method `m` in `B` is named `b`, which is different from the name of the +overridden method's parameter in `A`: + +```dart +class A { + void m(int a) {} +} + +class B extends A { + @override + void m(int [!b!]) {} +} +``` + +#### Common fixes + +Rename one of the parameters so that they are the same: + +```dart +class A { + void m(int a) {} +} + +class B extends A { + @override + void m(int a) {} +} +``` + +### avoid_return_types_on_setters + +_Unnecessary return type on a setter._ + +#### Description + +The analyzer produces this diagnostic when a setter has an explicit return +type. + +Setters never return a value, so declaring the return type of one is +redundant. + +#### Example + +The following code produces this diagnostic because the setter `s` has an +explicit return type (`void`): + +```dart +[!void!] set s(int p) {} +``` + +#### Common fixes + +Remove the return type: + +```dart +set s(int p) {} +``` + +### avoid_returning_null_for_void + +_Don't return 'null' from a function with a return type of 'void'._ + +_Don't return 'null' from a method with a return type of 'void'._ + +#### Description + +The analyzer produces this diagnostic when a function that has a return +type of `void` explicitly returns `null`. + +#### Example + +The following code produces this diagnostic because there is an explicit +return of `null` in a `void` function: + +```dart +void f() { + [!return null;!] +} +``` + +#### Common fixes + +Remove the unnecessary explicit `null`: + +```dart +void f() { + return; +} +``` + +### avoid_shadowing_type_parameters + +_The type parameter '{0}' shadows a type parameter from the enclosing {1}._ + +#### Description + +The analyzer produces this diagnostic when a type parameter shadows a type +parameter from an enclosing declaration. + +Shadowing a type parameter with a different type parameter can lead to +subtle bugs that are difficult to debug. + +#### Example + +The following code produces this diagnostic because the type parameter `T` +defined by the method `m` shadows the type parameter `T` defined by the +class `C`: + +```dart +class C { + void m<[!T!]>() {} +} +``` + +#### Common fixes + +Rename one of the type parameters: + +```dart +class C { + void m() {} +} +``` + +### avoid_single_cascade_in_expression_statements + +_Unnecessary cascade expression._ + +#### Description + +The analyzer produces this diagnostic when a single cascade operator is +used and the value of the expression isn't being used for anything (such +as being assigned to a variable or being passed as an argument). + +#### Example + +The following code produces this diagnostic because the value of the +cascade expression `s..length` isn't being used: + +```dart +void f(String s) { + [!s..length!]; +} +``` + +#### Common fixes + +Replace the cascade operator with a simple access operator: + +```dart +void f(String s) { + s.length; +} +``` + +### avoid_slow_async_io + +_Use of an async 'dart:io' method._ + +#### Description + +The analyzer produces this diagnostic when an asynchronous file I/O method +with a synchronous equivalent is used. + +The following are the specific flagged asynchronous methods: + +- `Directory.exists` +- `Directory.stat` +- `File.lastModified` +- `File.exists` +- `File.stat` +- `FileSystemEntity.isDirectory` +- `FileSystemEntity.isFile` +- `FileSystemEntity.isLink` +- `FileSystemEntity.type` + +#### Example + +The following code produces this diagnostic because the async method +`exists` is invoked: + +```dart +import 'dart:io'; + +Future g(File f) async { + await [!f.exists()!]; +} +``` + +#### Common fixes + +Use the synchronous version of the method: + +```dart +import 'dart:io'; + +void g(File f) { + f.existsSync(); +} +``` + +### avoid_type_to_string + +_Using 'toString' on a 'Type' is not safe in production code._ + +#### Description + +The analyzer produces this diagnostic when the method `toString` is +invoked on a value whose static type is `Type`. + +#### Example + +The following code produces this diagnostic because the method `toString` +is invoked on the `Type` returned by `runtimeType`: + +```dart +bool isC(Object o) => o.runtimeType.[!toString!]() == 'C'; + +class C {} +``` + +#### Common fixes + +If it's essential that the type is exactly the same, then use an explicit +comparison: + +```dart +bool isC(Object o) => o.runtimeType == C; + +class C {} +``` + +If it's alright for instances of subtypes of the type to return `true`, +then use a type check: + +```dart +bool isC(Object o) => o is C; + +class C {} +``` + +### avoid_types_as_parameter_names + +_The parameter name '{0}' matches a visible type name._ + +#### Description + +The analyzer produces this diagnostic when the name of a parameter in a +parameter list is the same as a visible type (a type whose name is in +scope). + +This often indicates that the intended name of the parameter is missing, +causing the name of the type to be used as the name of the parameter +rather than the type of the parameter. Even when that's not the case (the +name of the parameter is intentional), the name of the parameter will +shadow the existing type, which can lead to bugs that are difficult to +diagnose. + +#### Example + +The following code produces this diagnostic because the function `f` has a +parameter named `int`, which shadows the type `int` from `dart:core`: + +```dart +void f([!int!]) {} +``` + +#### Common fixes + +If the parameter name is missing, then add a name for the parameter: + +```dart +void f(int x) {} +``` + +If the parameter is intended to have an implicit type of `dynamic`, then +rename the parameter so that it doesn't shadow the name of any visible type: + +```dart +void f(int_) {} +``` + +### avoid_unnecessary_containers + +_Unnecessary instance of 'Container'._ + +#### Description + +The analyzer produces this diagnostic when a widget tree contains an +instance of `Container` and the only argument to the constructor is +`child:`. + +#### Example + +The following code produces this diagnostic because the invocation of the +`Container` constructor only has a `child:` argument: + +```dart +import 'package:flutter/material.dart'; + +Widget buildRow() { + return [!Container!]( + child: Row( + children: [ + Text('a'), + Text('b'), + ], + ) + ); +} +``` + +#### Common fixes + +If you intended to provide other arguments to the constructor, then add +them: + +```dart +import 'package:flutter/material.dart'; + +Widget buildRow() { + return Container( + color: Colors.red.shade100, + child: Row( + children: [ + Text('a'), + Text('b'), + ], + ) + ); +} +``` + +If no other arguments are needed, then unwrap the child widget: + +```dart +import 'package:flutter/material.dart'; + +Widget buildRow() { + return Row( + children: [ + Text('a'), + Text('b'), + ], + ); +} +``` + +### avoid_web_libraries_in_flutter + +_Don't use web-only libraries outside Flutter web plugin packages._ + +#### Description + +The analyzer produces this diagnostic when a library in a package that +isn't a web plugin contains an import of a web-only library: +- `dart:html` +- `dart:js` +- `dart:js_util` +- `dart:js_interop` +- `dart:js_interop_unsafe` +- `package:js` +- `package:web` + +#### Example + +When found in a package that isn't a web plugin, the following code +produces this diagnostic because it imports `dart:html`: + +```dart +import [!'dart:html'!]; + +import 'package:flutter/material.dart'; + +class C {} +``` + +#### Common fixes + +If the package isn't intended to be a web plugin, then remove the import: + +```dart +import 'package:flutter/material.dart'; + +class C {} +``` + +If the package is intended to be a web plugin, then add the following +lines to the `pubspec.yaml` file of the package: + +```yaml +flutter: + plugin: + platforms: + web: + pluginClass: HelloPlugin + fileName: hello_web.dart +``` + +See [Developing packages & plugins](https://docs.flutter.dev/packages-and-plugins/developing-packages) +for more information. + +### await_only_futures + +_Uses 'await' on an instance of '{0}', which is not a subtype of 'Future'._ + +#### Description + +The analyzer produces this diagnostic when the expression after `await` +has any type other than `Future`, `FutureOr`, `Future?`, +`FutureOr?` or `dynamic`. + +An exception is made for the expression `await null` because it is a +common way to introduce a microtask delay. + +Unless the expression can produce a `Future`, the `await` is unnecessary +and can cause a reader to assume a level of asynchrony that doesn't exist. + +#### Example + +The following code produces this diagnostic because the expression after +`await` has the type `int`: + +```dart +void f() async { + [!await!] 23; +} +``` + +#### Common fixes + +Remove the `await`: + +```dart +void f() async { + 23; +} +``` + +### camel_case_extensions + +_The extension name '{0}' isn't an UpperCamelCase identifier._ + +#### Description + +The analyzer produces this diagnostic when the name of an extension +doesn't use the 'UpperCamelCase' naming convention. + +#### Example + +The following code produces this diagnostic because the name of the +extension doesn't start with an uppercase letter: + +```dart +extension [!stringExtension!] on String {} +``` + +#### Common fixes + +If the extension needs to have a name (needs to be visible outside this +library), then rename the extension so that it has a valid name: + +```dart +extension StringExtension on String {} +``` + +If the extension doesn't need to have a name, then remove the name of the +extension: + +```dart +extension on String {} +``` + +### camel_case_types + +_The type name '{0}' isn't an UpperCamelCase identifier._ + +#### Description + +The analyzer produces this diagnostic when the name of a type (a class, +mixin, enum, or typedef) doesn't use the 'UpperCamelCase' naming +convention. + +#### Example + +The following code produces this diagnostic because the name of the class +doesn't start with an uppercase letter: + +```dart +class [!c!] {} +``` + +#### Common fixes + +Rename the type so that it has a valid name: + +```dart +class C {} +``` + +### cancel_subscriptions + +_Uncancelled instance of 'StreamSubscription'._ + +#### Description + +The analyzer produces this diagnostic when an instance of +`StreamSubscription` is created but the method `cancel` isn't invoked. + +#### Example + +The following code produces this diagnostic because the `subscription` +isn't canceled: + +```dart +import 'dart:async'; + +void f(Stream stream) { + // ignore: unused_local_variable + var [!subscription = stream.listen((_) {})!]; +} +``` + +#### Common fixes + +Cancel the subscription: + +```dart +import 'dart:async'; + +void f(Stream stream) { + var subscription = stream.listen((_) {}); + subscription.cancel(); +} +``` + +### close_sinks + +_Unclosed instance of 'Sink'._ + +#### Description + +The analyzer produces this diagnostic when an instance of `Sink` is +created but the method `close` isn't invoked. + +#### Example + +The following code produces this diagnostic because the `sink` isn't +closed: + +```dart +import 'dart:io'; + +void g(File f) { + var [!sink = f.openWrite()!]; + sink.write('x'); +} +``` + +#### Common fixes + +Close the sink: + +```dart +import 'dart:io'; + +void g(File f) { + var sink = f.openWrite(); + sink.write('x'); + sink.close(); +} +``` + +### collection_methods_unrelated_type + +_The argument type '{0}' isn't related to '{1}'._ + +#### Description + +The analyzer produces this diagnostic when any one of several methods in +the core libraries are invoked with arguments of an inappropriate type. +These methods are ones that don't provide a specific enough type for the +parameter to allow the normal type checking to catch the error. + +The arguments that are checked are: +- an argument to `Iterable.contains` should be related to `E` +- an argument to `List.remove` should be related to `E` +- an argument to `Map.containsKey` should be related to `K` +- an argument to `Map.containsValue` should be related to `V` +- an argument to `Map.remove` should be related to `K` +- an argument to `Map.[]` should be related to `K` +- an argument to `Queue.remove` should be related to `E` +- an argument to `Set.lookup` should be related to `E` +- an argument to `Set.remove` should be related to `E` + +#### Example + +The following code produces this diagnostic because the argument to +`contains` is a `String`, which isn't assignable to `int`, the element +type of the list `l`: + +```dart +bool f(List l) => l.contains([!'1'!]); +``` + +#### Common fixes + +If the element type is correct, then change the argument to have the same +type: + +```dart +bool f(List l) => l.contains(1); +``` + +If the argument type is correct, then change the element type: + +```dart +bool f(List l) => l.contains('1'); +``` + +### constant_identifier_names + +_The constant name '{0}' isn't a lowerCamelCase identifier._ + +#### Description + +The analyzer produces this diagnostic when the name of a constant doesn't +follow the lowerCamelCase naming convention. + +#### Example + +The following code produces this diagnostic because the name of the +top-level variable isn't a lowerCamelCase identifier: + +```dart +const [!EMPTY_STRING!] = ''; +``` + +#### Common fixes + +Rewrite the name to follow the lowerCamelCase naming convention: + +```dart +const emptyString = ''; +``` + +### control_flow_in_finally + +_Use of '{0}' in a 'finally' clause._ + +#### Description + +The analyzer produces this diagnostic when a `finally` clause contains a +`return`, `break`, or `continue` statement. + +#### Example + +The following code produces this diagnostic because there is a `return` +statement inside a `finally` block: + +```dart +int f() { + try { + return 1; + } catch (e) { + print(e); + } finally { + [!return 0;!] + } +} +``` + +#### Common fixes + +If the statement isn't needed, then remove the statement, and remove the +`finally` clause if the block is empty: + +```dart +int f() { + try { + return 1; + } catch (e) { + print(e); + } +} +``` + +If the statement is needed, then move the statement outside the `finally` +block: + +```dart +int f() { + try { + return 1; + } catch (e) { + print(e); + } + return 0; +} +``` + +### curly_braces_in_flow_control_structures + +_Statements in {0} should be enclosed in a block._ + +#### Description + +The analyzer produces this diagnostic when a control structure (`if`, +`for`, `while`, or `do` statement) has a statement other than a block. + +#### Example + +The following code produces this diagnostic because the `then` statement +is not enclosed in a block: + +```dart +int f(bool b) { + if (b) + [!return 1;!] + return 0; +} +``` + +#### Common fixes + +Add braces around the statement that should be a block: + +```dart +int f(bool b) { + if (b) { + return 1; + } + return 0; +} +``` + +### dangling_library_doc_comments + +_Dangling library doc comment._ + +#### Description + +The analyzer produces this diagnostic when a documentation comment that +appears to be library documentation isn't followed by a `library` +directive. More specifically, it is produced when a documentation comment +appears before the first directive in the library, assuming that it isn't +a `library` directive, or before the first top-level declaration and is +separated from the declaration by one or more blank lines. + +#### Example + +The following code produces this diagnostic because there's a +documentation comment before the first `import` directive: + +```dart +[!/// This is a great library.!] +import 'dart:core'; +``` + +The following code produces this diagnostic because there's a +documentation comment before the first class declaration, but there's a +blank line between the comment and the declaration. + +```dart +[!/// This is a great library.!] + +class C {} +``` + +#### Common fixes + +If the comment is library documentation, then add a `library` directive +without a name: + +```dart +/// This is a great library. +library; + +import 'dart:core'; +``` + +If the comment is documentation for the following declaration, then remove +the blank line: + +```dart +/// This is a great library. +class C {} +``` + +### depend_on_referenced_packages + +_The imported package '{0}' isn't a dependency of the importing package._ + +#### Description + +The analyzer produces this diagnostic when a package import refers to a +package that is not specified in the `pubspec.yaml` file. + +Depending explicitly on packages that you reference ensures they will +always exist and allows you to put a dependency constraint on them to +guard against breaking changes. + +#### Example + +Given a `pubspec.yaml` file containing the following: + +```yaml +dependencies: + meta: ^3.0.0 +``` + +The following code produces this diagnostic because there is no dependency +on the package `a`: + +```dart +import 'package:a/a.dart'; +``` + +#### Common fixes + +Whether the dependency should be a regular dependency or dev dependency +depends on whether the package is referenced from a public library (one +under either `lib` or `bin`), or only private libraries, (such as one +under `test`). + +If the package is referenced from at least one public library, then add a +regular dependency on the package to the `pubspec.yaml` file under the +`dependencies` field: + +```yaml +dependencies: + a: ^1.0.0 + meta: ^3.0.0 +``` + +If the package is referenced only from private libraries, then add a +dev dependency on the package to the `pubspec.yaml` file under the +`dev_dependencies` field: + +```yaml +dependencies: + meta: ^3.0.0 +dev_dependencies: + a: ^1.0.0 +``` + +### empty_catches + +_Empty catch block._ + +#### Description + +The analyzer produces this diagnostic when the block in a `catch` clause +is empty. + +#### Example + +The following code produces this diagnostic because the catch block is +empty: + +```dart +void f() { + try { + print('Hello'); + } catch (exception) [!{}!] +} +``` + +#### Common fixes + +If the exception shouldn't be ignored, then add code to handle the +exception: + +```dart +void f() { + try { + print('We can print.'); + } catch (exception) { + print("We can't print."); + } +} +``` + +If the exception is intended to be ignored, then add a comment explaining +why: + +```dart +void f() { + try { + print('We can print.'); + } catch (exception) { + // Nothing to do. + } +} +``` + +If the exception is intended to be ignored and there isn't any good +explanation for why, then rename the exception parameter: + +```dart +void f() { + try { + print('We can print.'); + } catch (_) {} +} +``` + +### empty_constructor_bodies + +_Empty constructor bodies should be written using a ';' rather than '{}'._ + +#### Description + +The analyzer produces this diagnostic when a constructor has an empty +block body. + +#### Example + +The following code produces this diagnostic because the constructor for +`C` has a block body that is empty: + +```dart +class C { + C() [!{}!] +} +``` + +#### Common fixes + +Replace the block with a semicolon: + +```dart +class C { + C(); +} +``` + +### empty_statements + +_Unnecessary empty statement._ + +#### Description + +The analyzer produces this diagnostic when an empty statement is found. + +#### Example + +The following code produces this diagnostic because the statement +controlled by the `while` loop is an empty statement: + +```dart +void f(bool condition) { + while (condition)[!;!] + g(); +} + +void g() {} +``` + +#### Common fixes + +If there are no statements that need to be controlled, then remove both +the empty statement and the control structure it's part of (being careful +that any other code being removed doesn't have a side-effect that needs to +be preserved): + +```dart +void f(bool condition) { + g(); +} + +void g() {} +``` + +If there are no statements that need to be controlled but the control +structure is still required for other reasons, then replace the empty +statement with a block to make the structure of the code more obvious: + +```dart +void f(bool condition) { + while (condition) {} + g(); +} + +void g() {} +``` + +If there are statements that need to be controlled, remove the empty +statement and adjust the code so that the appropriate statements are being +controlled, possibly adding a block: + +```dart +void f(bool condition) { + while (condition) { + g(); + } +} + +void g() {} +``` + +### file_names + +_The file name '{0}' isn't a lower\_case\_with\_underscores identifier._ + +#### Description + +The analyzer produces this diagnostic when the name of a `.dart` file +doesn't use lower_case_with_underscores. + +#### Example + +A file named `SliderMenu.dart` produces this diagnostic because the file +name uses the UpperCamelCase convention. + +#### Common fixes + +Rename the file to use the lower_case_with_underscores convention, such as +`slider_menu.dart`. + +### hash_and_equals + +_Missing a corresponding override of '{0}'._ + +#### Description + +The analyzer produces this diagnostic when a class or mixin either +overrides the definition of `==` but doesn't override the definition of +`hashCode`, or conversely overrides the definition of `hashCode` but +doesn't override the definition of `==`. + +Both the `==` operator and the `hashCode` property of objects must be +consistent for a common hash map implementation to function properly. As a +result, when overriding either method, both should be overridden. + +#### Example + +The following code produces this diagnostic because the class `C` +overrides the `==` operator but doesn't override the getter `hashCode`: + +```dart +class C { + final int value; + + C(this.value); + + @override + bool operator [!==!](Object other) => + other is C && + other.runtimeType == runtimeType && + other.value == value; +} +``` + +#### Common fixes + +If you need to override one of the members, then add an override of the +other: + +```dart +class C { + final int value; + + C(this.value); + + @override + bool operator ==(Object other) => + other is C && + other.runtimeType == runtimeType && + other.value == value; + + @override + int get hashCode => value.hashCode; +} +``` + +If you don't need to override either of the members, then remove the +unnecessary override: + +```dart +class C { + final int value; + + C(this.value); +} +``` + +### implementation_imports + +_Import of a library in the 'lib/src' directory of another package._ + +#### Description + +The analyzer produces this diagnostic when an import references a library +that's inside the `lib/src` directory of a different package, which +violates [the convention for pub +packages](https://dart.dev/tools/pub/package-layout#implementation-files). + +#### Example + +The following code, assuming that it isn't part of the `ffi` package, +produces this diagnostic because the library being imported is inside the +top-level `src` directory: + +```dart +import [!'package:ffi/src/allocation.dart'!]; +``` + +#### Common fixes + +If the library being imported contains code that's part of the public API, +then import the public library that exports the public API: + +```dart +import 'package:ffi/ffi.dart'; +``` + +If the library being imported isn't part of the public API of the package, +then either find a different way to accomplish your goal, assuming that +it's possible, or open an issue asking the package authors to make it part +of the public API. + +### implicit_call_tearoffs + +_Implicit tear-off of the 'call' method._ + +#### Description + +The analyzer produces this diagnostic when an object with a `call` method +is assigned to a function-typed variable, implicitly tearing off the +`call` method. + +#### Example + +The following code produces this diagnostic because an instance of +`Callable` is passed to a function expecting a `Function`: + +```dart +class Callable { + void call() {} +} + +void callIt(void Function() f) { + f(); +} + +void f() { + callIt([!Callable()!]); +} +``` + +#### Common fixes + +Explicitly tear off the `call` method: + +```dart +class Callable { + void call() {} +} + +void callIt(void Function() f) { + f(); +} + +void f() { + callIt(Callable().call); +} +``` + +### invalid_use_of_do_not_submit_member + +_Uses of '{0}' should not be submitted to source control._ + +#### Description + +The analyzer produces this diagnostic when a member that is annotated with +[`@doNotSubmit`][meta-doNotSubmit] is referenced outside of a member +declaration that is also annotated with `@doNotSubmit`. + +#### Example + +Given a file `a.dart` containing the following declaration: + +```dart +import 'package:meta/meta.dart'; + +@doNotSubmit +void emulateCrash() { /* ... */ } +``` + +The following code produces this diagnostic because the declaration is +being referenced outside of a member that is also annotated with +`@doNotSubmit`: + +```dart +import 'a.dart'; + +void f() { + [!emulateCrash!](); +} +``` + +#### Common fixes + +Most commonly, when complete with local testing, the reference to the +member should be removed. + +If building additional functionality on top of the member, annotate the +newly added member with `@doNotSubmit` as well: + +```dart +import 'package:meta/meta.dart'; + +import 'a.dart'; + +@doNotSubmit +void emulateCrashWithOtherFunctionality() { + emulateCrash(); + // do other things. +} +``` + +### library_names + +_The library name '{0}' isn't a lower\_case\_with\_underscores identifier._ + +#### Description + +The analyzer produces this diagnostic when the name of a library doesn't +use the lower_case_with_underscores naming convention. + +#### Example + +The following code produces this diagnostic because the library name +`libraryName` isn't a lower_case_with_underscores identifier: + +```dart +library [!libraryName!]; +``` + +#### Common fixes + +If the library name is not required, then remove the library name: + +```dart +library; +``` + +If the library name is required, then convert it to use the +lower_case_with_underscores naming convention: + +```dart +library library_name; +``` + +### library_prefixes + +_The prefix '{0}' isn't a lower\_case\_with\_underscores identifier._ + +#### Description + +The analyzer produces this diagnostic when an import prefix doesn't use +the lower_case_with_underscores naming convention. + +#### Example + +The following code produces this diagnostic because the prefix +`ffiSupport` isn't a lower_case_with_underscores identifier: + +```dart +import 'package:ffi/ffi.dart' as [!ffiSupport!]; +``` + +#### Common fixes + +Convert the prefix to use the lower_case_with_underscores naming +convention: + +```dart +import 'package:ffi/ffi.dart' as ffi_support; +``` + +### library_private_types_in_public_api + +_Invalid use of a private type in a public API._ + +#### Description + +The analyzer produces this diagnostic when a type that is not part of the +public API of a library is referenced in the public API of that library. + +Using a private type in a public API can make the API unusable outside the +defining library. + +#### Example + +The following code produces this diagnostic because the parameter `c` of +the public function `f` has a type that is library private (`_C`): + +```dart +void f([!_C!] c) {} + +class _C {} +``` + +#### Common fixes + +If the API doesn't need to be used outside the defining library, then make +it private: + +```dart +void _f(_C c) {} + +class _C {} +``` + +If the API needs to be part of the public API of the library, then either +use a different type that's public, or make the referenced type public: + +```dart +void f(C c) {} + +class C {} +``` + +### literal_only_boolean_expressions + +_The Boolean expression has a constant value._ + +#### Description + +The analyzer produces this diagnostic when the value of the condition in +an `if` or loop statement is known to be either always `true` or always +`false`. An exception is made for a `while` loop whose condition is the +Boolean literal `true`. + +#### Examples + +The following code produces this diagnostic because the condition will +always evaluate to `true`: + +```dart +void f() { + [!if (true) {!] + [!print('true');!] + [!}!] +} +``` + +The lint will evaluate a subset of expressions that are composed of +constants, so the following code will also produce this diagnostic because +the condition will always evaluate to `false`: + +```dart +void g(int i) { + [!if (1 == 0 || 3 > 4) {!] + [!print('false');!] + [!}!] +} +``` + +#### Common fixes + +If the condition is wrong, then correct the condition so that it's value +can't be known at compile time: + +```dart +void g(int i) { + if (i == 0 || i > 4) { + print('false'); + } +} +``` + +If the condition is correct, then simplify the code to not evaluate the +condition: + +```dart +void f() { + print('true'); +} +``` + +### no_adjacent_strings_in_list + +_Don't use adjacent strings in a list literal._ + +#### Description + +The analyzer produces this diagnostic when two string literals are +adjacent in a list literal. Adjacent strings in Dart are concatenated +together to form a single string, but the intent might be for each string +to be a separate element in the list. + +#### Example + +The following code produces this diagnostic because the strings `'a'` and +`'b'` are adjacent: + +```dart +List list = [[!'a' 'b'!], 'c']; +``` + +#### Common fixes + +If the two strings are intended to be separate elements of the list, then +add a comma between them: + +```dart +List list = ['a', 'b', 'c']; +``` + +If the two strings are intended to be a single concatenated string, then +either manually merge the strings: + +```dart +List list = ['ab', 'c']; +``` + +Or use the `+` operator to concatenate the strings: + +```dart +List list = ['a' + 'b', 'c']; +``` + +### no_duplicate_case_values + +_The value of the case clause ('{0}') is equal to the value of an earlier case +clause ('{1}')._ + +#### Description + +The analyzer produces this diagnostic when two or more `case` clauses in +the same `switch` statement have the same value. + +Any `case` clauses after the first can't be executed, so having duplicate +`case` clauses is misleading. + +This diagnostic is often the result of either a typo or a change to the +value of a constant. + +#### Example + +The following code produces this diagnostic because two case clauses have +the same value (1): + +```dart +// @dart = 2.14 +void f(int v) { + switch (v) { + case 1: + break; + case [!1!]: + break; + } +} +``` + +#### Common fixes + +If one of the clauses should have a different value, then change the value +of the clause: + +```dart +void f(int v) { + switch (v) { + case 1: + break; + case 2: + break; + } +} +``` + +If the value is correct, then merge the statements into a single clause: + +```dart +void f(int v) { + switch (v) { + case 1: + break; + } +} +``` + +### no_leading_underscores_for_library_prefixes + +_The library prefix '{0}' starts with an underscore._ + +#### Description + +The analyzer produces this diagnostic when the name of a prefix declared +on an import starts with an underscore. + +Library prefixes are inherently not visible outside the declaring library, +so a leading underscore indicating private adds no value. + +#### Example + +The following code produces this diagnostic because the prefix `_core` +starts with an underscore: + +```dart +import 'dart:core' as [!_core!]; +``` + +#### Common fixes + +Remove the underscore: + +```dart +import 'dart:core' as core; +``` + +### no_leading_underscores_for_local_identifiers + +_The local variable '{0}' starts with an underscore._ + +#### Description + +The analyzer produces this diagnostic when the name of a local variable +starts with an underscore. + +Local variables are inherently not visible outside the declaring library, +so a leading underscore indicating private adds no value. + +#### Example + +The following code produces this diagnostic because the parameter `_s` +starts with an underscore: + +```dart +int f(String [!_s!]) => _s.length; +``` + +#### Common fixes + +Remove the underscore: + +```dart +int f(String s) => s.length; +``` + +### no_logic_in_create_state + +_Don't put any logic in 'createState'._ + +#### Description + +The analyzer produces this diagnostic when an implementation of +`createState` in a subclass of `StatefulWidget` contains any logic other +than the return of the result of invoking a zero argument constructor. + +#### Examples + +The following code produces this diagnostic because the constructor +invocation has arguments: + +```dart +import 'package:flutter/material.dart'; + +class MyWidget extends StatefulWidget { + @override + MyState createState() => [!MyState(0)!]; +} + +class MyState extends State { + int x; + + MyState(this.x); +} +``` + +#### Common fixes + +Rewrite the code so that `createState` doesn't contain any logic: + +```dart +import 'package:flutter/material.dart'; + +class MyWidget extends StatefulWidget { + @override + MyState createState() => MyState(); +} + +class MyState extends State { + int x = 0; + + MyState(); +} +``` + +### no_wildcard_variable_uses + +_The referenced identifier is a wildcard._ + +#### Description + +The analyzer produces this diagnostic when either a parameter or local +variable whose name consists of only underscores is referenced. Such +names will become non-binding in a future version of the Dart language, +making the reference illegal. + +#### Example + +The following code produces this diagnostic because the name of the +parameter consists of two underscores: + +```dart +void f(int __) { + print([!__!]); +} +``` + +The following code produces this diagnostic because the name of the +local variable consists of a single underscore: + +```dart +void f() { + int _ = 0; + print([!_!]); +} +``` + +#### Common fixes + +If the variable or parameter is intended to be referenced, then give it a +name that has at least one non-underscore character: + +```dart +void f(int p) { + print(p); +} +``` + +If the variable or parameter is not intended to be referenced, then +replace the reference with a different expression: + +```dart +void f() { + print(0); +} +``` + +### non_constant_identifier_names + +_The variable name '{0}' isn't a lowerCamelCase identifier._ + +#### Description + +The analyzer produces this diagnostic when the name of a class member, +top-level declaration, variable, parameter, named parameter, or named +constructor that isn't declared to be `const`, doesn't use the +lowerCamelCase convention. + +#### Example + +The following code produces this diagnostic because the top-level variable +`Count` doesn't start with a lowercase letter: + +```dart +var [!Count!] = 0; +``` + +#### Common fixes + +Change the name in the declaration to follow the lowerCamelCase +convention: + +```dart +var count = 0; +``` + +### null_check_on_nullable_type_parameter + +_The null check operator shouldn't be used on a variable whose type is a +potentially nullable type parameter._ + +#### Description + +The analyzer produces this diagnostic when a null check operator is used +on a variable whose type is `T?`, where `T` is a type parameter that +allows the type argument to be nullable (either has no bound or has a +bound that is nullable). + +Given a generic type parameter `T` which has a nullable bound, it is very +easy to introduce erroneous null checks when working with a variable of +type `T?`. Specifically, it is not uncommon to have `T? x;` and want to +assert that `x` has been set to a valid value of type `T`. A common +mistake is to do so using `x!`. This is almost always incorrect, because +if `T` is a nullable type, `x` may validly hold `null` as a value of type +`T`. + +#### Example + +The following code produces this diagnostic because `t` has the type `T?` +and `T` allows the type argument to be nullable (because it has no +`extends` clause): + +```dart +T f(T? t) => t[!!!]; +``` + +#### Common fixes + +Use the type parameter to cast the variable: + +```dart +T f(T? t) => t as T; +``` + +### overridden_fields + +_Field overrides a field inherited from '{0}'._ + +#### Description + +The analyzer produces this diagnostic when a class defines a field that +overrides a field from a superclass. + +Overriding a field with another field causes the object to have two +distinct fields, but because the fields have the same name only one of the +fields can be referenced in a given scope. That can lead to confusion +where a reference to one of the fields can be mistaken for a reference to +the other. + +#### Example + +The following code produces this diagnostic because the field `f` in `B` +shadows the field `f` in `A`: + +```dart +class A { + int f = 1; +} + +class B extends A { + @override + int [!f!] = 2; +} +``` + +#### Common fixes + +If the two fields are representing the same property, then remove the +field from the subclass: + +```dart +class A { + int f = 1; +} + +class B extends A {} +``` + +If the two fields should be distinct, then rename one of the fields: + +```dart +class A { + int f = 1; +} + +class B extends A { + int g = 2; +} +``` + +If the two fields are related in some way, but can't be the same, then +find a different way to implement the semantics you need. + +### package_names + +_The package name '{0}' isn't a lower\_case\_with\_underscores identifier._ + +#### Description + +The analyzer produces this diagnostic when the name of a package doesn't +use the lower_case_with_underscores naming convention. + +#### Example + +The following code produces this diagnostic because the name of the +package uses the lowerCamelCase naming convention: + +```yaml +name: [!somePackage!] +``` + +#### Common fixes + +Rewrite the name of the package using the lower_case_with_underscores +naming convention: + +```yaml +name: some_package +``` + +### package_prefixed_library_names + +_The library name is not a dot-separated path prefixed by the package name._ + +#### Description + +The analyzer produces this diagnostic when a library has a name that +doesn't follow these guidelines: + +- Prefix all library names with the package name. +- Make the entry library have the same name as the package. +- For all other libraries in a package, after the package name add the + dot-separated path to the library's Dart file. +- For libraries under `lib`, omit the top directory name. + +For example, given a package named `my_package`, here are the library +names for various files in the package: + + +#### Example + +Assuming that the file containing the following code is not in a file +named `special.dart` in the `lib` directory of a package named `something` +(which would be an exception to the rule), the analyzer produces this +diagnostic because the name of the library doesn't conform to the +guidelines above: + +```dart +library [!something.special!]; +``` + +#### Common fixes + +Change the name of the library to conform to the guidelines. + +### prefer_adjacent_string_concatenation + +_String literals shouldn't be concatenated by the '+' operator._ + +#### Description + +The analyzer produces this diagnostic when the `+` operator is used to +concatenate two string literals. + +#### Example + +The following code produces this diagnostic because two string literals +are being concatenated by using the `+` operator: + +```dart +var s = 'a' [!+!] 'b'; +``` + +#### Common fixes + +Remove the operator: + +```dart +var s = 'a' 'b'; +``` + +### prefer_collection_literals + +_Unnecessary constructor invocation._ + +#### Description + +The analyzer produces this diagnostic when a constructor is used to create +a list, map, or set, but a literal would produce the same result. + +#### Example + +The following code produces this diagnostic because the constructor for +`Map` is being used to create a map that could also be created using a +literal: + +```dart +var m = [!Map()!]; +``` + +#### Common fixes + +Use the literal representation: + +```dart +var m = {}; +``` + +### prefer_conditional_assignment + +_The 'if' statement could be replaced by a null-aware assignment._ + +#### Description + +The analyzer produces this diagnostic when an assignment to a variable is +conditional based on whether the variable has the value `null` and the +`??=` operator could be used instead. + +#### Example + +The following code produces this diagnostic because the parameter `s` is +being compared to `null` in order to determine whether to assign a +different value: + +```dart +int f(String? s) { + [!if (s == null) {!] + [!s = '';!] + [!}!] + return s.length; +} +``` + +#### Common fixes + +Use the `??=` operator instead of an explicit `if` statement: + +```dart +int f(String? s) { + s ??= ''; + return s.length; +} +``` + +### prefer_const_constructors + +_Use 'const' with the constructor to improve performance._ + +#### Description + +The analyzer produces this diagnostic when an invocation of a const +constructor isn't either preceded by `const` or in a [constant context][]. + +#### Example + +The following code produces this diagnostic because the invocation of the +`const` constructor is neither prefixed by `const` nor in a +[constant context][]: + +```dart +class C { + const C(); +} + +C c = [!C()!]; +``` + +#### Common fixes + +If the context can be made a [constant context][], then do so: + +```dart +class C { + const C(); +} + +const C c = C(); +``` + +If the context can't be made a [constant context][], then add `const` +before the constructor invocation: + +```dart +class C { + const C(); +} + +C c = const C(); +``` + +### prefer_const_constructors_in_immutables + +_Constructors in '@immutable' classes should be declared as 'const'._ + +#### Description + +The analyzer produces this diagnostic when a non-`const` constructor is +found in a class that has the `@immutable` annotation. + +#### Example + +The following code produces this diagnostic because the constructor in `C` +isn't declared as `const` even though `C` has the `@immutable` annotation: + +```dart +import 'package:meta/meta.dart'; + +@immutable +class C { + final f; + + [!C!](this.f); +} +``` + +#### Common fixes + +If the class really is intended to be immutable, then add the `const` +modifier to the constructor: + +```dart +import 'package:meta/meta.dart'; + +@immutable +class C { + final f; + + const C(this.f); +} +``` + +If the class is mutable, then remove the `@immutable` annotation: + +```dart +class C { + final f; + + C(this.f); +} +``` + +### prefer_const_declarations + +_Use 'const' for final variables initialized to a constant value._ + +#### Description + +The analyzer produces this diagnostic when a top-level variable, static +field, or local variable is marked as `final` and is initialized to a +constant value. + +#### Examples + +The following code produces this diagnostic because the top-level variable +`v` is both `final` and initialized to a constant value: + +```dart +[!final v = const []!]; +``` + +The following code produces this diagnostic because the static field `f` +is both `final` and initialized to a constant value: + +```dart +class C { + static [!final f = const []!]; +} +``` + +The following code produces this diagnostic because the local variable `v` +is both `final` and initialized to a constant value: + +```dart +void f() { + [!final v = const []!]; + print(v); +} +``` + +#### Common fixes + +Replace the keyword `final` with `const` and remove `const` from the +initializer: + +```dart +class C { + static const f = []; +} +``` + +### prefer_const_literals_to_create_immutables + +_Use 'const' literals as arguments to constructors of '@immutable' classes._ + +#### Description + +The analyzer produces this diagnostic when a non-const list, map, or set +literal is passed as an argument to a constructor declared in a class +annotated with `@immutable`. + +#### Example + +The following code produces this diagnostic because the list literal +(`[1]`) is being passed to a constructor in an immutable class but isn't +a constant list: + +```dart +import 'package:meta/meta.dart'; + +@immutable +class C { + final f; + + const C(this.f); +} + +C c = C([![1]!]); +``` + +#### Common fixes + +If the context can be made a [constant context][], then do so: + +```dart +import 'package:meta/meta.dart'; + +@immutable +class C { + final f; + + const C(this.f); +} + +const C c = C([1]); +``` + +If the context can't be made a [constant context][] but the constructor +can be invoked using `const`, then add `const` before the constructor +invocation: + +```dart +import 'package:meta/meta.dart'; + +@immutable +class C { + final f; + + const C(this.f); +} + +C c = const C([1]); +``` + +If the context can't be made a [constant context][] and the constructor +can't be invoked using `const`, then add the keyword `const` before the +collection literal: + +```dart +import 'package:meta/meta.dart'; + +@immutable +class C { + final f; + + const C(this.f); +} + +C c = C(const [1]); +``` + +### prefer_contains + +_Always false because indexOf is always greater or equal -1._ + +_Always true because indexOf is always greater or equal -1._ + +_Unnecessary use of 'indexOf' to test for containment._ + +#### Description + +The analyzer produces this diagnostic when the method `indexOf` is used and +the result is only compared with `-1` or `0` in a way where the semantics +are equivalent to using `contains`. + +#### Example + +The following code produces this diagnostic because the condition in the +`if` statement is checking to see whether the list contains the string: + +```dart +void f(List l, String s) { + if ([!l.indexOf(s) < 0!]) { + // ... + } +} +``` + +#### Common fixes + +Use `contains` instead, negating the condition when necessary: + +```dart +void f(List l, String s) { + if (l.contains(s)) { + // ... + } +} +``` + +### prefer_final_fields + +_The private field {0} could be 'final'._ + +#### Description + +The analyzer produces this diagnostic when a private field is only +assigned one time. The field can be initialized in multiple constructors +and still be flagged because only one of those constructors can ever run. + +#### Example + +The following code produces this diagnostic because the field `_f` is only +assigned one time, in the field's initializer: + +```dart +class C { + int [!_f = 1!]; + + int get f => _f; +} +``` + +#### Common fixes + +Mark the field `final`: + +```dart +class C { + final int _f = 1; + + int get f => _f; +} +``` + +### prefer_for_elements_to_map_fromiterable + +_Use 'for' elements when building maps from iterables._ + +#### Description + +The analyzer produces this diagnostic when `Map.fromIterable` is used to +build a map that could be built using the `for` element. + +#### Example + +The following code produces this diagnostic because `fromIterable` is +being used to build a map that could be built using a `for` element: + +```dart +void f(Iterable data) { + [!Map.fromIterable(!] + [!data,!] + [!key: (element) => element,!] + [!value: (element) => element.length,!] + [!)!]; +} +``` + +#### Common fixes + +Use a `for` element to build the map: + +```dart +void f(Iterable data) { + { + for (var element in data) + element: element.length + }; +} +``` + +### prefer_function_declarations_over_variables + +_Use a function declaration rather than a variable assignment to bind a function +to a name._ + +#### Description + +The analyzer produces this diagnostic when a closure is assigned to a +local variable and the local variable is not re-assigned anywhere. + +#### Example + +The following code produces this diagnostic because the local variable `f` +is initialized to be a closure and isn't assigned any other value: + +```dart +void g() { + var [!f = (int i) => i * 2!]; + f(1); +} +``` + +#### Common fixes + +Replace the local variable with a local function: + +```dart +void g() { + int f(int i) => i * 2; + f(1); +} +``` + +### prefer_generic_function_type_aliases + +_Use the generic function type syntax in 'typedef's._ + +#### Description + +The analyzer produces this diagnostic when a typedef is written using the +older syntax for function type aliases in which the name being declared is +embedded in the function type. + +#### Example + +The following code produces this diagnostic because it uses the older +syntax: + +```dart +typedef void [!F!](); +``` + +#### Common fixes + +Rewrite the typedef to use the newer syntax: + +```dart +typedef F = void Function(); +``` + +### prefer_if_null_operators + +_Use the '??' operator rather than '?:' when testing for 'null'._ + +#### Description + +The analyzer produces this diagnostic when a conditional expression (using +the `?:` operator) is used to select a different value when a local +variable is `null`. + +#### Example + +The following code produces this diagnostic because the variable `s` is +being compared to `null` so that a different value can be returned when +`s` is `null`: + +```dart +String f(String? s) => [!s == null ? '' : s!]; +``` + +#### Common fixes + +Use the if-null operator instead: + +```dart +String f(String? s) => s ?? ''; +``` + +### prefer_initializing_formals + +_Use an initializing formal to assign a parameter to a field._ + +#### Description + +The analyzer produces this diagnostic when a constructor parameter is used +to initialize a field without modification. + +#### Example + +The following code produces this diagnostic because the parameter `c` is +only used to set the field `c`: + +```dart +class C { + int c; + + C(int c) : [!this.c = c!]; +} +``` + +#### Common fixes + +Use an initializing formal parameter to initialize the field: + +```dart +class C { + int c; + + C(this.c); +} +``` + +### prefer_inlined_adds + +_The addition of a list item could be inlined._ + +_The addition of multiple list items could be inlined._ + +#### Description + +The analyzer produces this diagnostic when the methods `add` and `addAll` +are invoked on a list literal where the elements being added could be +included in the list literal. + +#### Example + +The following code produces this diagnostic because the `add` method is +being used to add `b`, when it could have been included directly in the +list literal: + +```dart +List f(String a, String b) { + return [a]..[!add!](b); +} +``` + +The following code produces this diagnostic because the `addAll` method is +being used to add the elements of `b`, when it could have been included +directly in the list literal: + +```dart +List f(String a, List b) { + return [a]..[!addAll!](b); +} +``` + +#### Common fixes + +If the `add` method is being used, then make the argument an element of +the list and remove the invocation: + +```dart +List f(String a, String b) { + return [a, b]; +} +``` + +If the `addAll` method is being used, then use the spread operator on the +argument to add its elements to the list and remove the invocation: + +```dart +List f(String a, List b) { + return [a, ...b]; +} +``` + +### prefer_interpolation_to_compose_strings + +_Use interpolation to compose strings and values._ + +#### Description + +The analyzer produces this diagnostic when string literals and computed +strings are being concatenated using the `+` operator, but string +interpolation would achieve the same result. + +#### Example + +The following code produces this diagnostic because the elements of the +list `l` are being concatenated with other strings using the `+` operator: + +```dart +String f(List l) { + return [!'(' + l[0] + ', ' + l[1] + ')'!]; +} +``` + +#### Common fixes + +Use string interpolation: + +```dart +String f(List l) { + return '(${l[0]}, ${l[1]})'; +} +``` + +### prefer_is_empty + +_The comparison is always 'false' because the length is always greater than or +equal to 0._ + +_The comparison is always 'true' because the length is always greater than or +equal to 0._ + +_Use 'isEmpty' instead of 'length' to test whether the collection is empty._ + +_Use 'isNotEmpty' instead of 'length' to test whether the collection is empty._ + +#### Description + +The analyzer produces this diagnostic when the result of invoking either +`Iterable.length` or `Map.length` is compared for equality with zero +(`0`). + +#### Example + +The following code produces this diagnostic because the result of invoking +`length` is checked for equality with zero: + +```dart +int f(Iterable p) => [!p.length == 0!] ? 0 : p.first; +``` + +#### Common fixes + +Replace the use of `length` with a use of either `isEmpty` or +`isNotEmpty`: + +```dart +void f(Iterable p) => p.isEmpty ? 0 : p.first; +``` + +### prefer_is_not_empty + +_Use 'isNotEmpty' rather than negating the result of 'isEmpty'._ + +#### Description + +The analyzer produces this diagnostic when the result of invoking +`Iterable.isEmpty` or `Map.isEmpty` is negated. + +#### Example + +The following code produces this diagnostic because the result of invoking +`Iterable.isEmpty` is negated: + +```dart +void f(Iterable p) => [!!p.isEmpty!] ? p.first : 0; +``` + +#### Common fixes + +Rewrite the code to use `isNotEmpty`: + +```dart +void f(Iterable p) => p.isNotEmpty ? p.first : 0; +``` + +### prefer_is_not_operator + +_Use the 'is!' operator rather than negating the value of the 'is' operator._ + +#### Description + +The analyzer produces this diagnostic when the prefix `!` operator is used +to negate the result of an `is` test. + +#### Example + +The following code produces this diagnostic because the result of testing +to see whether `o` is a `String` is negated using the prefix `!` operator: + +```dart +String f(Object o) { + if ([!!(o is String)!]) { + return o.toString(); + } + return o; +} +``` + +#### Common fixes + +Use the `is!` operator instead: + +```dart +String f(Object o) { + if (o is! String) { + return o.toString(); + } + return o; +} +``` + +### prefer_iterable_wheretype + +_Use 'whereType' to select elements of a given type._ + +#### Description + +The analyzer produces this diagnostic when the method `Iterable.where` is +being used to filter elements based on their type. + +#### Example + +The following code produces this diagnostic because the method `where` is +being used to access only the strings within the iterable: + +```dart +Iterable f(Iterable p) => p.[!where!]((e) => e is String); +``` + +#### Common fixes + +Rewrite the code to use `whereType`: + +```dart +Iterable f(Iterable p) => p.whereType(); +``` + +This might also allow you to tighten the types in your code or remove +other type checks. + +### prefer_null_aware_operators + +_Use the null-aware operator '?.' rather than an explicit 'null' comparison._ + +#### Description + +The analyzer produces this diagnostic when a comparison with `null` is +used to guard a member reference, and `null` is used as a result when the +guarded target is `null`. + +#### Example + +The following code produces this diagnostic because the invocation of +`length` is guarded by a `null` comparison even though the default value +is `null`: + +```dart +int? f(List? p) { + return [!p == null ? null : p.length!]; +} +``` + +#### Common fixes + +Use a null-aware access operator instead: + +```dart +int? f(List? p) { + return p?.length; +} +``` + +### prefer_relative_imports + +_Use relative imports for files in the 'lib' directory._ + +#### Description + +The analyzer produces this diagnostic when an `import` in a library inside +the `lib` directory uses a `package:` URI to refer to another library in +the same package. + +#### Example + +The following code produces this diagnostic because it uses a `package:` +URI when a relative URI could have been used: + +```dart +import 'package:my_package/bar.dart'; +``` + +#### Common fixes + +Use a relative URI to import the library: + +```dart +import 'bar.dart'; +``` + +### prefer_typing_uninitialized_variables + +_Prefer typing uninitialized variables and fields._ + +#### Description + +The analyzer produces this diagnostic when a variable without an +initializer doesn't have an explicit type annotation. + +Without either a type annotation or an initializer, a variable has the +type `dynamic`, which allows any value to be assigned to the variable, +often causing hard to identify bugs. + +#### Example + +The following code produces this diagnostic because the variable `r` +doesn't have either a type annotation or an initializer: + +```dart +Object f() { + var [!r!]; + r = ''; + return r; +} +``` + +#### Common fixes + +If the variable can be initialized, then add an initializer: + +```dart +Object f() { + var r = ''; + return r; +} +``` + +If the variable can't be initialized, then add an explicit type +annotation: + +```dart +Object f() { + String r; + r = ''; + return r; +} +``` + +### prefer_void_to_null + +_Unnecessary use of the type 'Null'._ + +#### Description + +The analyzer produces this diagnostic when `Null` is used in a location +where `void` would be a valid choice. + +#### Example + +The following code produces this diagnostic because the function `f` is +declared to return `null` (at some future time): + +```dart +Future<[!Null!]> f() async {} +``` + +#### Common fixes + +Replace the use of `Null` with a use of `void`: + +```dart +Future f() async {} +``` + +### provide_deprecation_message + +_Missing a deprecation message._ + +#### Description + +The analyzer produces this diagnostic when a `deprecated` annotation is +used instead of the `Deprecated` annotation. + +#### Example + +The following code produces this diagnostic because the function `f` is +annotated with `deprecated`: + +```dart +[!@deprecated!] +void f() {} +``` + +#### Common fixes + +Convert the code to use the longer form: + +```dart +@Deprecated('Use g instead. Will be removed in 4.0.0.') +void f() {} +``` + +### recursive_getters + +_The getter '{0}' recursively returns itself._ + +#### Description + +The analyzer produces this diagnostic when a getter invokes itself, +resulting in an infinite loop. + +#### Example + +The following code produces this diagnostic because the getter `count` +invokes itself: + +```dart +class C { + int _count = 0; + + int get [!count!] => count; +} +``` + +#### Common fixes + +Change the getter to not invoke itself: + +```dart +class C { + int _count = 0; + + int get count => _count; +} +``` + +### secure_pubspec_urls + +_The '{0}' protocol shouldn't be used because it isn't secure._ + +#### Description + +The analyzer produces this diagnostic when a URL in a `pubspec.yaml` file is +using a non-secure scheme, such as `http`. + +#### Example + +The following code produces this diagnostic because the `pubspec.yaml` file +contains an `http` URL: + +```yaml +dependencies: + example: any + repository: [!http://github.com/dart-lang/example!] +``` + +#### Common fixes + +Change the scheme of the URL to use a secure scheme, such as `https`: + +```yaml +dependencies: + example: any + repository: https://github.com/dart-lang/example +``` + +### sized_box_for_whitespace + +_Use a 'SizedBox' to add whitespace to a layout._ + +#### Description + +The analyzer produces this diagnostic when a `Container` is created using +only the `height` and/or `width` arguments. + +#### Example + +The following code produces this diagnostic because the `Container` has +only the `width` argument: + +```dart +import 'package:flutter/material.dart'; + +Widget buildRow() { + return Row( + children: [ + const Text('...'), + [!Container!]( + width: 4, + child: Text('...'), + ), + const Expanded( + child: Text('...'), + ), + ], + ); +} +``` + +#### Common fixes + +Replace the `Container` with a `SizedBox` of the same dimensions: + +```dart +import 'package:flutter/material.dart'; + +Widget buildRow() { + return Row( + children: [ + Text('...'), + SizedBox( + width: 4, + child: Text('...'), + ), + Expanded( + child: Text('...'), + ), + ], + ); +} +``` + +### slash_for_doc_comments + +_Use the end-of-line form ('///') for doc comments._ + +#### Description + +The analyzer produces this diagnostic when a documentation comment uses +the block comment style (delimited by `/**` and `*/`). + +#### Example + +The following code produces this diagnostic because the documentation +comment for `f` uses a block comment style: + +```dart +[!/**!] +[! * Example.!] +[! */!] +void f() {} +``` + +#### Common fixes + +Use an end-of-line comment style: + +```dart +/// Example. +void f() {} +``` + +### sort_child_properties_last + +_The '{0}' argument should be last in widget constructor invocations._ + +#### Description + +The analyzer produces this diagnostic when the `child` or `children` +argument isn't the last argument in an invocation of a widget class' +constructor. An exception is made if all of the arguments after the +`child` or `children` argument are function expressions. + +#### Example + +The following code produces this diagnostic because the `child` argument +isn't the last argument in the invocation of the `Center` constructor: + +```dart +import 'package:flutter/material.dart'; + +Widget createWidget() { + return Center( + [!child: Text('...')!], + widthFactor: 0.5, + ); +} +``` + +#### Common fixes + +Move the `child` or `children` argument to be last: + +```dart +import 'package:flutter/material.dart'; + +Widget createWidget() { + return Center( + widthFactor: 0.5, + child: Text('...'), + ); +} +``` + +### sort_pub_dependencies + +_Dependencies not sorted alphabetically._ + +#### Description + +The analyzer produces this diagnostic when the keys in a dependency map in +the `pubspec.yaml` file aren't sorted alphabetically. The dependency maps +that are checked are the `dependencies`, `dev_dependencies`, and +`dependency_overrides` maps. + +#### Example + +The following code produces this diagnostic because the entries in the +`dependencies` map are not sorted: + +```yaml +dependencies: + path: any + collection: any +``` + +#### Common fixes + +Sort the entries: + +```yaml +dependencies: + collection: any + path: any +``` + +### test_types_in_equals + +_Missing type test for '{0}' in '=='._ + +#### Description + +The analyzer produces this diagnostic when an override of the `==` +operator doesn't include a type test on the value of the parameter. + +#### Example + +The following code produces this diagnostic because `other` is not type +tested: + +```dart +class C { + final int f; + + C(this.f); + + @override + bool operator ==(Object other) { + return ([!other as C!]).f == f; + } +} +``` + +#### Common fixes + +Perform an `is` test as part of computing the return value: + +```dart +class C { + final int f; + + C(this.f); + + @override + bool operator ==(Object other) { + return other is C && other.f == f; + } +} +``` + +### throw_in_finally + +_Use of '{0}' in 'finally' block._ + +#### Description + +The analyzer produces this diagnostic when a `throw` statement is found +inside a `finally` block. + +#### Example + +The following code produces this diagnostic because there is a `throw` +statement inside a `finally` block: + +```dart +void f() { + try { + // ... + } catch (e) { + // ... + } finally { + [!throw 'error'!]; + } +} +``` + +#### Common fixes + +Rewrite the code so that the `throw` statement isn't inside a `finally` +block: + +```dart +void f() { + try { + // ... + } catch (e) { + // ... + } + throw 'error'; +} +``` + +### type_init_formals + +_Don't needlessly type annotate initializing formals._ + +#### Description + +The analyzer produces this diagnostic when an initializing formal +parameter (`this.x`) or a super parameter (`super.x`) has an explicit type +annotation that is the same as the field or overridden parameter. + +If a constructor parameter is using `this.x` to initialize a field, then +the type of the parameter is implicitly the same type as the field. If a +constructor parameter is using `super.x` to forward to a super +constructor, then the type of the parameter is implicitly the same as the +super constructor parameter. + +#### Example + +The following code produces this diagnostic because the parameter `this.c` +has an explicit type that is the same as the field `c`: + +```dart +class C { + int c; + + C([!int!] this.c); +} +``` + +The following code produces this diagnostic because the parameter +`super.a` has an explicit type that is the same as the parameter `a` from +the superclass: + +```dart +class A { + A(int a); +} + +class B extends A { + B([!int!] super.a); +} +``` + +#### Common fixes + +Remove the type annotation from the parameter: + +```dart +class C { + int c; + + C(this.c); +} +``` + +### type_literal_in_constant_pattern + +_Use 'TypeName \_' instead of a type literal._ + +#### Description + +The analyzer produces this diagnostic when a type literal appears as a +pattern. + +#### Example + +The following code produces this diagnostic because a type literal is used +as a constant pattern: + +```dart +void f(Object? x) { + if (x case [!num!]) { + // ... + } +} +``` + +#### Common fixes + +If the type literal is intended to match an object of the given type, then +use either a variable pattern: + +```dart +void f(Object? x) { + if (x case num _) { + // ... + } +} +``` + +Or an object pattern: + +```dart +void f(Object? x) { + if (x case num()) { + // ... + } +} +``` + +If the type literal is intended to match the type literal, then write it +as a constant pattern: + +```dart +void f(Object? x) { + if (x case const (num)) { + // ... + } +} +``` + +### unnecessary_brace_in_string_interps + +_Unnecessary braces in a string interpolation._ + +#### Description + +The analyzer produces this diagnostic when a string interpolation with +braces is used to interpolate a simple identifier and isn't followed by +alphanumeric text. + +#### Example + +The following code produces this diagnostic because the interpolation +element `${s}` uses braces when they are not necessary: + +```dart +String f(String s) { + return '"[!${s}!]"'; +} +``` + +#### Common fixes + +Remove the unnecessary braces: + +```dart +String f(String s) { + return '"$s"'; +} +``` + +### unnecessary_const + +_Unnecessary 'const' keyword._ + +#### Description + +The analyzer produces this diagnostic when the keyword `const` is used in +a [constant context][]. The keyword isn't required because it's implied. + +#### Example + +The following code produces this diagnostic because the keyword `const` in +the list literal isn't needed: + +```dart +const l = [!const!] []; +``` + +The list is implicitly `const` because of the keyword `const` on the +variable declaration. + +#### Common fixes + +Remove the unnecessary keyword: + +```dart +const l = []; +``` + +### unnecessary_constructor_name + +_Unnecessary '.new' constructor name._ + +#### Description + +The analyzer produces this diagnostic when a reference to an unnamed +constructor uses `.new`. The only place where `.new` is required is in a +constructor tear-off. + +#### Example + +The following code produces this diagnostic because `.new` is being used +to refer to the unnamed constructor where it isn't required: + +```dart +var o = Object.[!new!](); +``` + +#### Common fixes + +Remove the unnecessary `.new`: + +```dart +var o = Object(); +``` + +### unnecessary_getters_setters + +_Unnecessary use of getter and setter to wrap a field._ + +#### Description + +The analyzer produces this diagnostic when a getter and setter pair +returns and sets the value of a field without any additional processing. + +#### Example + +The following code produces this diagnostic because the getter/setter pair +named `c` only expose the field named `_c`: + +```dart +class C { + int? _c; + + int? get [!c!] => _c; + + set c(int? v) => _c = v; +} +``` + +#### Common fixes + +Make the field public and remove the getter and setter: + +```dart +class C { + int? c; +} +``` + +### unnecessary_late + +_Unnecessary 'late' modifier._ + +#### Description + +The analyzer produces this diagnostic when a top-level variable or static +field with an initializer is marked as `late`. Top-level variables and +static fields are implicitly late, so they don't need to be explicitly +marked. + +#### Example + +The following code produces this diagnostic because the static field `c` +has the modifier `late` even though it has an initializer: + +```dart +class C { + static [!late!] String c = ''; +} +``` + +#### Common fixes + +Remove the keyword `late`: + +```dart +class C { + static String c = ''; +} +``` + +### unnecessary_new + +_Unnecessary 'new' keyword._ + +#### Description + +The analyzer produces this diagnostic when the keyword `new` is used to +invoke a constructor. + +#### Example + +The following code produces this diagnostic because the keyword `new` is +used to invoke the unnamed constructor from `Object`: + +```dart +var o = [!new!] Object(); +``` + +#### Common fixes + +Remove the keyword `new`: + +```dart +var o = Object(); +``` + +### unnecessary_null_aware_assignments + +_Unnecessary assignment of 'null'._ + +#### Description + +The analyzer produces this diagnostic when the right-hand side of a +null-aware assignment is the `null` literal. + +#### Example + +The following code produces this diagnostic because the null aware +operator is being used to assign `null` to `s` when `s` is already `null`: + +```dart +void f(String? s) { + [!s ??= null!]; +} +``` + +#### Common fixes + +If a non-null value should be assigned to the left-hand operand, then +change the right-hand side: + +```dart +void f(String? s) { + s ??= ''; +} +``` + +If there is no non-null value to assign to the left-hand operand, then +remove the assignment: + +```dart +void f(String? s) { +} +``` + +### unnecessary_null_in_if_null_operators + +_Unnecessary use of '??' with 'null'._ + +#### Description + +The analyzer produces this diagnostic when the right operand of the `??` +operator is the literal `null`. + +#### Example + +The following code produces this diagnostic because the right-hand operand +of the `??` operator is `null`: + +```dart +String? f(String? s) => s ?? [!null!]; +``` + +#### Common fixes + +If a non-null value should be used for the right-hand operand, then +change the right-hand side: + +```dart +String f(String? s) => s ?? ''; +``` + +If there is no non-null value to use for the right-hand operand, then +remove the operator and the right-hand operand: + +```dart +String? f(String? s) => s; +``` + +### unnecessary_nullable_for_final_variable_declarations + +_Type could be non-nullable._ + +#### Description + +The analyzer produces this diagnostic when a final field or variable has a +nullable type but is initialized to a non-nullable value. + +#### Example + +The following code produces this diagnostic because the final variable `i` +has a nullable type (`int?`), but can never be `null`: + +```dart +final int? [!i!] = 1; +``` + +#### Common fixes + +Make the type non-nullable: + +```dart +final int i = 1; +``` + +### unnecessary_overrides + +_Unnecessary override._ + +#### Description + +The analyzer produces this diagnostic when an instance member overrides an +inherited member but only invokes the overridden member with exactly the +same arguments. + +#### Example + +The following code produces this diagnostic because the method `D.m` +doesn't do anything other than invoke the overridden method: + +```dart +class C { + int m(int x) => x; +} + +class D extends C { + @override + int [!m!](int x) => super.m(x); +} +``` + +#### Common fixes + +If the method should do something more than what the overridden method +does, then implement the missing functionality: + +```dart +class C { + int m(int x) => x; +} + +class D extends C { + @override + int m(int x) => super.m(x) + 1; +} +``` + +If the overridden method should be modified by changing the return type or +one or more of the parameter types, making one of the parameters +`covariant`, having a documentation comment, or by having additional +annotations, then update the code: + +```dart +import 'package:meta/meta.dart'; + +class C { + int m(int x) => x; +} + +class D extends C { + @mustCallSuper + @override + int m(int x) => super.m(x); +} +``` + +If the overriding method doesn't change or enhance the semantics of the +code, then remove it: + +```dart +class C { + int m(int x) => x; +} + +class D extends C {} +``` + +### unnecessary_statements + +_Unnecessary statement._ + +#### Description + +The analyzer produces this diagnostic when an expression statement has no +clear effect. + +#### Example + +The following code produces this diagnostic because the addition of the +returned values from the two invocations has no clear effect: + +```dart +void f(int Function() first, int Function() second) { + [!first() + second()!]; +} +``` + +#### Common fixes + +If the expression doesn't need to be computed, then remove it: + +```dart +void f(int Function() first, int Function() second) { +} +``` + +If the value of the expression is needed, then make use of it, possibly +assigning it to a local variable first: + +```dart +void f(int Function() first, int Function() second) { + print(first() + second()); +} +``` + +If portions of the expression need to be executed, then remove the +unnecessary portions: + +```dart +void f(int Function() first, int Function() second) { + first(); + second(); +} +``` + +### unnecessary_string_escapes + +_Unnecessary escape in string literal._ + +#### Description + +The analyzer produces this diagnostic when characters in a string are +escaped when escaping them is unnecessary. + +#### Example + +The following code produces this diagnostic because single quotes don't +need to be escaped inside strings delimited by double quotes: + +```dart +var s = "Don[!\!]'t use a backslash here."; +``` + +#### Common fixes + +Remove the unnecessary backslashes: + +```dart +var s = "Don't use a backslash here."; +``` + +### unnecessary_string_interpolations + +_Unnecessary use of string interpolation._ + +#### Description + +The analyzer produces this diagnostic when a string literal contains a +single interpolation of a `String`-valued variable and no other +characters. + +#### Example + +The following code produces this diagnostic because the string literal +contains a single interpolation and doesn't contain any character outside +the interpolation: + +```dart +String f(String s) => [!'$s'!]; +``` + +#### Common fixes + +Replace the string literal with the content of the interpolation: + +```dart +String f(String s) => s; +``` + +### unnecessary_this + +_Unnecessary 'this.' qualifier._ + +#### Description + +The analyzer produces this diagnostic when the keyword `this` is used to +access a member that isn't shadowed. + +#### Example + +The following code produces this diagnostic because the use of `this` to +access the field `_f` isn't necessary: + +```dart +class C { + int _f = 2; + + int get f => [!this!]._f; +} +``` + +#### Common fixes + +Remove the `this.`: + +```dart +class C { + int _f = 2; + + int get f => _f; +} +``` + +### unnecessary_to_list_in_spreads + +_Unnecessary use of 'toList' in a spread._ + +#### Description + +The analyzer produces this diagnostic when `toList` is used to convert an +`Iterable` to a `List` just before a spread operator is applied to the +list. The spread operator can be applied to any `Iterable`, so the +conversion isn't necessary. + +#### Example + +The following code produces this diagnostic because `toList` is invoked on +the result of `map`, which is an `Iterable` that the spread operator could +be applied to directly: + +```dart +List toLowercase(List strings) { + return [ + ...strings.map((String s) => s.toLowerCase()).[!toList!](), + ]; +} +``` + +#### Common fixes + +Remove the invocation of `toList`: + +```dart +List toLowercase(List strings) { + return [ + ...strings.map((String s) => s.toLowerCase()), + ]; +} +``` + +### unrelated_type_equality_checks + +_The type of the operand ('{0}') isn't a subtype or a supertype of the value +being matched ('{1}')._ + +_The type of the right operand ('{0}') isn't a subtype or a supertype of the +left operand ('{1}')._ + +#### Description + +The analyzer produces this diagnostic when two objects are being compared +and neither of the static types of the two objects is a subtype of the +other. + +Such a comparison will usually return `false` and might not reflect the +programmer's intent. + +There can be false positives. For example, a class named `Point` might +have subclasses named `CartesianPoint` and `PolarPoint`, neither of which +is a subtype of the other, but it might still be appropriate to test the +equality of instances. + +As a concrete case, the classes `Int64` and `Int32` from `package:fixnum` +allow comparing instances to an `int` provided the `int` is on the +right-hand side. This case is specifically allowed by the diagnostic, but +other such cases are not. + +#### Example + +The following code produces this diagnostic because the string `s` is +being compared to the integer `1`: + +```dart +bool f(String s) { + return s [!==!] 1; +} +``` + +#### Common fixes + +Replace one of the operands with something compatible with the other +operand: + +```dart +bool f(String s) { + return s.length == 1; +} +``` + +### use_build_context_synchronously + +_Don't use 'BuildContext's across async gaps, guarded by an unrelated 'mounted' +check._ + +_Don't use 'BuildContext's across async gaps._ + +#### Description + +The analyzer produces this diagnostic when a `BuildContext` is referenced +by a `StatefulWidget` after an asynchronous gap without first checking the +`mounted` property. + +Storing a `BuildContext` for later use can lead to difficult to diagnose +crashes. Asynchronous gaps implicitly store a `BuildContext`, making them +easy to overlook for diagnosis. + +#### Example + +The following code produces this diagnostic because the `context` is +passed to a constructor after the `await`: + +```dart +import 'package:flutter/material.dart'; + +class MyWidget extends Widget { + void onButtonTapped(BuildContext context) async { + await Future.delayed(const Duration(seconds: 1)); + Navigator.of([!context!]).pop(); + } +} +``` + +#### Common fixes + +If you can remove the asynchronous gap, do so: + +```dart +import 'package:flutter/material.dart'; + +class MyWidget extends Widget { + void onButtonTapped(BuildContext context) { + Navigator.of(context).pop(); + } +} +``` + +If you can't remove the asynchronous gap, then use `mounted` to guard the +use of the `context`: + +```dart +import 'package:flutter/material.dart'; + +class MyWidget extends Widget { + void onButtonTapped(BuildContext context) async { + await Future.delayed(const Duration(seconds: 1)); + if (context.mounted) { + Navigator.of(context).pop(); + } + } +} +``` + +### use_full_hex_values_for_flutter_colors + +_Instances of 'Color' should be created using an 8-digit hexadecimal integer +(such as '0xFFFFFFFF')._ + +#### Description + +The analyzer produces this diagnostic when the argument to the constructor +of the `Color` class is a literal integer that isn't represented as an +8-digit hexadecimal integer. + +#### Example + +The following code produces this diagnostic because the argument (`1`) +isn't represented as an 8-digit hexadecimal integer: + +```dart +import 'package:flutter/material.dart'; + +Color c = Color([!1!]); +``` + +#### Common fixes + +Convert the representation to be an 8-digit hexadecimal integer: + +```dart +import 'package:flutter/material.dart'; + +Color c = Color(0x00000001); +``` + +### use_function_type_syntax_for_parameters + +_Use the generic function type syntax to declare the parameter '{0}'._ + +#### Description + +The analyzer produces this diagnostic when the older style function-valued +parameter syntax is used. + +#### Example + +The following code produces this diagnostic because the function-valued +parameter `f` is declared using an older style syntax: + +```dart +void g([!bool f(String s)!]) {} +``` + +#### Common fixes + +Use the generic function type syntax to declare the parameter: + +```dart +void g(bool Function(String) f) {} +``` + +### use_key_in_widget_constructors + +_Constructors for public widgets should have a named 'key' parameter._ + +#### Description + +The analyzer produces this diagnostic when a constructor in a subclass of +`Widget` that isn't private to its library doesn't have a parameter named +`key`. + +#### Example + +The following code produces this diagnostic because the constructor for +the class `MyWidget` doesn't have a parameter named `key`: + +```dart +import 'package:flutter/material.dart'; + +class MyWidget extends StatelessWidget { + [!MyWidget!]({required int height}); +} +``` + +The following code produces this diagnostic because the default +constructor for the class `MyWidget` doesn't have a parameter named `key`: + +```dart +import 'package:flutter/material.dart'; + +class [!MyWidget!] extends StatelessWidget {} +``` + +#### Common fixes + +Add a parameter named `key` to the constructor, explicitly declaring the +constructor if necessary: + +```dart +import 'package:flutter/material.dart'; + +class MyWidget extends StatelessWidget { + MyWidget({super.key, required int height}); +} +``` + +### use_rethrow_when_possible + +_Use 'rethrow' to rethrow a caught exception._ + +#### Description + +The analyzer produces this diagnostic when a caught exception is thrown +using a `throw` expression rather than a `rethrow` statement. + +#### Example + +The following code produces this diagnostic because the caught exception +`e` is thrown using a `throw` expression: + +```dart +void f() { + try { + // ... + } catch (e) { + [!throw e!]; + } +} +``` + +#### Common fixes + +Use `rethrow` instead of `throw`: + +```dart +void f() { + try { + // ... + } catch (e) { + rethrow; + } +} +``` + +### use_string_in_part_of_directives + +_The part-of directive uses a library name._ + +#### Description + +The analyzer produces this diagnostic when a `part of` directive uses a +library name to refer to the library that the part is a part of. + +#### Example + +Given a file named `lib.dart` that contains the following: + +```dart +library lib; + +part 'test.dart'; +``` + +The following code produces this diagnostic because the `part of` +directive uses the name of the library rather than the URI of the library +it's part of: + +```dart +[!part of lib;!] +``` + +#### Common fixes + +Use a URI to reference the library: + +```dart +part of 'lib.dart'; +``` + +### use_super_parameters + +_Use super-initializer parameters where possible._ + +#### Description + +The analyzer produces this diagnostic when a parameter to a constructor is +passed to a super constructor without being referenced or modified and a +`super` parameter isn't used. + +#### Example + +The following code produces this diagnostic because the parameters of the +constructor for `B` are only used as arguments to the super constructor: + +```dart +class A { + A({int? x, int? y}); +} +class B extends A { + [!B!]({int? x, int? y}) : super(x: x, y: y); +} +``` + +#### Common fixes + +Use a `super` parameter to pass the arguments: + +```dart +class A { + A({int? x, int? y}); +} +class B extends A { + B({super.x, super.y}); +} +``` + +### valid_regexps + +_Invalid regular expression syntax._ + +#### Description + +The analyzer produces this diagnostic when the string passed to the +default constructor of the class `RegExp` doesn't contain a valid regular +expression. + +A regular expression created with invalid syntax will throw a +`FormatException` at runtime. + +#### Example + +The following code produces this diagnostic because the regular expression +isn't valid: + +```dart +var r = RegExp([!r'('!]); +``` + +#### Common fixes + +Fix the regular expression: + +```dart +var r = RegExp(r'\('); +``` + +### void_checks + +_Assignment to a variable of type 'void'._ + +#### Description + +The analyzer produces this diagnostic when a value is assigned to a +variable of type `void`. + +It isn't possible to access the value of such a variable, so the +assignment has no value. + +#### Example + +The following code produces this diagnostic because the field `value` has +the type `void`, but a value is being assigned to it: + +```dart +class A { + T? value; +} + +void f(A a) { + [!a.value = 1!]; +} +``` + +The following code produces this diagnostic because the type of the +parameter `p` in the method `m` is `void`, but a value is being assigned +to it in the invocation: + +```dart +class A { + void m(T p) { } +} + +void f(A a) { + a.m([!1!]); +} +``` + +#### Common fixes + +If the type of the variable is incorrect, then change the type of the +variable: + +```dart +class A { + T? value; +} + +void f(A a) { + a.value = 1; +} +``` + +If the type of the variable is correct, then remove the assignment: + +```dart +class A { + T? value; +} + +void f(A a) {} +``` From 998bcd9b27ee8daba2891fa76031f7485f46af59 Mon Sep 17 00:00:00 2001 From: Marya <111139605+MaryaBelanger@users.noreply.github.com> Date: Mon, 17 Jun 2024 14:32:26 -0700 Subject: [PATCH 27/95] Add pub.dev filter to wasm page (#5919) Fixes #5910 --------- Co-authored-by: Anthony Sansone --- src/content/web/wasm.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/content/web/wasm.md b/src/content/web/wasm.md index fc0ee0f79..7bd38e42b 100644 --- a/src/content/web/wasm.md +++ b/src/content/web/wasm.md @@ -41,6 +41,18 @@ restrictions: contain a temporary workaround. For details, see [webdev issue 2206]({{site.repo.dart.org}}/webdev/issues/2296). +### Supported packages + +To find Wasm-compatible packages, +use the [`wasm-ready`][] filter on [pub.dev][]. + +A package is "wasm-ready" if it doesn't import non-Wasm compliant libraries +like `dart:html`, `dart:js`, etc. You can find the full list of unallowed +libraries on the [JS interop page](/interop/js-interop/#next-generation-js-interop). + +[`wasm-ready`]: {{site.pub-pkg}}?q=is%3Awasm-ready +[pub.dev]: {{site.pub}} + ## Compiling your web app to Wasm {:#compiling-to-wasm} We've landed support in the `dart` CLI for invoking the From ad0337f93268078f578f0f5f56ed48996d281ea5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 18 Jun 2024 11:20:48 -0500 Subject: [PATCH 28/95] Bump sass from 1.77.5 to 1.77.6 (#5921) Bumps [sass](https://github.com/sass/dart-sass) from 1.77.5 to 1.77.6.
Changelog

Sourced from sass's changelog.

1.77.6

  • Fix a few cases where comments and occasionally even whitespace wasn't allowed between the end of Sass statements and the following semicolon.
Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=sass&package-manager=npm_and_yarn&previous-version=1.77.5&new-version=1.77.6)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 4c4508da5..1f365bb7a 100644 --- a/package.json +++ b/package.json @@ -36,7 +36,7 @@ "markdown-it-container": "^4.0.0", "markdown-it-deflist": "^3.0.0", "markdown-it-table": "^4.1.1", - "sass": "^1.77.5", + "sass": "^1.77.6", "shiki": "^1.6.5" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0f2068d74..54d87f12b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -55,8 +55,8 @@ importers: specifier: ^4.1.1 version: 4.1.1 sass: - specifier: ^1.77.5 - version: 1.77.5 + specifier: ^1.77.6 + version: 1.77.6 shiki: specifier: ^1.6.5 version: 1.6.5 @@ -2498,8 +2498,8 @@ packages: safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - sass@1.77.5: - resolution: {integrity: sha512-oDfX1mukIlxacPdQqNb6mV2tVCrnE+P3nVYioy72V5tlk56CPNcO4TCuFcaCRKKfJ1M3lH95CleRS+dVKL2qMg==} + sass@1.77.6: + resolution: {integrity: sha512-ByXE1oLD79GVq9Ht1PeHWCPMPB8XHpBuz1r85oByKHjZY6qV6rWnQovQzXJXuQ/XyE1Oj3iPk3lo28uzaRA2/Q==} engines: {node: '>=14.0.0'} hasBin: true @@ -5752,7 +5752,7 @@ snapshots: safer-buffer@2.1.2: {} - sass@1.77.5: + sass@1.77.6: dependencies: chokidar: 3.6.0 immutable: 4.3.6 From 10374ec52dc5706abcebbc43d43398f6e8bee7be Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 18 Jun 2024 11:33:44 -0500 Subject: [PATCH 29/95] Bump shiki from 1.6.5 to 1.7.0 (#5920) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [shiki](https://github.com/shikijs/shiki/tree/HEAD/packages/shiki) from 1.6.5 to 1.7.0.
Release notes

Sourced from shiki's releases.

v1.7.0

   🚀 Features

   🐞 Bug Fixes

    View changes on GitHub
Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=shiki&package-manager=npm_and_yarn&previous-version=1.6.5&new-version=1.7.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index 1f365bb7a..ef4db191b 100644 --- a/package.json +++ b/package.json @@ -37,6 +37,6 @@ "markdown-it-deflist": "^3.0.0", "markdown-it-table": "^4.1.1", "sass": "^1.77.6", - "shiki": "^1.6.5" + "shiki": "^1.7.0" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 54d87f12b..8a34f86e6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -58,8 +58,8 @@ importers: specifier: ^1.77.6 version: 1.77.6 shiki: - specifier: ^1.6.5 - version: 1.6.5 + specifier: ^1.7.0 + version: 1.7.0 packages: @@ -379,8 +379,8 @@ packages: '@protobufjs/utf8@1.1.0': resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} - '@shikijs/core@1.6.5': - resolution: {integrity: sha512-XcQYt6e4L61ruAxHiL3Xg1DL/XkWWjzDdeckB/DtN8jAxoAU+bcxsV6DetC8NafHpL4YpGhxy9iXF0ND/u6HmA==} + '@shikijs/core@1.7.0': + resolution: {integrity: sha512-O6j27b7dGmJbR3mjwh/aHH8Ld+GQvA0OQsNO43wKWnqbAae3AYXrhFyScHGX8hXZD6vX2ngjzDFkZY5srtIJbQ==} '@sindresorhus/slugify@2.2.1': resolution: {integrity: sha512-MkngSCRZ8JdSOCHRaYd+D01XhvU3Hjy6MGl06zhOk614hp9EOAp5gIkBeQg7wtmxpitU6eAL4kdiRMcJa2dlrw==} @@ -2562,8 +2562,8 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} - shiki@1.6.5: - resolution: {integrity: sha512-iFzypldJG0zeyRHKAhaSGCf+YWXpMMyUyOrCVFBFKGGdF5vrB6jbd66/SQljxV20aSrVZEAQwUto/hhuNi/CIg==} + shiki@1.7.0: + resolution: {integrity: sha512-H5pMn4JA7ayx8H0qOz1k2qANq6mZVCMl1gKLK6kWIrv1s2Ial4EmD4s4jE8QB5Dw03d/oCQUxc24sotuyR5byA==} side-channel@1.0.6: resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} @@ -3372,7 +3372,7 @@ snapshots: '@protobufjs/utf8@1.1.0': {} - '@shikijs/core@1.6.5': {} + '@shikijs/core@1.7.0': {} '@sindresorhus/slugify@2.2.1': dependencies: @@ -5851,9 +5851,9 @@ snapshots: shebang-regex@3.0.0: {} - shiki@1.6.5: + shiki@1.7.0: dependencies: - '@shikijs/core': 1.6.5 + '@shikijs/core': 1.7.0 side-channel@1.0.6: dependencies: From 516efdcd3d2c5d3d24ce0b0336245a0b0aea53b7 Mon Sep 17 00:00:00 2001 From: Parker Lougheed Date: Wed, 19 Jun 2024 23:04:04 -0500 Subject: [PATCH 30/95] Fix incorrect optimization of gifs (#5923) This was causing gifs to lose their animation such as on https://dart.dev/language/macros, as the gif to avif conversion is currently not functional. --- eleventy.config.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/eleventy.config.js b/eleventy.config.js index f5b7df41b..a27fd7d2a 100644 --- a/eleventy.config.js +++ b/eleventy.config.js @@ -126,7 +126,7 @@ export default function (eleventyConfig) { // Save in `_site/assets/img` and update links to there. eleventyConfig.addPlugin(eleventyImageTransformPlugin, { extensions: 'html', - formats: ['avif', 'webp', 'png', 'svg'], + formats: ['webp', 'png', 'svg'], svgShortCircuit: true, widths: ['auto'], defaultAttributes: { @@ -135,6 +135,9 @@ export default function (eleventyConfig) { }, urlPath: '/assets/img/', outputDir: '_site/assets/img/', + sharpOptions: { + animated: true, + }, }); } else { // To be more consistent with the production build, @@ -150,6 +153,9 @@ export default function (eleventyConfig) { }, urlPath: '/assets/img/', outputDir: '_site/assets/img/', + sharpOptions: { + animated: true, + }, }); } From cdb8b835c66b978b38f6bcd2a951a1f4cba557b6 Mon Sep 17 00:00:00 2001 From: Michael Thomsen Date: Thu, 20 Jun 2024 22:16:11 +0200 Subject: [PATCH 31/95] Update privacy.md (#5927) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Update per offline feedback from privacy Thanks for your contribution! Please replace this text with a description of what this PR is changing or adding and why, list any relevant issues, and review the contribution guidelines below. Fixes --- - [x] I’ve reviewed the contributor guide and applied the relevant portions to this PR. - [x] This PR doesn't contain automatically generated corrections or text (Grammarly, LLMs, and similar). - [x] This PR follows the [Google Developer Documentation Style Guidelines](https://developers.google.com/style) — for example, it doesn't use _i.e._ or _e.g._, and it avoids _I_ and _we_ (first person). - [x] This PR uses [semantic line breaks](https://github.com/dart-lang/site-shared/blob/main/doc/writing-for-dart-and-flutter-websites.md#semantic-line-breaks) of 80 characters or fewer.
Contribution guidelines:
- See our [contributor guide](https://github.com/dart-lang/site-www/blob/main/CONTRIBUTING.md) for general expectations for PRs. - Larger or significant changes should be discussed in an issue before creating a PR. - Code changes should generally follow the [Dart style guide](https://dart.dev/effective-dart) and use `dart format`. - Updates to [code excerpts](https://github.com/dart-lang/site-shared/blob/main/doc/code-excerpts.md) indicated by ` --- src/content/tools/dartpad/privacy.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/content/tools/dartpad/privacy.md b/src/content/tools/dartpad/privacy.md index 50ef978df..a713c2a98 100644 --- a/src/content/tools/dartpad/privacy.md +++ b/src/content/tools/dartpad/privacy.md @@ -1,12 +1,12 @@ --- -title: Privacy notice +title: DartPad Privacy Notice description: How Google uses the source code that you enter into DartPad. toc: false --- DartPad is a free, open source service to help developers learn about the Dart language and libraries. Source code entered into DartPad may be sent to servers -running in Google Cloud Platform to be analyzed for errors/warnings, compiled to +running in Google Cloud to be analyzed for errors/warnings, compiled to JavaScript, and returned to the browser. Source code entered into DartPad may be stored, processed, and aggregated in @@ -17,6 +17,6 @@ suggestions. The raw source code is deleted after no more than 60 days. DartPad uses Google Analytics to report feature usage statistics. This data is used to help improve Dart and Flutter tools over time. -Learn more about Google's [privacy -policy.](https://policies.google.com/privacy) We look forward to your -[feedback.]({{site.repo.dart.org}}/dart-pad/issues) +Learn more about Google's [privacy policy](https://policies.google.com/privacy). +If you have any questions about this Privacy Policy, you can +[contact us](https://support.google.com/policies?p=privpol_privts). From 8288d78e4013437f4a498b62fbcbc3a682405aec Mon Sep 17 00:00:00 2001 From: Marya <111139605+MaryaBelanger@users.noreply.github.com> Date: Thu, 20 Jun 2024 22:57:46 -0700 Subject: [PATCH 32/95] Add code excerpts to new type promotion failures (#5359) Excerpts added in #5246 Fixes #5350 Co-authored-by: Parker Lougheed --- examples/non_promotion/lib/non_promotion.dart | 143 ++++++++++++++++++ examples/non_promotion/pubspec.yaml | 3 + src/content/tools/non-promotion-reasons.md | 101 +++++++------ 3 files changed, 201 insertions(+), 46 deletions(-) diff --git a/examples/non_promotion/lib/non_promotion.dart b/examples/non_promotion/lib/non_promotion.dart index 5d5496b5a..b7979d2c9 100644 --- a/examples/non_promotion/lib/non_promotion.dart +++ b/examples/non_promotion/lib/non_promotion.dart @@ -1,6 +1,15 @@ // ignore_for_file: expected_executable, missing_statement // ignore_for_file: unused_local_variable, unused_element // ignore_for_file: prefer_function_declarations_over_variables +// ignore_for_file: prefer_if_null_operators + +// #docregion not-field, conflicting-getter +import 'dart:math'; +// #enddocregion not-field, conflicting-getter + +// #docregion mock +import 'package:mockito/mockito.dart'; +// #enddocregion mock class C1 { int? i; @@ -242,3 +251,137 @@ void miscDeclAnalyzedButNotTested() { // #enddocregion closure-write-capture } } + +// #docregion this +extension on int? { + int get valueOrZero { + final self = this; + return self == null ? 0 : self; + } +} +// #enddocregion this + +// #docregion private +class PrivateFieldExample { + final int? _val; + PrivateFieldExample(this._val); +} + +void test(PrivateFieldExample x) { + if (x._val != null) { + print(x._val + 1); + } +} +// #enddocregion private + +// #docregion final +class FinalExample { + final int? _immutablePrivateField; + FinalExample(this._immutablePrivateField); + + void f() { + if (_immutablePrivateField != null) { + int i = _immutablePrivateField; // OK + } + } +} +// #enddocregion final + +// #docregion not-field +abstract class NotFieldExample { + int? get _value => Random().nextBool() ? 123 : null; +} + +void f(NotFieldExample x) { + final value = x._value; + if (value != null) { + print(value.isEven); // OK + } +} +// #enddocregion not-field + +// #docregion external +class ExternalExample { + external final int? _externalField; + + void f() { + final i = _externalField; + if (i != null) { + print(i.isEven); // OK + } + } +} +// #enddocregion external + +// #docregion conflicting-getter +class GetterExample { + final int? _overridden; + GetterExample(this._overridden); +} + +class Override implements GetterExample { + @override + int? get _overridden => Random().nextBool() ? 1 : null; +} + +void testParity(GetterExample x) { + final i = x._overridden; + if (i != null) { + print(i.isEven); // OK + } +} +// #enddocregion conflicting-getter + +// #docregion unrelated +class UnrelatedExample { + final int? _i; + UnrelatedExample(this._i); +} + +class Unrelated { + int? get _j => Random().nextBool() ? 1 : null; +} + +void f2(UnrelatedExample x) { + if (x._i != null) { + int i = x._i; // OK + } +} +// #enddocregion unrelated + +// #docregion conflicting-field +class FieldExample { + final int? _overridden; + FieldExample(this._overridden); +} + +class Override2 implements FieldExample { + @override + int? _overridden; +} + +void f3(FieldExample x) { + final i = x._overridden; + if (i != null) { + print(i.isEven); // OK + } +} +// #enddocregion conflicting-field + +// #docregion mock +class MockingExample { + final int? _i; + MockingExample(this._i); +} + +class MockExample extends Mock implements MockingExample { + @override + late final int? _i; +} + +void f4(MockingExample x) { + if (x._i != null) { + int i = x._i; // OK + } +} +// #enddocregion mock diff --git a/examples/non_promotion/pubspec.yaml b/examples/non_promotion/pubspec.yaml index c715b2614..4a9ed42f1 100644 --- a/examples/non_promotion/pubspec.yaml +++ b/examples/non_promotion/pubspec.yaml @@ -5,5 +5,8 @@ version: 0.0.1 environment: sdk: ^3.4.0 +dependencies: + mockito: ^5.4.4 + dev_dependencies: lints: ^4.0.0 diff --git a/src/content/tools/non-promotion-reasons.md b/src/content/tools/non-promotion-reasons.md index 6d13181e4..a7e51fb30 100644 --- a/src/content/tools/non-promotion-reasons.md +++ b/src/content/tools/non-promotion-reasons.md @@ -185,7 +185,7 @@ you'd want to do a null check to see whether `this` is `null`: **Example:** ```dart tag=bad -extension E on int? { +extension on int? { int get valueOrZero { return this == null ? 0 : this; // ERROR } @@ -203,10 +203,11 @@ extension E on int? { Create a local variable to hold the value of `this`, then perform the null check. + ```dart tag=good -extension E on int? { +extension on int? { int get valueOrZero { - final self = this; + [!final self = this;!] return self == null ? 0 : self; } } @@ -229,14 +230,14 @@ non-private fields cannot be promoted. **Example:** ```dart tag=bad -class C { - final int? n; - C(this.n); +class Example { + final int? value; + Example(this.value); } -test(C c) { - if (c.n != null) { - print(c.n + 1); // ERROR +void test(Example x) { + if (x.value != null) { + print(x.value + 1); // ERROR } } ``` @@ -244,7 +245,7 @@ test(C c) { **Message:** ```plaintext -'n' refers to a public property so it couldn't be promoted. +'value' refers to a public property so it couldn't be promoted. ``` **Solution:** @@ -252,15 +253,16 @@ test(C c) { Making the field private lets the compiler be sure that no outside libraries could possibly override its value, so it's safe to promote. + ```dart tag=good -class C { - final int? _n; - C(this._n); +class Example { + final int? [!_value!]; + Example(this._value); } -test(C c) { - if (c._n != null) { - print(c._n + 1); // OK +void test(Example x) { + if (x._value != null) { + print(x._value + 1); } } ``` @@ -279,7 +281,7 @@ to a non-nullable type. **Example:** ```dart tag=bad -class C { +class Example { int? _mutablePrivateField; Example(this._mutablePrivateField); @@ -301,9 +303,10 @@ class C { Make the field `final`: + ```dart tag=good class Example { - final int? _immutablePrivateField; + [!final!] int? _immutablePrivateField; Example(this._immutablePrivateField); void f() { @@ -319,21 +322,23 @@ class Example { **The cause:** You're trying to promote a getter, but only instance *fields* can be promoted, not instance getters. -The compiler has no way to guarantee that a getter returns the same result every time. -Because their stability can't be confirmed, getters are not safe to promote. +The compiler has no way to guarantee that +a getter returns the same result every time. +Because their stability can't be confirmed, +getters are not safe to promote. **Example:** ```dart tag=bad import 'dart:math'; -abstract class C { - int? get _i => Random().nextBool() ? 123 : null; +abstract class Example { + int? get _value => Random().nextBool() ? 123 : null; } -void f(C c) { - if (c._i != null) { - print(c._i.isEven); // ERROR +void f(Example x) { + if (x._value != null) { + print(x._value.isEven); // ERROR } } ``` @@ -341,24 +346,25 @@ void f(C c) { **Message:** ```plaintext -'_i' refers to a getter so it couldn't be promoted. +'_value' refers to a getter so it couldn't be promoted. ``` **Solution:** Assign the getter to a local variable: + ```dart tag=good import 'dart:math'; -abstract class C { - int? get _i => Random().nextBool() ? 123 : null; +abstract class Example { + int? get _value => Random().nextBool() ? 123 : null; } -void C c) { - final i = c._i; - if (i != null) { - print(i.isEven); // OK +void f(Example x) { + [!final value = x._value;!] + if (value != null) { + print(value.isEven); // OK } } ``` @@ -381,9 +387,8 @@ will return the same value each time it's called. **Example:** ```dart tag=bad -class C { +class Example { external final int? _externalField; - C(this._externalField); void f() { if (_externalField != null) { @@ -396,20 +401,20 @@ class C { **Message:** ```plaintext -'externalField' refers to an external field so it couldn't be promoted. +'_externalField' refers to an external field so it couldn't be promoted. ``` **Solution:** Assign the external field's value to a local variable: + ```dart tag=good -class C { +class Example { external final int? _externalField; - C(this._externalField); void f() { - final i = this._externalField; + [!final i = _externalField;!] if (i != null) { print(i.isEven); // OK } @@ -439,7 +444,7 @@ class Override implements Example { int? get _overridden => Random().nextBool() ? 1 : null; } -void f(Example x) { +void testParity(Example x) { if (x._overridden != null) { print(x._overridden.isEven); // ERROR } @@ -449,7 +454,7 @@ void f(Example x) { **Message:** ```plaintext -'overriden' couldn't be promoted because there is a conflicting getter in class 'Override' +'_overriden' couldn't be promoted because there is a conflicting getter in class 'Override'. ``` **Solution**: @@ -458,6 +463,7 @@ If the getter and field are related and need to share their name (like when one of them overrides the other, as in the example above), then you can enable type promotion by assigning the value to a local variable: + ```dart tag=good import 'dart:math'; @@ -471,8 +477,8 @@ class Override implements Example { int? get _overridden => Random().nextBool() ? 1 : null; } -void f(Example x) { - final i = x._overridden; +void testParity(Example x) { + [!final i = x._overridden;!] if (i != null) { print(i.isEven); // OK } @@ -524,6 +530,7 @@ void main() { If the field and the conflicting entity are truly unrelated, you can work around the problem by giving them different names: + ```dart tag=good class Example { final int? _i; @@ -531,7 +538,7 @@ class Example { } class Unrelated { - int? get _j => Random().nextBool() ? 1 : null; + int? [!get _j!] => Random().nextBool() ? 1 : null; } void f(Example x) { @@ -583,6 +590,7 @@ If the fields are actually related and need to share a name, then you can enable type promotion by assigning the value to a final local variable to promote: + ```dart tag=good class Example { final int? _overridden; @@ -595,9 +603,9 @@ class Override implements Example { } void f(Example x) { - final i = x._overridden; + [!final i = x._overridden;!] if (i != null) { - print(i.isEven); // ERROR + print(i.isEven); // OK } } ``` @@ -662,6 +670,7 @@ The failure can also occur between fields in Define the getter in question so that `noSuchMethod` doesn't have to implicitly handle its implementation: + ```dart tag=good import 'package:mockito/mockito.dart'; @@ -672,7 +681,7 @@ class Example { class MockExample extends Mock implements Example { @override - late final int? _i; // Add a definition for Example's _i getter. + [!late final int? _i;!] } void f(Example x) { From 8f09826e1f696e007e373a27ec72de99ecc85dcb Mon Sep 17 00:00:00 2001 From: Parker Lougheed Date: Fri, 21 Jun 2024 12:20:55 -0500 Subject: [PATCH 33/95] Add styled tags to breaking changes page (#5924) Resolves https://github.com/dart-lang/site-www/issues/5168 --- src/_sass/_site.scss | 1 + src/_sass/components/_tags.scss | 27 +++++ src/content/resources/breaking-changes.md | 128 +++++++++++----------- 3 files changed, 95 insertions(+), 61 deletions(-) create mode 100644 src/_sass/components/_tags.scss diff --git a/src/_sass/_site.scss b/src/_sass/_site.scss index 234718ef4..2fd99fd23 100644 --- a/src/_sass/_site.scss +++ b/src/_sass/_site.scss @@ -12,6 +12,7 @@ @use 'components/header'; @use 'components/search'; @use 'components/sidebar'; +@use 'components/tags'; @use 'components/toc'; @use 'dartvm'; diff --git a/src/_sass/components/_tags.scss b/src/_sass/components/_tags.scss new file mode 100644 index 000000000..c51925075 --- /dev/null +++ b/src/_sass/components/_tags.scss @@ -0,0 +1,27 @@ +@use '../core/variables' as *; + +.tag-label { + user-select: none; + display: inline-block; + padding: 0 0.25rem; + border-radius: 0.25rem; + font-size: 0.925rem; + font-family: $site-font-family-gsans; + text-wrap: nowrap; +} + +.language-versioned-tag { + background-color: #13B9FD; +} + +.deprecated-tag { + background-color: #F2AA3A; +} + +.removed-tag { + background-color: #F3655B; +} + +.experimental-tag { + background-color: #DADCE0; +} diff --git a/src/content/resources/breaking-changes.md b/src/content/resources/breaking-changes.md index 093485659..14110681b 100644 --- a/src/content/resources/breaking-changes.md +++ b/src/content/resources/breaking-changes.md @@ -3,6 +3,11 @@ title: Breaking changes and deprecations description: A list of breaking changes by release in Dart. --- +{% assign versioned = 'Language versioned' %} +{% assign deprecated = 'Deprecated' %} +{% assign removed = 'Removed' %} +{% assign experimental = 'Experimental' %} + This page lists all language and library breaking changes and deprecations in Dart, organized by release and area, to help Dart users understand and manage their impact. Complete release notes are available in the [Dart SDK changelog][changelog]. @@ -20,20 +25,19 @@ around breaking changes and deprecations in Dart. existing code, and the behavior change only takes effect (potentially breaking code that relies on the previous behavior) when you upgrade the [language version][] of your code. - - - _These are marked "**Language versioned**"_. + + _These are marked as:_ {{versioned}} * **Deprecations**: The Dart SDK maintains compatibility for deprecated code, with a warning. Deprecations are then completely removed in a subsequent release, breaking any code that relies on the previous behavior. - - _These are marked "**Deprecated**" and "**Removed**", respectively_. + + _These are marked as:_ {{deprecated}} / {{removed}} * **Experimental**: Part of the release but not yet treated as stable in the SDK, and can break from one version to another. Experimental changes do not always have a corresponding breaking change issue, but may have more detail in the [SDK changelog][changelog]. - _These are marked "**Experimental**", possibly in conjunction with another change type_. + These are marked: {{experimental}} If you have questions or concerns about any of these breaking changes, please comment on the breaking change issue linked from the relevant entry. @@ -86,14 +90,14 @@ accounting for them before the 3.5.0 release. #### `dart:typed_data` -- **Removed**: +- {{removed}} [The unmodifiable view classes for typed data have been removed][53128]. Instead of using the constructors of these classes, use the new `asUnmodifiableView` methods on typed data lists. ### Runtime {:.no_toc} -- **Removed** The Dart VM no longer supports unsound null safety. +- {{removed}} The Dart VM no longer supports unsound null safety. - The `--no-sound-null-safety` CLI option has been removed. - The `Dart_NewListOf` and `Dart_IsLegacyType` functions have been removed from the C API. @@ -116,14 +120,14 @@ accounting for them before the 3.5.0 release. #### `dart:cli` -- **Experimental** **Removed**: [The `waitFor` function][52121] +- {{experimental}} {{removed}} [The `waitFor` function][52121] has been removed. [52121]: {{site.repo.dart.sdk}}/issues/52121 #### `dart:html`, `dart:indexed:db`, `dart:svg`, `dart:web_audo`, `dart:web_gl` -- These libraries are now marked as legacy and +- {{deprecated}} These libraries are now marked as legacy and will see less support in the future. New projects should prefer to use [`package:web`][] and `dart:js_interop`. To learn more, check out [Migrate to package:web][]. @@ -133,7 +137,8 @@ accounting for them before the 3.5.0 release. #### `dart:js` -- This library is now marked as legacy and will see less support in the future. +- {{deprecated}} + This library is now marked as legacy and will see less support in the future. Usages should be migrated to `dart:js_interop` and `dart:js_interop_unsafe`. To learn more, check out [`/go/next-gen-js-interop`][]. @@ -141,7 +146,8 @@ accounting for them before the 3.5.0 release. #### `dart:js_util` -- This library is now marked as legacy and will see less support in the future. +- {{deprecated}} + This library is now marked as legacy and will see less support in the future. Usages should be migrated to `dart:js_interop` and `dart:js_interop_unsafe`. To learn more, check out [`/go/next-gen-js-interop`][]. @@ -153,14 +159,14 @@ accounting for them before the 3.5.0 release. developers to control the line ending used by `stdout` and `stderr`.][53863] Classes that implement `Stdout` must define the `lineTerminator` field. The default semantics of `stdout` and `stderr` are not changed. -- **Deprecated**: The `FileSystemDeleteEvent.isDirectory` property. +- {{deprecated}} The `FileSystemDeleteEvent.isDirectory` property. It always returns `false`. [53863]: {{site.repo.dart.sdk}}/issues/53863 #### `dart:typed_data` -- **Deprecated**: +- {{deprecated}} [The unmodifiable view classes for typed data are deprecated][53128]. Instead of using the constructors of these classes, use the new `asUnmodifiableView` methods on typed data lists. @@ -171,19 +177,19 @@ accounting for them before the 3.5.0 release. #### Production JavaScript compiler (dart2js) -- **Experimental** **Deprecated**: You should now specify a format to +- {{experimental}} {{deprecated}} You should now specify a format to the `--dump-info` CLI option of either `binary` or `json`. The `json` format is deprecated and might be removed in a future Dart release. #### Wasm compiler (dart2wasm) -- **Experimental**: Various `dart compile wasm` CLI arguments have +- {{experimental}} Various `dart compile wasm` CLI arguments have been updated, removed, or replaced. To learn more, run `dart compile wasm --verbose --help`. ### Runtime {:.no_toc} -- **Removed** The Dart VM longer supports external strings. +- {{removed}} The Dart VM longer supports external strings. As a result, the `Dart_IsExternalString`, `Dart_NewExternalLatin1String`, and `Dart_NewExternalUTF16String` functions have been removed from the Dart C API. @@ -191,7 +197,7 @@ accounting for them before the 3.5.0 release. ### SDK {:.no_toc} -* **Experimental** **Removed**: The following experiments are now retired as +* {{experimental}} {{removed}} The following experiments are now retired as they were released in Dart 3 and are no longer necessary with a language version of 3.0 or greater. Configuration of them should be removed from @@ -213,17 +219,17 @@ accounting for them before the 3.5.0 release. #### `dart:cli` -* **Experimental** **Deprecated**: [The `waitFor` function][52121] +* {{experimental}} {{deprecated}} [The `waitFor` function][52121] remains deprecated for another release and is set for removal in Dart 3.4. [52121]: {{site.repo.dart.sdk}}/issues/52121 #### `dart:ffi` -* **Deprecated**: [The `elementAt` pointer arithmetic methods +* {{deprecated}} [The `elementAt` pointer arithmetic methods on `Pointer` types are deprecated][54250]. Migrate to the `-` and `+` operators instead. -* **Experimental** **Removed**: The previously deprecated +* {{experimental}} {{removed}} The previously deprecated `@FfiNative` annotation has been removed. Usages should be updated to use the `@Native` annotation. @@ -245,14 +251,14 @@ accounting for them before the 3.5.0 release. #### `dart:js_interop` -* **Experimental**: JS types like `JSAny` have +* {{experimental}} JS types like `JSAny` have [new compiler-specific representation types][52687]. -* **Experimental**: User-defined `@staticInterop` classes can +* {{experimental}} User-defined `@staticInterop` classes can [no longer implement `JSAny` or `JSObject`][52687]. Usages should be migrated to `JSObject.fromInteropObject` or be defined as extension types. -* **Experimental**: `JSArray` and `JSPromise` now have generic parameters. -* **Experimental**: Various extension members were moved or renamed. +* {{experimental}} `JSArray` and `JSPromise` now have generic parameters. +* {{experimental}} Various extension members were moved or renamed. To learn about the updated extensions, reference `JSAnyUtilityExtension` and `JSAnyOperatorExtension`. @@ -269,7 +275,7 @@ accounting for them before the 3.5.0 release. #### `dart:nativewrappers` -* **Experimental**: [All native wrapper classes are now marked `base`][51896] +* {{experimental}} [All native wrapper classes are now marked `base`][51896] so that none of their subtypes can be implemented. [51896]: {{site.repo.dart.sdk}}/issues/51896 @@ -285,14 +291,14 @@ accounting for them before the 3.5.0 release. #### Wasm compiler (dart2wasm) -* **Experimental**: [Disallow importing legacy JS interop libraries][54004]. +* {{experimental}} [Disallow importing legacy JS interop libraries][54004]. Prefer using `dart:js_interop` and `dart:js_interop_unsafe` instead. [54004]: {{site.repo.dart.sdk}}/issues/54004 #### Analyzer -* **Experimental**: Invalid `dart doc` comment directives are +* {{experimental}} Invalid `dart doc` comment directives are now reported by the analyzer. * Due to [improvements in type promotion][54056], the following analyzer diagnostics might trigger on existing code that previously passed analysis: @@ -323,7 +329,7 @@ accounting for them before the 3.5.0 release. ### Language {:.no_toc} -* **Language versioned**: [Changed the split point for refutable patterns][53167] +* {{versioned}} [Changed the split point for refutable patterns][53167] to the top level pattern so type promotion in if-case statements is consistent regardless of whether the scrutinee might throw an exception. @@ -331,7 +337,7 @@ accounting for them before the 3.5.0 release. #### `dart:cli` -* **Experimental** **Deprecated**: [The `waitFor` function.][52121] +* {{experimental}} {{deprecated}} [The `waitFor` function.][52121] #### `dart:convert` @@ -340,7 +346,7 @@ accounting for them before the 3.5.0 release. #### `dart:developer` -* **Deprecated**: The `Service.getIsolateID` method. +* {{deprecated}} The `Service.getIsolateID` method. #### `dart:ffi` @@ -355,18 +361,18 @@ accounting for them before the 3.5.0 release. #### `dart:js_interop` -* **Experimental** **Removed**: `JSNumber.toDart` in favor of `toDartDouble` and +* {{experimental}} {{removed}} `JSNumber.toDart` in favor of `toDartDouble` and `toDartInt`. -* **Experimental** **Removed**: `Object.toJS` in favor of `Object.toJSBox.` -* **Experimental**: Restricted external JS interop APIs using `dart:js_interop` +* {{experimental}} {{removed}} `Object.toJS` in favor of `Object.toJSBox.` +* {{experimental}} Restricted external JS interop APIs using `dart:js_interop` to a set of allowed types. -* **Experimental**: Prohibited use of `isNull` and `isUndefined` on dart2wasm. -* **Experimental**: Changed `typeofEquals` and `instanceof` APIs to both return +* {{experimental}} Prohibited use of `isNull` and `isUndefined` on dart2wasm. +* {{experimental}} Changed `typeofEquals` and `instanceof` APIs to both return bool instead of `JSBoolean`. Also, `typeofEquals` now takes `String` instead of `JSString`. -* **Experimental**: Changed `JSAny` and `JSObject` types to only implementable, +* {{experimental}} Changed `JSAny` and `JSObject` types to only implementable, not extendable, by user `@staticInterop` types. -* **Experimental**: Changed `JSArray.withLength` to take `int` instead of `JSNumber`. +* {{experimental}} Changed `JSArray.withLength` to take `int` instead of `JSNumber`. ### Tools {:.no_toc} @@ -382,7 +388,7 @@ accounting for them before the 3.5.0 release. #### Analyzer -* **Language versioned**: [Private final field promotion][2020] might cause the following +* {{versioned}} [Private final field promotion][2020] might cause the following analyzer warnings to trigger on existing code that previously passed analysis: * [`unnecessary_non_null_assertion`](/tools/diagnostic-messages#unnecessary_non_null_assertion) @@ -432,7 +438,7 @@ accounting for them before the 3.5.0 release. #### `dart:js_interop` -* **Experimental** **Removed**: `ObjectLiteral`; create an object literal with +* {{experimental}} {{removed}} `ObjectLiteral`; create an object literal with no named members using `{}.jsify()`. #### `package:js` @@ -456,10 +462,10 @@ on all the changes in this section. ### Language {:.no_toc} -* **Language versioned**: Changed interpretation of [switch cases] from constant +* {{versioned}} Changed interpretation of [switch cases] from constant expressions to patterns. -* **Language versioned**: Class declarations from libraries that have been upgraded +* {{versioned}} Class declarations from libraries that have been upgraded to Dart 3.0 [can no longer be used as mixins by default][mixin class]. * [Dart reports a compile-time error][50902] if a `continue` statement targets @@ -474,36 +480,36 @@ on all the changes in this section. #### `dart:core` -* **Deprecated**: [Deprecated APIs][49529]. +* {{deprecated}} [Deprecated APIs][49529]. #### `dart:async` -* **Removed**: [Removed the deprecated][49529] [`DeferredLibrary`][] class. +* {{removed}} [Removed the deprecated][49529] [`DeferredLibrary`][] class. #### `dart:collection` -* **Language versioned**: [Changes to platform libraries][collection]. +* {{versioned}} [Changes to platform libraries][collection]. #### `dart:developer` -* **Removed**: [Removed the deprecated][49529] [`MAX_USER_TAGS`][] constant. +* {{removed}} [Removed the deprecated][49529] [`MAX_USER_TAGS`][] constant. Use [`maxUserTags`][] instead. -* **Removed**: [Removed the deprecated][50231] [`Metrics`][], [`Metric`][], [`Counter`][], +* {{removed}} [Removed the deprecated][50231] [`Metrics`][], [`Metric`][], [`Counter`][], and [`Gauge`][] classes as they have been broken since Dart 2.0. #### `dart:ffi` -* **Experimental** **Deprecated**: The `@FfiNative` annotation is +* {{experimental}} {{deprecated}} The `@FfiNative` annotation is now deprecated. Usages should be updated to use the `@Native` annotation. #### `dart:html` -* **Removed**: [Removed the deprecated `registerElement` and `registerElement2`][49536] +* {{removed}} [Removed the deprecated `registerElement` and `registerElement2`][49536] methods in `Document` and `HtmlDocument`. #### `dart:math` -* **Language versioned**: The `Random` interface can only be implemented, +* {{versioned}} The `Random` interface can only be implemented, not extended. #### `dart:io` @@ -544,12 +550,12 @@ on all the changes in this section. #### `dart:convert` -* **Removed**: [The previously deprecated API][34233] [`DEFAULT_BUFFER_SIZE`] in `JsonUtf8Encoder` +* {{removed}} [The previously deprecated API][34233] [`DEFAULT_BUFFER_SIZE`] in `JsonUtf8Encoder` has been removed. #### `dart:developer` -* **Removed**: [Removed previously deprecated APIs][34233] `kInvalidParams`, +* {{removed}} [Removed previously deprecated APIs][34233] `kInvalidParams`, `kExtensionError`, `kExtensionErrorMax`, and `kExtensionErrorMin` in [`ServiceExtensionResponse`]. @@ -575,7 +581,7 @@ on all the changes in this section. #### `dart:mirrors` -* [Removed APIs][34233] [`MirrorsUsed`] and [`Comment`]. +* {{removed}} [Removed APIs][34233] `MirrorsUsed` and `Comment`. #### `package:js` @@ -658,9 +664,9 @@ on all the changes in this section. #### Dart command line -* **Deprecated**: [Deprecated the standalone `dart2js` tool][46100]. -* **Deprecated**: [Deprecated the standalone `dartdevc` tool][46100]. -* **Removed**: [Removed the standalone `dartdoc` tool][46100]. +* {{deprecated}} [Deprecated the standalone `dart2js` tool][46100]. +* {{deprecated}} [Deprecated the standalone `dartdevc` tool][46100]. +* {{removed}} [Removed the standalone `dartdoc` tool][46100]. [47887]: {{site.repo.dart.sdk}}/issues/47887 [48093]: {{site.repo.dart.sdk}}/issues/48093 @@ -676,19 +682,19 @@ on all the changes in this section. * On Windows, [`Directory.rename` will no longer delete a directory][47653] if `newPath` specifies one. Instead, a `FileSystemException` will be thrown. -* **Removed**: [Removed the `Platform.packageRoot` API][47769]. +* {{removed}} [Removed the `Platform.packageRoot` API][47769]. #### `dart:isolate` -* **Removed**: [Removed the `Isolate.packageRoot` API][47769]. +* {{removed}} [Removed the `Isolate.packageRoot` API][47769]. ### Tools {:.no_toc} #### Dart command line -* **Deprecated**: [Deprecated the standalone `dartanalyzer` tool][46100]. -* **Deprecated**: [Deprecated the standalone `dartdoc` tool][46100]. -* **Removed**: [Removed the deprecated standalone `pub` tool][46100]. +* {{deprecated}} [Deprecated the standalone `dartanalyzer` tool][46100]. +* {{deprecated}} [Deprecated the standalone `dartdoc` tool][46100]. +* {{removed}} [Removed the deprecated standalone `pub` tool][46100]. [47653]: {{site.repo.dart.sdk}}/issues/47653 [47769]: {{site.repo.dart.sdk}}/issues/47769 From 4e5a391dee278e02b5e5326100296b434514ae3e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 21 Jun 2024 13:29:35 -0500 Subject: [PATCH 34/95] Bump firebase-tools from 13.11.2 to 13.11.3 (#5929) Bumps [firebase-tools](https://github.com/firebase/firebase-tools) from 13.11.2 to 13.11.3.
Release notes

Sourced from firebase-tools's releases.

v13.11.3

  • Fixes issue where storage emulator throws an error due to non-standard whitespaces in filenames (#6834).
  • Fixes issue where some emulators would fail to start when their path contained a whitespace (#7313)
  • Adds prompt for Postgres connection string to setup:emulators:dataconnect.
  • Updates Data Connect emulator to v1.2.2, which includes support for generating Swift SDKs and a number of bug fixes.
Commits
  • 888c176 13.11.3
  • 85b90f1 Remove flags for DataConnect emulator 1.2.2 (#7326)
  • dd1fd0d update emulator to 1.2.2 (#7349)
  • d1a372e Forgot to commit this to #7339 (#7340)
  • a347f57 Update dataconnect init template (#7338)
  • e3a1a67 Adding Postgres setup to 'setup:emulators:dataconnect' and error out if no co...
  • 58ce112 Add a manifest file next to each test fixture. (#7332)
  • 1191a6c Disable auth check for downloading Dataconnect emulator. Remove emulator UI r...
  • a691daf Turn on data dataconnect-debug.logs verbosity to -v=2 (#7333)
  • ea0954e Move src/test/*.spec.ts tests (#7318)
  • Additional commits viewable in compare view

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=firebase-tools&package-manager=npm_and_yarn&previous-version=13.11.2&new-version=13.11.3)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 236 ++++++++++++++++++++++++++++--------------------- 2 files changed, 136 insertions(+), 102 deletions(-) diff --git a/package.json b/package.json index ef4db191b..1755a0198 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ "devDependencies": { "@11ty/eleventy": "3.0.0-alpha.13", "@11ty/eleventy-img": "5.0.0-beta.4", - "firebase-tools": "^13.11.2", + "firebase-tools": "^13.11.3", "hast-util-from-html": "^2.0.1", "hast-util-select": "^6.0.2", "hast-util-to-text": "^4.0.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8a34f86e6..907d3bcea 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -19,8 +19,8 @@ importers: specifier: 5.0.0-beta.4 version: 5.0.0-beta.4(encoding@0.1.13) firebase-tools: - specifier: ^13.11.2 - version: 13.11.2(encoding@0.1.13) + specifier: ^13.11.3 + version: 13.11.3(encoding@0.1.13) hast-util-from-html: specifier: ^2.0.1 version: 2.0.1 @@ -517,17 +517,13 @@ packages: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} - archiver-utils@2.1.0: - resolution: {integrity: sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==} - engines: {node: '>= 6'} - - archiver-utils@3.0.4: - resolution: {integrity: sha512-KVgf4XQVrTjhyWmx6cte4RxonPLR9onExufI1jhvw/MQ4BB6IsZD5gT8Lq+u/+pRkWna/6JoHpiQioaqFP5Rzw==} - engines: {node: '>= 10'} + archiver-utils@5.0.2: + resolution: {integrity: sha512-wuLJMmIBQYCsGZgYLTy5FIB2pF6Lfb6cXMSF8Qywwk3t20zWnAi7zLcQFdKQmIB8wyZpY5ER38x08GbwtR2cLA==} + engines: {node: '>= 14'} - archiver@5.3.2: - resolution: {integrity: sha512-+25nxyyznAXF7Nef3y0EbBeqmGZgeN/BxHX29Rs39djAfaFalmQ89SE6CWyDCHzGL0yt/ycBtNOmGTW0FyGWNw==} - engines: {node: '>= 10'} + archiver@7.0.1: + resolution: {integrity: sha512-ZcbTaIqJOfCc03QwD468Unz/5Ir8ATtvAHsK+FdXbDIbGfihqh9mrvdcYunQzqn4HrvWWaFyaxJhGZagaJJpPQ==} + engines: {node: '>= 14'} argparse@1.0.10: resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} @@ -591,9 +587,15 @@ packages: asynckit@0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + b4a@1.6.6: + resolution: {integrity: sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg==} + balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + bare-events@2.4.2: + resolution: {integrity: sha512-qMKFd2qG/36aA4GwvKq8MxnPgCQAmBWmSyLWsJcbn8v03wvIPQ/hG1Ms8bPzndZxMDoHpxez5VOS+gC9Yi24/Q==} + base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} @@ -655,8 +657,9 @@ packages: resolution: {integrity: sha512-uA9fOtlTRC0iqKfzff1W34DXUA3GyVqbUaeo3Rw3d4gd1eavKVCETXrn3NzO74W+UVkG3UHu8WxUi+XvKI/huA==} engines: {node: '>= 10.16.0'} - buffer-crc32@0.2.13: - resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} + buffer-crc32@1.0.0: + resolution: {integrity: sha512-Db1SbgBS/fg/392AblrMJk97KggmvYhr4pB5ZIMTWtaivCPMWLkmb7m21cJvpvgK+J3nsU2CmmixNBZx4vFj/w==} + engines: {node: '>=8.0.0'} buffer-equal-constant-time@1.0.1: resolution: {integrity: sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==} @@ -667,6 +670,9 @@ packages: buffer@5.7.1: resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + buffer@6.0.3: + resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} + bytes@3.0.0: resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==} engines: {node: '>= 0.8'} @@ -818,9 +824,9 @@ packages: resolution: {integrity: sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==} engines: {node: '>= 6'} - compress-commons@4.1.2: - resolution: {integrity: sha512-D3uMHtGc/fcO1Gt1/L7i1e33VOvD4A9hfQLP+6ewd+BvG/gQ84Yh4oftEhAdjSMgBgwGL+jsppT7JYNpo6MHHg==} - engines: {node: '>= 10'} + compress-commons@6.0.2: + resolution: {integrity: sha512-6FqVXeETqWPoGcfzrXb37E50NP0LXT8kAMu5ooZayhWWdgEY4lBEEcbQNXtkuKQsGduxiIcI4gOTsxTmuq/bSg==} + engines: {node: '>= 14'} compressible@2.0.18: resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} @@ -871,9 +877,9 @@ packages: engines: {node: '>=0.8'} hasBin: true - crc32-stream@4.0.3: - resolution: {integrity: sha512-NT7w2JVU7DFroFdYkeq8cywxrgjPHWkdX1wjpRQXPX5Asews3tA+Ght6lddQO5Mkumffp3X7GEqku3epj2toIw==} - engines: {node: '>= 10'} + crc32-stream@6.0.0: + resolution: {integrity: sha512-piICUB6ei4IlTv1+653yq5+KoqfBYmj9bw6LqXoOneTMDXk5nM1qt12mFW1caG3LlJXEKW1Bp0WggEmIfQB34g==} + engines: {node: '>= 14'} cross-env@5.2.1: resolution: {integrity: sha512-1yHhtcfAd1r4nwQgknowuUNfIT9E8dOMMspC36g45dN+iD1blloi7xp8X/xAIDnjHWyt1uQ8PHk2fkNaym7soQ==} @@ -1162,6 +1168,10 @@ packages: events-listener@1.1.0: resolution: {integrity: sha512-Kd3EgYfODHueq6GzVfs/VUolh2EgJsS8hkO3KpnDrxVjU3eq63eXM2ujXkhPP+OkeUOhL8CxdfZbQXzryb5C4g==} + events@3.3.0: + resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} + engines: {node: '>=0.8.x'} + exegesis-express@4.0.0: resolution: {integrity: sha512-V2hqwTtYRj0bj43K4MCtm0caD97YWkqOUHFMRCBW5L1x9IjyqOEc7Xa4oQjjiFbeFOSQzzwPV+BzXsQjSz08fw==} engines: {node: '>=6.0.0', npm: '>5.0.0'} @@ -1191,6 +1201,9 @@ packages: fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + fast-fifo@1.3.2: + resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==} + fast-glob@3.3.2: resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} engines: {node: '>=8.6.0'} @@ -1227,8 +1240,8 @@ packages: resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} engines: {node: '>= 0.8'} - firebase-tools@13.11.2: - resolution: {integrity: sha512-LNvaNO/hLeTo2JLuz2HQoXnGVhgD51ztny7ozFh2XTsAHuyTRtwmoXFFIBsvW3UGguiPAXR1LetoTVXXHB7oHA==} + firebase-tools@13.11.3: + resolution: {integrity: sha512-IyjScSUybsDuOy0mi+EGTJKydSnFnjMRzME8ElaFJNkkn3kDY11BYo/V1mqgAeWhqzLPSX5Gt4rI6WZxzm1gwg==} engines: {node: '>=18.0.0 || >=20.0.0'} hasBin: true @@ -1262,9 +1275,6 @@ packages: resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} engines: {node: '>= 0.6'} - fs-constants@1.0.0: - resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} - fs-extra@10.1.0: resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} engines: {node: '>=12'} @@ -1756,15 +1766,6 @@ packages: lodash.camelcase@4.3.0: resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} - lodash.defaults@4.2.0: - resolution: {integrity: sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==} - - lodash.difference@4.5.0: - resolution: {integrity: sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==} - - lodash.flatten@4.4.0: - resolution: {integrity: sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==} - lodash.includes@4.3.0: resolution: {integrity: sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==} @@ -1795,9 +1796,6 @@ packages: lodash.snakecase@4.1.1: resolution: {integrity: sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==} - lodash.union@4.6.0: - resolution: {integrity: sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==} - lodash@4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} @@ -2301,6 +2299,10 @@ packages: process-nextick-args@2.0.1: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} + process@0.11.10: + resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} + engines: {node: '>= 0.6.0'} + progress@2.0.3: resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} engines: {node: '>=0.4.0'} @@ -2372,6 +2374,9 @@ packages: queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + queue-tick@1.0.1: + resolution: {integrity: sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==} + queue@6.0.2: resolution: {integrity: sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==} @@ -2404,6 +2409,10 @@ packages: resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} engines: {node: '>= 6'} + readable-stream@4.5.2: + resolution: {integrity: sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + readdir-glob@1.1.3: resolution: {integrity: sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==} @@ -2471,6 +2480,11 @@ packages: deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true + rimraf@5.0.7: + resolution: {integrity: sha512-nV6YcJo5wbLW77m+8KjH8aB/7/rxQy9SZ0HY5shnwULfS+9nmTtVXAJET5NdZmCzA4fPI/Hm1wo/Po/4mopOdg==} + engines: {node: '>=14.18'} + hasBin: true + router@1.3.8: resolution: {integrity: sha512-461UFH44NtSfIlS83PUg2N7OZo86BC/kB3dY77gJdsODsBhhw7+2uE0tzTINxrY9CahCUVk1VhpWCA5i1yoIEg==} engines: {node: '>= 0.8'} @@ -2657,6 +2671,9 @@ packages: stream-shift@1.0.3: resolution: {integrity: sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==} + streamx@2.18.0: + resolution: {integrity: sha512-LLUC1TWdjVdn1weXGcSxyTR3T4+acB6tVGXT95y0nGbca4t4o/ng1wKAGTljm9VicuCVLvRlqFYXYy5GwgM7sQ==} + string-width@4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} @@ -2703,9 +2720,8 @@ packages: resolution: {integrity: sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==} engines: {node: '>=8'} - tar-stream@2.2.0: - resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} - engines: {node: '>=6'} + tar-stream@3.1.7: + resolution: {integrity: sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==} tar@6.2.1: resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} @@ -2723,6 +2739,9 @@ packages: engines: {node: '>=10'} hasBin: true + text-decoder@1.1.0: + resolution: {integrity: sha512-TmLJNj6UgX8xcUZo4UDStGQtDiTzF7BzWlzn9g7UWrjkpHr5uJTK1ld16wZ3LXb2vb6jH8qU89dW5whuMdXYdw==} + text-hex@1.0.0: resolution: {integrity: sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==} @@ -2980,9 +2999,9 @@ packages: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} - zip-stream@4.1.1: - resolution: {integrity: sha512-9qv4rlDiopXg4E69k+vMHjNN63YFMe9sZMrdlvKnCjlCRWeCBswPPMPUfx+ipsAWq1LXHe70RcbaHdJJpS6hyQ==} - engines: {node: '>= 10'} + zip-stream@6.0.1: + resolution: {integrity: sha512-zK7YHHz4ZXpW89AHXUPbQVGKI7uvkd3hzusTdotCg1UxyaVtg0zFJSTfW/Dq5f7OBBVnq6cZIaC8Ti4hb6dtCA==} + engines: {node: '>= 14'} zwitch@2.0.4: resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} @@ -3504,41 +3523,25 @@ snapshots: normalize-path: 3.0.0 picomatch: 2.3.1 - archiver-utils@2.1.0: - dependencies: - glob: 7.2.3 - graceful-fs: 4.2.11 - lazystream: 1.0.1 - lodash.defaults: 4.2.0 - lodash.difference: 4.5.0 - lodash.flatten: 4.4.0 - lodash.isplainobject: 4.0.6 - lodash.union: 4.6.0 - normalize-path: 3.0.0 - readable-stream: 2.3.8 - - archiver-utils@3.0.4: + archiver-utils@5.0.2: dependencies: - glob: 7.2.3 + glob: 10.4.1 graceful-fs: 4.2.11 + is-stream: 2.0.1 lazystream: 1.0.1 - lodash.defaults: 4.2.0 - lodash.difference: 4.5.0 - lodash.flatten: 4.4.0 - lodash.isplainobject: 4.0.6 - lodash.union: 4.6.0 + lodash: 4.17.21 normalize-path: 3.0.0 - readable-stream: 3.6.2 + readable-stream: 4.5.2 - archiver@5.3.2: + archiver@7.0.1: dependencies: - archiver-utils: 2.1.0 + archiver-utils: 5.0.2 async: 3.2.5 - buffer-crc32: 0.2.13 - readable-stream: 3.6.2 + buffer-crc32: 1.0.0 + readable-stream: 4.5.2 readdir-glob: 1.1.3 - tar-stream: 2.2.0 - zip-stream: 4.1.1 + tar-stream: 3.1.7 + zip-stream: 6.0.1 argparse@1.0.10: dependencies: @@ -3584,8 +3587,13 @@ snapshots: asynckit@0.4.0: {} + b4a@1.6.6: {} + balanced-match@1.0.2: {} + bare-events@2.4.2: + optional: true + base64-js@1.5.1: {} basic-auth-connect@1.0.0: {} @@ -3668,7 +3676,7 @@ snapshots: dependencies: duplexer: 0.1.1 - buffer-crc32@0.2.13: {} + buffer-crc32@1.0.0: {} buffer-equal-constant-time@1.0.1: {} @@ -3679,6 +3687,11 @@ snapshots: base64-js: 1.5.1 ieee754: 1.2.1 + buffer@6.0.3: + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + bytes@3.0.0: {} bytes@3.1.2: {} @@ -3835,12 +3848,13 @@ snapshots: commander@5.1.0: {} - compress-commons@4.1.2: + compress-commons@6.0.2: dependencies: - buffer-crc32: 0.2.13 - crc32-stream: 4.0.3 + crc-32: 1.2.2 + crc32-stream: 6.0.0 + is-stream: 2.0.1 normalize-path: 3.0.0 - readable-stream: 3.6.2 + readable-stream: 4.5.2 compressible@2.0.18: dependencies: @@ -3902,10 +3916,10 @@ snapshots: crc-32@1.2.2: {} - crc32-stream@4.0.3: + crc32-stream@6.0.0: dependencies: crc-32: 1.2.2 - readable-stream: 3.6.2 + readable-stream: 4.5.2 cross-env@5.2.1: dependencies: @@ -4135,6 +4149,8 @@ snapshots: events-listener@1.1.0: {} + events@3.3.0: {} + exegesis-express@4.0.0: dependencies: exegesis: 4.1.2 @@ -4216,6 +4232,8 @@ snapshots: fast-deep-equal@3.1.3: {} + fast-fifo@1.3.2: {} + fast-glob@3.3.2: dependencies: '@nodelib/fs.stat': 2.0.5 @@ -4270,13 +4288,13 @@ snapshots: transitivePeerDependencies: - supports-color - firebase-tools@13.11.2(encoding@0.1.13): + firebase-tools@13.11.3(encoding@0.1.13): dependencies: '@google-cloud/cloud-sql-connector': 1.3.0(encoding@0.1.13) '@google-cloud/pubsub': 4.4.0(encoding@0.1.13) abort-controller: 3.0.0 ajv: 6.12.6 - archiver: 5.3.2 + archiver: 7.0.1 async-lock: 1.3.2 body-parser: 1.20.2 chokidar: 3.6.0 @@ -4298,7 +4316,7 @@ snapshots: fs-extra: 10.1.0 fuzzy: 0.1.3 gaxios: 6.6.0(encoding@0.1.13) - glob: 7.2.3 + glob: 10.4.1 google-auth-library: 9.10.0(encoding@0.1.13) inquirer: 8.2.6 inquirer-autocomplete-prompt: 2.0.1(inquirer@8.2.6) @@ -4320,7 +4338,7 @@ snapshots: progress: 2.0.3 proxy-agent: 6.4.0 retry: 0.13.1 - rimraf: 3.0.2 + rimraf: 5.0.7 semver: 7.6.2 sql-formatter: 15.3.1 stream-chain: 2.2.5 @@ -4376,8 +4394,6 @@ snapshots: fresh@0.5.2: {} - fs-constants@1.0.0: {} - fs-extra@10.1.0: dependencies: graceful-fs: 4.2.11 @@ -4978,12 +4994,6 @@ snapshots: lodash.camelcase@4.3.0: {} - lodash.defaults@4.2.0: {} - - lodash.difference@4.5.0: {} - - lodash.flatten@4.4.0: {} - lodash.includes@4.3.0: {} lodash.isboolean@3.0.3: {} @@ -5006,8 +5016,6 @@ snapshots: lodash.snakecase@4.1.1: {} - lodash.union@4.6.0: {} - lodash@4.17.21: {} log-symbols@4.1.0: @@ -5517,6 +5525,8 @@ snapshots: process-nextick-args@2.0.1: {} + process@0.11.10: {} + progress@2.0.3: {} promise-breaker@6.0.0: {} @@ -5601,6 +5611,8 @@ snapshots: queue-microtask@1.2.3: {} + queue-tick@1.0.1: {} + queue@6.0.2: dependencies: inherits: 2.0.4 @@ -5653,6 +5665,14 @@ snapshots: string_decoder: 1.3.0 util-deprecate: 1.0.2 + readable-stream@4.5.2: + dependencies: + abort-controller: 3.0.0 + buffer: 6.0.3 + events: 3.3.0 + process: 0.11.10 + string_decoder: 1.3.0 + readdir-glob@1.1.3: dependencies: minimatch: 5.1.6 @@ -5722,6 +5742,10 @@ snapshots: dependencies: glob: 7.2.3 + rimraf@5.0.7: + dependencies: + glob: 10.4.1 + router@1.3.8: dependencies: array-flatten: 3.0.0 @@ -5938,6 +5962,14 @@ snapshots: stream-shift@1.0.3: {} + streamx@2.18.0: + dependencies: + fast-fifo: 1.3.2 + queue-tick: 1.0.1 + text-decoder: 1.1.0 + optionalDependencies: + bare-events: 2.4.2 + string-width@4.2.3: dependencies: emoji-regex: 8.0.0 @@ -6007,13 +6039,11 @@ snapshots: has-flag: 4.0.0 supports-color: 7.2.0 - tar-stream@2.2.0: + tar-stream@3.1.7: dependencies: - bl: 4.1.0 - end-of-stream: 1.4.4 - fs-constants: 1.0.0 - inherits: 2.0.4 - readable-stream: 3.6.2 + b4a: 1.6.6 + fast-fifo: 1.3.2 + streamx: 2.18.0 tar@6.2.1: dependencies: @@ -6049,6 +6079,10 @@ snapshots: commander: 2.20.3 source-map-support: 0.5.21 + text-decoder@1.1.0: + dependencies: + b4a: 1.6.6 + text-hex@1.0.0: {} through@2.3.8: {} @@ -6307,10 +6341,10 @@ snapshots: yocto-queue@0.1.0: {} - zip-stream@4.1.1: + zip-stream@6.0.1: dependencies: - archiver-utils: 3.0.4 - compress-commons: 4.1.2 - readable-stream: 3.6.2 + archiver-utils: 5.0.2 + compress-commons: 6.0.2 + readable-stream: 4.5.2 zwitch@2.0.4: {} From 111431a749350e7c1a3cc1fd93bd6acc8f4e9044 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 24 Jun 2024 14:00:49 -0500 Subject: [PATCH 35/95] Bump shiki from 1.7.0 to 1.9.0 (#5931) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [shiki](https://github.com/shikijs/shiki/tree/HEAD/packages/shiki) from 1.7.0 to 1.9.0.
Release notes

Sourced from shiki's releases.

v1.9.0

   🚨 Breaking Changes

    View changes on GitHub

v1.8.0

   🚀 Features

    View changes on GitHub
Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=shiki&package-manager=npm_and_yarn&previous-version=1.7.0&new-version=1.9.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index 1755a0198..9b15a2489 100644 --- a/package.json +++ b/package.json @@ -37,6 +37,6 @@ "markdown-it-deflist": "^3.0.0", "markdown-it-table": "^4.1.1", "sass": "^1.77.6", - "shiki": "^1.7.0" + "shiki": "^1.9.0" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 907d3bcea..7da07e9a9 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -58,8 +58,8 @@ importers: specifier: ^1.77.6 version: 1.77.6 shiki: - specifier: ^1.7.0 - version: 1.7.0 + specifier: ^1.9.0 + version: 1.9.0 packages: @@ -379,8 +379,8 @@ packages: '@protobufjs/utf8@1.1.0': resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} - '@shikijs/core@1.7.0': - resolution: {integrity: sha512-O6j27b7dGmJbR3mjwh/aHH8Ld+GQvA0OQsNO43wKWnqbAae3AYXrhFyScHGX8hXZD6vX2ngjzDFkZY5srtIJbQ==} + '@shikijs/core@1.9.0': + resolution: {integrity: sha512-cbSoY8P/jgGByG8UOl3jnP/CWg/Qk+1q+eAKWtcrU3pNoILF8wTsLB0jT44qUBV8Ce1SvA9uqcM9Xf+u3fJFBw==} '@sindresorhus/slugify@2.2.1': resolution: {integrity: sha512-MkngSCRZ8JdSOCHRaYd+D01XhvU3Hjy6MGl06zhOk614hp9EOAp5gIkBeQg7wtmxpitU6eAL4kdiRMcJa2dlrw==} @@ -2576,8 +2576,8 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} - shiki@1.7.0: - resolution: {integrity: sha512-H5pMn4JA7ayx8H0qOz1k2qANq6mZVCMl1gKLK6kWIrv1s2Ial4EmD4s4jE8QB5Dw03d/oCQUxc24sotuyR5byA==} + shiki@1.9.0: + resolution: {integrity: sha512-i6//Lqgn7+7nZA0qVjoYH0085YdNk4MC+tJV4bo+HgjgRMJ0JmkLZzFAuvVioJqLkcGDK5GAMpghZEZkCnwxpQ==} side-channel@1.0.6: resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} @@ -3391,7 +3391,7 @@ snapshots: '@protobufjs/utf8@1.1.0': {} - '@shikijs/core@1.7.0': {} + '@shikijs/core@1.9.0': {} '@sindresorhus/slugify@2.2.1': dependencies: @@ -5875,9 +5875,9 @@ snapshots: shebang-regex@3.0.0: {} - shiki@1.7.0: + shiki@1.9.0: dependencies: - '@shikijs/core': 1.7.0 + '@shikijs/core': 1.9.0 side-channel@1.0.6: dependencies: From be185a2cec1db0ba1047d0ef1a93355f35a53577 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 24 Jun 2024 14:01:40 -0500 Subject: [PATCH 36/95] Bump firebase-tools from 13.11.3 to 13.11.4 (#5930) Bumps [firebase-tools](https://github.com/firebase/firebase-tools) from 13.11.3 to 13.11.4.
Release notes

Sourced from firebase-tools's releases.

v13.11.4

  • Data Connect emulator now reuses existing instances if they are emulating the same service.
  • Fixes issue where deploy --only dataconnect would error out with cannot read property undefined.
  • Fixes compatibility issue when uploading native symbols to Crashlytics on Intel-based Macs.
Commits
  • c189941 13.11.4
  • db73fd6 Support existing emulators (#7356)
  • 9cdbf7e Ungate dataconnect features (#7354)
  • 90fdad8 Fix compatibility issue with Intel-based Macs uploading symbols (#7357)
  • a30fe40 First draft of reusing running Data Connect emulators (#7331)
  • e1a81f8 Fix res.body.connectors is not iterable error on deploy --only dataconnect (#...
  • 0975e74 [firebase-release] Removed change log and reset repo after 13.11.3 release
  • See full diff in compare view

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=firebase-tools&package-manager=npm_and_yarn&previous-version=13.11.3&new-version=13.11.4)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 9b15a2489..b30040292 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ "devDependencies": { "@11ty/eleventy": "3.0.0-alpha.13", "@11ty/eleventy-img": "5.0.0-beta.4", - "firebase-tools": "^13.11.3", + "firebase-tools": "^13.11.4", "hast-util-from-html": "^2.0.1", "hast-util-select": "^6.0.2", "hast-util-to-text": "^4.0.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7da07e9a9..a87927443 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -19,8 +19,8 @@ importers: specifier: 5.0.0-beta.4 version: 5.0.0-beta.4(encoding@0.1.13) firebase-tools: - specifier: ^13.11.3 - version: 13.11.3(encoding@0.1.13) + specifier: ^13.11.4 + version: 13.11.4(encoding@0.1.13) hast-util-from-html: specifier: ^2.0.1 version: 2.0.1 @@ -1240,8 +1240,8 @@ packages: resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} engines: {node: '>= 0.8'} - firebase-tools@13.11.3: - resolution: {integrity: sha512-IyjScSUybsDuOy0mi+EGTJKydSnFnjMRzME8ElaFJNkkn3kDY11BYo/V1mqgAeWhqzLPSX5Gt4rI6WZxzm1gwg==} + firebase-tools@13.11.4: + resolution: {integrity: sha512-jjiJQKSInVIxMU2360/G+VMneM8AyUFV7CrWg5w2reT1RL5ateLrNofy+gjY5EIOjyc3k1m/Dr4pq4MQ0aLy7Q==} engines: {node: '>=18.0.0 || >=20.0.0'} hasBin: true @@ -4288,7 +4288,7 @@ snapshots: transitivePeerDependencies: - supports-color - firebase-tools@13.11.3(encoding@0.1.13): + firebase-tools@13.11.4(encoding@0.1.13): dependencies: '@google-cloud/cloud-sql-connector': 1.3.0(encoding@0.1.13) '@google-cloud/pubsub': 4.4.0(encoding@0.1.13) From 092b900f6760221fa7264612ee0654e9ee83439b Mon Sep 17 00:00:00 2001 From: Abhishek Anand Date: Tue, 25 Jun 2024 02:19:08 +0530 Subject: [PATCH 37/95] Update " (#5928) The example for abstract classes has an issue. I think it's a typo. The extending class `Car` does not override the abstract method moveForward from abstract class Vehicle. So I just override the method `moveForward` in class `Car`. It was already implement in the code excerpts at [here](https://github.com/dart-lang/site-www/blob/8288d78e4013437f4a498b62fbcbc3a682405aec/examples/language/lib/class_modifiers/ex1/b.dart#L14C2-L16C4) --------- Co-authored-by: Marya Belanger --- examples/language/lib/class_modifiers/ex1/b.dart | 3 +-- site-shared | 2 +- src/content/language/class-modifiers.md | 6 +++++- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/examples/language/lib/class_modifiers/ex1/b.dart b/examples/language/lib/class_modifiers/ex1/b.dart index 65aa079a7..9460230f0 100644 --- a/examples/language/lib/class_modifiers/ex1/b.dart +++ b/examples/language/lib/class_modifiers/ex1/b.dart @@ -9,12 +9,11 @@ Vehicle myVehicle = Vehicle(); // Can be extended. class Car extends Vehicle { int passengers = 4; - // #enddocregion abstract-usages + @override void moveForward(int meters) { // ... } - // #docregion abstract-usages } // Can be implemented. diff --git a/site-shared b/site-shared index e466136cd..d50b05880 160000 --- a/site-shared +++ b/site-shared @@ -1 +1 @@ -Subproject commit e466136cd77d715352a7f86a7abf563a1cfce735 +Subproject commit d50b05880ad6405518e3a08255bcda5fa72bbf2a diff --git a/src/content/language/class-modifiers.md b/src/content/language/class-modifiers.md index 3c5c47e55..cf7587483 100644 --- a/src/content/language/class-modifiers.md +++ b/src/content/language/class-modifiers.md @@ -80,7 +80,11 @@ Vehicle myVehicle = Vehicle(); // Can be extended. class Car extends Vehicle { int passengers = 4; - // ··· + + @override + void moveForward(int meters) { + // ... + } } // Can be implemented. From b0e60ad01ee0080f9e1b3ba0f5f0d6f7b950095c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 25 Jun 2024 05:25:06 -0500 Subject: [PATCH 38/95] Bump dart-lang/setup-dart from 1.6.4 to 1.6.5 (#5933) --- .github/workflows/test.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 1cf39e9d0..df49fc2e9 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -40,7 +40,7 @@ jobs: - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 with: submodules: recursive - - uses: dart-lang/setup-dart@f0ead981b4d9a35b37f30d36160575d60931ec30 + - uses: dart-lang/setup-dart@0a8a0fc875eb934c15d08629302413c671d3f672 with: sdk: ${{ matrix.sdk }} - name: Fetch Dart packages @@ -59,7 +59,7 @@ jobs: - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 with: submodules: recursive - - uses: dart-lang/setup-dart@f0ead981b4d9a35b37f30d36160575d60931ec30 + - uses: dart-lang/setup-dart@0a8a0fc875eb934c15d08629302413c671d3f672 with: sdk: stable - name: Fetch Dart packages @@ -74,7 +74,7 @@ jobs: - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 with: submodules: recursive - - uses: dart-lang/setup-dart@f0ead981b4d9a35b37f30d36160575d60931ec30 + - uses: dart-lang/setup-dart@0a8a0fc875eb934c15d08629302413c671d3f672 with: sdk: stable - name: Fetch Dart packages @@ -100,7 +100,7 @@ jobs: - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 with: submodules: recursive - - uses: dart-lang/setup-dart@f0ead981b4d9a35b37f30d36160575d60931ec30 + - uses: dart-lang/setup-dart@0a8a0fc875eb934c15d08629302413c671d3f672 with: sdk: stable - name: Fetch Dart packages @@ -115,7 +115,7 @@ jobs: - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 with: submodules: recursive - - uses: dart-lang/setup-dart@f0ead981b4d9a35b37f30d36160575d60931ec30 + - uses: dart-lang/setup-dart@0a8a0fc875eb934c15d08629302413c671d3f672 with: sdk: stable - name: Fetch Dart packages From 5c133af6706b71b87a53b9e3d4cdfb68d0aa9084 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 25 Jun 2024 15:56:57 -0500 Subject: [PATCH 39/95] Bump shiki from 1.9.0 to 1.9.1 (#5934) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [shiki](https://github.com/shikijs/shiki/tree/HEAD/packages/shiki) from 1.9.0 to 1.9.1.
Release notes

Sourced from shiki's releases.

v1.9.1

   🚀 Features

    View changes on GitHub
Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=shiki&package-manager=npm_and_yarn&previous-version=1.9.0&new-version=1.9.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index b30040292..22e7ee0d5 100644 --- a/package.json +++ b/package.json @@ -37,6 +37,6 @@ "markdown-it-deflist": "^3.0.0", "markdown-it-table": "^4.1.1", "sass": "^1.77.6", - "shiki": "^1.9.0" + "shiki": "^1.9.1" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a87927443..9169c55f8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -58,8 +58,8 @@ importers: specifier: ^1.77.6 version: 1.77.6 shiki: - specifier: ^1.9.0 - version: 1.9.0 + specifier: ^1.9.1 + version: 1.9.1 packages: @@ -379,8 +379,8 @@ packages: '@protobufjs/utf8@1.1.0': resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} - '@shikijs/core@1.9.0': - resolution: {integrity: sha512-cbSoY8P/jgGByG8UOl3jnP/CWg/Qk+1q+eAKWtcrU3pNoILF8wTsLB0jT44qUBV8Ce1SvA9uqcM9Xf+u3fJFBw==} + '@shikijs/core@1.9.1': + resolution: {integrity: sha512-EmUful2MQtY8KgCF1OkBtOuMcvaZEvmdubhW0UHCGXi21O9dRLeADVCj+k6ZS+de7Mz9d2qixOXJ+GLhcK3pXg==} '@sindresorhus/slugify@2.2.1': resolution: {integrity: sha512-MkngSCRZ8JdSOCHRaYd+D01XhvU3Hjy6MGl06zhOk614hp9EOAp5gIkBeQg7wtmxpitU6eAL4kdiRMcJa2dlrw==} @@ -2576,8 +2576,8 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} - shiki@1.9.0: - resolution: {integrity: sha512-i6//Lqgn7+7nZA0qVjoYH0085YdNk4MC+tJV4bo+HgjgRMJ0JmkLZzFAuvVioJqLkcGDK5GAMpghZEZkCnwxpQ==} + shiki@1.9.1: + resolution: {integrity: sha512-8PDkgb5ja3nfujTjvC4VytL6wGOGCtFAClUb2r3QROevYXxcq+/shVJK5s6gy0HZnjaJgFxd6BpPqpRfqne5rA==} side-channel@1.0.6: resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} @@ -3391,7 +3391,7 @@ snapshots: '@protobufjs/utf8@1.1.0': {} - '@shikijs/core@1.9.0': {} + '@shikijs/core@1.9.1': {} '@sindresorhus/slugify@2.2.1': dependencies: @@ -5875,9 +5875,9 @@ snapshots: shebang-regex@3.0.0: {} - shiki@1.9.0: + shiki@1.9.1: dependencies: - '@shikijs/core': 1.9.0 + '@shikijs/core': 1.9.1 side-channel@1.0.6: dependencies: From 059dabdc4532ca0a99b38a0235dd25a82591c46e Mon Sep 17 00:00:00 2001 From: Parker Lougheed Date: Wed, 26 Jun 2024 11:50:35 -0500 Subject: [PATCH 40/95] Add redirect for tooling to the main function docs (#5937) --- firebase.json | 3 +++ src/content/language/functions.md | 3 ++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/firebase.json b/firebase.json index c5c77d5d0..3373a2c56 100644 --- a/firebase.json +++ b/firebase.json @@ -280,6 +280,9 @@ { "source": "/stable{,/**}", "destination": "https://api.dart.dev/stable", "type": 301 }, { "source": "/support/faq?(.html)", "destination": "/resources/faq", "type": 301 }, { "source": "/support{,/**}", "destination": "/community", "type": 301 }, + + { "source": "/to/main-function", "destination": "/language/functions#main", "type": 301 }, + { "source": "/tools/**/download{,.html,/**}", "destination": "/get-dart", "type": 301 }, { "source": "/tools/**/private-files?(.html)", "destination": "/guides/libraries/private-files", "type": 301 }, { "source": "/tools/analyzer", "destination": "/tools/dart-analyze", "type": 301 }, diff --git a/src/content/language/functions.md b/src/content/language/functions.md index c88c822a8..2c14ab131 100644 --- a/src/content/language/functions.md +++ b/src/content/language/functions.md @@ -204,8 +204,9 @@ String say(String from, String msg, [String device = 'carrier pigeon']) { assert(say('Bob', 'Howdy') == 'Bob says Howdy with a carrier pigeon'); ``` + -## The main() function +## The main() function {:#main} Every app must have a top-level `main()` function, which serves as the entrypoint to the app. The `main()` function returns `void` and has an From 7e4d33dca4f850884f70f226cff58b787644f8a2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 27 Jun 2024 07:07:12 -0500 Subject: [PATCH 41/95] Bump firebase-tools from 13.11.4 to 13.12.0 (#5943) --- package.json | 2 +- pnpm-lock.yaml | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 22e7ee0d5..e150d2968 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ "devDependencies": { "@11ty/eleventy": "3.0.0-alpha.13", "@11ty/eleventy-img": "5.0.0-beta.4", - "firebase-tools": "^13.11.4", + "firebase-tools": "^13.12.0", "hast-util-from-html": "^2.0.1", "hast-util-select": "^6.0.2", "hast-util-to-text": "^4.0.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9169c55f8..e85c0870c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -19,8 +19,8 @@ importers: specifier: 5.0.0-beta.4 version: 5.0.0-beta.4(encoding@0.1.13) firebase-tools: - specifier: ^13.11.4 - version: 13.11.4(encoding@0.1.13) + specifier: ^13.12.0 + version: 13.12.0(encoding@0.1.13) hast-util-from-html: specifier: ^2.0.1 version: 2.0.1 @@ -1240,8 +1240,8 @@ packages: resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} engines: {node: '>= 0.8'} - firebase-tools@13.11.4: - resolution: {integrity: sha512-jjiJQKSInVIxMU2360/G+VMneM8AyUFV7CrWg5w2reT1RL5ateLrNofy+gjY5EIOjyc3k1m/Dr4pq4MQ0aLy7Q==} + firebase-tools@13.12.0: + resolution: {integrity: sha512-hr3rqrWeeiNshVzmVSeQkCOSGUSKMxZs+ztairg4r6wteGUOVz56DrYsDMTUxjqH5zPxz5pxK9cvJi4M4ER13g==} engines: {node: '>=18.0.0 || >=20.0.0'} hasBin: true @@ -4288,7 +4288,7 @@ snapshots: transitivePeerDependencies: - supports-color - firebase-tools@13.11.4(encoding@0.1.13): + firebase-tools@13.12.0(encoding@0.1.13): dependencies: '@google-cloud/cloud-sql-connector': 1.3.0(encoding@0.1.13) '@google-cloud/pubsub': 4.4.0(encoding@0.1.13) From 8e12795ada4bc620b820773e1616792691793fb0 Mon Sep 17 00:00:00 2001 From: i-3 <55412563+i-3@users.noreply.github.com> Date: Thu, 27 Jun 2024 18:40:02 +0300 Subject: [PATCH 42/95] Update pattern-types.md (#5941) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Thanks for your contribution! Please replace this text with a description of what this PR is changing or adding and why, list any relevant issues, and review the contribution guidelines below. Fixes --- - [ ] I’ve reviewed the contributor guide and applied the relevant portions to this PR. - [ ] This PR doesn't contain automatically generated corrections or text (Grammarly, LLMs, and similar). - [ ] This PR follows the [Google Developer Documentation Style Guidelines](https://developers.google.com/style) — for example, it doesn't use _i.e._ or _e.g._, and it avoids _I_ and _we_ (first person). - [ ] This PR uses [semantic line breaks](https://github.com/dart-lang/site-shared/blob/main/doc/writing-for-dart-and-flutter-websites.md#semantic-line-breaks) of 80 characters or fewer.
Contribution guidelines:
- See our [contributor guide](https://github.com/dart-lang/site-www/blob/main/CONTRIBUTING.md) for general expectations for PRs. - Larger or significant changes should be discussed in an issue before creating a PR. - Code changes should generally follow the [Dart style guide](https://dart.dev/effective-dart) and use `dart format`. - Updates to [code excerpts](https://github.com/dart-lang/site-shared/blob/main/doc/code-excerpts.md) indicated by ` --- src/content/language/pattern-types.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/content/language/pattern-types.md b/src/content/language/pattern-types.md index f0bb32129..a0fa85c34 100644 --- a/src/content/language/pattern-types.md +++ b/src/content/language/pattern-types.md @@ -279,7 +279,7 @@ pattern where a higher precedence one is expected. For example, imagine the boolean constants `x`, `y`, and `z` equal `true`, `true`, and `false`, respectively. -Though the following example resembles boolean expression evaulation, +Though the following example resembles boolean expression evaluation, the example matches patterns. From 3e126eb9f79a9d68bee9181089cdfd4612c9d61f Mon Sep 17 00:00:00 2001 From: Anthony Sansone Date: Thu, 27 Jun 2024 11:56:56 -0500 Subject: [PATCH 43/95] Update GitHub links on SDK page (#5945) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes #5942 Links at the bottom of the page were formatted as inline Markdown links instead of reference links. --- - [ ] I’ve reviewed the contributor guide and applied the relevant portions to this PR. - [ ] This PR doesn't contain automatically generated corrections or text (Grammarly, LLMs, and similar). - [ ] This PR follows the [Google Developer Documentation Style Guidelines](https://developers.google.com/style) — for example, it doesn't use _i.e._ or _e.g._, and it avoids _I_ and _we_ (first person). - [ ] This PR uses [semantic line breaks](https://github.com/dart-lang/site-shared/blob/main/doc/writing-for-dart-and-flutter-websites.md#semantic-line-breaks) of 80 characters or fewer.
Contribution guidelines:
- See our [contributor guide](https://github.com/dart-lang/site-www/blob/main/CONTRIBUTING.md) for general expectations for PRs. - Larger or significant changes should be discussed in an issue before creating a PR. - Code changes should generally follow the [Dart style guide](https://dart.dev/effective-dart) and use `dart format`. - Updates to [code excerpts](https://github.com/dart-lang/site-shared/blob/main/doc/code-excerpts.md) indicated by ` --- src/content/tools/sdk.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/content/tools/sdk.md b/src/content/tools/sdk.md index e8bc101f7..3696c6114 100644 --- a/src/content/tools/sdk.md +++ b/src/content/tools/sdk.md @@ -50,5 +50,5 @@ go to [the SDK issue tracker][sdk-issues]. [Dart libraries]: /libraries [flutter]: {{site.flutter-docs}}/get-started/install [site SDK version]: {{site.dart-api}}/{{site.sdkInfo.channel}}/{{site.sdkInfo.version}}/index.html -[readme]: ({{site.repo.dart.sdk}}/blob/main/README.dart-sdk) -[sdk-issues]: ({{site.repo.dart.sdk}}/issues) +[readme]: {{site.repo.dart.sdk}}/blob/main/README.dart-sdk +[sdk-issues]: {{site.repo.dart.sdk}}/issues From 98de8c39e04736273c21643badf6744a8a7c4fe0 Mon Sep 17 00:00:00 2001 From: Abitofevrything <54505189+abitofevrything@users.noreply.github.com> Date: Thu, 27 Jun 2024 21:45:05 +0200 Subject: [PATCH 44/95] Add note informing users not to install Flutter and Dart separately (#5939) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes https://github.com/dart-lang/site-www/issues/5938 --- - [x] I’ve reviewed the contributor guide and applied the relevant portions to this PR. - [x] This PR doesn't contain automatically generated corrections or text (Grammarly, LLMs, and similar). - [x] This PR follows the [Google Developer Documentation Style Guidelines](https://developers.google.com/style) — for example, it doesn't use _i.e._ or _e.g._, and it avoids _I_ and _we_ (first person). - [x] This PR uses [semantic line breaks](https://github.com/dart-lang/site-shared/blob/main/doc/writing-for-dart-and-flutter-websites.md#semantic-line-breaks) of 80 characters or fewer.
Contribution guidelines:
- See our [contributor guide](https://github.com/dart-lang/site-www/blob/main/CONTRIBUTING.md) for general expectations for PRs. - Larger or significant changes should be discussed in an issue before creating a PR. - Code changes should generally follow the [Dart style guide](https://dart.dev/effective-dart) and use `dart format`. - Updates to [code excerpts](https://github.com/dart-lang/site-shared/blob/main/doc/code-excerpts.md) indicated by ` --------- Co-authored-by: Anthony Sansone --- src/content/get-dart/index.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/content/get-dart/index.md b/src/content/get-dart/index.md index 7034df4f3..65b40e89c 100644 --- a/src/content/get-dart/index.md +++ b/src/content/get-dart/index.md @@ -13,6 +13,11 @@ you need to develop Dart command-line, server, and web apps. To learn more about the Dart SDK, consult the [Dart SDK overview](/tools/sdk). +:::tip +If you've installed or plan to [install the Flutter SDK][install-flutter], it +includes the full Dart SDK. You don't need to install Dart separately and can skip this guide. +::: + ## System requirements Dart supports the following hardware architectures and platform versions From b812085ce4aaa35354ad8c64085d97cd91bd3caa Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 28 Jun 2024 11:25:36 -0500 Subject: [PATCH 45/95] Bump shiki from 1.9.1 to 1.10.0 (#5947) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [shiki](https://github.com/shikijs/shiki/tree/HEAD/packages/shiki) from 1.9.1 to 1.10.0.
Release notes

Sourced from shiki's releases.

v1.10.0

   🚀 Features

   🐞 Bug Fixes

  • Expose createCssVariablesTheme in shiki/core to avoid side-effects  -  by @​antfu (abe63)
    View changes on GitHub
Commits
  • 6e5f39f chore: release v1.10.0
  • 02bf017 feat: update themes and grammars
  • abe639d fix: expose createCssVariablesTheme in shiki/core to avoid side-effects
  • f2b3956 feat: expose getLastGrammarState shorthand
  • 8a8faf9 feat: introduce GrammarState (#712)
  • See full diff in compare view

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=shiki&package-manager=npm_and_yarn&previous-version=1.9.1&new-version=1.10.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index e150d2968..2bb08a83d 100644 --- a/package.json +++ b/package.json @@ -37,6 +37,6 @@ "markdown-it-deflist": "^3.0.0", "markdown-it-table": "^4.1.1", "sass": "^1.77.6", - "shiki": "^1.9.1" + "shiki": "^1.10.0" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e85c0870c..4c82a199f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -58,8 +58,8 @@ importers: specifier: ^1.77.6 version: 1.77.6 shiki: - specifier: ^1.9.1 - version: 1.9.1 + specifier: ^1.10.0 + version: 1.10.0 packages: @@ -379,8 +379,8 @@ packages: '@protobufjs/utf8@1.1.0': resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} - '@shikijs/core@1.9.1': - resolution: {integrity: sha512-EmUful2MQtY8KgCF1OkBtOuMcvaZEvmdubhW0UHCGXi21O9dRLeADVCj+k6ZS+de7Mz9d2qixOXJ+GLhcK3pXg==} + '@shikijs/core@1.10.0': + resolution: {integrity: sha512-BZcr6FCmPfP6TXaekvujZcnkFmJHZ/Yglu97r/9VjzVndQA56/F4WjUKtJRQUnK59Wi7p/UTAOekMfCJv7jnYg==} '@sindresorhus/slugify@2.2.1': resolution: {integrity: sha512-MkngSCRZ8JdSOCHRaYd+D01XhvU3Hjy6MGl06zhOk614hp9EOAp5gIkBeQg7wtmxpitU6eAL4kdiRMcJa2dlrw==} @@ -2576,8 +2576,8 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} - shiki@1.9.1: - resolution: {integrity: sha512-8PDkgb5ja3nfujTjvC4VytL6wGOGCtFAClUb2r3QROevYXxcq+/shVJK5s6gy0HZnjaJgFxd6BpPqpRfqne5rA==} + shiki@1.10.0: + resolution: {integrity: sha512-YD2sXQ+TMD/F9BimV9Jn0wj35pqOvywvOG/3PB6hGHyGKlM7TJ9tyJ02jOb2kF8F0HfJwKNYrh3sW7jEcuRlXA==} side-channel@1.0.6: resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} @@ -3391,7 +3391,7 @@ snapshots: '@protobufjs/utf8@1.1.0': {} - '@shikijs/core@1.9.1': {} + '@shikijs/core@1.10.0': {} '@sindresorhus/slugify@2.2.1': dependencies: @@ -5875,9 +5875,9 @@ snapshots: shebang-regex@3.0.0: {} - shiki@1.9.1: + shiki@1.10.0: dependencies: - '@shikijs/core': 1.9.1 + '@shikijs/core': 1.10.0 side-channel@1.0.6: dependencies: From def966a6d5827e5743107a73833caf90a8b3a275 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 28 Jun 2024 11:26:03 -0500 Subject: [PATCH 46/95] Bump @11ty/eleventy from 3.0.0-alpha.13 to 3.0.0-alpha.14 (#5946) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [@11ty/eleventy](https://github.com/11ty/eleventy) from 3.0.0-alpha.13 to 3.0.0-alpha.14.
Release notes

Sourced from @​11ty/eleventy's releases.

Pre-release: Eleventy v3.0.0-alpha.14

  • Adds support for --incremental=filename to start an incremental build with an explicitly defined incremental file. Major improvements to dependency mapping for incremental builds (especially with --ignore-initial) #3324
  • New useLayouts option for Custom template syntax allows opt-out of Eleventy Layouts for custom template files in your addExtension definition (you don’t want Layouts on scss files) #2830
  • Fixes bugs with cached second-order JavaScript dependencies (e.g. a local import in your config file) #3270
  • eleventyConfig.resolvePlugin method for adding bundled-with-Eleventy plugins is now synchronous-friendly for better compatibility with RSS plugin usage: 11ty/eleventy#3314
  • Breaking: Removes htmlOutputSuffix common pitfall when input and output directories are the same. Instead of renaming output files with an additional suffix, errors are now thrown when output files attempt to overwrite any input file. #3327
  • eleventyConfig.quietMode now reflects --quiet CLI value #3316
  • Improved error messaging for errors in: Nunjucks filters #3295 and Acorn parsing for JavaScript dependencies for --watch or --serve #3128

Full Changelog: https://github.com/11ty/eleventy/compare/v3.0.0-alpha.13...v3.0.0-alpha.14 Full Eleventy v3 Milestone: https://github.com/11ty/eleventy/milestone/40

🥳🥳🥳 10 issues left (107 solved) on the Eleventy 3.0.0 milestone!

We need your help!

11ty is now operating independently, with full time development and maintenance funded by our Open Collective supporters. We need your help to keep going! We have a goal of $6000 USD recurring monthly budget. Read more about this fundraising push or head directly to our Open Collective to start your recurring contribution!

Commits
  • 7128d07 v3.0.0-alpha.14
  • 14aa9e2 Upgrade to eslint 9
  • ddfecc3 Upgrade dependencies
  • 743cd86 Improved error messaging for #3128
  • 1298634 Adds useLayouts option to custom template engines to opt-out of layouts at ...
  • fa0b636 Small cleanup for #1175 to take excluded collections into account when settin...
  • fbad000 Fix no-async-promise-executor Eslint warning
  • afba37b Change the benchmark log to require 50ms minimum and to be over the minimum t...
  • 643da17 Fix bad promise caching pattern
  • 65de3af Fixes for incremental=filename #3324 for --ignore-initial. Better dependency ...
  • Additional commits viewable in compare view

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@11ty/eleventy&package-manager=npm_and_yarn&previous-version=3.0.0-alpha.13&new-version=3.0.0-alpha.14)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 24 +++++++++++++++--------- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index 2bb08a83d..146fee9f4 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,7 @@ "bootstrap-scss": "^4.6.2" }, "devDependencies": { - "@11ty/eleventy": "3.0.0-alpha.13", + "@11ty/eleventy": "3.0.0-alpha.14", "@11ty/eleventy-img": "5.0.0-beta.4", "firebase-tools": "^13.12.0", "hast-util-from-html": "^2.0.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4c82a199f..99e6fa698 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -13,8 +13,8 @@ importers: version: 4.6.2 devDependencies: '@11ty/eleventy': - specifier: 3.0.0-alpha.13 - version: 3.0.0-alpha.13 + specifier: 3.0.0-alpha.14 + version: 3.0.0-alpha.14 '@11ty/eleventy-img': specifier: 5.0.0-beta.4 version: 5.0.0-beta.4(encoding@0.1.13) @@ -94,8 +94,8 @@ packages: resolution: {integrity: sha512-nULO91om7vQw4Y/UBjM8i7nJ1xl+/nyK4rImZ41lFxiY2d+XUz7ChAj1CDYFjrLZeu0utAYJTZ45LlcHTkUG4g==} engines: {node: '>=12'} - '@11ty/eleventy@3.0.0-alpha.13': - resolution: {integrity: sha512-LZ1mI2JoB/vu6eIzeh9Eim0istAmKiJ0C5LEYG8HigvGgVsADd7OGHpOeOpDgKjotPSO+DTVh48gQj/cW2mRNw==} + '@11ty/eleventy@3.0.0-alpha.14': + resolution: {integrity: sha512-SQGvi/0cSrgyjhTocO8nGpivQbZBXnFlVLp1M3H8xcdvpXYgCVHiEYvrY79TnDd9Nxvj5QtsQuCiselJb3X16g==} engines: {node: '>=18'} hasBin: true @@ -714,6 +714,9 @@ packages: chardet@0.7.0: resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} + chardet@2.0.0: + resolution: {integrity: sha512-xVgPpulCooDjY6zH4m9YW3jbkaBe3FKIAvF5sj5t7aBNsVl2ljIE+xwJ4iNgiDZHFQvNIpjdKdVOQvvk5ZfxbQ==} + chokidar@3.6.0: resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} engines: {node: '>= 8.10.0'} @@ -1752,8 +1755,8 @@ packages: linkify-it@5.0.0: resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==} - liquidjs@10.13.1: - resolution: {integrity: sha512-QCQ69sbyMdA1970NEsG7KdQoKi6N+lGg55izisvKvrrRO1nrpS/YBAnzDndR13exYB4xE9A87qdOMuaXPn9v9A==} + liquidjs@10.14.0: + resolution: {integrity: sha512-Zjg35Yo3L/2aNy7QkICha/ulbXRtZS7oRenWyDDfw+J34Xy3fOKWWHxASC9r0gbxN661nrwmG/kOIKHfYcVk4Q==} engines: {node: '>=14'} hasBin: true @@ -3077,7 +3080,7 @@ snapshots: dependencies: normalize-path: 3.0.0 - '@11ty/eleventy@3.0.0-alpha.13': + '@11ty/eleventy@3.0.0-alpha.14': dependencies: '@11ty/dependency-tree': 3.0.0 '@11ty/dependency-tree-esm': 1.0.0 @@ -3088,6 +3091,7 @@ snapshots: '@11ty/posthtml-urls': 1.0.0 '@sindresorhus/slugify': 2.2.1 bcp-47-normalize: 2.3.0 + chardet: 2.0.0 chokidar: 3.6.0 cross-spawn: 7.0.3 debug: 4.3.5 @@ -3098,7 +3102,7 @@ snapshots: is-glob: 4.0.3 iso-639-1: 3.1.2 kleur: 4.1.5 - liquidjs: 10.13.1 + liquidjs: 10.14.0 luxon: 3.4.4 markdown-it: 14.1.0 micromatch: 4.0.7 @@ -3743,6 +3747,8 @@ snapshots: chardet@0.7.0: {} + chardet@2.0.0: {} + chokidar@3.6.0: dependencies: anymatch: 3.1.3 @@ -4984,7 +4990,7 @@ snapshots: dependencies: uc.micro: 2.1.0 - liquidjs@10.13.1: + liquidjs@10.14.0: dependencies: commander: 10.0.1 From 99076c08c8b4b8ff023d5b1dd25a9d5eb0d54f96 Mon Sep 17 00:00:00 2001 From: Anthony Sansone Date: Fri, 28 Jun 2024 14:24:38 -0500 Subject: [PATCH 47/95] Changed skip to physical button (#5949) The first PR (https://github.com/dart-lang/site-www/pull/5894) covered an undisplayed link. Per best practices for a11y, this button should be visible. Using https://github.com/flutter/website/pull/10800 as the guideline. Fixes #5948 --- src/_sass/_site.scss | 17 ++++++++++++----- src/_sass/core/_variables.scss | 3 ++- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/src/_sass/_site.scss b/src/_sass/_site.scss index 2fd99fd23..76d6487a7 100644 --- a/src/_sass/_site.scss +++ b/src/_sass/_site.scss @@ -877,12 +877,19 @@ div.tabs__content h1, h2, h3, h4, h5, h6 { } #skip { + top: 10px; + left: 10px; position: absolute; - top: -1000%; - left: -1000%; + z-index: $site-z-skip; + padding: 1rem; + background-color: $site-color-primary; + color: $site-color-white; + border-radius: 0.5rem; + transform: translateY(-5rem); } + #skip:focus { - top: 10px; - left: 10px; -} \ No newline at end of file + opacity: 1; + transform: translateY(0); +} diff --git a/src/_sass/core/_variables.scss b/src/_sass/core/_variables.scss index fe43bbd4a..5a880c8b5 100644 --- a/src/_sass/core/_variables.scss +++ b/src/_sass/core/_variables.scss @@ -24,9 +24,10 @@ $site-color-footer: $site-color-dark-background; $site-color-primary: $flutter-color-blue-500; // Layer stack -$site-z-header: 10000; +$site-z-header: 1000; $site-z-footer: 99; $site-z-snackbar: 150; +$site-z-skip: 2000; $hero-layer-1-z: 40; $hero-layer-2-z: 41; $hero-layer-3-z: 42; From cac76d898754a89c9b53761c507523bc8c136059 Mon Sep 17 00:00:00 2001 From: Parker Lougheed Date: Fri, 28 Jun 2024 16:00:25 -0500 Subject: [PATCH 48/95] Update diagnostic messages (#5951) Already reviewed in the SDK, mostly a few fixed to the highlighted span for FFI diagnostics. --- src/content/tools/diagnostic-messages.md | 81 +++++++----------------- 1 file changed, 23 insertions(+), 58 deletions(-) diff --git a/src/content/tools/diagnostic-messages.md b/src/content/tools/diagnostic-messages.md index 3bf964be8..0e1893916 100644 --- a/src/content/tools/diagnostic-messages.md +++ b/src/content/tools/diagnostic-messages.md @@ -7146,8 +7146,8 @@ annotated as being `@Native`, but the function isn't marked as `external`: ```dart import 'dart:ffi'; -[!@Native)>()!] -[!void free(Pointer ptr) {}!] +@Native)>() +void [!free!](Pointer ptr) {} ``` #### Common fixes @@ -7182,8 +7182,8 @@ has one argument and the type of the annotated function ```dart import 'dart:ffi'; -[!@Native(symbol: 'f')!] -[!external void f(double x, double y);!] +@Native(symbol: 'f') +external void [!f!](double x, double y); ``` #### Common fixes @@ -7229,8 +7229,8 @@ for the receiver of the method: import 'dart:ffi'; class C { - [!@Native()!] - [!external void f(double x);!] + @Native() + external void [!f!](double x); } ``` @@ -12219,7 +12219,7 @@ returns a `Handle`, but the `isLeaf` argument is `true`: import 'dart:ffi'; void f(Pointer> p) { - [!p.asFunction(isLeaf: true)!]; + p.[!asFunction!](isLeaf: true); } ``` @@ -12268,7 +12268,7 @@ parameter of type `Handle`, but the `isLeaf` argument is `true`: import 'dart:ffi'; void f(Pointer> p) { - [!p.asFunction(isLeaf: true)!]; + p.[!asFunction!](isLeaf: true); } ``` @@ -15636,52 +15636,6 @@ class A { class B implements A {} ``` -### non_leaf_call_must_not_take_typed_data - -_FFI non-leaf calls can't take typed data arguments._ - -#### Description - -The analyzer produces this diagnostic when the value of the `isLeaf` -argument of `Pointer.asFunction`, `DynamicLibrary.lookupFunction`, or -`@Native` is `false` and the Dart function signature contains a typed -data parameter. - -Typed data unwrapping is only supported on arguments for leaf FFI calls. - -For more information about FFI, see [C interop using dart:ffi][ffi]. - -#### Example - -The following code produces this diagnostic because the dart function -signature contains a typed data, but the `isLeaf` argument is `false`: - -```dart -import 'dart:ffi'; -import 'dart:typed_data'; - -void f(Pointer)>> p) { - p.asFunction<[!void Function(Uint8List)!]>(); -} -``` - -#### Common fixes - -If the function has at least one typed data parameter, then add -the `isLeaf` argument: - -```dart -import 'dart:ffi'; -import 'dart:typed_data'; - -void f(Pointer)>> p) { - p.asFunction(isLeaf: true); -} -``` - -If the function also uses `Handle`s, then it must be non-leaf. In That -case use `Pointer`s instead of typed data. - ### non_native_function_type_argument_to_pointer _Can't invoke 'asFunction' because the function signature '{0}' for the pointer @@ -19073,7 +19027,8 @@ int f() => 3; ### return_of_invalid_type_from_closure -_The return type '{0}' isn't a '{1}', as required by the closure's context._ +_The returned type '{0}' isn't returnable from a '{1}' function, as required by +the closure's context._ #### Description @@ -23520,7 +23475,7 @@ _Target of URI doesn't exist: '{0}'._ The analyzer produces this diagnostic when an import, export, or part directive is found where the URI refers to a file that doesn't exist. -#### Example +#### Examples If the file `lib.dart` doesn't exist, the following code produces this diagnostic: @@ -23529,6 +23484,14 @@ diagnostic: import [!'lib.dart'!]; ``` +If the file `lib.dart` doesn't exist, the following code produces this +diagnostic: + +```dart +/// @docImport [!'lib.dart'!]; +library; +``` + #### Common fixes If the URI was mistyped or invalid, then correct the URI. @@ -24250,7 +24213,9 @@ Iterable get zero sync* { ### always_declare_return_types -_Missing return type on method._ +_The function '{0}' should have a return type but doesn't._ + +_The method '{0}' should have a return type but doesn't._ #### Description @@ -25040,7 +25005,7 @@ flutter: fileName: hello_web.dart ``` -See [Developing packages & plugins](https://docs.flutter.dev/packages-and-plugins/developing-packages) +See [Developing packages & plugins](https://flutter.dev/to/develop-packages) for more information. ### await_only_futures From fdf0b81d8d27a99e691f91f4246de72e53cd9c47 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 1 Jul 2024 11:03:45 -0500 Subject: [PATCH 49/95] Bump github/codeql-action from 3.25.10 to 3.25.11 (#5954) --- .github/workflows/codeql-analysis.yml | 6 +++--- .github/workflows/scorecards-analysis.yml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 70113bd41..fedf7228b 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -33,7 +33,7 @@ jobs: # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL - uses: github/codeql-action/init@23acc5c183826b7a8a97bce3cecc52db901f8251 + uses: github/codeql-action/init@b611370bb5703a7efb587f9d136a52ea24c5c38c with: languages: ${{ matrix.language }} # If you wish to specify custom queries, you can do so here or in a config file. @@ -44,7 +44,7 @@ jobs: # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). # If this step fails, then you should remove it and run the build manually (see below) - name: Autobuild - uses: github/codeql-action/autobuild@23acc5c183826b7a8a97bce3cecc52db901f8251 + uses: github/codeql-action/autobuild@b611370bb5703a7efb587f9d136a52ea24c5c38c # ℹ️ Command-line programs to run using the OS shell. # 📚 https://git.io/JvXDl @@ -58,4 +58,4 @@ jobs: # make release - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@23acc5c183826b7a8a97bce3cecc52db901f8251 + uses: github/codeql-action/analyze@b611370bb5703a7efb587f9d136a52ea24c5c38c diff --git a/.github/workflows/scorecards-analysis.yml b/.github/workflows/scorecards-analysis.yml index 548321326..3d0a74533 100644 --- a/.github/workflows/scorecards-analysis.yml +++ b/.github/workflows/scorecards-analysis.yml @@ -49,6 +49,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@23acc5c183826b7a8a97bce3cecc52db901f8251 + uses: github/codeql-action/upload-sarif@b611370bb5703a7efb587f9d136a52ea24c5c38c with: sarif_file: results.sarif From 362c64bcc101bb301e8738b57b35269930720e1a Mon Sep 17 00:00:00 2001 From: Anthony Sansone Date: Mon, 1 Jul 2024 15:59:27 -0500 Subject: [PATCH 50/95] Move what not to commit page to Package section (#5957) Fixes #5690 --- src/_data/side-nav.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/_data/side-nav.yml b/src/_data/side-nav.yml index 25655f694..43ef8683c 100644 --- a/src/_data/side-nav.yml +++ b/src/_data/side-nav.yml @@ -184,6 +184,8 @@ permalink: /tools/pub/security-advisories - title: Versioning permalink: /tools/pub/versioning + - title: What not to commit + permalink: /guides/libraries/private-files - title: Development expanded: false @@ -334,9 +336,6 @@ permalink: /guides/testing - title: Debugging web apps permalink: /web/debugging - - title: What not to commit - permalink: /guides/libraries/private-files - - divider - title: Resources From 89eb19611c23576d0ddc31345afec4b72036825a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 3 Jul 2024 11:24:56 -0500 Subject: [PATCH 51/95] Bump shiki from 1.10.0 to 1.10.1 (#5960) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [shiki](https://github.com/shikijs/shiki/tree/HEAD/packages/shiki) from 1.10.0 to 1.10.1.
Release notes

Sourced from shiki's releases.

v1.10.1

   🐞 Bug Fixes

    View changes on GitHub
Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=shiki&package-manager=npm_and_yarn&previous-version=1.10.0&new-version=1.10.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index 146fee9f4..9120bad76 100644 --- a/package.json +++ b/package.json @@ -37,6 +37,6 @@ "markdown-it-deflist": "^3.0.0", "markdown-it-table": "^4.1.1", "sass": "^1.77.6", - "shiki": "^1.10.0" + "shiki": "^1.10.1" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 99e6fa698..548c8e8fb 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -58,8 +58,8 @@ importers: specifier: ^1.77.6 version: 1.77.6 shiki: - specifier: ^1.10.0 - version: 1.10.0 + specifier: ^1.10.1 + version: 1.10.1 packages: @@ -379,8 +379,8 @@ packages: '@protobufjs/utf8@1.1.0': resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} - '@shikijs/core@1.10.0': - resolution: {integrity: sha512-BZcr6FCmPfP6TXaekvujZcnkFmJHZ/Yglu97r/9VjzVndQA56/F4WjUKtJRQUnK59Wi7p/UTAOekMfCJv7jnYg==} + '@shikijs/core@1.10.1': + resolution: {integrity: sha512-qdiJS5a/QGCff7VUFIqd0hDdWly9rDp8lhVmXVrS11aazX8LOTRLHAXkkEeONNsS43EcCd7gax9LLoOz4vlFQA==} '@sindresorhus/slugify@2.2.1': resolution: {integrity: sha512-MkngSCRZ8JdSOCHRaYd+D01XhvU3Hjy6MGl06zhOk614hp9EOAp5gIkBeQg7wtmxpitU6eAL4kdiRMcJa2dlrw==} @@ -2579,8 +2579,8 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} - shiki@1.10.0: - resolution: {integrity: sha512-YD2sXQ+TMD/F9BimV9Jn0wj35pqOvywvOG/3PB6hGHyGKlM7TJ9tyJ02jOb2kF8F0HfJwKNYrh3sW7jEcuRlXA==} + shiki@1.10.1: + resolution: {integrity: sha512-uafV7WCgN4YYrccH6yxpnps6k38sSTlFRrwc4jycWmhWxJIm9dPrk+XkY1hZ2t0I7jmacMNb15Lf2fspa/Y3lg==} side-channel@1.0.6: resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} @@ -3395,7 +3395,7 @@ snapshots: '@protobufjs/utf8@1.1.0': {} - '@shikijs/core@1.10.0': {} + '@shikijs/core@1.10.1': {} '@sindresorhus/slugify@2.2.1': dependencies: @@ -5881,9 +5881,9 @@ snapshots: shebang-regex@3.0.0: {} - shiki@1.10.0: + shiki@1.10.1: dependencies: - '@shikijs/core': 1.10.0 + '@shikijs/core': 1.10.1 side-channel@1.0.6: dependencies: From 3e42082a5c2be2d4c07ed4da537e73b3558cec21 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 3 Jul 2024 11:25:07 -0500 Subject: [PATCH 52/95] Bump firebase-tools from 13.12.0 to 13.13.0 (#5961) Bumps [firebase-tools](https://github.com/firebase/firebase-tools) from 13.12.0 to 13.13.0.
Release notes

Sourced from firebase-tools's releases.

v13.13.0

  • Fixes framework support for Nuxt ^3.12 by correctly calling loadNuxtConfig() (#7375)
  • Add a default for firebase init dataconnect:sdk (#7406)
  • Bump Firebase Data Connect emulator to v1.2.3, which adds support for @index on tables, @auth(level: USER_ANON/USER_EMAIL_VERIFIED), and key: {uid_expr: "auth.uid"}, and fixes some issues related to SDK generation (#7409)
Commits
  • 4106fd1 13.13.0
  • 6e799eb Bump FDC emulator to v1.2.3. (#7409)
  • ca5240d change developer connect oauth connection name to match Console (#7407)
  • 71f88b2 change deploy order (#7408)
  • 282eafd Set a reasonable default dataconnect generated SDK output path (#7406)
  • 5ddb86c fix the call to loadNuxtConfig by passing empty object (#7376)
  • 1c84379 [firebase-release] Removed change log and reset repo after 13.12.0 release
  • See full diff in compare view

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=firebase-tools&package-manager=npm_and_yarn&previous-version=13.12.0&new-version=13.13.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 9120bad76..21352c95e 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ "devDependencies": { "@11ty/eleventy": "3.0.0-alpha.14", "@11ty/eleventy-img": "5.0.0-beta.4", - "firebase-tools": "^13.12.0", + "firebase-tools": "^13.13.0", "hast-util-from-html": "^2.0.1", "hast-util-select": "^6.0.2", "hast-util-to-text": "^4.0.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 548c8e8fb..e6e71278e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -19,8 +19,8 @@ importers: specifier: 5.0.0-beta.4 version: 5.0.0-beta.4(encoding@0.1.13) firebase-tools: - specifier: ^13.12.0 - version: 13.12.0(encoding@0.1.13) + specifier: ^13.13.0 + version: 13.13.0(encoding@0.1.13) hast-util-from-html: specifier: ^2.0.1 version: 2.0.1 @@ -1243,8 +1243,8 @@ packages: resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} engines: {node: '>= 0.8'} - firebase-tools@13.12.0: - resolution: {integrity: sha512-hr3rqrWeeiNshVzmVSeQkCOSGUSKMxZs+ztairg4r6wteGUOVz56DrYsDMTUxjqH5zPxz5pxK9cvJi4M4ER13g==} + firebase-tools@13.13.0: + resolution: {integrity: sha512-AkeVW+wVg8Ys+VoaYHk7+5fzvLfS9CErot/CKxGDvMee6Dfv6FW+eoNgEO1HhK5MElvZ353Yekn/afQIO35Tfw==} engines: {node: '>=18.0.0 || >=20.0.0'} hasBin: true @@ -4294,7 +4294,7 @@ snapshots: transitivePeerDependencies: - supports-color - firebase-tools@13.12.0(encoding@0.1.13): + firebase-tools@13.13.0(encoding@0.1.13): dependencies: '@google-cloud/cloud-sql-connector': 1.3.0(encoding@0.1.13) '@google-cloud/pubsub': 4.4.0(encoding@0.1.13) From a9e443dcdbfbbb98626eed07d9dd7522b4bdfb9f Mon Sep 17 00:00:00 2001 From: Anthony Sansone Date: Wed, 3 Jul 2024 14:28:23 -0500 Subject: [PATCH 53/95] Updated part note (#5932) Fixes #2371 --------- Co-authored-by: Marya <111139605+MaryaBelanger@users.noreply.github.com> --- src/content/guides/libraries/create-packages.md | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/src/content/guides/libraries/create-packages.md b/src/content/guides/libraries/create-packages.md index f02461036..32b9af065 100644 --- a/src/content/guides/libraries/create-packages.md +++ b/src/content/guides/libraries/create-packages.md @@ -8,7 +8,6 @@ to share software such as libraries and tools. This page tells you how to create a standard shared [package](/tools/pub/glossary#package). - ## Creating a new package To create the initial directory and structure for a package, @@ -19,10 +18,6 @@ and the `package` template: $ dart create -t package ``` -{% comment %} -TODO: Add coverage of packages that contain tools. -{% endcomment %} - ## What makes a package The following diagram shows the simplest layout of a package: @@ -59,9 +54,11 @@ In most cases, each class should be in its own mini library, unless you have a situation where two classes are tightly coupled. :::note -You may have heard of the `part` directive, which allows -you to split a library into multiple Dart files. We recommend -that you avoid using `part` and create mini libraries instead. +You might know about the `part` directive. +This directive allows you to split a library into multiple Dart files. +Though part files can incorporate generated code into a library, +the Dart team doesn't recommend using them. +Instead, create small libraries. ::: Create a "main" library file directly under lib, From fb6a8c7b4fa8212488dc0e0813769168810fe57c Mon Sep 17 00:00:00 2001 From: Parker Lougheed Date: Wed, 3 Jul 2024 14:41:13 -0500 Subject: [PATCH 54/95] Add rudimentary freshness tool (#5959) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Added for determining freshness. Nothing happens in CI, this is just for running locally. Used like: ``` ./dash_site freshness ``` with output like: ``` ====== Files with missing lastVerified dates ====== ❓ missing-date web/libraries.md ❓ missing-date web/wasm.md ====== Files with stale lastVerified dates ====== 🟥 2021-05-13 resources/google-apis.md 🟧 2022-11-21 resources/coming-from/js-to-dart.md 🟧 2022-12-13 resources/coming-from/swift-to-dart.md 🟨 2023-02-23 guides/environment-declarations.md ``` You can optionally change the cutoff to include a file as stale with the `--cutoff` option which accepts an integer amount of days. It currently defaults to 270 days. The staleness is determined by the `lastVerified` option in each page's YAML frontmatter. `lastVerified` indicates when the page was last verified as up to date as of: ```yaml --- title: Document title lastVerified: 2024-04-21 --- ``` If a file shouldn't be checked for freshness, you can specify `skipFreshness: true` in the frontmatter: ```yaml --- title: Document title skipFreshness: true --- ``` --- src/content/404.html | 1 + src/content/brand.md | 1 + src/content/community/code-of-conduct.md | 1 + .../guides/environment-declarations.md | 1 + src/content/guides/language/evolution.md | 1 + src/content/guides/language/language-tour.md | 1 + src/content/guides/libraries/library-tour.md | 1 + src/content/language/concurrency.md | 1 + src/content/language/isolates.md | 1 + src/content/map.html | 1 + src/content/resources/breaking-changes.md | 1 + .../resources/coming-from/js-to-dart.md | 1 + .../resources/coming-from/swift-to-dart.md | 1 + src/content/resources/google-apis.md | 1 + src/content/robots.liquid | 1 + src/content/search-all.html | 1 + src/content/search.html | 1 + src/content/security.md | 1 + src/content/sitemap.liquid | 1 + src/content/terms.md | 1 + src/content/tools/diagnostic-messages.md | 1 + .../tools/linter-rules/individual-rules.md | 1 + tool/dart_site/lib/dart_site.dart | 2 + .../dart_site/lib/src/commands/freshness.dart | 255 ++++++++++++++++++ tool/dart_site/pubspec.yaml | 4 +- 25 files changed, 282 insertions(+), 1 deletion(-) create mode 100644 tool/dart_site/lib/src/commands/freshness.dart diff --git a/src/content/404.html b/src/content/404.html index 180b957e5..2928347f5 100644 --- a/src/content/404.html +++ b/src/content/404.html @@ -4,6 +4,7 @@ description: "dart.dev's 404 page." sitemap: false permalink: /404.html +skipFreshness: true ---
diff --git a/src/content/brand.md b/src/content/brand.md index ad79f7175..f41c6ab3f 100644 --- a/src/content/brand.md +++ b/src/content/brand.md @@ -2,6 +2,7 @@ title: Dart brand guidelines description: >- The guidelines governing the usage of the Dart trademarks and assets. +skipFreshness: true --- The "Dart" name and logo are trademarks owned by Google. diff --git a/src/content/community/code-of-conduct.md b/src/content/community/code-of-conduct.md index bb644a4b3..e085039d8 100644 --- a/src/content/community/code-of-conduct.md +++ b/src/content/community/code-of-conduct.md @@ -2,6 +2,7 @@ title: Code of conduct description: Be excellent to each other. toc: false +skipFreshness: true --- We expect Dart community members to act professionally and respectfully, and diff --git a/src/content/guides/environment-declarations.md b/src/content/guides/environment-declarations.md index 66b8d7130..ade10c748 100644 --- a/src/content/guides/environment-declarations.md +++ b/src/content/guides/environment-declarations.md @@ -3,6 +3,7 @@ title: Configuring apps with compilation environment declarations description: >- Learn about using compilation environment declarations to customize application behavior. +lastVerified: 2023-02-23 --- You can specify compilation environment declarations diff --git a/src/content/guides/language/evolution.md b/src/content/guides/language/evolution.md index de58cf4f5..1f2dece45 100644 --- a/src/content/guides/language/evolution.md +++ b/src/content/guides/language/evolution.md @@ -2,6 +2,7 @@ title: Dart language evolution short-title: Language evolution description: Notable changes and additions to the Dart programming language. +lastVerified: 2024-05-14 --- This page lists notable changes and additions to the diff --git a/src/content/guides/language/language-tour.md b/src/content/guides/language/language-tour.md index b125b052d..b329cf316 100644 --- a/src/content/guides/language/language-tour.md +++ b/src/content/guides/language/language-tour.md @@ -6,6 +6,7 @@ js: [{url: '/assets/js/language-tour-redirector.js'}] sitemap: false canonical: https://dart.dev/language noindex: true +skipFreshness: true --- :::warning diff --git a/src/content/guides/libraries/library-tour.md b/src/content/guides/libraries/library-tour.md index 029adcc48..b5156af42 100644 --- a/src/content/guides/libraries/library-tour.md +++ b/src/content/guides/libraries/library-tour.md @@ -6,6 +6,7 @@ js: [{url: '/assets/js/library-tour-redirector.js'}] sitemap: false canonical: https://dart.dev/libraries noindex: true +skipFreshness: true --- :::warning diff --git a/src/content/language/concurrency.md b/src/content/language/concurrency.md index c4bb3d59b..37062487c 100644 --- a/src/content/language/concurrency.md +++ b/src/content/language/concurrency.md @@ -3,6 +3,7 @@ title: Concurrency in Dart description: >- Use isolates to enable parallel code execution on multiple processor cores. short-title: Concurrency +lastVerified: 2023-12-14 prevpage: url: /language/modifier-reference title: Class modifiers reference diff --git a/src/content/language/isolates.md b/src/content/language/isolates.md index 503ed4e91..d116ecbe8 100644 --- a/src/content/language/isolates.md +++ b/src/content/language/isolates.md @@ -2,6 +2,7 @@ title: Isolates description: Information on writing isolates in Dart. short-title: Isolates +lastVerified: 2024-01-04 prevpage: url: /language/async title: Asynchronous support diff --git a/src/content/map.html b/src/content/map.html index 20497ead7..4922b1512 100644 --- a/src/content/map.html +++ b/src/content/map.html @@ -2,6 +2,7 @@ title: Document index description: Human-readable sitemap of all pages on dart.dev. toc: false +skipFreshness: true --- {% assign pages = collections.all | sort: 'data.title' %} diff --git a/src/content/resources/breaking-changes.md b/src/content/resources/breaking-changes.md index 14110681b..7fdc8d01e 100644 --- a/src/content/resources/breaking-changes.md +++ b/src/content/resources/breaking-changes.md @@ -1,6 +1,7 @@ --- title: Breaking changes and deprecations description: A list of breaking changes by release in Dart. +lastVerified: 2024-05-14 --- {% assign versioned = 'Language versioned' %} diff --git a/src/content/resources/coming-from/js-to-dart.md b/src/content/resources/coming-from/js-to-dart.md index b11646d1a..bbbc0d325 100644 --- a/src/content/resources/coming-from/js-to-dart.md +++ b/src/content/resources/coming-from/js-to-dart.md @@ -2,6 +2,7 @@ title: Learning Dart as a JavaScript developer description: Leverage your JavaScript knowledge when learning Dart. body_class: highlight-languages +lastVerified: 2022-11-21 --- This guide aims to leverage your JavaScript programming knowledge diff --git a/src/content/resources/coming-from/swift-to-dart.md b/src/content/resources/coming-from/swift-to-dart.md index 0ee1de50e..562f179e3 100644 --- a/src/content/resources/coming-from/swift-to-dart.md +++ b/src/content/resources/coming-from/swift-to-dart.md @@ -2,6 +2,7 @@ title: Learning Dart as a Swift developer description: Leverage your Swift knowledge when learning Dart. body_class: highlight-languages +lastVerified: 2022-12-13 --- This guide aims to leverage your Swift programming diff --git a/src/content/resources/google-apis.md b/src/content/resources/google-apis.md index 26fcca167..4335d5670 100644 --- a/src/content/resources/google-apis.md +++ b/src/content/resources/google-apis.md @@ -2,6 +2,7 @@ title: Using Google APIs short-title: Google APIs description: Your Dart apps can use Firebase and Google client APIs. +lastVerified: 2021-05-13 --- This page points to resources to help you use diff --git a/src/content/robots.liquid b/src/content/robots.liquid index 748f44bd7..3c61c1345 100644 --- a/src/content/robots.liquid +++ b/src/content/robots.liquid @@ -1,6 +1,7 @@ --- layout: none permalink: robots.txt +skipFreshness: true --- {%- if isProduction == true -%} diff --git a/src/content/search-all.html b/src/content/search-all.html index f94f4865c..e244702c6 100644 --- a/src/content/search-all.html +++ b/src/content/search-all.html @@ -4,6 +4,7 @@ Search dart.dev, api.dart.dev, the old www.dartlang.org site, flutter.dev, and more. toc: false +skipFreshness: true ---

diff --git a/src/content/search.html b/src/content/search.html index b062f7b9e..d954505c2 100644 --- a/src/content/search.html +++ b/src/content/search.html @@ -3,6 +3,7 @@ short-title: Search description: Search for documentation on dart.dev. toc: false +skipFreshness: true --- Want results from additional Dart-related sites, like api.dart.dev and flutter.dev? diff --git a/src/content/security.md b/src/content/security.md index c3551250b..4724d2f94 100644 --- a/src/content/security.md +++ b/src/content/security.md @@ -2,6 +2,7 @@ title: Security description: >- An overview of the Dart team's philosophy and processes for security. +skipFreshness: true --- The Dart team takes the security of Dart and the applications diff --git a/src/content/sitemap.liquid b/src/content/sitemap.liquid index 58251c0ff..41f0251f1 100644 --- a/src/content/sitemap.liquid +++ b/src/content/sitemap.liquid @@ -2,6 +2,7 @@ layout: none sitemap: false permalink: sitemap.xml +skipFreshness: true --- diff --git a/src/content/terms.md b/src/content/terms.md index c5ff8084b..8153c12d8 100644 --- a/src/content/terms.md +++ b/src/content/terms.md @@ -2,6 +2,7 @@ title: Terms of use description: The terms of use for dart.dev. toc: false +skipFreshness: true --- The Dart website (the "Website") is hosted by Google. diff --git a/src/content/tools/diagnostic-messages.md b/src/content/tools/diagnostic-messages.md index 0e1893916..8547641c2 100644 --- a/src/content/tools/diagnostic-messages.md +++ b/src/content/tools/diagnostic-messages.md @@ -2,6 +2,7 @@ title: Diagnostic messages description: Details for diagnostics produced by the Dart analyzer. body_class: highlight-diagnostics +skipFreshness: true --- {%- comment %} WARNING: Do NOT EDIT this file directly. It is autogenerated by the script in diff --git a/src/content/tools/linter-rules/individual-rules.md b/src/content/tools/linter-rules/individual-rules.md index a5d2f4a01..63b6257f0 100644 --- a/src/content/tools/linter-rules/individual-rules.md +++ b/src/content/tools/linter-rules/individual-rules.md @@ -10,6 +10,7 @@ eleventyComputed: permalink: "/tools/linter-rules/{{lint.name}}.html" title: "{{ lint.name }}" description: "Learn more about the {{ lint.name }} linter rule." +skipFreshness: true --- {{lint.description}} diff --git a/tool/dart_site/lib/dart_site.dart b/tool/dart_site/lib/dart_site.dart index efdda292e..fe292a638 100644 --- a/tool/dart_site/lib/dart_site.dart +++ b/tool/dart_site/lib/dart_site.dart @@ -11,6 +11,7 @@ import 'src/commands/check_link_references.dart'; import 'src/commands/check_links.dart'; import 'src/commands/check_site_variable.dart'; import 'src/commands/format_dart.dart'; +import 'src/commands/freshness.dart'; import 'src/commands/generate_effective_dart_toc.dart'; import 'src/commands/refresh_excerpts.dart'; import 'src/commands/serve.dart'; @@ -32,6 +33,7 @@ final class DartSiteCommandRunner extends CommandRunner { addCommand(VerifyFirebaseJsonCommand()); addCommand(RefreshExcerptsCommand()); addCommand(FormatDartCommand()); + addCommand(FreshnessCommand()); addCommand(GenerateEffectiveDartToc()); addCommand(AnalyzeDartCommand()); addCommand(TestDartCommand()); diff --git a/tool/dart_site/lib/src/commands/freshness.dart b/tool/dart_site/lib/src/commands/freshness.dart new file mode 100644 index 000000000..45506f3a4 --- /dev/null +++ b/tool/dart_site/lib/src/commands/freshness.dart @@ -0,0 +1,255 @@ +// Copyright (c) 2024, the Dart project authors. Please see the AUTHORS file +// for details. All rights reserved. Use of this source code is governed by a +// BSD-style license that can be found in the LICENSE file. + +import 'dart:io'; + +import 'package:args/command_runner.dart'; +import 'package:fbh_front_matter/fbh_front_matter.dart' as front_matter; +import 'package:intl/intl.dart'; +import 'package:path/path.dart' as path; + +import '../utils.dart'; + +final class FreshnessCommand extends Command { + static const String _includeMissingFlag = 'include-missing'; + static const String _cutoffDaysOption = 'cutoff'; + + FreshnessCommand() { + argParser.addFlag( + _includeMissingFlag, + defaultsTo: true, + help: 'Whether to output files that are missing lastVerified dates.', + ); + argParser.addOption( + _cutoffDaysOption, + help: 'The cut off amount of days since lastVerified date ' + 'to consider inclusion in output.', + ); + } + + @override + String get description => 'Check freshness of the docs on the website.'; + + @override + String get name => 'freshness'; + + @override + Future run() async => determineFreshness( + includeMissing: argResults.get(_includeMissingFlag, true), + cutOffDays: int.tryParse(argResults.get(_cutoffDaysOption, '')), + ); +} + +int determineFreshness({bool includeMissing = true, int? cutOffDays}) { + // Directories to check for content. + final directoryPathsToCheck = [ + path.join('src', 'content'), + ]; + + const extensionsToConsider = { + '.md', + '.html', + '.liquid', + }; + + final currentDate = DateTime.now(); + final results = FreshnessResults._(); + final initialCutoff = Duration(days: cutOffDays ?? _cutoffDays.first.days); + + for (final directory in directoryPathsToCheck.map(Directory.new)) { + final filesToCheck = directory + .listSync(recursive: true) + .whereType() + .where( + (file) => extensionsToConsider.contains(path.extension(file.path))) + .where( + (file) => !path.basenameWithoutExtension(file.path).startsWith('_')) + .where((file) => path.basenameWithoutExtension(file.path).isNotEmpty) + .toList(growable: false); + + for (final file in filesToCheck) { + final filePath = path.relative(file.path, from: directory.path); + try { + final fileContents = file.readAsStringSync(); + final frontMatter = front_matter.parse(fileContents); + if (frontMatter.data['skipFreshness'] case final skipFreshness? + when skipFreshness == true || skipFreshness == 'true') { + continue; + } + + if (frontMatter.data.containsKey('lastVerified')) { + final lastVerifiedRaw = frontMatter.data['lastVerified']; + if (lastVerifiedRaw case final String lastVerifiedString?) { + final lastVerified = DateTime.tryParse(lastVerifiedString); + if (lastVerified != null) { + final difference = currentDate.difference(lastVerified); + if (difference > initialCutoff) { + results._addStale(filePath, lastVerified: lastVerified); + } + } else { + results._addMisformatted(filePath, + misformattedDate: lastVerifiedString); + } + } else { + results._addMisformatted(filePath, + misformattedDate: '$lastVerifiedRaw'); + } + } else { + results._addMissingVerified(filePath); + } + } catch (e) { + results._addError(filePath, error: '$e'); + } + } + } + + final errorOutput = results.errorOutput(); + final staleOutput = results.staleOutput(includeMissing: includeMissing); + + print(errorOutput); + print(staleOutput); + + return 0; +} + +final List<({int days, String icon})> _cutoffDays = [ + (days: 270, icon: '🟨'), + (days: 540, icon: '🟧'), + (days: 810, icon: '🟥') +]; + +final DateFormat _dateFormat = DateFormat('y-MM-dd'); + +final class FreshnessResults { + FreshnessResults._(); + + final List _staleFiles = []; + final List _missingVerifiedDateFiles = []; + + final List _misformattedDateFiles = []; + final List _errorFiles = []; + + void _addStale(String path, {required DateTime lastVerified}) { + _staleFiles.add(StaleFile(path, lastVerified: lastVerified)); + } + + void _addMissingVerified(String path) { + _missingVerifiedDateFiles.add(MissingVerifiedDateFile(path)); + } + + void _addMisformatted(String path, {required String misformattedDate}) { + _misformattedDateFiles + .add(MisformattedDateFile(path, misformattedDate: misformattedDate)); + } + + void _addError(String path, {required String error}) { + _errorFiles.add(ErrorFile(path, error: error)); + } + + String staleOutput({bool includeMissing = true}) { + _staleFiles.sort((a, b) => a.lastVerified.compareTo(b.lastVerified)); + + final buffer = StringBuffer(); + + if (includeMissing && _missingVerifiedDateFiles.isNotEmpty) { + _missingVerifiedDateFiles.sortByPath(); + buffer.writeln('\n====== Files with missing lastVerified dates ======\n'); + for (final missingFile in _missingVerifiedDateFiles) { + buffer.write('❓ '); + buffer.write('missing-date '); + buffer.writeln(missingFile.path); + } + } + + if (_staleFiles.isNotEmpty) { + buffer.writeln('\n====== Files with stale lastVerified dates ======\n'); + final currentDate = DateTime.now(); + for (final staleFile in _staleFiles) { + final dayDifference = + currentDate.difference(staleFile.lastVerified).inDays; + var outputIcon = '🟩'; + for (final (:days, :icon) in _cutoffDays.reversed) { + if (dayDifference < days) continue; + + outputIcon = icon; + + if (dayDifference >= days) break; + } + + buffer.write(outputIcon); + buffer.write(' '); + buffer.write(_dateFormat.format(staleFile.lastVerified)); + buffer.write(' '); + buffer.writeln(staleFile.path); + } + } + + return buffer.toString(); + } + + String errorOutput() { + final buffer = StringBuffer(); + + if (_errorFiles.isNotEmpty) { + _errorFiles.sortByPath(); + buffer.writeln('\n====== Files with parsing or other errors ======\n'); + for (final errorFile in _errorFiles) { + buffer.write('‼️ '); + buffer.write('file-with-error'); + buffer.write(' '); + buffer.writeln(errorFile.path); + buffer.write(' '); + buffer.writeln(errorFile.error); + } + } + + if (_misformattedDateFiles.isNotEmpty) { + _misformattedDateFiles.sortByPath(); + buffer.writeln( + '\n====== Files with misformatted lastVerified dates ======\n'); + for (final misformattedFile in _misformattedDateFiles) { + buffer.write('❗ '); + buffer.write(misformattedFile.misformattedDate); + buffer.write(' '); + buffer.writeln(misformattedFile.path); + } + } + + return buffer.toString(); + } +} + +extension on List { + void sortByPath() { + sort((a, b) => a.path.compareTo(b.path)); + } +} + +sealed class FileOfInterest { + final String path; + + FileOfInterest(this.path); +} + +final class MisformattedDateFile extends FileOfInterest { + final String misformattedDate; + + MisformattedDateFile(super.path, {required this.misformattedDate}); +} + +final class StaleFile extends FileOfInterest { + final DateTime lastVerified; + + StaleFile(super.path, {required this.lastVerified}); +} + +final class MissingVerifiedDateFile extends FileOfInterest { + MissingVerifiedDateFile(super.path); +} + +final class ErrorFile extends FileOfInterest { + final String error; + + ErrorFile(super.path, {required this.error}); +} diff --git a/tool/dart_site/pubspec.yaml b/tool/dart_site/pubspec.yaml index dab22b023..256b53db4 100644 --- a/tool/dart_site/pubspec.yaml +++ b/tool/dart_site/pubspec.yaml @@ -9,12 +9,14 @@ dependencies: args: ^2.4.2 excerpter: path: ../../site-shared/packages/excerpter + fbh_front_matter: ^0.0.1 html_unescape: ^2.0.0 + intl: ^0.19.0 io: ^1.0.4 linkcheck: ^3.0.0 - yaml_variable_scanner: ^0.0.5 markdown: ^7.2.0 path: ^1.9.0 + yaml_variable_scanner: ^0.0.5 dev_dependencies: analysis_defaults: From e49050bf1d042261d1631c49272ccccc4c715f0f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 8 Jul 2024 08:43:03 -0500 Subject: [PATCH 55/95] Bump actions/upload-artifact from 4.3.3 to 4.3.4 (#5962) --- .github/workflows/scorecards-analysis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecards-analysis.yml b/.github/workflows/scorecards-analysis.yml index 3d0a74533..0a49b29ce 100644 --- a/.github/workflows/scorecards-analysis.yml +++ b/.github/workflows/scorecards-analysis.yml @@ -41,7 +41,7 @@ jobs: # Upload the results as artifacts (optional). - name: "Upload artifact" - uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 + uses: actions/upload-artifact@0b2256b8c012f0828dc542b3febcab082c67f72b with: name: SARIF file path: results.sarif From 57b5fedf64c1c3c8533c6453c38389588a387804 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 8 Jul 2024 14:01:22 -0500 Subject: [PATCH 56/95] Bump shiki from 1.10.1 to 1.10.3 (#5963) --- package.json | 2 +- pnpm-lock.yaml | 21 ++++++++++++--------- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index 21352c95e..c5d858383 100644 --- a/package.json +++ b/package.json @@ -37,6 +37,6 @@ "markdown-it-deflist": "^3.0.0", "markdown-it-table": "^4.1.1", "sass": "^1.77.6", - "shiki": "^1.10.1" + "shiki": "^1.10.3" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e6e71278e..771d0c819 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -58,8 +58,8 @@ importers: specifier: ^1.77.6 version: 1.77.6 shiki: - specifier: ^1.10.1 - version: 1.10.1 + specifier: ^1.10.3 + version: 1.10.3 packages: @@ -379,8 +379,8 @@ packages: '@protobufjs/utf8@1.1.0': resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} - '@shikijs/core@1.10.1': - resolution: {integrity: sha512-qdiJS5a/QGCff7VUFIqd0hDdWly9rDp8lhVmXVrS11aazX8LOTRLHAXkkEeONNsS43EcCd7gax9LLoOz4vlFQA==} + '@shikijs/core@1.10.3': + resolution: {integrity: sha512-D45PMaBaeDHxww+EkcDQtDAtzv00Gcsp72ukBtaLSmqRvh0WgGMq3Al0rl1QQBZfuneO75NXMIzEZGFitThWbg==} '@sindresorhus/slugify@2.2.1': resolution: {integrity: sha512-MkngSCRZ8JdSOCHRaYd+D01XhvU3Hjy6MGl06zhOk614hp9EOAp5gIkBeQg7wtmxpitU6eAL4kdiRMcJa2dlrw==} @@ -2579,8 +2579,8 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} - shiki@1.10.1: - resolution: {integrity: sha512-uafV7WCgN4YYrccH6yxpnps6k38sSTlFRrwc4jycWmhWxJIm9dPrk+XkY1hZ2t0I7jmacMNb15Lf2fspa/Y3lg==} + shiki@1.10.3: + resolution: {integrity: sha512-eneCLncGuvPdTutJuLyUGS8QNPAVFO5Trvld2wgEq1e002mwctAhJKeMGWtWVXOIEzmlcLRqcgPSorR6AVzOmQ==} side-channel@1.0.6: resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} @@ -3395,7 +3395,9 @@ snapshots: '@protobufjs/utf8@1.1.0': {} - '@shikijs/core@1.10.1': {} + '@shikijs/core@1.10.3': + dependencies: + '@types/hast': 3.0.4 '@sindresorhus/slugify@2.2.1': dependencies: @@ -5881,9 +5883,10 @@ snapshots: shebang-regex@3.0.0: {} - shiki@1.10.1: + shiki@1.10.3: dependencies: - '@shikijs/core': 1.10.1 + '@shikijs/core': 1.10.3 + '@types/hast': 3.0.4 side-channel@1.0.6: dependencies: From cf816ddbe88290809c8338301f1190564249d30e Mon Sep 17 00:00:00 2001 From: Anthony Sansone Date: Tue, 9 Jul 2024 16:01:26 -0500 Subject: [PATCH 57/95] Update VS Code page (#5958) Fixes #4057 --- src/content/tools/vs-code.md | 49 +++++++++++++++++++++++++++--------- 1 file changed, 37 insertions(+), 12 deletions(-) diff --git a/src/content/tools/vs-code.md b/src/content/tools/vs-code.md index e660b6385..f39f901b6 100644 --- a/src/content/tools/vs-code.md +++ b/src/content/tools/vs-code.md @@ -4,19 +4,44 @@ description: You can use VS Code to develop Dart apps. toc: false --- -With the Dart plugin, you can use [Visual Studio Code (VS Code)][vs-code] -to develop Dart apps. -The Flutter site has details on how to set up and use VS Code for Flutter apps. +To develop Dart apps, +install [Visual Studio Code][vs-code] (VS Code) +and add the [Dart extension][]. -Until this page has more information, -see the Flutter documentation for instructions that you can apply to -other kinds of Dart apps: +## Install VS Code -* [Set up an editor][setup] on the Flutter site has - instructions for installing the Flutter and Dart plugins into VS Code. -* [Visual Studio Code][vscode-flutter] on the Flutter site has - details on using VS Code to develop Flutter apps. +To install the latest version of [VS Code][], +follow Microsoft's instructions for the relevant platform: -[setup]: {{site.flutter-docs}}/get-started/editor?tab=vscode +- [Install on macOS][] +- [Install on Windows][] +- [Install on Linux][] + +[VS Code]: https://code.visualstudio.com/ +[Install on macOS]: https://code.visualstudio.com/docs/setup/mac +[Install on Windows]: https://code.visualstudio.com/docs/setup/windows +[Install on Linux]: https://code.visualstudio.com/docs/setup/linux + +## Install the VS Code Dart extension + +The Dart extension for VS Code supports Dart-specific development capabilities. +These include syntax highlighting, package resolution, hot reload, and others. + +1. Launch **VS Code**. + +1. Click **Extensions** in the **Activity Bar**. + You can also press + Control / Command + + Shift + X. + +1. In the Search box, type `Dart`. + The first extension returned should be the [Dart extension][]. + +1. Click **Install**. + +To review the full list of features, +consult the [extension documentation][Dart extension]. + +[Dart extension]: https://marketplace.visualstudio.com/items?itemName=Dart-Code.dart-code +[documentation]: https://dartcode.org/docs/ [vs-code]: https://code.visualstudio.com/ -[vscode-flutter]: {{site.flutter-docs}}/development/tools/vs-code From e74d1ef91fbd76717d7170c4144130185a563fe2 Mon Sep 17 00:00:00 2001 From: Parker Lougheed Date: Thu, 11 Jul 2024 12:44:58 -0500 Subject: [PATCH 58/95] Update deps and fix Liquid syntax error (#5969) --- package.json | 8 +- pnpm-lock.yaml | 537 +++++++++--------- site-shared | 2 +- .../get-dart/archive/_archives_table.html | 2 +- 4 files changed, 267 insertions(+), 282 deletions(-) diff --git a/package.json b/package.json index c5d858383..ffe87feb5 100644 --- a/package.json +++ b/package.json @@ -17,14 +17,14 @@ "node": ">=20.12.0", "pnpm": ">=9.1.0" }, - "packageManager": "pnpm@9.1.4", + "packageManager": "pnpm@9.5.0", "dependencies": { "bootstrap-scss": "^4.6.2" }, "devDependencies": { - "@11ty/eleventy": "3.0.0-alpha.14", + "@11ty/eleventy": "3.0.0-alpha.15", "@11ty/eleventy-img": "5.0.0-beta.4", - "firebase-tools": "^13.13.0", + "firebase-tools": "^13.13.1", "hast-util-from-html": "^2.0.1", "hast-util-select": "^6.0.2", "hast-util-to-text": "^4.0.2", @@ -36,7 +36,7 @@ "markdown-it-container": "^4.0.0", "markdown-it-deflist": "^3.0.0", "markdown-it-table": "^4.1.1", - "sass": "^1.77.6", + "sass": "^1.77.7", "shiki": "^1.10.3" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 771d0c819..32dc0ac7d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -13,14 +13,14 @@ importers: version: 4.6.2 devDependencies: '@11ty/eleventy': - specifier: 3.0.0-alpha.14 - version: 3.0.0-alpha.14 + specifier: 3.0.0-alpha.15 + version: 3.0.0-alpha.15 '@11ty/eleventy-img': specifier: 5.0.0-beta.4 version: 5.0.0-beta.4(encoding@0.1.13) firebase-tools: - specifier: ^13.13.0 - version: 13.13.0(encoding@0.1.13) + specifier: ^13.13.1 + version: 13.13.1(encoding@0.1.13) hast-util-from-html: specifier: ^2.0.1 version: 2.0.1 @@ -55,8 +55,8 @@ importers: specifier: ^4.1.1 version: 4.1.1 sass: - specifier: ^1.77.6 - version: 1.77.6 + specifier: ^1.77.7 + version: 1.77.7 shiki: specifier: ^1.10.3 version: 1.10.3 @@ -66,8 +66,8 @@ packages: '@11ty/dependency-tree-esm@1.0.0': resolution: {integrity: sha512-Z3KN1Fkv50UM/ZzTR3VBbyOY52HnmhIVCsAV1hn2UzFsGAjyF1Cw8uohhVtheDOSuBR7ZSeo1unwkz1HxFlUtQ==} - '@11ty/dependency-tree@3.0.0': - resolution: {integrity: sha512-+M+/KdAptDTK4USkI124CKoScvt2y0v1EoLBjS2rUi9zydjWgEC7+EJJ7Eu1DXuObe0JmY09LORjdBGKNPxgtg==} + '@11ty/dependency-tree@3.0.1': + resolution: {integrity: sha512-aZizxcL4Z/clm3KPRx8i9ohW9R2gLssXfUSy7qQmQRXb4CUOyvmqk2gKeJqRmXIfMi2bB9w03SgtN5v1YwqpiA==} '@11ty/eleventy-dev-server@2.0.1': resolution: {integrity: sha512-G92KbOx5vg2G3mlQQ1B0+L+Ni7pcn1yeMgQdnT8b2G20ZnbGNtuGYEPehbQV4Xqr2iAtoBfbihNskbLDoVtNOg==} @@ -86,16 +86,12 @@ packages: resolution: {integrity: sha512-zGyPp1g6bi+VC2I5ylwj4w29nivDmx4Uki5gWY6v3MT/1muK0JTtnc1KOMC7yUurv6YwtwdiLYyFK2eFyKv2wg==} engines: {node: '>=18'} - '@11ty/eleventy-utils@1.0.2': - resolution: {integrity: sha512-Zy2leMK1DQR6Q6ZPSagv7QpJaAz9uVbb+RmVetYFp3foMeQtOSZx7w2u5daRFmP+PeNq9vO9H4xtBToYFWZwHA==} - engines: {node: '>=12'} - '@11ty/eleventy-utils@1.0.3': resolution: {integrity: sha512-nULO91om7vQw4Y/UBjM8i7nJ1xl+/nyK4rImZ41lFxiY2d+XUz7ChAj1CDYFjrLZeu0utAYJTZ45LlcHTkUG4g==} engines: {node: '>=12'} - '@11ty/eleventy@3.0.0-alpha.14': - resolution: {integrity: sha512-SQGvi/0cSrgyjhTocO8nGpivQbZBXnFlVLp1M3H8xcdvpXYgCVHiEYvrY79TnDd9Nxvj5QtsQuCiselJb3X16g==} + '@11ty/eleventy@3.0.0-alpha.15': + resolution: {integrity: sha512-aE7we/HUi+iZ87bOgXx562hf9Oqz3TKLBYlJi3g98RxwzDwG1fhDf/JBPkK7FQRR27GZf7bRatpA4b8BnYuHww==} engines: {node: '>=18'} hasBin: true @@ -124,8 +120,8 @@ packages: '@emnapi/runtime@1.2.0': resolution: {integrity: sha512-bV21/9LQmcQeCPEg3BDFtvwL6cwiTMksYNWQQ4KOxCZikEGalWtenoZ0wCiukJINlGCIi2KXx01g4FoH/LxpzQ==} - '@google-cloud/cloud-sql-connector@1.3.0': - resolution: {integrity: sha512-PPJgqTliwkpdC3iMWgG/rjh17VGL/UEYLyvcMtfWCUtFQ+DQFr7UV8gxrDKM7H0d0yEjai32uBkd4fMuijPKjQ==} + '@google-cloud/cloud-sql-connector@1.3.3': + resolution: {integrity: sha512-Z/6haHca3bnaf1I2t/lmRgU5pCzGQTK6u9hMnD6a6sCL46QB4JRiBvRI5QMSPjnG8VYr1R7Wp1ZawvQJodEY6g==} engines: {node: '>=14'} '@google-cloud/paginator@5.0.2': @@ -144,16 +140,16 @@ packages: resolution: {integrity: sha512-Orxzlfb9c67A15cq2JQEyVc7wEsmFBmHjZWZYQMUyJ1qivXyMwdyNOs9odi79hze+2zqdTtu1E19IM/FtqZ10g==} engines: {node: '>=14'} - '@google-cloud/pubsub@4.4.0': - resolution: {integrity: sha512-1eiiAZUFhxcOqKPVwZarc3ghXuhoc3S7z5BgNrxqdirJ/MYr3IjQVTA7Lq2dAAsDuWms1LBN897rbnEGW9PpfA==} + '@google-cloud/pubsub@4.5.0': + resolution: {integrity: sha512-ptRLLDrAp1rStD1n3ZrG8FdAfpccqI6M5rCaceF6PL7DU3hqJbvQ2Y91G8MKG7c7zK+jiWv655Qf5r2IvjTzwA==} engines: {node: '>=14.0.0'} - '@googleapis/sqladmin@16.1.0': - resolution: {integrity: sha512-88Y0pvkuLfiEAPu5NwTi4tkbdWwzmKR9bdlM4p9MTRIQ+tYt6H39qDoXTRlnBp1eO2xnQ5NRXofZFNycK7D08w==} + '@googleapis/sqladmin@19.0.0': + resolution: {integrity: sha512-65zgEpQLhpTZqUic+pm4BbdDByN9NsHkphfCIwzpx3fccHPc6OuKsW0XexYCq9oTUtTC4QRjFisBDLV9fChRtg==} engines: {node: '>=12.0.0'} - '@grpc/grpc-js@1.10.8': - resolution: {integrity: sha512-vYVqYzHicDqyKB+NQhAc54I1QWCBLCrYG6unqOIcBTHx+7x8C9lcoLj3KVJXs2VB4lUbpWY+Kk9NipcbXYWmvg==} + '@grpc/grpc-js@1.10.11': + resolution: {integrity: sha512-3RaoxOqkHHN2c05bwtBNVJmOf/UwMam0rZYtdl7dsRpsvDwcNpv6LkGgzltQ7xVf822LzBoKEPRvf4D7+xeIDw==} engines: {node: '>=12.10.0'} '@grpc/proto-loader@0.7.13': @@ -293,8 +289,8 @@ packages: '@jridgewell/source-map@0.3.6': resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==} - '@jridgewell/sourcemap-codec@1.4.15': - resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + '@jridgewell/sourcemap-codec@1.5.0': + resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} '@jridgewell/trace-mapping@0.3.25': resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} @@ -418,8 +414,8 @@ packages: '@types/mdurl@2.0.0': resolution: {integrity: sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==} - '@types/node@20.12.13': - resolution: {integrity: sha512-gBGeanV41c1L171rR7wjbMiEpEI/l5XFQdLLfhr/REwpgDy/4U8y89+i8kRiLzDyZdOkXh+cRaTetUnCYutoXA==} + '@types/node@20.14.10': + resolution: {integrity: sha512-MdiXf+nDuMvY0gJKxyfZ7/6UFsETO7mGKF54MVD/ekJS6HdFtpZFBgrh6Pseu64XTb2MLyFPlbW6hj8HYRQNOQ==} '@types/request@2.48.12': resolution: {integrity: sha512-G3sY+NpsA9jnwm0ixhAFQSJ3Q9JkpLZpJbI3GMv0mIAT0y3mRabYeINzal5WOChIiaTEGQYlHOKgkaM9EisWHw==} @@ -448,12 +444,12 @@ packages: resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} engines: {node: '>= 0.6'} - acorn-walk@8.3.2: - resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} + acorn-walk@8.3.3: + resolution: {integrity: sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==} engines: {node: '>=0.4.0'} - acorn@8.11.3: - resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} + acorn@8.12.1: + resolution: {integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==} engines: {node: '>=0.4.0'} hasBin: true @@ -480,8 +476,8 @@ packages: ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} - ajv@8.14.0: - resolution: {integrity: sha512-oYs1UUtO97ZO2lJ4bwnWeQW8/zvOIQLGKcvPTsWmvc2SYgBb+upuNS5NxoLaMU4h8Ju3Nbj6Cq8mD2LQoqVKFA==} + ajv@8.16.0: + resolution: {integrity: sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw==} ansi-align@3.0.1: resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} @@ -936,15 +932,6 @@ packages: supports-color: optional: true - debug@4.3.4: - resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - debug@4.3.5: resolution: {integrity: sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==} engines: {node: '>=6.0'} @@ -1179,8 +1166,8 @@ packages: resolution: {integrity: sha512-V2hqwTtYRj0bj43K4MCtm0caD97YWkqOUHFMRCBW5L1x9IjyqOEc7Xa4oQjjiFbeFOSQzzwPV+BzXsQjSz08fw==} engines: {node: '>=6.0.0', npm: '>5.0.0'} - exegesis@4.1.2: - resolution: {integrity: sha512-D9ZFTFQ8O5ZRBLZ0HAHqo0Gc3+ts330WimHf0cF7OQZLQ3YqRVfjig5qGvEjheS68m+fMjJSR/wN/Qousg17Dw==} + exegesis@4.2.0: + resolution: {integrity: sha512-MOzRyqhvl+hTA4+W4p0saWRIPlu0grIx4ykjMEYgGLiqr/z9NCIlwSq2jF0gyxNjPZD3xyHgmkW6BSaLVUdctg==} engines: {node: '>=6.0.0', npm: '>5.0.0'} exponential-backoff@3.1.1: @@ -1243,8 +1230,8 @@ packages: resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} engines: {node: '>= 0.8'} - firebase-tools@13.13.0: - resolution: {integrity: sha512-AkeVW+wVg8Ys+VoaYHk7+5fzvLfS9CErot/CKxGDvMee6Dfv6FW+eoNgEO1HhK5MElvZ353Yekn/afQIO35Tfw==} + firebase-tools@13.13.1: + resolution: {integrity: sha512-FgNfpwJBJog/SMv9mDygbJ3b5ARQkPP1O5+zsjC+YhqzTdq5jHtCzM46OqiQWTjLsIPtaeESqXebUI5rfvq7Ng==} engines: {node: '>=18.0.0 || >=20.0.0'} hasBin: true @@ -1258,8 +1245,8 @@ packages: fn.name@1.1.0: resolution: {integrity: sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==} - foreground-child@3.1.1: - resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} + foreground-child@3.2.1: + resolution: {integrity: sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==} engines: {node: '>=14'} form-data@2.5.1: @@ -1309,8 +1296,8 @@ packages: resolution: {integrity: sha512-/gZffu4ykarLrCiP3Ygsa86UAo1E5vEVlvTrpkKywXSbP9Xhln3oSp9QSV57gEq3JFFpGJ4GZ+5zdEp3FcUh4w==} engines: {node: '>= 0.6.0'} - gaxios@6.6.0: - resolution: {integrity: sha512-bpOZVQV5gthH/jVCSuYuokRo2bTKOcuBiVWpjmTn6C5Agl5zclGfTljuGsQZxwwDBkli+YhZhP4TdlqTnhOezQ==} + gaxios@6.7.0: + resolution: {integrity: sha512-DSrkyMTfAnAm4ks9Go20QGOcXEyW/NmZhvTYBU2rb4afBB393WIMQPWPEDMl/k8xqiNN9HYq2zao3oWXsdl2Tg==} engines: {node: '>=14'} gcp-metadata@6.1.0: @@ -1343,9 +1330,8 @@ packages: glob-slasher@1.0.1: resolution: {integrity: sha512-5MUzqFiycIKLMD1B0dYOE4hGgLLUZUNGGYO4BExdwT32wUwW3DBOE7lMQars7vB1q43Fb3Tyt+HmgLKsJhDYdg==} - glob@10.4.1: - resolution: {integrity: sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==} - engines: {node: '>=16 || 14 >=14.18'} + glob@10.4.5: + resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} hasBin: true glob@7.2.3: @@ -1356,12 +1342,12 @@ packages: resolution: {integrity: sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==} engines: {node: '>=10'} - google-auth-library@9.10.0: - resolution: {integrity: sha512-ol+oSa5NbcGdDqA+gZ3G3mev59OHBZksBTxY/tYwjtcp1H/scAFwJfSQU9/1RALoyZ7FslNbke8j4i3ipwlyuQ==} + google-auth-library@9.11.0: + resolution: {integrity: sha512-epX3ww/mNnhl6tL45EQ/oixsY8JLEgUFoT4A5E/5iAR4esld9Kqv6IJGk7EmGuOgDvaarwF95hU2+v7Irql9lw==} engines: {node: '>=14'} - google-gax@4.3.5: - resolution: {integrity: sha512-zXRSGgHp33ottCQMdYlKEFX/MhWkzKVX5P3Vpmx+DW6rtseLILzp3V0YV5Rh4oQzzkM0BH9+nJIyX01EUgmd3g==} + google-gax@4.3.8: + resolution: {integrity: sha512-SKAQKtvdjtNW3PMOhmKEqpQP+2C5ZqNKfwWxy70efpSwxvRYuAcgMJs6aRHTBPJjz3SO6ZbiXwM6WIuGYFZ7LQ==} engines: {node: '>=14'} googleapis-common@7.2.0: @@ -1473,8 +1459,8 @@ packages: resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} engines: {node: '>= 6'} - https-proxy-agent@7.0.4: - resolution: {integrity: sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==} + https-proxy-agent@7.0.5: + resolution: {integrity: sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==} engines: {node: '>= 14'} iconv-lite@0.4.24: @@ -1662,9 +1648,8 @@ packages: isomorphic-fetch@3.0.0: resolution: {integrity: sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA==} - jackspeak@3.1.2: - resolution: {integrity: sha512-kWmLKn2tRtfYMF/BakihVVRzBKOxz4gJMiL2Rj91WnAB5TPZumSH99R/Yf1qE1u4uRimvCSJfm6hnxohXeEXjQ==} - engines: {node: '>=14'} + jackspeak@3.4.3: + resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} jju@1.4.0: resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==} @@ -1746,17 +1731,17 @@ packages: resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} engines: {node: '>=6'} - libsodium-wrappers@0.7.13: - resolution: {integrity: sha512-kasvDsEi/r1fMzKouIDv7B8I6vNmknXwGiYodErGuESoFTohGSKZplFtVxZqHaoQ217AynyIFgnOVRitpHs0Qw==} + libsodium-wrappers@0.7.14: + resolution: {integrity: sha512-300TtsePizhJZ7HjLmWr6hLHAgJUxIGhapSw+EwfCtDuWaEmEdGXSQv6j6qFw0bs9l4vS2NH9BtOHfXAq6h5kQ==} - libsodium@0.7.13: - resolution: {integrity: sha512-mK8ju0fnrKXXfleL53vtp9xiPq5hKM0zbDQtcxQIsSmxNgSxqCj6R7Hl9PkrNe2j29T4yoDaF7DJLK9/i5iWUw==} + libsodium@0.7.14: + resolution: {integrity: sha512-/pOd7eO6oZrfORquRTC4284OUJFcMi8F3Vnc9xtRBT0teLfOUxWIItaBFF3odYjZ7nlJNwnLdUVEUFHxVyX/Sw==} linkify-it@5.0.0: resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==} - liquidjs@10.14.0: - resolution: {integrity: sha512-Zjg35Yo3L/2aNy7QkICha/ulbXRtZS7oRenWyDDfw+J34Xy3fOKWWHxASC9r0gbxN661nrwmG/kOIKHfYcVk4Q==} + liquidjs@10.15.0: + resolution: {integrity: sha512-u5lYWhW8ioT+O3FdCcp5U+hiPEGNO4xASCFlCHA+k5rMTJwDIa2c2KF111ZDKc2xGM7LXPvMoNRIrBfbLNpRBg==} engines: {node: '>=14'} hasBin: true @@ -1806,8 +1791,8 @@ packages: resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} engines: {node: '>=10'} - logform@2.6.0: - resolution: {integrity: sha512-1ulHeNPp6k/LD8H91o7VYFBng5i1BDE7HoKxVbZiGFidS1Rj65qcywLxX+pVfAPoQJEjRdvKcusKwOupHCVOVQ==} + logform@2.6.1: + resolution: {integrity: sha512-CdaO738xRapbKIMVn2m4F6KTj4j7ooJ8POVnebSgKo3KBz5axNXRAL7ZdRjIV6NOr2Uf4vjtRkxrFETOioCqSA==} engines: {node: '>= 12.0.0'} long@5.2.3: @@ -1816,9 +1801,8 @@ packages: lower-case@2.0.2: resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} - lru-cache@10.2.2: - resolution: {integrity: sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==} - engines: {node: 14 || >=16.14} + lru-cache@10.4.3: + resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} lru-cache@7.18.3: resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} @@ -1937,8 +1921,8 @@ packages: resolution: {integrity: sha512-sauLxniAmvnhhRjFwPNnJKaPFYyddAgbYdeUpHULtCT/GhzdCx/MDNy+Y40lBxTQUrMzDE8e0S43Z5uqfO0REg==} engines: {node: '>=10'} - minimatch@9.0.4: - resolution: {integrity: sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==} + minimatch@9.0.5: + resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} engines: {node: '>=16 || 14 >=14.17'} minimist@1.2.8: @@ -1996,8 +1980,8 @@ packages: resolution: {integrity: sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ==} engines: {node: '>= 0.8.0'} - morphdom@2.7.2: - resolution: {integrity: sha512-Dqb/lHFyTi7SZpY0a5R4I/0Edo+iPMbaUexsHHsLAByyixCDiLHPHyVoKVmrpL0THcT7V9Cgev9y21TQYq6wQg==} + morphdom@2.7.3: + resolution: {integrity: sha512-rvGK92GxSuPEZLY8D/JH07cG3BxyA+/F0Bxg32OoGAEFFhGWA3OqVpqPZlOgZTCR52clXrmz+z2pYSJ6gOig1w==} ms@2.0.0: resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} @@ -2015,8 +1999,8 @@ packages: mute-stream@0.0.8: resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} - nan@2.19.0: - resolution: {integrity: sha512-nO1xXxfh/RWNxfd/XPfbIfFk5vgLsAxUR9y5O0cHMJu/AW9U95JLXqthYHjEp+8gQ5p96K9jUp8nbVOxCdRbtw==} + nan@2.20.0: + resolution: {integrity: sha512-bk3gXBZDGILuuo/6sKtr0DQmSThYHLtNCdSdXk9YkxD/jK6X2vmCyyXBBxyqZ4XcnzTyYEAThfX3DCEnLf6igw==} nearley@2.20.1: resolution: {integrity: sha512-+Mc8UaAebFzgV+KpI5n7DasuuQCHA89dmwm7JXw3TV43ukfNQ9DnBH3Mdb2g/I4Fdxc26pwimBWvjIw0UAILSQ==} @@ -2048,8 +2032,8 @@ packages: encoding: optional: true - node-gyp@10.1.0: - resolution: {integrity: sha512-B4J5M1cABxPc5PwfjhbV5hoy2DP9p8lFXASnEN6hugXOa61416tnTZ29x9sSwAd0o99XNIcpvDDy1swAExsVKA==} + node-gyp@10.2.0: + resolution: {integrity: sha512-sp3FonBAaFe4aYTcFdZUn2NYkbP7xroPGYvQmP4Nl5PxamznItBnNCgjrVTKrEfQynInMsJvZrdmqUnysCJ8rw==} engines: {node: ^16.14.0 || >=18.0.0} hasBin: true @@ -2089,8 +2073,9 @@ packages: resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} engines: {node: '>= 6'} - object-inspect@1.13.1: - resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} + object-inspect@1.13.2: + resolution: {integrity: sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==} + engines: {node: '>= 0.4'} object-keys@1.1.1: resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} @@ -2165,14 +2150,17 @@ packages: resolution: {integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==} engines: {node: '>=8'} - pac-proxy-agent@7.0.1: - resolution: {integrity: sha512-ASV8yU4LLKBAjqIPMbrgtaKIvxQri/yh2OpI+S6hVa9JRkUI3Y3NPFbfngDtY7oFtSMD3w31Xns89mDa3Feo5A==} + pac-proxy-agent@7.0.2: + resolution: {integrity: sha512-BFi3vZnO9X5Qt6NRz7ZOaPja3ic0PhlsmCRYLOpN11+mWBCR6XJDqW5RF3j8jm4WGGQZtBA+bTfxYzeKW73eHg==} engines: {node: '>= 14'} pac-resolver@7.0.1: resolution: {integrity: sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==} engines: {node: '>= 14'} + package-json-from-dist@1.0.0: + resolution: {integrity: sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==} + param-case@3.0.4: resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==} @@ -2233,8 +2221,8 @@ packages: resolution: {integrity: sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==} engines: {node: '>=4'} - pg@8.11.5: - resolution: {integrity: sha512-jqgNHSKL5cbDjFlHyYsCXmQDrfIX/3RsNwYqpd4N0Kt8niLuNoRNH+aazv6cOd43gPh9Y4DjQCtb+X0MH0Hvnw==} + pg@8.12.0: + resolution: {integrity: sha512-A+LHUSnwnxrnL/tZ+OLfqR1SxLN3c/pgDztZ47Rpbsd4jUytsTtwQo/TLPRzPJMp/1pbhYVhH9cuSZLAajNfjQ==} engines: {node: '>= 8.0.0'} peerDependencies: pg-native: '>=3.0.1' @@ -2291,10 +2279,6 @@ packages: resolution: {integrity: sha512-JcEmHlyLK/o0uGAlj65vgg+7LIms0xKXe60lcDOTU7oVX/3LuEuLwrQpW3VJ7de5TaFKiW4kWkaIpJL42FEgxQ==} engines: {node: '>=12.0.0'} - proc-log@3.0.0: - resolution: {integrity: sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - proc-log@4.2.0: resolution: {integrity: sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -2330,8 +2314,8 @@ packages: resolution: {integrity: sha512-SAzp/O4Yh02jGdRc+uIrGoe87dkN/XtwxfZ4ZyafJHymd79ozp5VG5nyZ7ygqPM5+cpLDjjGnYFUkngonyDPOQ==} engines: {node: '>=14.0.0'} - protobufjs@7.3.0: - resolution: {integrity: sha512-YWD03n3shzV9ImZRX3ccbjqLxj7NokGN0V/ESiBV5xWqrommYHYiihuIyavq03pWSGqlyvYUFmfoMKd+1rPA/g==} + protobufjs@7.3.2: + resolution: {integrity: sha512-RXyHaACeqXeqAKGLDl68rQKbmObRsTIn4TYVUUug1KfS47YWCo5MacGITEryugIgZqORCvJWEk4l449POg5Txg==} engines: {node: '>=12.0.0'} proxy-addr@2.0.7: @@ -2370,8 +2354,8 @@ packages: resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} engines: {node: '>=0.6'} - qs@6.12.1: - resolution: {integrity: sha512-zWmv4RSuB9r2mYQw3zxQuHWeU+42aKi1wWig/j4ele4ygELZ7PEO6MM7rim9oAQH2A5MWfsAVf/jPvTPgCbvUQ==} + qs@6.12.3: + resolution: {integrity: sha512-AWJm14H1vVaO/iNZ4/hO+HyaTehuy9nRqVdkTqlJt0HWvBiBIEXFmb4C0DGeYo3Xes9rrEW+TxHsaigCbN5ICQ==} engines: {node: '>=0.6'} queue-microtask@1.2.3: @@ -2402,8 +2386,8 @@ packages: resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} hasBin: true - re2@1.20.12: - resolution: {integrity: sha512-pfCHx+j0agxahWorhQZ2hyaZh/LH2e/vpoAilggksI3fFt+62oF0AY7UP7uvmpWleYLy6UoBTz4r/Kif0LfB/g==} + re2@1.21.3: + resolution: {integrity: sha512-GI+KoGkHT4kxTaX+9p0FgNB1XUnCndO9slG5qqeEoZ7kbf6Dk6ohQVpmwKVeSp7LPLn+g6Q3BaCopz4oHuBDuQ==} readable-stream@2.3.8: resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} @@ -2483,9 +2467,9 @@ packages: deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true - rimraf@5.0.7: - resolution: {integrity: sha512-nV6YcJo5wbLW77m+8KjH8aB/7/rxQy9SZ0HY5shnwULfS+9nmTtVXAJET5NdZmCzA4fPI/Hm1wo/Po/4mopOdg==} - engines: {node: '>=14.18'} + rimraf@5.0.9: + resolution: {integrity: sha512-3i7b8OcswU6CpU8Ej89quJD4O98id7TtVM5U4Mybh84zQXdrFmDLouWBEEaD/QfO3gDDfH+AGFCGsR7kngzQnA==} + engines: {node: 14 >=14.20 || 16 >=16.20 || >=18} hasBin: true router@1.3.8: @@ -2515,8 +2499,8 @@ packages: safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - sass@1.77.6: - resolution: {integrity: sha512-ByXE1oLD79GVq9Ht1PeHWCPMPB8XHpBuz1r85oByKHjZY6qV6rWnQovQzXJXuQ/XyE1Oj3iPk3lo28uzaRA2/Q==} + sass@1.77.7: + resolution: {integrity: sha512-9ywH75cO+rLjbrZ6en3Gp8qAMwPGBapFtlsMJoDTkcMU/bSe5a6cjKVUn5Jr4Gzg5GbP3HE8cm+02pLCgcoMow==} engines: {node: '>=14.0.0'} hasBin: true @@ -2608,8 +2592,8 @@ packages: resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} - socks-proxy-agent@8.0.3: - resolution: {integrity: sha512-VNegTZKhuGq5vSD6XNKlbqWhyt/40CgoEw8XxD6dhnm8Jq9IEa3nIa4HwnM8XOqU0CdB0BwWVXusqiFXfHB3+A==} + socks-proxy-agent@8.0.4: + resolution: {integrity: sha512-GNAq/eg8Udq2x0eNiFkr9gRg5bA7PXEWagQdeRX4cPSG+X/8V38v637gim9bjFptMk1QWsCTr0ttrJEiXbNnRw==} engines: {node: '>= 14'} socks@2.8.3: @@ -2643,8 +2627,8 @@ packages: sprintf-js@1.1.3: resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==} - sql-formatter@15.3.1: - resolution: {integrity: sha512-L/dqan+Hrt0PpPdCbHcI9bdfOvqaQZR7v5c5SWMJ3bUGQSezK09Mm9q2I3B4iObjaq7FyoldIM+fDSmfzGRXCA==} + sql-formatter@15.3.2: + resolution: {integrity: sha512-pNxSMf5DtwhpZ8gUcOGCGZIWtCcyAUx9oLgAtlO4ag7DvlfnETL0BGqXaISc84pNrXvTWmt8Wal1FWKxdTsL3Q==} hasBin: true ssri@10.0.6: @@ -2737,13 +2721,13 @@ packages: resolution: {integrity: sha512-resvxdc6Mgb7YEThw6G6bExlXKkv6+YbuzGg9xuXxSgxJF7Ozs+o8Y9+2R3sArdWdW8nOokoQb1yrpFB0pQK2g==} engines: {node: '>=14'} - terser@5.31.0: - resolution: {integrity: sha512-Q1JFAoUKE5IMfI4Z/lkE/E6+SwgzO+x4tq4v1AyBLRj8VSYvRO6A/rQrPg1yud4g0En9EKI1TvFRF2tQFcoUkg==} + terser@5.31.2: + resolution: {integrity: sha512-LGyRZVFm/QElZHy/CPr/O4eNZOZIzsrQ92y4v9UJe/pFJjypje2yI3C2FmPtvUEnhadlSbmG2nXtdcjHOjCfxw==} engines: {node: '>=10'} hasBin: true - text-decoder@1.1.0: - resolution: {integrity: sha512-TmLJNj6UgX8xcUZo4UDStGQtDiTzF7BzWlzn9g7UWrjkpHr5uJTK1ld16wZ3LXb2vb6jH8qU89dW5whuMdXYdw==} + text-decoder@1.1.1: + resolution: {integrity: sha512-8zll7REEv4GDD3x4/0pW+ppIxSNs7H1J10IKFZsuOMscumCdM2a+toDGLPA3T+1+fLBql4zbt5z83GEQGGV5VA==} text-hex@1.0.0: resolution: {integrity: sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==} @@ -2777,8 +2761,8 @@ packages: resolution: {integrity: sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==} engines: {node: '>= 14.0.0'} - tslib@2.6.2: - resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} + tslib@2.6.3: + resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==} type-fest@0.20.2: resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} @@ -2863,6 +2847,10 @@ packages: resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} engines: {node: '>= 0.4.0'} + uuid@10.0.0: + resolution: {integrity: sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==} + hasBin: true + uuid@8.3.2: resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} hasBin: true @@ -2920,12 +2908,12 @@ packages: resolution: {integrity: sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==} engines: {node: '>=8'} - winston-transport@4.7.0: - resolution: {integrity: sha512-ajBj65K5I7denzer2IYW6+2bNIVqLGDHqDw3Ow8Ohh+vdW+rv4MZ6eiDvHoKhfJFZ2auyN8byXieDDJ96ViONg==} + winston-transport@4.7.1: + resolution: {integrity: sha512-wQCXXVgfv/wUPOfb2x0ruxzwkcZfxcktz6JIMUaPLmcNhO4bZTwA/WtDWK74xV3F2dKu8YadrFv0qhwYjVEwhA==} engines: {node: '>= 12.0.0'} - winston@3.13.0: - resolution: {integrity: sha512-rwidmA1w3SE4j0E5MuIufFhyJPBDG7Nu71RkZor1p2+qHvJSZ9GYDA81AyleQcZbh/+V6HjeBdfnTZJm9rSeQQ==} + winston@3.13.1: + resolution: {integrity: sha512-SvZit7VFNvXRzbqGHsv5KSmgbEYR5EiQfDAL9gxYkRqa934Hnk++zze0wANKtMHcy/gI4W/3xmSDwlhf865WGw==} engines: {node: '>= 12.0.0'} wrap-ansi@6.2.0: @@ -2946,8 +2934,8 @@ packages: write-file-atomic@3.0.3: resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==} - ws@7.5.9: - resolution: {integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==} + ws@7.5.10: + resolution: {integrity: sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==} engines: {node: '>=8.3.0'} peerDependencies: bufferutil: ^4.0.1 @@ -2958,8 +2946,8 @@ packages: utf-8-validate: optional: true - ws@8.17.0: - resolution: {integrity: sha512-uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow==} + ws@8.18.0: + resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==} engines: {node: '>=10.0.0'} peerDependencies: bufferutil: ^4.0.1 @@ -2985,8 +2973,8 @@ packages: yallist@4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - yaml@2.4.2: - resolution: {integrity: sha512-B3VqDZ+JAg1nZpaEmWtTXUlBneoGx6CPM9b0TENK6aoSu5t73dItudwdgmi6tHlIZZId4dZ9skcAQ2UbcyAeVA==} + yaml@2.4.5: + resolution: {integrity: sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg==} engines: {node: '>= 14'} hasBin: true @@ -3014,11 +3002,11 @@ snapshots: '@11ty/dependency-tree-esm@1.0.0': dependencies: '@11ty/eleventy-utils': 1.0.3 - acorn: 8.11.3 + acorn: 8.12.1 dependency-graph: 0.11.0 normalize-path: 3.0.0 - '@11ty/dependency-tree@3.0.0': + '@11ty/dependency-tree@3.0.1': dependencies: '@11ty/eleventy-utils': 1.0.3 @@ -3031,12 +3019,12 @@ snapshots: finalhandler: 1.2.0 mime: 3.0.0 minimist: 1.2.8 - morphdom: 2.7.2 + morphdom: 2.7.3 please-upgrade-node: 3.2.0 send: 0.18.0 ssri: 10.0.6 urlpattern-polyfill: 10.0.0 - ws: 8.17.0 + ws: 8.18.0 transitivePeerDependencies: - bufferutil - supports-color @@ -3044,7 +3032,7 @@ snapshots: '@11ty/eleventy-fetch@4.0.1(encoding@0.1.13)': dependencies: - debug: 4.3.4 + debug: 4.3.5 flat-cache: 3.2.0 node-fetch: 2.7.0(encoding@0.1.13) p-queue: 6.6.2 @@ -3055,9 +3043,9 @@ snapshots: '@11ty/eleventy-img@5.0.0-beta.4(encoding@0.1.13)': dependencies: '@11ty/eleventy-fetch': 4.0.1(encoding@0.1.13) - '@11ty/eleventy-utils': 1.0.2 + '@11ty/eleventy-utils': 1.0.3 brotli-size: 4.0.0 - debug: 4.3.4 + debug: 4.3.5 entities: 4.5.0 image-size: 1.1.1 p-queue: 6.6.2 @@ -3072,17 +3060,13 @@ snapshots: transitivePeerDependencies: - supports-color - '@11ty/eleventy-utils@1.0.2': - dependencies: - normalize-path: 3.0.0 - '@11ty/eleventy-utils@1.0.3': dependencies: normalize-path: 3.0.0 - '@11ty/eleventy@3.0.0-alpha.14': + '@11ty/eleventy@3.0.0-alpha.15': dependencies: - '@11ty/dependency-tree': 3.0.0 + '@11ty/dependency-tree': 3.0.1 '@11ty/dependency-tree-esm': 1.0.0 '@11ty/eleventy-dev-server': 2.0.1 '@11ty/eleventy-plugin-bundle': 2.0.2 @@ -3101,8 +3085,9 @@ snapshots: gray-matter: 4.0.3 is-glob: 4.0.3 iso-639-1: 3.1.2 + js-yaml: 4.1.0 kleur: 4.1.5 - liquidjs: 10.14.0 + liquidjs: 10.15.0 luxon: 3.4.4 markdown-it: 14.1.0 micromatch: 4.0.7 @@ -3152,14 +3137,14 @@ snapshots: '@emnapi/runtime@1.2.0': dependencies: - tslib: 2.6.2 + tslib: 2.6.3 optional: true - '@google-cloud/cloud-sql-connector@1.3.0(encoding@0.1.13)': + '@google-cloud/cloud-sql-connector@1.3.3(encoding@0.1.13)': dependencies: - '@googleapis/sqladmin': 16.1.0(encoding@0.1.13) - gaxios: 6.6.0(encoding@0.1.13) - google-auth-library: 9.10.0(encoding@0.1.13) + '@googleapis/sqladmin': 19.0.0(encoding@0.1.13) + gaxios: 6.7.0(encoding@0.1.13) + google-auth-library: 9.11.0(encoding@0.1.13) p-throttle: 5.1.0 transitivePeerDependencies: - encoding @@ -3176,7 +3161,7 @@ snapshots: '@google-cloud/promisify@4.0.0': {} - '@google-cloud/pubsub@4.4.0(encoding@0.1.13)': + '@google-cloud/pubsub@4.5.0(encoding@0.1.13)': dependencies: '@google-cloud/paginator': 5.0.2 '@google-cloud/precise-date': 4.0.0 @@ -3186,8 +3171,8 @@ snapshots: '@opentelemetry/semantic-conventions': 1.21.0 arrify: 2.0.1 extend: 3.0.2 - google-auth-library: 9.10.0(encoding@0.1.13) - google-gax: 4.3.5(encoding@0.1.13) + google-auth-library: 9.11.0(encoding@0.1.13) + google-gax: 4.3.8(encoding@0.1.13) heap-js: 2.5.0 is-stream-ended: 0.1.4 lodash.snakecase: 4.1.1 @@ -3196,14 +3181,14 @@ snapshots: - encoding - supports-color - '@googleapis/sqladmin@16.1.0(encoding@0.1.13)': + '@googleapis/sqladmin@19.0.0(encoding@0.1.13)': dependencies: googleapis-common: 7.2.0(encoding@0.1.13) transitivePeerDependencies: - encoding - supports-color - '@grpc/grpc-js@1.10.8': + '@grpc/grpc-js@1.10.11': dependencies: '@grpc/proto-loader': 0.7.13 '@js-sdsl/ordered-map': 4.4.2 @@ -3212,7 +3197,7 @@ snapshots: dependencies: lodash.camelcase: 4.3.0 long: 5.2.3 - protobufjs: 7.3.0 + protobufjs: 7.3.2 yargs: 17.7.2 '@img/sharp-darwin-arm64@0.33.4': @@ -3302,7 +3287,7 @@ snapshots: '@jridgewell/gen-mapping@0.3.5': dependencies: '@jridgewell/set-array': 1.2.1 - '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/sourcemap-codec': 1.5.0 '@jridgewell/trace-mapping': 0.3.25 '@jridgewell/resolve-uri@3.1.2': {} @@ -3314,12 +3299,12 @@ snapshots: '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 - '@jridgewell/sourcemap-codec@1.4.15': {} + '@jridgewell/sourcemap-codec@1.5.0': {} '@jridgewell/trace-mapping@0.3.25': dependencies: '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/sourcemap-codec': 1.5.0 '@js-sdsl/ordered-map@4.4.2': {} @@ -3341,9 +3326,9 @@ snapshots: dependencies: agent-base: 7.1.1 http-proxy-agent: 7.0.2 - https-proxy-agent: 7.0.4 - lru-cache: 10.2.2 - socks-proxy-agent: 8.0.3 + https-proxy-agent: 7.0.5 + lru-cache: 10.4.3 + socks-proxy-agent: 8.0.4 transitivePeerDependencies: - supports-color optional: true @@ -3431,14 +3416,14 @@ snapshots: '@types/mdurl@2.0.0': {} - '@types/node@20.12.13': + '@types/node@20.14.10': dependencies: undici-types: 5.26.5 '@types/request@2.48.12': dependencies: '@types/caseless': 0.12.5 - '@types/node': 20.12.13 + '@types/node': 20.14.10 '@types/tough-cookie': 4.0.5 form-data: 2.5.1 @@ -3462,9 +3447,11 @@ snapshots: mime-types: 2.1.35 negotiator: 0.6.3 - acorn-walk@8.3.2: {} + acorn-walk@8.3.3: + dependencies: + acorn: 8.12.1 - acorn@8.11.3: {} + acorn@8.12.1: {} agent-base@6.0.2: dependencies: @@ -3484,9 +3471,9 @@ snapshots: indent-string: 4.0.0 optional: true - ajv-formats@2.1.1(ajv@8.14.0): + ajv-formats@2.1.1(ajv@8.16.0): optionalDependencies: - ajv: 8.14.0 + ajv: 8.16.0 ajv@6.12.6: dependencies: @@ -3495,7 +3482,7 @@ snapshots: json-schema-traverse: 0.4.1 uri-js: 4.4.1 - ajv@8.14.0: + ajv@8.16.0: dependencies: fast-deep-equal: 3.1.3 json-schema-traverse: 1.0.0 @@ -3531,7 +3518,7 @@ snapshots: archiver-utils@5.0.2: dependencies: - glob: 10.4.1 + glob: 10.4.5 graceful-fs: 4.2.11 is-stream: 2.0.1 lazystream: 1.0.1 @@ -3581,7 +3568,7 @@ snapshots: ast-types@0.13.4: dependencies: - tslib: 2.6.2 + tslib: 2.6.3 async-lock@1.3.2: {} @@ -3706,8 +3693,8 @@ snapshots: dependencies: '@npmcli/fs': 3.1.1 fs-minipass: 3.0.3 - glob: 10.4.1 - lru-cache: 10.2.2 + glob: 10.4.5 + lru-cache: 10.4.3 minipass: 7.1.2 minipass-collect: 2.0.1 minipass-flush: 1.0.5 @@ -3731,7 +3718,7 @@ snapshots: camel-case@4.1.2: dependencies: pascal-case: 3.1.2 - tslib: 2.6.2 + tslib: 2.6.3 camelcase@6.3.0: {} @@ -3967,10 +3954,6 @@ snapshots: dependencies: ms: 2.1.2 - debug@4.3.4: - dependencies: - ms: 2.1.2 - debug@4.3.5: dependencies: ms: 2.1.2 @@ -4053,7 +4036,7 @@ snapshots: dot-case@3.0.4: dependencies: no-case: 3.0.4 - tslib: 2.6.2 + tslib: 2.6.3 dot-prop@5.3.0: dependencies: @@ -4139,7 +4122,7 @@ snapshots: esm-import-transformer@3.0.2: dependencies: - acorn: 8.11.3 + acorn: 8.12.1 esprima@4.0.1: {} @@ -4161,27 +4144,27 @@ snapshots: exegesis-express@4.0.0: dependencies: - exegesis: 4.1.2 + exegesis: 4.2.0 transitivePeerDependencies: - supports-color - exegesis@4.1.2: + exegesis@4.2.0: dependencies: '@apidevtools/json-schema-ref-parser': 9.1.2 - ajv: 8.14.0 - ajv-formats: 2.1.1(ajv@8.14.0) + ajv: 8.16.0 + ajv-formats: 2.1.1(ajv@8.16.0) body-parser: 1.20.2 content-type: 1.0.5 deep-freeze: 0.0.1 events-listener: 1.1.0 - glob: 10.4.1 + glob: 10.4.5 json-ptr: 3.1.1 json-schema-traverse: 1.0.0 lodash: 4.17.21 openapi3-ts: 3.2.0 promise-breaker: 6.0.0 pump: 3.0.0 - qs: 6.12.1 + qs: 6.12.3 raw-body: 2.5.2 semver: 7.6.2 transitivePeerDependencies: @@ -4296,10 +4279,10 @@ snapshots: transitivePeerDependencies: - supports-color - firebase-tools@13.13.0(encoding@0.1.13): + firebase-tools@13.13.1(encoding@0.1.13): dependencies: - '@google-cloud/cloud-sql-connector': 1.3.0(encoding@0.1.13) - '@google-cloud/pubsub': 4.4.0(encoding@0.1.13) + '@google-cloud/cloud-sql-connector': 1.3.3(encoding@0.1.13) + '@google-cloud/pubsub': 4.5.0(encoding@0.1.13) abort-controller: 3.0.0 ajv: 6.12.6 archiver: 7.0.1 @@ -4316,21 +4299,21 @@ snapshots: cross-spawn: 7.0.3 csv-parse: 5.5.6 deep-equal-in-any-order: 2.0.6 - exegesis: 4.1.2 + exegesis: 4.2.0 exegesis-express: 4.0.0 express: 4.19.2 filesize: 6.4.0 form-data: 4.0.0 fs-extra: 10.1.0 fuzzy: 0.1.3 - gaxios: 6.6.0(encoding@0.1.13) - glob: 10.4.1 - google-auth-library: 9.10.0(encoding@0.1.13) + gaxios: 6.7.0(encoding@0.1.13) + glob: 10.4.5 + google-auth-library: 9.11.0(encoding@0.1.13) inquirer: 8.2.6 inquirer-autocomplete-prompt: 2.0.1(inquirer@8.2.6) jsonwebtoken: 9.0.2 leven: 3.1.0 - libsodium-wrappers: 0.7.13 + libsodium-wrappers: 0.7.14 lodash: 4.17.21 marked: 4.3.0 marked-terminal: 5.2.0(marked@4.3.0) @@ -4341,14 +4324,14 @@ snapshots: open: 6.4.0 ora: 5.4.1 p-limit: 3.1.0 - pg: 8.11.5 + pg: 8.12.0 portfinder: 1.0.32 progress: 2.0.3 proxy-agent: 6.4.0 retry: 0.13.1 - rimraf: 5.0.7 + rimraf: 5.0.9 semver: 7.6.2 - sql-formatter: 15.3.1 + sql-formatter: 15.3.2 stream-chain: 2.2.5 stream-json: 1.8.0 strip-ansi: 6.0.1 @@ -4360,10 +4343,10 @@ snapshots: universal-analytics: 0.5.3 update-notifier-cjs: 5.1.6(encoding@0.1.13) uuid: 8.3.2 - winston: 3.13.0 - winston-transport: 4.7.0 - ws: 7.5.9 - yaml: 2.4.2 + winston: 3.13.1 + winston-transport: 4.7.1 + ws: 7.5.10 + yaml: 2.4.5 transitivePeerDependencies: - bufferutil - encoding @@ -4381,7 +4364,7 @@ snapshots: fn.name@1.1.0: {} - foreground-child@3.1.1: + foreground-child@3.2.1: dependencies: cross-spawn: 7.0.3 signal-exit: 4.1.0 @@ -4432,20 +4415,20 @@ snapshots: fuzzy@0.1.3: {} - gaxios@6.6.0(encoding@0.1.13): + gaxios@6.7.0(encoding@0.1.13): dependencies: extend: 3.0.2 - https-proxy-agent: 7.0.4 + https-proxy-agent: 7.0.5 is-stream: 2.0.1 node-fetch: 2.7.0(encoding@0.1.13) - uuid: 9.0.1 + uuid: 10.0.0 transitivePeerDependencies: - encoding - supports-color gcp-metadata@6.1.0(encoding@0.1.13): dependencies: - gaxios: 6.6.0(encoding@0.1.13) + gaxios: 6.7.0(encoding@0.1.13) json-bigint: 1.0.0 transitivePeerDependencies: - encoding @@ -4484,12 +4467,13 @@ snapshots: lodash.isobject: 2.4.1 toxic: 1.0.1 - glob@10.4.1: + glob@10.4.5: dependencies: - foreground-child: 3.1.1 - jackspeak: 3.1.2 - minimatch: 9.0.4 + foreground-child: 3.2.1 + jackspeak: 3.4.3 + minimatch: 9.0.5 minipass: 7.1.2 + package-json-from-dist: 1.0.0 path-scurry: 1.11.1 glob@7.2.3: @@ -4505,11 +4489,11 @@ snapshots: dependencies: ini: 2.0.0 - google-auth-library@9.10.0(encoding@0.1.13): + google-auth-library@9.11.0(encoding@0.1.13): dependencies: base64-js: 1.5.1 ecdsa-sig-formatter: 1.0.11 - gaxios: 6.6.0(encoding@0.1.13) + gaxios: 6.7.0(encoding@0.1.13) gcp-metadata: 6.1.0(encoding@0.1.13) gtoken: 7.1.0(encoding@0.1.13) jws: 4.0.0 @@ -4517,18 +4501,18 @@ snapshots: - encoding - supports-color - google-gax@4.3.5(encoding@0.1.13): + google-gax@4.3.8(encoding@0.1.13): dependencies: - '@grpc/grpc-js': 1.10.8 + '@grpc/grpc-js': 1.10.11 '@grpc/proto-loader': 0.7.13 '@types/long': 4.0.2 abort-controller: 3.0.0 duplexify: 4.1.3 - google-auth-library: 9.10.0(encoding@0.1.13) + google-auth-library: 9.11.0(encoding@0.1.13) node-fetch: 2.7.0(encoding@0.1.13) object-hash: 3.0.0 proto3-json-serializer: 2.0.2 - protobufjs: 7.3.0 + protobufjs: 7.3.2 retry-request: 7.0.2(encoding@0.1.13) uuid: 9.0.1 transitivePeerDependencies: @@ -4538,9 +4522,9 @@ snapshots: googleapis-common@7.2.0(encoding@0.1.13): dependencies: extend: 3.0.2 - gaxios: 6.6.0(encoding@0.1.13) - google-auth-library: 9.10.0(encoding@0.1.13) - qs: 6.12.1 + gaxios: 6.7.0(encoding@0.1.13) + google-auth-library: 9.11.0(encoding@0.1.13) + qs: 6.12.3 url-template: 2.0.8 uuid: 9.0.1 transitivePeerDependencies: @@ -4564,7 +4548,7 @@ snapshots: gtoken@7.1.0(encoding@0.1.13): dependencies: - gaxios: 6.6.0(encoding@0.1.13) + gaxios: 6.7.0(encoding@0.1.13) jws: 4.0.0 transitivePeerDependencies: - encoding @@ -4670,7 +4654,7 @@ snapshots: entities: 4.5.0 param-case: 3.0.4 relateurl: 0.2.7 - terser: 5.31.0 + terser: 5.31.2 htmlparser2@7.2.0: dependencies: @@ -4714,7 +4698,7 @@ snapshots: transitivePeerDependencies: - supports-color - https-proxy-agent@7.0.4: + https-proxy-agent@7.0.5: dependencies: agent-base: 7.1.1 debug: 4.3.5 @@ -4882,7 +4866,7 @@ snapshots: transitivePeerDependencies: - encoding - jackspeak@3.1.2: + jackspeak@3.4.3: dependencies: '@isaacs/cliui': 8.0.2 optionalDependencies: @@ -4982,17 +4966,17 @@ snapshots: leven@3.1.0: {} - libsodium-wrappers@0.7.13: + libsodium-wrappers@0.7.14: dependencies: - libsodium: 0.7.13 + libsodium: 0.7.14 - libsodium@0.7.13: {} + libsodium@0.7.14: {} linkify-it@5.0.0: dependencies: uc.micro: 2.1.0 - liquidjs@10.14.0: + liquidjs@10.15.0: dependencies: commander: 10.0.1 @@ -5031,7 +5015,7 @@ snapshots: chalk: 4.1.2 is-unicode-supported: 0.1.0 - logform@2.6.0: + logform@2.6.1: dependencies: '@colors/colors': 1.6.0 '@types/triple-beam': 1.3.5 @@ -5044,9 +5028,9 @@ snapshots: lower-case@2.0.2: dependencies: - tslib: 2.6.2 + tslib: 2.6.3 - lru-cache@10.2.2: {} + lru-cache@10.4.3: {} lru-cache@7.18.3: {} @@ -5158,7 +5142,7 @@ snapshots: dependencies: brace-expansion: 2.0.1 - minimatch@9.0.4: + minimatch@9.0.5: dependencies: brace-expansion: 2.0.1 @@ -5224,7 +5208,7 @@ snapshots: transitivePeerDependencies: - supports-color - morphdom@2.7.2: {} + morphdom@2.7.3: {} ms@2.0.0: {} @@ -5236,11 +5220,11 @@ snapshots: dependencies: array-differ: 4.0.0 array-union: 3.0.1 - minimatch: 9.0.4 + minimatch: 9.0.5 mute-stream@0.0.8: {} - nan@2.19.0: + nan@2.20.0: optional: true nearley@2.20.1: @@ -5259,7 +5243,7 @@ snapshots: no-case@3.0.4: dependencies: lower-case: 2.0.2 - tslib: 2.6.2 + tslib: 2.6.3 node-emoji@1.11.0: dependencies: @@ -5271,15 +5255,15 @@ snapshots: optionalDependencies: encoding: 0.1.13 - node-gyp@10.1.0: + node-gyp@10.2.0: dependencies: env-paths: 2.2.1 exponential-backoff: 3.1.1 - glob: 10.4.1 + glob: 10.4.5 graceful-fs: 4.2.11 make-fetch-happen: 13.0.1 nopt: 7.2.1 - proc-log: 3.0.0 + proc-log: 4.2.0 semver: 7.6.2 tar: 6.2.1 which: 4.0.0 @@ -5289,8 +5273,8 @@ snapshots: node-retrieve-globals@6.0.0: dependencies: - acorn: 8.11.3 - acorn-walk: 8.3.2 + acorn: 8.12.1 + acorn-walk: 8.3.3 esm-import-transformer: 3.0.2 nopt@7.2.1: @@ -5318,7 +5302,7 @@ snapshots: object-hash@3.0.0: {} - object-inspect@1.13.1: {} + object-inspect@1.13.2: {} object-keys@1.1.1: {} @@ -5356,7 +5340,7 @@ snapshots: openapi3-ts@3.2.0: dependencies: - yaml: 2.4.2 + yaml: 2.4.5 ora@5.4.1: dependencies: @@ -5396,16 +5380,16 @@ snapshots: dependencies: p-finally: 1.0.0 - pac-proxy-agent@7.0.1: + pac-proxy-agent@7.0.2: dependencies: '@tootallnate/quickjs-emscripten': 0.23.0 agent-base: 7.1.1 debug: 4.3.5 get-uri: 6.0.3 http-proxy-agent: 7.0.2 - https-proxy-agent: 7.0.4 + https-proxy-agent: 7.0.5 pac-resolver: 7.0.1 - socks-proxy-agent: 8.0.3 + socks-proxy-agent: 8.0.4 transitivePeerDependencies: - supports-color @@ -5414,10 +5398,12 @@ snapshots: degenerator: 5.0.1 netmask: 2.0.2 + package-json-from-dist@1.0.0: {} + param-case@3.0.4: dependencies: dot-case: 3.0.4 - tslib: 2.6.2 + tslib: 2.6.3 parse-srcset@1.0.2: {} @@ -5430,7 +5416,7 @@ snapshots: pascal-case@3.1.2: dependencies: no-case: 3.0.4 - tslib: 2.6.2 + tslib: 2.6.3 path-is-absolute@1.0.1: {} @@ -5440,7 +5426,7 @@ snapshots: path-scurry@1.11.1: dependencies: - lru-cache: 10.2.2 + lru-cache: 10.4.3 minipass: 7.1.2 path-to-regexp@0.1.7: {} @@ -5456,9 +5442,9 @@ snapshots: pg-int8@1.0.1: {} - pg-pool@3.6.2(pg@8.11.5): + pg-pool@3.6.2(pg@8.12.0): dependencies: - pg: 8.11.5 + pg: 8.12.0 pg-protocol@1.6.1: {} @@ -5470,10 +5456,10 @@ snapshots: postgres-date: 1.0.7 postgres-interval: 1.2.0 - pg@8.11.5: + pg@8.12.0: dependencies: pg-connection-string: 2.6.4 - pg-pool: 3.6.2(pg@8.11.5) + pg-pool: 3.6.2(pg@8.12.0) pg-protocol: 1.6.1 pg-types: 2.2.0 pgpass: 1.0.5 @@ -5525,9 +5511,6 @@ snapshots: posthtml-parser: 0.11.0 posthtml-render: 3.0.0 - proc-log@3.0.0: - optional: true - proc-log@4.2.0: optional: true @@ -5555,9 +5538,9 @@ snapshots: proto3-json-serializer@2.0.2: dependencies: - protobufjs: 7.3.0 + protobufjs: 7.3.2 - protobufjs@7.3.0: + protobufjs@7.3.2: dependencies: '@protobufjs/aspromise': 1.1.2 '@protobufjs/base64': 1.1.2 @@ -5569,7 +5552,7 @@ snapshots: '@protobufjs/path': 1.1.2 '@protobufjs/pool': 1.1.0 '@protobufjs/utf8': 1.1.0 - '@types/node': 20.12.13 + '@types/node': 20.14.10 long: 5.2.3 proxy-addr@2.0.7: @@ -5582,11 +5565,11 @@ snapshots: agent-base: 7.1.1 debug: 4.3.5 http-proxy-agent: 7.0.2 - https-proxy-agent: 7.0.4 + https-proxy-agent: 7.0.5 lru-cache: 7.18.3 - pac-proxy-agent: 7.0.1 + pac-proxy-agent: 7.0.2 proxy-from-env: 1.1.0 - socks-proxy-agent: 8.0.3 + socks-proxy-agent: 8.0.4 transitivePeerDependencies: - supports-color @@ -5613,7 +5596,7 @@ snapshots: dependencies: side-channel: 1.0.6 - qs@6.12.1: + qs@6.12.3: dependencies: side-channel: 1.0.6 @@ -5648,11 +5631,11 @@ snapshots: minimist: 1.2.8 strip-json-comments: 2.0.1 - re2@1.20.12: + re2@1.21.3: dependencies: install-artifact-from-github: 1.3.5 - nan: 2.19.0 - node-gyp: 10.1.0 + nan: 2.20.0 + node-gyp: 10.2.0 transitivePeerDependencies: - supports-color optional: true @@ -5750,9 +5733,9 @@ snapshots: dependencies: glob: 7.2.3 - rimraf@5.0.7: + rimraf@5.0.9: dependencies: - glob: 10.4.1 + glob: 10.4.5 router@1.3.8: dependencies: @@ -5774,7 +5757,7 @@ snapshots: rxjs@7.8.1: dependencies: - tslib: 2.6.2 + tslib: 2.6.3 safe-buffer@5.1.2: {} @@ -5784,7 +5767,7 @@ snapshots: safer-buffer@2.1.2: {} - sass@1.77.6: + sass@1.77.7: dependencies: chokidar: 3.6.0 immutable: 4.3.6 @@ -5893,7 +5876,7 @@ snapshots: call-bind: 1.0.7 es-errors: 1.3.0 get-intrinsic: 1.2.4 - object-inspect: 1.13.1 + object-inspect: 1.13.2 signal-exit@3.0.7: {} @@ -5909,7 +5892,7 @@ snapshots: smart-buffer@4.2.0: {} - socks-proxy-agent@8.0.3: + socks-proxy-agent@8.0.4: dependencies: agent-base: 7.1.1 debug: 4.3.5 @@ -5943,7 +5926,7 @@ snapshots: sprintf-js@1.1.3: {} - sql-formatter@15.3.1: + sql-formatter@15.3.2: dependencies: argparse: 2.0.1 get-stdin: 8.0.0 @@ -5975,7 +5958,7 @@ snapshots: dependencies: fast-fifo: 1.3.2 queue-tick: 1.0.1 - text-decoder: 1.1.0 + text-decoder: 1.1.1 optionalDependencies: bare-events: 2.4.2 @@ -6034,7 +6017,7 @@ snapshots: router: 1.3.8 update-notifier-cjs: 5.1.6(encoding@0.1.13) optionalDependencies: - re2: 1.20.12 + re2: 1.21.3 transitivePeerDependencies: - encoding - supports-color @@ -6081,14 +6064,14 @@ snapshots: - encoding - supports-color - terser@5.31.0: + terser@5.31.2: dependencies: '@jridgewell/source-map': 0.3.6 - acorn: 8.11.3 + acorn: 8.12.1 commander: 2.20.3 source-map-support: 0.5.21 - text-decoder@1.1.0: + text-decoder@1.1.1: dependencies: b4a: 1.6.6 @@ -6116,7 +6099,7 @@ snapshots: triple-beam@1.4.1: {} - tslib@2.6.2: {} + tslib@2.6.3: {} type-fest@0.20.2: {} @@ -6219,6 +6202,8 @@ snapshots: utils-merge@1.0.1: {} + uuid@10.0.0: {} + uuid@8.3.2: {} uuid@9.0.1: {} @@ -6275,25 +6260,25 @@ snapshots: dependencies: string-width: 4.2.3 - winston-transport@4.7.0: + winston-transport@4.7.1: dependencies: - logform: 2.6.0 + logform: 2.6.1 readable-stream: 3.6.2 triple-beam: 1.4.1 - winston@3.13.0: + winston@3.13.1: dependencies: '@colors/colors': 1.6.0 '@dabh/diagnostics': 2.0.3 async: 3.2.5 is-stream: 2.0.1 - logform: 2.6.0 + logform: 2.6.1 one-time: 1.0.0 readable-stream: 3.6.2 safe-stable-stringify: 2.4.3 stack-trace: 0.0.10 triple-beam: 1.4.1 - winston-transport: 4.7.0 + winston-transport: 4.7.1 wrap-ansi@6.2.0: dependencies: @@ -6322,9 +6307,9 @@ snapshots: signal-exit: 3.0.7 typedarray-to-buffer: 3.1.5 - ws@7.5.9: {} + ws@7.5.10: {} - ws@8.17.0: {} + ws@8.18.0: {} xdg-basedir@4.0.0: {} @@ -6334,7 +6319,7 @@ snapshots: yallist@4.0.0: {} - yaml@2.4.2: {} + yaml@2.4.5: {} yargs-parser@21.1.1: {} diff --git a/site-shared b/site-shared index d50b05880..43ee19493 160000 --- a/site-shared +++ b/site-shared @@ -1 +1 @@ -Subproject commit d50b05880ad6405518e3a08255bcda5fa72bbf2a +Subproject commit 43ee1949382ad3961e3192d702681b02af03ca90 diff --git a/src/content/get-dart/archive/_archives_table.html b/src/content/get-dart/archive/_archives_table.html index ac13abe9e..2ba339d8f 100644 --- a/src/content/get-dart/archive/_archives_table.html +++ b/src/content/get-dart/archive/_archives_table.html @@ -27,7 +27,7 @@ {% if channel == 'stable' %} 0.0.0 (rev 00000) - {% else if channel == 'beta' %} + {% elsif channel == 'beta' %} 0.0.0-0.0.beta (rev 00000) {% else %} 0.0.0-0.0.dev (rev 00000) From d394fc7eff6648dab2ea5764a9cde89fa461dcc3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 11 Jul 2024 13:39:58 -0500 Subject: [PATCH 59/95] Bump actions/setup-node from 4.0.2 to 4.0.3 (#5967) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [actions/setup-node](https://github.com/actions/setup-node) from 4.0.2 to 4.0.3.

Release notes

Sourced from actions/setup-node's releases.

v4.0.3

What's Changed

Bug fixes:

Documentation changes:

Dependency updates:

New Contributors

Full Changelog: https://github.com/actions/setup-node/compare/v4...v4.0.3

Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=actions/setup-node&package-manager=github_actions&previous-version=4.0.2&new-version=4.0.3)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index df49fc2e9..4b75339fc 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -80,7 +80,7 @@ jobs: - name: Fetch Dart packages run: dart pub get - uses: pnpm/action-setup@fe02b34f77f8bc703788d5817da081398fad5dd2 - - uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 + - uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b with: node-version: ${{ env.NODE_VERSION }} cache: 'pnpm' From 57e52507f754ce2ff649e24f05fb9c9e3d2dd91e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 12 Jul 2024 10:54:52 -0500 Subject: [PATCH 60/95] Bump github/codeql-action from 3.25.11 to 3.25.12 (#5973) --- .github/workflows/codeql-analysis.yml | 6 +++--- .github/workflows/scorecards-analysis.yml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index fedf7228b..07d9133c4 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -33,7 +33,7 @@ jobs: # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL - uses: github/codeql-action/init@b611370bb5703a7efb587f9d136a52ea24c5c38c + uses: github/codeql-action/init@4fa2a7953630fd2f3fb380f21be14ede0169dd4f with: languages: ${{ matrix.language }} # If you wish to specify custom queries, you can do so here or in a config file. @@ -44,7 +44,7 @@ jobs: # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). # If this step fails, then you should remove it and run the build manually (see below) - name: Autobuild - uses: github/codeql-action/autobuild@b611370bb5703a7efb587f9d136a52ea24c5c38c + uses: github/codeql-action/autobuild@4fa2a7953630fd2f3fb380f21be14ede0169dd4f # ℹ️ Command-line programs to run using the OS shell. # 📚 https://git.io/JvXDl @@ -58,4 +58,4 @@ jobs: # make release - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@b611370bb5703a7efb587f9d136a52ea24c5c38c + uses: github/codeql-action/analyze@4fa2a7953630fd2f3fb380f21be14ede0169dd4f diff --git a/.github/workflows/scorecards-analysis.yml b/.github/workflows/scorecards-analysis.yml index 0a49b29ce..b6cab8ce4 100644 --- a/.github/workflows/scorecards-analysis.yml +++ b/.github/workflows/scorecards-analysis.yml @@ -49,6 +49,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@b611370bb5703a7efb587f9d136a52ea24c5c38c + uses: github/codeql-action/upload-sarif@4fa2a7953630fd2f3fb380f21be14ede0169dd4f with: sarif_file: results.sarif From f7f921a8d2ef97b9cc8984db46d4d5716827e773 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 12 Jul 2024 10:59:27 -0500 Subject: [PATCH 61/95] Bump firebase-tools from 13.13.1 to 13.13.2 (#5972) --- package.json | 2 +- pnpm-lock.yaml | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index ffe87feb5..d34e02d8c 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ "devDependencies": { "@11ty/eleventy": "3.0.0-alpha.15", "@11ty/eleventy-img": "5.0.0-beta.4", - "firebase-tools": "^13.13.1", + "firebase-tools": "^13.13.2", "hast-util-from-html": "^2.0.1", "hast-util-select": "^6.0.2", "hast-util-to-text": "^4.0.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 32dc0ac7d..c9246bc08 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -19,8 +19,8 @@ importers: specifier: 5.0.0-beta.4 version: 5.0.0-beta.4(encoding@0.1.13) firebase-tools: - specifier: ^13.13.1 - version: 13.13.1(encoding@0.1.13) + specifier: ^13.13.2 + version: 13.13.2(encoding@0.1.13) hast-util-from-html: specifier: ^2.0.1 version: 2.0.1 @@ -1230,8 +1230,8 @@ packages: resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} engines: {node: '>= 0.8'} - firebase-tools@13.13.1: - resolution: {integrity: sha512-FgNfpwJBJog/SMv9mDygbJ3b5ARQkPP1O5+zsjC+YhqzTdq5jHtCzM46OqiQWTjLsIPtaeESqXebUI5rfvq7Ng==} + firebase-tools@13.13.2: + resolution: {integrity: sha512-pX20oZSG7+SW8Jo10/JJilQn+IB5xES45dgiAMtPrx+aJ9RRnHkcosDe6kq9AEsufiRv1/KCn430jS3NF7jtvg==} engines: {node: '>=18.0.0 || >=20.0.0'} hasBin: true @@ -4279,7 +4279,7 @@ snapshots: transitivePeerDependencies: - supports-color - firebase-tools@13.13.1(encoding@0.1.13): + firebase-tools@13.13.2(encoding@0.1.13): dependencies: '@google-cloud/cloud-sql-connector': 1.3.3(encoding@0.1.13) '@google-cloud/pubsub': 4.5.0(encoding@0.1.13) From a81d6bbb38ce14b8dc27972938693096c2d9122c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 12 Jul 2024 11:00:08 -0500 Subject: [PATCH 62/95] Bump sass from 1.77.7 to 1.77.8 (#5971) --- package.json | 2 +- pnpm-lock.yaml | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index d34e02d8c..9320e0fc6 100644 --- a/package.json +++ b/package.json @@ -36,7 +36,7 @@ "markdown-it-container": "^4.0.0", "markdown-it-deflist": "^3.0.0", "markdown-it-table": "^4.1.1", - "sass": "^1.77.7", + "sass": "^1.77.8", "shiki": "^1.10.3" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c9246bc08..cdc7637fc 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -55,8 +55,8 @@ importers: specifier: ^4.1.1 version: 4.1.1 sass: - specifier: ^1.77.7 - version: 1.77.7 + specifier: ^1.77.8 + version: 1.77.8 shiki: specifier: ^1.10.3 version: 1.10.3 @@ -2499,8 +2499,8 @@ packages: safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - sass@1.77.7: - resolution: {integrity: sha512-9ywH75cO+rLjbrZ6en3Gp8qAMwPGBapFtlsMJoDTkcMU/bSe5a6cjKVUn5Jr4Gzg5GbP3HE8cm+02pLCgcoMow==} + sass@1.77.8: + resolution: {integrity: sha512-4UHg6prsrycW20fqLGPShtEvo/WyHRVRHwOP4DzkUrObWoWI05QBSfzU71TVB7PFaL104TwNaHpjlWXAZbQiNQ==} engines: {node: '>=14.0.0'} hasBin: true @@ -5767,7 +5767,7 @@ snapshots: safer-buffer@2.1.2: {} - sass@1.77.7: + sass@1.77.8: dependencies: chokidar: 3.6.0 immutable: 4.3.6 From 6e1e1fba7cb3633f895f6a9e10f12383df069466 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 15 Jul 2024 08:42:47 -0500 Subject: [PATCH 63/95] Bump @11ty/eleventy-img from 5.0.0-beta.4 to 5.0.0-beta.5 (#5975) --- package.json | 2 +- pnpm-lock.yaml | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 9320e0fc6..7347f8986 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ }, "devDependencies": { "@11ty/eleventy": "3.0.0-alpha.15", - "@11ty/eleventy-img": "5.0.0-beta.4", + "@11ty/eleventy-img": "5.0.0-beta.5", "firebase-tools": "^13.13.2", "hast-util-from-html": "^2.0.1", "hast-util-select": "^6.0.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index cdc7637fc..5ed1e2887 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -16,8 +16,8 @@ importers: specifier: 3.0.0-alpha.15 version: 3.0.0-alpha.15 '@11ty/eleventy-img': - specifier: 5.0.0-beta.4 - version: 5.0.0-beta.4(encoding@0.1.13) + specifier: 5.0.0-beta.5 + version: 5.0.0-beta.5(encoding@0.1.13) firebase-tools: specifier: ^13.13.2 version: 13.13.2(encoding@0.1.13) @@ -78,8 +78,8 @@ packages: resolution: {integrity: sha512-yIiLM5ziBmg86i4TlXpBdcIygJHvh/GgPJyAiFOckO9H4y9cQDM8eIcJCUQ4Mum0NEVui/OjhEut2R08xw0vlQ==} engines: {node: '>=14'} - '@11ty/eleventy-img@5.0.0-beta.4': - resolution: {integrity: sha512-vuizGnW8mgW+O4iP6CbOB4CCKq3W2GiY+Ev9112qTCra+qau+xxhn9yrnyI3621sC/hEzKQI9MUFRZ2x+F8XnQ==} + '@11ty/eleventy-img@5.0.0-beta.5': + resolution: {integrity: sha512-ilu/4DZIPhZiRfn1IikPGurBBpt1M++w75HTQNJMGuK+DmjxRe1HoAOc756xteXOdu7m/hUmUAoRoTkOZHEsFA==} engines: {node: '>=18'} '@11ty/eleventy-plugin-bundle@2.0.2': @@ -3040,7 +3040,7 @@ snapshots: - encoding - supports-color - '@11ty/eleventy-img@5.0.0-beta.4(encoding@0.1.13)': + '@11ty/eleventy-img@5.0.0-beta.5(encoding@0.1.13)': dependencies: '@11ty/eleventy-fetch': 4.0.1(encoding@0.1.13) '@11ty/eleventy-utils': 1.0.3 From 806569cd9c7292d06582f12d48de5f67bea01933 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 17 Jul 2024 16:06:23 -0500 Subject: [PATCH 64/95] Bump @11ty/eleventy from 3.0.0-alpha.15 to 3.0.0-alpha.17 (#5977) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [@11ty/eleventy](https://github.com/11ty/eleventy) from 3.0.0-alpha.15 to 3.0.0-alpha.17.
Release notes

Sourced from @​11ty/eleventy's releases.

Pre-release: Eleventy v3.0.0-alpha.17

  • Adds new eleventyConfig.addPreprocessor API for improved drafts workflow #188 Workaround for Nunjucks macros import #3345
  • New IdAttributePlugin adds id attributes to headings across multiple template syntaxes #3363
  • Fix npm audit deprecation warnings from recursive-copy package #3299
  • Missing layout error messaging now reports the template path #727
  • Add { type: "async" } option for getShortcodes, getFilters, and getPairedShortcodes configuration API methods (#3310)
  • Fix issue with more complex export in 11ty.js templates #3359
  • Small tweaks to colorized terminal text
  • Internals: removes multimatch dependency, swaps to already in-use micromatch https://github.com/11ty/eleventy/commit/9698667bb73e1d8c378dda46291716e3ca789e60
  • Fix bug with Eleventy Image On-request workflow eleventyConfig.getFilter(...) is not a function #3365
  • Improvements to benchmarking debug mode outputs: https://www.11ty.dev/docs/debug-performance/
    • Benchmarking logging output improvement for minimum thresholds #1570

Full Changelog: https://github.com/11ty/eleventy/compare/v3.0.0-alpha.16...v3.0.0-alpha.17 Full Eleventy v3 Milestone: https://github.com/11ty/eleventy/milestone/40

🥳🥳🥳 5 issues left (137 closed) on the Eleventy 3.0.0 milestone!

We need your help!

11ty is now operating independently, with full time development and maintenance funded by our Open Collective supporters. We need your help to keep going! We have a goal of $6000 USD recurring monthly budget. Read more about this fundraising push or head directly to our Open Collective to start your recurring contribution!

Pre-release: Eleventy v3.0.0-alpha.16 (feel free to ignore this one)

  • Seeing a liquidjs-related project regression (outside of our test suite) in the newest minor version, temporarily reverting from 10.15 to 10.14.
    • Investigation at #3356 revealed an application code error and the revert is unnecessary!

Full Changelog: https://github.com/11ty/eleventy/compare/v3.0.0-alpha.14...v3.0.0-alpha.15 Full Eleventy v3 Milestone: https://github.com/11ty/eleventy/milestone/40

We need your help!

11ty is now operating independently, with full time development and maintenance funded by our Open Collective supporters. We need your help to keep going! We have a goal of $6000 USD recurring monthly budget. Read more about this fundraising push or head directly to our Open Collective to start your recurring contribution!

Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@11ty/eleventy&package-manager=npm_and_yarn&previous-version=3.0.0-alpha.15&new-version=3.0.0-alpha.17)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 99 +++++++++++++++++++++++--------------------------- 2 files changed, 47 insertions(+), 54 deletions(-) diff --git a/package.json b/package.json index 7347f8986..3323d7c74 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,7 @@ "bootstrap-scss": "^4.6.2" }, "devDependencies": { - "@11ty/eleventy": "3.0.0-alpha.15", + "@11ty/eleventy": "3.0.0-alpha.17", "@11ty/eleventy-img": "5.0.0-beta.5", "firebase-tools": "^13.13.2", "hast-util-from-html": "^2.0.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5ed1e2887..d6720e614 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -13,8 +13,8 @@ importers: version: 4.6.2 devDependencies: '@11ty/eleventy': - specifier: 3.0.0-alpha.15 - version: 3.0.0-alpha.15 + specifier: 3.0.0-alpha.17 + version: 3.0.0-alpha.17 '@11ty/eleventy-img': specifier: 5.0.0-beta.5 version: 5.0.0-beta.5(encoding@0.1.13) @@ -90,8 +90,8 @@ packages: resolution: {integrity: sha512-nULO91om7vQw4Y/UBjM8i7nJ1xl+/nyK4rImZ41lFxiY2d+XUz7ChAj1CDYFjrLZeu0utAYJTZ45LlcHTkUG4g==} engines: {node: '>=12'} - '@11ty/eleventy@3.0.0-alpha.15': - resolution: {integrity: sha512-aE7we/HUi+iZ87bOgXx562hf9Oqz3TKLBYlJi3g98RxwzDwG1fhDf/JBPkK7FQRR27GZf7bRatpA4b8BnYuHww==} + '@11ty/eleventy@3.0.0-alpha.17': + resolution: {integrity: sha512-CSRdniC1360qBYJ2ddohkIG/iMxGiYHvX62hRcz+l3vQg/71PBXsMmKiD3LoAs8zorSh/UR7dW26pcIrLaVKPw==} engines: {node: '>=18'} hasBin: true @@ -103,6 +103,9 @@ packages: resolution: {integrity: sha512-CcsRdI933x613u7CjM+QGs7iD/m8SaDup3Apohg1+7dybigrEUHc2jGS3mcMgQKvF2+IphqmepD/FrKLlPkPEg==} engines: {node: '>= 6'} + '@11ty/recursive-copy@3.0.0': + resolution: {integrity: sha512-v1Mr7dWx5nk69/HRRtDHUYDV9N8+cE12IGiKSFOwML7HjOzUXwTP88e3cGuhqoVstkBil1ZEIaOB0KPP1zwqXA==} + '@apidevtools/json-schema-ref-parser@9.1.2': resolution: {integrity: sha512-r1w81DpR+KyRWd3f+rk6TNqMgedmAxZP5v5KWlXQWlgMUUtyEJch0DKEci1SorPMiSeM8XPl7MZ3miJ60JIpQg==} @@ -531,10 +534,6 @@ packages: resolution: {integrity: sha512-LeZY+DZDRnvP7eMuQ6LHfCzUGxAAIViUBliK24P3hWXL6y4SortgR6Nim6xrkfSLlmH0+k+9NYNwVC2s53ZrYQ==} engines: {node: '>=0.10.0'} - array-differ@4.0.0: - resolution: {integrity: sha512-Q6VPTLMsmXZ47ENG3V+wQyZS1ZxXMxFyYzA+Z/GMrJ6yIutAIEf9wTyroTzmGjNfox9/h3GdGBCVh43GVFx4Uw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - array-flatten@1.1.1: resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} @@ -545,10 +544,6 @@ packages: resolution: {integrity: sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==} engines: {node: '>=0.10.0'} - array-union@3.0.1: - resolution: {integrity: sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw==} - engines: {node: '>=12'} - array-uniq@1.0.3: resolution: {integrity: sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==} engines: {node: '>=0.10.0'} @@ -1214,6 +1209,10 @@ packages: resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} engines: {node: '>=8'} + filesize@10.1.4: + resolution: {integrity: sha512-ryBwPIIeErmxgPnm6cbESAzXjuEFubs+yKYLBZvg3CaiNcmkJChoOGcBSrZ6IwkMwPABwPpVXE6IlNdGJJrvEg==} + engines: {node: '>= 10.4.0'} + filesize@6.4.0: resolution: {integrity: sha512-mjFIpOHC4jbfcTfoh4rkWpI31mF7viw9ikj/JyLoKzqlwG/YsefKfvYlYhdYdg/9mtK2z1AzgN/0LvVQ3zdlSQ==} engines: {node: '>= 0.4.0'} @@ -1973,6 +1972,11 @@ packages: engines: {node: '>=10'} hasBin: true + mkdirp@3.0.1: + resolution: {integrity: sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==} + engines: {node: '>=10'} + hasBin: true + moo@0.5.2: resolution: {integrity: sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==} @@ -1992,10 +1996,6 @@ packages: ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - multimatch@7.0.0: - resolution: {integrity: sha512-SYU3HBAdF4psHEL/+jXDKHO95/m5P2RvboHT2Y0WtTttvJLP4H/2WS9WlQPFvF6C8d6SpLw8vjCnQOnVIVOSJQ==} - engines: {node: '>=18'} - mute-stream@0.0.8: resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} @@ -2267,6 +2267,12 @@ packages: resolution: {integrity: sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==} engines: {node: '>=0.10.0'} + posthtml-match-helper@2.0.2: + resolution: {integrity: sha512-ehnazjlSwcGa3P2LlFYmTmcnaembTSt9dLWIRRDVHDPidf6InWAr9leKeeLvUXgnU32g6BrFS64Je+c2Ld+l9g==} + engines: {node: '>=18'} + peerDependencies: + posthtml: ^0.16.6 + posthtml-parser@0.11.0: resolution: {integrity: sha512-QecJtfLekJbWVo/dMAA+OSwY79wpRmbqS5TeXvXSX+f0c6pW4/SE6inzZ2qkU7oAMCPqIDkZDvd/bQsSFUnKyw==} engines: {node: '>=12'} @@ -2407,9 +2413,6 @@ packages: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} - recursive-copy@2.0.14: - resolution: {integrity: sha512-K8WNY8f8naTpfbA+RaXmkaQuD1IeW9EgNEfyGxSqqTQukpVtoOKros9jUqbpEsSw59YOmpd8nCBgtqJZy5nvog==} - redeyed@2.1.1: resolution: {integrity: sha512-FNpGGo1DycYAdnrKFxCMmKYgo/mILAqtRYbkdQD8Ep/Hk2PQ5+aEAEx+IU713RTDmuBaH0c8P5ZozurNu5ObRQ==} @@ -2457,11 +2460,6 @@ packages: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - rimraf@2.7.1: - resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==} - deprecated: Rimraf versions prior to v4 are no longer supported - hasBin: true - rimraf@3.0.2: resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} deprecated: Rimraf versions prior to v4 are no longer supported @@ -3064,7 +3062,7 @@ snapshots: dependencies: normalize-path: 3.0.0 - '@11ty/eleventy@3.0.0-alpha.15': + '@11ty/eleventy@3.0.0-alpha.17': dependencies: '@11ty/dependency-tree': 3.0.1 '@11ty/dependency-tree-esm': 1.0.0 @@ -3073,6 +3071,7 @@ snapshots: '@11ty/eleventy-utils': 1.0.3 '@11ty/lodash-custom': 4.17.21 '@11ty/posthtml-urls': 1.0.0 + '@11ty/recursive-copy': 3.0.0 '@sindresorhus/slugify': 2.2.1 bcp-47-normalize: 2.3.0 chardet: 2.0.0 @@ -3081,6 +3080,7 @@ snapshots: debug: 4.3.5 dependency-graph: 1.0.0 fast-glob: 3.3.2 + filesize: 10.1.4 graceful-fs: 4.2.11 gray-matter: 4.0.3 is-glob: 4.0.3 @@ -3093,13 +3093,12 @@ snapshots: micromatch: 4.0.7 minimist: 1.2.8 moo: 0.5.2 - multimatch: 7.0.0 node-retrieve-globals: 6.0.0 normalize-path: 3.0.0 nunjucks: 3.2.4(chokidar@3.6.0) please-upgrade-node: 3.2.0 posthtml: 0.16.6 - recursive-copy: 2.0.14 + posthtml-match-helper: 2.0.2(posthtml@0.16.6) semver: 7.6.2 slugify: 1.6.6 transitivePeerDependencies: @@ -3117,6 +3116,18 @@ snapshots: object.entries: 1.1.8 parse-srcset: 1.0.2 + '@11ty/recursive-copy@3.0.0': + dependencies: + errno: 0.1.8 + graceful-fs: 4.2.11 + junk: 1.0.3 + maximatch: 0.1.0 + mkdirp: 3.0.1 + pify: 2.3.0 + promise: 7.3.1 + rimraf: 5.0.9 + slash: 1.0.0 + '@apidevtools/json-schema-ref-parser@9.1.2': dependencies: '@jsdevtools/ono': 7.1.3 @@ -3544,8 +3555,6 @@ snapshots: array-differ@1.0.0: {} - array-differ@4.0.0: {} - array-flatten@1.1.1: {} array-flatten@3.0.0: {} @@ -3554,8 +3563,6 @@ snapshots: dependencies: array-uniq: 1.0.3 - array-union@3.0.1: {} - array-uniq@1.0.3: {} arrify@1.0.1: {} @@ -4249,6 +4256,8 @@ snapshots: dependencies: escape-string-regexp: 1.0.5 + filesize@10.1.4: {} + filesize@6.4.0: {} fill-range@7.1.1: @@ -5196,6 +5205,8 @@ snapshots: mkdirp@1.0.4: {} + mkdirp@3.0.1: {} + moo@0.5.2: {} morgan@1.10.0: @@ -5216,12 +5227,6 @@ snapshots: ms@2.1.3: {} - multimatch@7.0.0: - dependencies: - array-differ: 4.0.0 - array-union: 3.0.1 - minimatch: 9.0.5 - mute-stream@0.0.8: {} nan@2.20.0: @@ -5498,6 +5503,10 @@ snapshots: dependencies: xtend: 4.0.2 + posthtml-match-helper@2.0.2(posthtml@0.16.6): + dependencies: + posthtml: 0.16.6 + posthtml-parser@0.11.0: dependencies: htmlparser2: 7.2.0 @@ -5672,18 +5681,6 @@ snapshots: dependencies: picomatch: 2.3.1 - recursive-copy@2.0.14: - dependencies: - errno: 0.1.8 - graceful-fs: 4.2.11 - junk: 1.0.3 - maximatch: 0.1.0 - mkdirp: 0.5.6 - pify: 2.3.0 - promise: 7.3.1 - rimraf: 2.7.1 - slash: 1.0.0 - redeyed@2.1.1: dependencies: esprima: 4.0.1 @@ -5725,10 +5722,6 @@ snapshots: reusify@1.0.4: {} - rimraf@2.7.1: - dependencies: - glob: 7.2.3 - rimraf@3.0.2: dependencies: glob: 7.2.3 From d50cafb56b92add0426734778a44803bc946f581 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 17 Jul 2024 16:06:49 -0500 Subject: [PATCH 65/95] Bump firebase-tools from 13.13.2 to 13.13.3 (#5976) Bumps [firebase-tools](https://github.com/firebase/firebase-tools) from 13.13.2 to 13.13.3.
Release notes

Sourced from firebase-tools's releases.

v13.13.3

  • Fix an issue where refresh_tokens would be used before checking whether they were expired. (#7442)
Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=firebase-tools&package-manager=npm_and_yarn&previous-version=13.13.2&new-version=13.13.3)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 3323d7c74..bc001a560 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ "devDependencies": { "@11ty/eleventy": "3.0.0-alpha.17", "@11ty/eleventy-img": "5.0.0-beta.5", - "firebase-tools": "^13.13.2", + "firebase-tools": "^13.13.3", "hast-util-from-html": "^2.0.1", "hast-util-select": "^6.0.2", "hast-util-to-text": "^4.0.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d6720e614..84cbfb1a8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -19,8 +19,8 @@ importers: specifier: 5.0.0-beta.5 version: 5.0.0-beta.5(encoding@0.1.13) firebase-tools: - specifier: ^13.13.2 - version: 13.13.2(encoding@0.1.13) + specifier: ^13.13.3 + version: 13.13.3(encoding@0.1.13) hast-util-from-html: specifier: ^2.0.1 version: 2.0.1 @@ -1229,8 +1229,8 @@ packages: resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} engines: {node: '>= 0.8'} - firebase-tools@13.13.2: - resolution: {integrity: sha512-pX20oZSG7+SW8Jo10/JJilQn+IB5xES45dgiAMtPrx+aJ9RRnHkcosDe6kq9AEsufiRv1/KCn430jS3NF7jtvg==} + firebase-tools@13.13.3: + resolution: {integrity: sha512-xTlaEhIGkfsMPsJkvjir/AeOQryuRTcoXSlqJO2CZR+IzZCoYPMHO8zMKwEIc1ZEb6nYdRl14gjM8DpGCRpm2A==} engines: {node: '>=18.0.0 || >=20.0.0'} hasBin: true @@ -4288,7 +4288,7 @@ snapshots: transitivePeerDependencies: - supports-color - firebase-tools@13.13.2(encoding@0.1.13): + firebase-tools@13.13.3(encoding@0.1.13): dependencies: '@google-cloud/cloud-sql-connector': 1.3.3(encoding@0.1.13) '@google-cloud/pubsub': 4.5.0(encoding@0.1.13) From b341bece3d8a67e843bb7e093497d14f91fb8b4f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 18 Jul 2024 05:33:18 -0500 Subject: [PATCH 66/95] Bump @11ty/eleventy-img from 5.0.0-beta.5 to 5.0.0-beta.6 (#5980) Bumps [@11ty/eleventy-img](https://github.com/11ty/eleventy-img) from 5.0.0-beta.5 to 5.0.0-beta.6.
Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@11ty/eleventy-img&package-manager=npm_and_yarn&previous-version=5.0.0-beta.5&new-version=5.0.0-beta.6)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index bc001a560..68e1e845e 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ }, "devDependencies": { "@11ty/eleventy": "3.0.0-alpha.17", - "@11ty/eleventy-img": "5.0.0-beta.5", + "@11ty/eleventy-img": "5.0.0-beta.6", "firebase-tools": "^13.13.3", "hast-util-from-html": "^2.0.1", "hast-util-select": "^6.0.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 84cbfb1a8..e185eda67 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -16,8 +16,8 @@ importers: specifier: 3.0.0-alpha.17 version: 3.0.0-alpha.17 '@11ty/eleventy-img': - specifier: 5.0.0-beta.5 - version: 5.0.0-beta.5(encoding@0.1.13) + specifier: 5.0.0-beta.6 + version: 5.0.0-beta.6(encoding@0.1.13) firebase-tools: specifier: ^13.13.3 version: 13.13.3(encoding@0.1.13) @@ -78,8 +78,8 @@ packages: resolution: {integrity: sha512-yIiLM5ziBmg86i4TlXpBdcIygJHvh/GgPJyAiFOckO9H4y9cQDM8eIcJCUQ4Mum0NEVui/OjhEut2R08xw0vlQ==} engines: {node: '>=14'} - '@11ty/eleventy-img@5.0.0-beta.5': - resolution: {integrity: sha512-ilu/4DZIPhZiRfn1IikPGurBBpt1M++w75HTQNJMGuK+DmjxRe1HoAOc756xteXOdu7m/hUmUAoRoTkOZHEsFA==} + '@11ty/eleventy-img@5.0.0-beta.6': + resolution: {integrity: sha512-IrzDG+fGqAo3QGlLKVRvXZtyqzslrABacyVxugtBH2LS/vO/hp6pjdty9AwmhCmb+Tao3Ao9pa7WsXp2hthlig==} engines: {node: '>=18'} '@11ty/eleventy-plugin-bundle@2.0.2': @@ -3038,7 +3038,7 @@ snapshots: - encoding - supports-color - '@11ty/eleventy-img@5.0.0-beta.5(encoding@0.1.13)': + '@11ty/eleventy-img@5.0.0-beta.6(encoding@0.1.13)': dependencies: '@11ty/eleventy-fetch': 4.0.1(encoding@0.1.13) '@11ty/eleventy-utils': 1.0.3 From 783546e76ef48acbc9ea4408e89d126da0e598d5 Mon Sep 17 00:00:00 2001 From: Anthony Sansone Date: Thu, 18 Jul 2024 11:27:53 -0500 Subject: [PATCH 67/95] Fix ref to two-column display (#5955) Fixes #5626 --- src/content/libraries/async/async-await.md | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) diff --git a/src/content/libraries/async/async-await.md b/src/content/libraries/async/async-await.md index 82dab7e85..1510e665a 100644 --- a/src/content/libraries/async/async-await.md +++ b/src/content/libraries/async/async-await.md @@ -277,10 +277,6 @@ The only differences are highlighted in the asynchronous example, which—if your window is wide enough—is to the right of the synchronous example. -
-
-
- #### Example: synchronous functions @@ -306,11 +302,11 @@ void main() { ```plaintext Fetching user order... -Your order is: Instance of '_Future' +Your order is: Instance of 'Future' ``` -
-
+As shown in following two examples, +it operates like synchronous code. #### Example: asynchronous functions @@ -340,10 +336,6 @@ Fetching user order... Your order is: Large Latte ``` -
-
-
- The asynchronous example is different in three ways: * The return type for `createOrderMessage()` changes @@ -435,10 +427,6 @@ which are provided for you: #### Part 1: `reportUserRole()` Add code to the `reportUserRole()` function so that it does the following: -{% comment %} - Some bulleted items are intentionally lacking punctuation to avoid - confusing the users about characters in string values -{% endcomment -%} * Returns a future that completes with the following string: `"User role: "` From c0459c6efe1a84d60c69602a565e0b618746bc8e Mon Sep 17 00:00:00 2001 From: Anthony Sansone Date: Thu, 18 Jul 2024 15:36:34 -0500 Subject: [PATCH 68/95] Add lint info to Async (#5956) Fixes #5740 --------- Co-authored-by: Marya <111139605+MaryaBelanger@users.noreply.github.com> --- src/content/libraries/async/async-await.md | 35 ++++++++++++++++++++-- 1 file changed, 33 insertions(+), 2 deletions(-) diff --git a/src/content/libraries/async/async-await.md b/src/content/libraries/async/async-await.md index 1510e665a..9aa4f293b 100644 --- a/src/content/libraries/async/async-await.md +++ b/src/content/libraries/async/async-await.md @@ -16,6 +16,10 @@ To get the most out of this tutorial, you should have the following: * Knowledge of [basic Dart syntax](/language). * Some experience writing asynchronous code in another language. +* The [`discarded_futures`][] and [`unawaited_futures`][] lints enabled. + +[`discarded_futures`]: /tools/linter-rules/discarded_futures +[`unawaited_futures`]: /tools/linter-rules/unawaited_futures This tutorial covers the following material: @@ -423,7 +427,6 @@ which are provided for you: {:.table .table-striped}
- #### Part 1: `reportUserRole()` Add code to the `reportUserRole()` function so that it does the following: @@ -435,7 +438,7 @@ Add code to the `reportUserRole()` function so that it does the following: * Example return value: `"User role: tester"` * Gets the user role by calling the provided function `fetchRole()`. -#### Part 2: `reportLogins()` +#### Part 2: `reportLogins()` Implement an `async` function `reportLogins()` so that it does the following: @@ -1064,6 +1067,34 @@ bool _logoutSucceeds = false; +<<<<<<< HEAD +## Which lints work for futures? + +<<<<<<< HEAD +To catch common mistakes that arise while working with async and futures, +[enable](/tools/analysis#individual-rules) the following lints: + +* [`discarded_futures`][] +* [`unawaited_futures`][] + + +[`discarded_futures`]: /tools/linter-rules/discarded_futures +[`unawaited_futures`]: /tools/linter-rules/unawaited_futures +======= +In real-world scenarios, enable the following two lints to help with +futures. + +* [discarded_futures][] +* [unawaited_futures][] + +By default, these lints aren't enabled. + +[discarded_futures]: /tools/linter-rules/discarded_futures +[unawaited_futures]: /tools/linter-rules/unawaited_futures +>>>>>>> 456eff32 (Add lint info to Async) + +======= +>>>>>>> 69bbec41 (Move lint mention to top) ## What's next? Congratulations, you've finished the tutorial! If you'd like to learn more, here From 67e125f5142fffd77ee7e451985d21f6c809e613 Mon Sep 17 00:00:00 2001 From: Khanh Nguyen Date: Fri, 19 Jul 2024 18:14:29 -0400 Subject: [PATCH 69/95] Update async-await.md (#5984) remove merge conflict artifacts as noted in: https://github.com/dart-lang/site-www/pull/5956#issuecomment-2237730138 --- src/content/libraries/async/async-await.md | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/src/content/libraries/async/async-await.md b/src/content/libraries/async/async-await.md index 9aa4f293b..3645f2d8d 100644 --- a/src/content/libraries/async/async-await.md +++ b/src/content/libraries/async/async-await.md @@ -1067,34 +1067,17 @@ bool _logoutSucceeds = false; -<<<<<<< HEAD ## Which lints work for futures? -<<<<<<< HEAD To catch common mistakes that arise while working with async and futures, [enable](/tools/analysis#individual-rules) the following lints: * [`discarded_futures`][] * [`unawaited_futures`][] - [`discarded_futures`]: /tools/linter-rules/discarded_futures [`unawaited_futures`]: /tools/linter-rules/unawaited_futures -======= -In real-world scenarios, enable the following two lints to help with -futures. - -* [discarded_futures][] -* [unawaited_futures][] - -By default, these lints aren't enabled. - -[discarded_futures]: /tools/linter-rules/discarded_futures -[unawaited_futures]: /tools/linter-rules/unawaited_futures ->>>>>>> 456eff32 (Add lint info to Async) -======= ->>>>>>> 69bbec41 (Move lint mention to top) ## What's next? Congratulations, you've finished the tutorial! If you'd like to learn more, here From 634f71bee49bf9b45ed9b0027da025991e7bf5a4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 22 Jul 2024 15:56:27 -0500 Subject: [PATCH 70/95] Bump shiki from 1.10.3 to 1.11.0 (#5987) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [shiki](https://github.com/shikijs/shiki/tree/HEAD/packages/shiki) from 1.10.3 to 1.11.0.
Release notes

Sourced from shiki's releases.

v1.11.0

   🚀 Features

    View changes on GitHub
Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=shiki&package-manager=npm_and_yarn&previous-version=1.10.3&new-version=1.11.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index 68e1e845e..f92502332 100644 --- a/package.json +++ b/package.json @@ -37,6 +37,6 @@ "markdown-it-deflist": "^3.0.0", "markdown-it-table": "^4.1.1", "sass": "^1.77.8", - "shiki": "^1.10.3" + "shiki": "^1.11.0" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e185eda67..2bb7caad9 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -58,8 +58,8 @@ importers: specifier: ^1.77.8 version: 1.77.8 shiki: - specifier: ^1.10.3 - version: 1.10.3 + specifier: ^1.11.0 + version: 1.11.0 packages: @@ -378,8 +378,8 @@ packages: '@protobufjs/utf8@1.1.0': resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} - '@shikijs/core@1.10.3': - resolution: {integrity: sha512-D45PMaBaeDHxww+EkcDQtDAtzv00Gcsp72ukBtaLSmqRvh0WgGMq3Al0rl1QQBZfuneO75NXMIzEZGFitThWbg==} + '@shikijs/core@1.11.0': + resolution: {integrity: sha512-VbEhDAhT/2ozO0TPr5/ZQBO/NWLqtk4ZiBf6NplYpF38mKjNfMMied5fNEfIfYfN+cdKvhDB4VMcKvG/g9c3zg==} '@sindresorhus/slugify@2.2.1': resolution: {integrity: sha512-MkngSCRZ8JdSOCHRaYd+D01XhvU3Hjy6MGl06zhOk614hp9EOAp5gIkBeQg7wtmxpitU6eAL4kdiRMcJa2dlrw==} @@ -2561,8 +2561,8 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} - shiki@1.10.3: - resolution: {integrity: sha512-eneCLncGuvPdTutJuLyUGS8QNPAVFO5Trvld2wgEq1e002mwctAhJKeMGWtWVXOIEzmlcLRqcgPSorR6AVzOmQ==} + shiki@1.11.0: + resolution: {integrity: sha512-NqH/O1zRHvnuk/WfSL6b7+DtI7/kkMMSQGlZhm9DyzSU+SoIHhaw/fBZMr+zp9R8KjdIzkk3JKSC6hORuGDyng==} side-channel@1.0.6: resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} @@ -3391,7 +3391,7 @@ snapshots: '@protobufjs/utf8@1.1.0': {} - '@shikijs/core@1.10.3': + '@shikijs/core@1.11.0': dependencies: '@types/hast': 3.0.4 @@ -5859,9 +5859,9 @@ snapshots: shebang-regex@3.0.0: {} - shiki@1.10.3: + shiki@1.11.0: dependencies: - '@shikijs/core': 1.10.3 + '@shikijs/core': 1.11.0 '@types/hast': 3.0.4 side-channel@1.0.6: From 4ff6595c4a55ba4ef63157fb194526028a8e7e81 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 22 Jul 2024 15:56:51 -0500 Subject: [PATCH 71/95] Bump @11ty/eleventy-img from 5.0.0-beta.6 to 5.0.0-beta.7 (#5981) Bumps [@11ty/eleventy-img](https://github.com/11ty/eleventy-img) from 5.0.0-beta.6 to 5.0.0-beta.7.
Commits
  • 3317a03 v5.0.0-beta.7
  • 81e5eeb Error message test on transform method.
  • eca00cc Skip out early if missing a src attribute in transform method.
  • See full diff in compare view

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@11ty/eleventy-img&package-manager=npm_and_yarn&previous-version=5.0.0-beta.6&new-version=5.0.0-beta.7)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index f92502332..43b812854 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ }, "devDependencies": { "@11ty/eleventy": "3.0.0-alpha.17", - "@11ty/eleventy-img": "5.0.0-beta.6", + "@11ty/eleventy-img": "5.0.0-beta.7", "firebase-tools": "^13.13.3", "hast-util-from-html": "^2.0.1", "hast-util-select": "^6.0.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2bb7caad9..d3887a834 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -16,8 +16,8 @@ importers: specifier: 3.0.0-alpha.17 version: 3.0.0-alpha.17 '@11ty/eleventy-img': - specifier: 5.0.0-beta.6 - version: 5.0.0-beta.6(encoding@0.1.13) + specifier: 5.0.0-beta.7 + version: 5.0.0-beta.7(encoding@0.1.13) firebase-tools: specifier: ^13.13.3 version: 13.13.3(encoding@0.1.13) @@ -78,8 +78,8 @@ packages: resolution: {integrity: sha512-yIiLM5ziBmg86i4TlXpBdcIygJHvh/GgPJyAiFOckO9H4y9cQDM8eIcJCUQ4Mum0NEVui/OjhEut2R08xw0vlQ==} engines: {node: '>=14'} - '@11ty/eleventy-img@5.0.0-beta.6': - resolution: {integrity: sha512-IrzDG+fGqAo3QGlLKVRvXZtyqzslrABacyVxugtBH2LS/vO/hp6pjdty9AwmhCmb+Tao3Ao9pa7WsXp2hthlig==} + '@11ty/eleventy-img@5.0.0-beta.7': + resolution: {integrity: sha512-NUWXXYkMKBkSA0L+yaBtdCCpyxtZfPJYNrZXwmLZ0ry+C6lLmk2YWIy5i+2dkovqbqLvWlKd5tmusn56N8mKUA==} engines: {node: '>=18'} '@11ty/eleventy-plugin-bundle@2.0.2': @@ -3038,7 +3038,7 @@ snapshots: - encoding - supports-color - '@11ty/eleventy-img@5.0.0-beta.6(encoding@0.1.13)': + '@11ty/eleventy-img@5.0.0-beta.7(encoding@0.1.13)': dependencies: '@11ty/eleventy-fetch': 4.0.1(encoding@0.1.13) '@11ty/eleventy-utils': 1.0.3 From 5cbb0c4d4cca0614ccf756c164f75bb3b059ed37 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 22 Jul 2024 15:57:13 -0500 Subject: [PATCH 72/95] Bump github/codeql-action from 3.25.12 to 3.25.13 (#5986) Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.25.12 to 3.25.13.
Changelog

Sourced from github/codeql-action's changelog.

CodeQL Action Changelog

See the releases page for the relevant changes to the CodeQL CLI and language packs.

Note that the only difference between v2 and v3 of the CodeQL Action is the node version they support, with v3 running on node 20 while we continue to release v2 to support running on node 16. For example 3.22.11 was the first v3 release and is functionally identical to 2.22.11. This approach ensures an easy way to track exactly which features are included in different versions, indicated by the minor and patch version numbers.

[UNRELEASED]

No user facing changes.

3.25.13 - 19 Jul 2024

  • Add codeql-version to outputs. #2368
  • Add a deprecation warning for customers using CodeQL version 2.13.4 and earlier. These versions of CodeQL were discontinued on 9 July 2024 alongside GitHub Enterprise Server 3.9, and will be unsupported by CodeQL Action versions 3.26.0 and later and versions 2.26.0 and later. #2375
    • If you are using one of these versions, please update to CodeQL CLI version 2.13.5 or later. For instance, if you have specified a custom version of the CLI using the 'tools' input to the 'init' Action, you can remove this input to use the default version.
    • Alternatively, if you want to continue using a version of the CodeQL CLI between 2.12.6 and 2.13.4, you can replace github/codeql-action/*@v3 by github/codeql-action/*@v3.25.13 and github/codeql-action/*@v2 by github/codeql-action/*@v2.25.13 in your code scanning workflow to ensure you continue using this version of the CodeQL Action.

3.25.12 - 12 Jul 2024

  • Improve the reliability and performance of analyzing code when analyzing a compiled language with the autobuild build mode on GitHub Enterprise Server. This feature is already available to GitHub.com users. #2353
  • Update default CodeQL bundle version to 2.18.0. #2364

3.25.11 - 28 Jun 2024

  • Avoid failing the workflow run if there is an error while uploading debug artifacts. #2349
  • Update default CodeQL bundle version to 2.17.6. #2352

3.25.10 - 13 Jun 2024

  • Update default CodeQL bundle version to 2.17.5. #2327

3.25.9 - 12 Jun 2024

  • Avoid failing database creation if the database folder already exists and contains some unexpected files. Requires CodeQL 2.18.0 or higher. #2330
  • The init Action will attempt to clean up the database cluster directory before creating a new database and at the end of the job. This will help to avoid issues where the database cluster directory is left in an inconsistent state. #2332

3.25.8 - 04 Jun 2024

  • Update default CodeQL bundle version to 2.17.4. #2321

3.25.7 - 31 May 2024

  • We are rolling out a feature in May/June 2024 that will reduce the Actions cache usage of the Action by keeping only the newest TRAP cache for each language. #2306

3.25.6 - 20 May 2024

  • Update default CodeQL bundle version to 2.17.3. #2295

3.25.5 - 13 May 2024

... (truncated)

Commits
  • 2d79040 Merge pull request #2379 from github/update-v3.25.13-270a29d1c
  • 232a8bc Update changelog for v3.25.13
  • 270a29d Merge pull request #2375 from github/update-supported-enterprise-server-versions
  • 58f46da Add changelog note
  • f216681 Announce deprecation of CodeQL v2.13.4 and earlier
  • 8e14792 Merge pull request #2374 from github/aeisenberg/eslint
  • e6663d9 Update supported GitHub Enterprise Server versions
  • 455bd98 Update checked-in dependencies
  • 778c2bc Fix eslint configuration
  • 3cf7236 Migrate to eslint.config.mjs
  • Additional commits viewable in compare view

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github/codeql-action&package-manager=github_actions&previous-version=3.25.12&new-version=3.25.13)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/codeql-analysis.yml | 6 +++--- .github/workflows/scorecards-analysis.yml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 07d9133c4..c770d102d 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -33,7 +33,7 @@ jobs: # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL - uses: github/codeql-action/init@4fa2a7953630fd2f3fb380f21be14ede0169dd4f + uses: github/codeql-action/init@2d790406f505036ef40ecba973cc774a50395aac with: languages: ${{ matrix.language }} # If you wish to specify custom queries, you can do so here or in a config file. @@ -44,7 +44,7 @@ jobs: # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). # If this step fails, then you should remove it and run the build manually (see below) - name: Autobuild - uses: github/codeql-action/autobuild@4fa2a7953630fd2f3fb380f21be14ede0169dd4f + uses: github/codeql-action/autobuild@2d790406f505036ef40ecba973cc774a50395aac # ℹ️ Command-line programs to run using the OS shell. # 📚 https://git.io/JvXDl @@ -58,4 +58,4 @@ jobs: # make release - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@4fa2a7953630fd2f3fb380f21be14ede0169dd4f + uses: github/codeql-action/analyze@2d790406f505036ef40ecba973cc774a50395aac diff --git a/.github/workflows/scorecards-analysis.yml b/.github/workflows/scorecards-analysis.yml index b6cab8ce4..83af06e8a 100644 --- a/.github/workflows/scorecards-analysis.yml +++ b/.github/workflows/scorecards-analysis.yml @@ -49,6 +49,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@4fa2a7953630fd2f3fb380f21be14ede0169dd4f + uses: github/codeql-action/upload-sarif@2d790406f505036ef40ecba973cc774a50395aac with: sarif_file: results.sarif From 695a3f59e8455db39ed8cce5b1105167c9b6840c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 24 Jul 2024 11:00:54 -0500 Subject: [PATCH 73/95] Bump shiki from 1.11.0 to 1.11.1 (#5992) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [shiki](https://github.com/shikijs/shiki/tree/HEAD/packages/shiki) from 1.11.0 to 1.11.1.
Release notes

Sourced from shiki's releases.

v1.11.1

   🐞 Bug Fixes

    View changes on GitHub
Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=shiki&package-manager=npm_and_yarn&previous-version=1.11.0&new-version=1.11.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index 43b812854..61c9b08d7 100644 --- a/package.json +++ b/package.json @@ -37,6 +37,6 @@ "markdown-it-deflist": "^3.0.0", "markdown-it-table": "^4.1.1", "sass": "^1.77.8", - "shiki": "^1.11.0" + "shiki": "^1.11.1" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d3887a834..7ea1aca4a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -58,8 +58,8 @@ importers: specifier: ^1.77.8 version: 1.77.8 shiki: - specifier: ^1.11.0 - version: 1.11.0 + specifier: ^1.11.1 + version: 1.11.1 packages: @@ -378,8 +378,8 @@ packages: '@protobufjs/utf8@1.1.0': resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} - '@shikijs/core@1.11.0': - resolution: {integrity: sha512-VbEhDAhT/2ozO0TPr5/ZQBO/NWLqtk4ZiBf6NplYpF38mKjNfMMied5fNEfIfYfN+cdKvhDB4VMcKvG/g9c3zg==} + '@shikijs/core@1.11.1': + resolution: {integrity: sha512-Qsn8h15SWgv5TDRoDmiHNzdQO2BxDe86Yq6vIHf5T0cCvmfmccJKIzHtep8bQO9HMBZYCtCBzaXdd1MnxZBPSg==} '@sindresorhus/slugify@2.2.1': resolution: {integrity: sha512-MkngSCRZ8JdSOCHRaYd+D01XhvU3Hjy6MGl06zhOk614hp9EOAp5gIkBeQg7wtmxpitU6eAL4kdiRMcJa2dlrw==} @@ -2561,8 +2561,8 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} - shiki@1.11.0: - resolution: {integrity: sha512-NqH/O1zRHvnuk/WfSL6b7+DtI7/kkMMSQGlZhm9DyzSU+SoIHhaw/fBZMr+zp9R8KjdIzkk3JKSC6hORuGDyng==} + shiki@1.11.1: + resolution: {integrity: sha512-VHD3Q0EBXaaa245jqayBe5zQyMQUdXBFjmGr9MpDaDpAKRMYn7Ff00DM5MLk26UyKjnml3yQ0O2HNX7PtYVNFQ==} side-channel@1.0.6: resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} @@ -3391,7 +3391,7 @@ snapshots: '@protobufjs/utf8@1.1.0': {} - '@shikijs/core@1.11.0': + '@shikijs/core@1.11.1': dependencies: '@types/hast': 3.0.4 @@ -5859,9 +5859,9 @@ snapshots: shebang-regex@3.0.0: {} - shiki@1.11.0: + shiki@1.11.1: dependencies: - '@shikijs/core': 1.11.0 + '@shikijs/core': 1.11.1 '@types/hast': 3.0.4 side-channel@1.0.6: From b22a27e07bfcaaa8293c115239ce33ac95a7db0d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 24 Jul 2024 11:01:17 -0500 Subject: [PATCH 74/95] Bump firebase-tools from 13.13.3 to 13.14.0 (#5991) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [firebase-tools](https://github.com/firebase/firebase-tools) from 13.13.3 to 13.14.0.
Release notes

Sourced from firebase-tools's releases.

v13.14.0

  • Cleans up App Hosting's GitHub integration UX. "Add an account" flow now goes directly to GitHub instead of using Developer Connect. (#7405)
  • Fix an issue where refresh_tokens would be used before checking whether they were expired. (#7442)
  • firebase init dataconnect now can pull down deployed GQL files.
  • Improved detection of 'dataconnect.yaml' when not in project root.
  • GitHub Action fixes for web frameworks (#6883)
  • Fixes issue where PubSub message publishTime is set to 1970-01-01T00:00:00 (#7441)
  • Display meaningful error message when cannot determine target. (#6594)
  • Adds support for firealerts events in Eventarc emulator. (#7355)
  • Released version firebase-tools-ui@1.13.0, which adds Emulator UI support for firealerts events.
  • Improved errors when an incorrect service ID is passed to firebase deploy --only dataconnect:serviceId.
  • Fixed display of errors in Firestore commands when using JSON or noninteractive modes. (#7482)
  • Fixed an issue where Firestore backup schedule commands had invalid short option names. (#7481)
  • Bumps the Firebase Data Connect local toolkit to v1.3.0, which adds Swift SDK, @​index, @​unique, and batch insert support. (#7486)
Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=firebase-tools&package-manager=npm_and_yarn&previous-version=13.13.3&new-version=13.14.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index 61c9b08d7..49e8345e3 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ "devDependencies": { "@11ty/eleventy": "3.0.0-alpha.17", "@11ty/eleventy-img": "5.0.0-beta.7", - "firebase-tools": "^13.13.3", + "firebase-tools": "^13.14.0", "hast-util-from-html": "^2.0.1", "hast-util-select": "^6.0.2", "hast-util-to-text": "^4.0.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7ea1aca4a..ada61b51f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -19,8 +19,8 @@ importers: specifier: 5.0.0-beta.7 version: 5.0.0-beta.7(encoding@0.1.13) firebase-tools: - specifier: ^13.13.3 - version: 13.13.3(encoding@0.1.13) + specifier: ^13.14.0 + version: 13.14.0(encoding@0.1.13) hast-util-from-html: specifier: ^2.0.1 version: 2.0.1 @@ -566,8 +566,8 @@ packages: resolution: {integrity: sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==} engines: {node: '>=4'} - async-lock@1.3.2: - resolution: {integrity: sha512-phnXdS3RP7PPcmP6NWWzWMU0sLTeyvtZCxBPpZdkYE3seGLKSQZs9FrmVO/qwypq98FUtWWUEYxziLkdGk5nnA==} + async-lock@1.4.1: + resolution: {integrity: sha512-Az2ZTpuytrtqENulXwO3GGv1Bztugx6TT37NIo7imr/Qo0gsYiGtSdBa2B6fsXhTpVZDNfu1Qn3pk531e3q+nQ==} async@2.6.4: resolution: {integrity: sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==} @@ -1229,8 +1229,8 @@ packages: resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} engines: {node: '>= 0.8'} - firebase-tools@13.13.3: - resolution: {integrity: sha512-xTlaEhIGkfsMPsJkvjir/AeOQryuRTcoXSlqJO2CZR+IzZCoYPMHO8zMKwEIc1ZEb6nYdRl14gjM8DpGCRpm2A==} + firebase-tools@13.14.0: + resolution: {integrity: sha512-W1682Rl9WpEI20ustis7mO/jxW3uhQD6LcoXcdp5v8u8l490s3XRI7mGx3PJUgJi1RrnBwTyM8Hm5Q1xXvS/Og==} engines: {node: '>=18.0.0 || >=20.0.0'} hasBin: true @@ -3577,7 +3577,7 @@ snapshots: dependencies: tslib: 2.6.3 - async-lock@1.3.2: {} + async-lock@1.4.1: {} async@2.6.4: dependencies: @@ -4288,14 +4288,14 @@ snapshots: transitivePeerDependencies: - supports-color - firebase-tools@13.13.3(encoding@0.1.13): + firebase-tools@13.14.0(encoding@0.1.13): dependencies: '@google-cloud/cloud-sql-connector': 1.3.3(encoding@0.1.13) '@google-cloud/pubsub': 4.5.0(encoding@0.1.13) abort-controller: 3.0.0 ajv: 6.12.6 archiver: 7.0.1 - async-lock: 1.3.2 + async-lock: 1.4.1 body-parser: 1.20.2 chokidar: 3.6.0 cjson: 0.3.3 From de9b9aa31a67a80664570ee67b7cb09959853ea4 Mon Sep 17 00:00:00 2001 From: Mohellebi abdessalem Date: Wed, 24 Jul 2024 18:17:50 +0100 Subject: [PATCH 75/95] Update mixins.md (#5983) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit correct two simple typos in the SingerDancer class name and the performerMethod method usage in the main method Fixes #5982 --- - [x] I’ve reviewed the contributor guide and applied the relevant portions to this PR. - [x] This PR doesn't contain automatically generated corrections or text (Grammarly, LLMs, and similar). - [x] This PR follows the [Google Developer Documentation Style Guidelines](https://developers.google.com/style) — for example, it doesn't use _i.e._ or _e.g._, and it avoids _I_ and _we_ (first person). - [x] This PR uses [semantic line breaks](https://github.com/dart-lang/site-shared/blob/main/doc/writing-for-dart-and-flutter-websites.md#semantic-line-breaks) of 80 characters or fewer.
Contribution guidelines:
- See our [contributor guide](https://github.com/dart-lang/site-www/blob/main/CONTRIBUTING.md) for general expectations for PRs. - Larger or significant changes should be discussed in an issue before creating a PR. - Code changes should generally follow the [Dart style guide](https://dart.dev/effective-dart) and use `dart format`. - Updates to [code excerpts](https://github.com/dart-lang/site-shared/blob/main/doc/code-excerpts.md) indicated by ` --- src/content/language/mixins.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/content/language/mixins.md b/src/content/language/mixins.md index a9dd3876e..423506d6b 100644 --- a/src/content/language/mixins.md +++ b/src/content/language/mixins.md @@ -160,7 +160,7 @@ class Musician { } mixin MusicalPerformer [!on Musician!] { - perfomerMethod() { + performerMethod() { print('Performing music!'); super.musicianMethod(); } @@ -169,7 +169,7 @@ mixin MusicalPerformer [!on Musician!] { class SingerDancer extends Musician with MusicalPerformer { } main() { - SingerDance().performerMethod(); + SingerDancer().performerMethod(); } ``` From 26f324004f0ee5c4efc2342dc8623c4bfd6d7d28 Mon Sep 17 00:00:00 2001 From: Jonas Finnemann Jensen Date: Wed, 24 Jul 2024 19:18:38 +0200 Subject: [PATCH 76/95] Fix missing whitespace (#5990) Looks like we're missing a space: ![image](https://github.com/user-attachments/assets/7f1b5aa1-291c-4b22-a0c6-f37e2711f9f2) --- src/content/tools/pub/publishing.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/content/tools/pub/publishing.md b/src/content/tools/pub/publishing.md index da46a8d2e..0aab4919f 100644 --- a/src/content/tools/pub/publishing.md +++ b/src/content/tools/pub/publishing.md @@ -511,7 +511,7 @@ Once you discontinue a package, the package will: To mark a package as discontinued: 1. Sign in to pub.dev using a Google Account with uploader or - [verified publisher][]permissions for the package. + [verified publisher][] permissions for the package. 1. Navigate to the package's **Admin** tab. From d01aa9c9d537e2523b620f9f37d842e4c81eebe4 Mon Sep 17 00:00:00 2001 From: Neko_tail <72864195+neko-tail@users.noreply.github.com> Date: Thu, 25 Jul 2024 03:09:27 +0800 Subject: [PATCH 77/95] Update functions.md (#5989) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Thanks for your contribution! Please replace this text with a description of what this PR is changing or adding and why, list any relevant issues, and review the contribution guidelines below. remove extra `]` symbol --- - [ ] I’ve reviewed the contributor guide and applied the relevant portions to this PR. - [ ] This PR doesn't contain automatically generated corrections or text (Grammarly, LLMs, and similar). - [ ] This PR follows the [Google Developer Documentation Style Guidelines](https://developers.google.com/style) — for example, it doesn't use _i.e._ or _e.g._, and it avoids _I_ and _we_ (first person). - [ ] This PR uses [semantic line breaks](https://github.com/dart-lang/site-shared/blob/main/doc/writing-for-dart-and-flutter-websites.md#semantic-line-breaks) of 80 characters or fewer.
Contribution guidelines:
- See our [contributor guide](https://github.com/dart-lang/site-www/blob/main/CONTRIBUTING.md) for general expectations for PRs. - Larger or significant changes should be discussed in an issue before creating a PR. - Code changes should generally follow the [Dart style guide](https://dart.dev/effective-dart) and use `dart format`. - Updates to [code excerpts](https://github.com/dart-lang/site-shared/blob/main/doc/code-excerpts.md) indicated by ` Co-authored-by: Anthony Sansone --- src/content/language/functions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/content/language/functions.md b/src/content/language/functions.md index 2c14ab131..26bc8e17a 100644 --- a/src/content/language/functions.md +++ b/src/content/language/functions.md @@ -280,7 +280,7 @@ An anonymous function resembles a named function as it has: The following code block contains the function's body: ```dart -([[Type]] param1[, ...]]) { +([[Type] param1[, ...]]) { codeBlock; } ``` From 4b00f6380f1be629cc4a77453e61725ce8183d08 Mon Sep 17 00:00:00 2001 From: Nate Bosch Date: Wed, 24 Jul 2024 12:31:16 -0700 Subject: [PATCH 78/95] Add section on conflicting superinterfaces (#5828) Towards #562 Add a section discussing conflicting superinterfaces to the common problems document. The issue discusses the restrictions around both consistent member signatures and consistent generics. An example is given only for the latter. --- .../lib/common_fixes_analysis.dart | 12 ++++++++ src/content/guides/language/sound-problems.md | 29 +++++++++++++++++++ 2 files changed, 41 insertions(+) diff --git a/examples/type_system/lib/common_fixes_analysis.dart b/examples/type_system/lib/common_fixes_analysis.dart index b04b730b7..68d168a0d 100644 --- a/examples/type_system/lib/common_fixes_analysis.dart +++ b/examples/type_system/lib/common_fixes_analysis.dart @@ -149,3 +149,15 @@ void infFix() { ints.fold(null, (a, b) => a == null || a < b ? b : a); // #enddocregion type-inf-fix } + +//----------------------------------------------- + +// #docregion compatible-generics +abstract class C implements List {} +// #enddocregion compatible-generics + +// #docregion conflicting-generics +// ignore: inconsistent_inheritance, conflicting_generic_interfaces, +// ignore: duplicate_definition +abstract class C implements List, Iterable {} +// #enddocregion conflicting-generics diff --git a/src/content/guides/language/sound-problems.md b/src/content/guides/language/sound-problems.md index 55be573cf..9fef4138a 100644 --- a/src/content/guides/language/sound-problems.md +++ b/src/content/guides/language/sound-problems.md @@ -494,6 +494,35 @@ var maximumOrNull =
+### Conflicting Superinterfaces + +A class which `implements` more than one superinterface must be able to +implement valid overrides for every member of every superinterface. +Each member with a given name requires compatible signatures across the +superinterfaces. + +Superinterfaces must not include conflicting generics. +A class can't implement both `C` and `C`, including indirect +superinterfaces. + +#### Example + +In the following code, +class `C` has conflicting generic interfaces. +Definitions of valid overrides for some members would be impossible. + + +```dart tag=fails-sa +abstract class C implements List, Iterable {} +``` + +#### Fix: Use consistent generics or avoid repeating transitive interfaces + + +```dart tag=passes-sa +abstract class C implements List {} +``` + ## Runtime errors From 1cfc8f399641e811287e2556bfae01908a17b2e1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 25 Jul 2024 22:47:04 -0500 Subject: [PATCH 79/95] Bump github/codeql-action from 3.25.13 to 3.25.14 (#5993) --- .github/workflows/codeql-analysis.yml | 6 +++--- .github/workflows/scorecards-analysis.yml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index c770d102d..1d10fe1f4 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -33,7 +33,7 @@ jobs: # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL - uses: github/codeql-action/init@2d790406f505036ef40ecba973cc774a50395aac + uses: github/codeql-action/init@5cf07d8b700b67e235fbb65cbc84f69c0cf10464 with: languages: ${{ matrix.language }} # If you wish to specify custom queries, you can do so here or in a config file. @@ -44,7 +44,7 @@ jobs: # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). # If this step fails, then you should remove it and run the build manually (see below) - name: Autobuild - uses: github/codeql-action/autobuild@2d790406f505036ef40ecba973cc774a50395aac + uses: github/codeql-action/autobuild@5cf07d8b700b67e235fbb65cbc84f69c0cf10464 # ℹ️ Command-line programs to run using the OS shell. # 📚 https://git.io/JvXDl @@ -58,4 +58,4 @@ jobs: # make release - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@2d790406f505036ef40ecba973cc774a50395aac + uses: github/codeql-action/analyze@5cf07d8b700b67e235fbb65cbc84f69c0cf10464 diff --git a/.github/workflows/scorecards-analysis.yml b/.github/workflows/scorecards-analysis.yml index 83af06e8a..a6c179367 100644 --- a/.github/workflows/scorecards-analysis.yml +++ b/.github/workflows/scorecards-analysis.yml @@ -49,6 +49,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@2d790406f505036ef40ecba973cc774a50395aac + uses: github/codeql-action/upload-sarif@5cf07d8b700b67e235fbb65cbc84f69c0cf10464 with: sarif_file: results.sarif From 79c95682ba0a3ac2113fb04b73d9b06d2280a2cd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 26 Jul 2024 13:29:24 -0500 Subject: [PATCH 80/95] Bump @11ty/eleventy-img from 5.0.0-beta.7 to 5.0.0-beta.8 (#5996) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [@11ty/eleventy-img](https://github.com/11ty/eleventy-img) from 5.0.0-beta.7 to 5.0.0-beta.8.
Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@11ty/eleventy-img&package-manager=npm_and_yarn&previous-version=5.0.0-beta.7&new-version=5.0.0-beta.8)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 18 ++++++++++++------ 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index 49e8345e3..231200271 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ }, "devDependencies": { "@11ty/eleventy": "3.0.0-alpha.17", - "@11ty/eleventy-img": "5.0.0-beta.7", + "@11ty/eleventy-img": "5.0.0-beta.8", "firebase-tools": "^13.14.0", "hast-util-from-html": "^2.0.1", "hast-util-select": "^6.0.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ada61b51f..8569e0dc6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -16,8 +16,8 @@ importers: specifier: 3.0.0-alpha.17 version: 3.0.0-alpha.17 '@11ty/eleventy-img': - specifier: 5.0.0-beta.7 - version: 5.0.0-beta.7(encoding@0.1.13) + specifier: 5.0.0-beta.8 + version: 5.0.0-beta.8(encoding@0.1.13) firebase-tools: specifier: ^13.14.0 version: 13.14.0(encoding@0.1.13) @@ -78,8 +78,8 @@ packages: resolution: {integrity: sha512-yIiLM5ziBmg86i4TlXpBdcIygJHvh/GgPJyAiFOckO9H4y9cQDM8eIcJCUQ4Mum0NEVui/OjhEut2R08xw0vlQ==} engines: {node: '>=14'} - '@11ty/eleventy-img@5.0.0-beta.7': - resolution: {integrity: sha512-NUWXXYkMKBkSA0L+yaBtdCCpyxtZfPJYNrZXwmLZ0ry+C6lLmk2YWIy5i+2dkovqbqLvWlKd5tmusn56N8mKUA==} + '@11ty/eleventy-img@5.0.0-beta.8': + resolution: {integrity: sha512-iK6TJZlPBgIHi2Y6vqnepgjxSGGvyi1MFDGlbmbRjf80ssG2ayULmerO9TpPO43XAz/HTeFVq50bLK4w4wuOXA==} engines: {node: '>=18'} '@11ty/eleventy-plugin-bundle@2.0.2': @@ -1072,6 +1072,10 @@ packages: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} + entities@5.0.0: + resolution: {integrity: sha512-BeJFvFRJddxobhvEdm5GqHzRV/X+ACeuw0/BuuxsCh1EUZcAIz8+kYmBp/LrQuloy6K1f3a0M7+IhmZ7QnkISA==} + engines: {node: '>=0.12'} + env-paths@2.2.1: resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} engines: {node: '>=6'} @@ -3038,13 +3042,13 @@ snapshots: - encoding - supports-color - '@11ty/eleventy-img@5.0.0-beta.7(encoding@0.1.13)': + '@11ty/eleventy-img@5.0.0-beta.8(encoding@0.1.13)': dependencies: '@11ty/eleventy-fetch': 4.0.1(encoding@0.1.13) '@11ty/eleventy-utils': 1.0.3 brotli-size: 4.0.0 debug: 4.3.5 - entities: 4.5.0 + entities: 5.0.0 image-size: 1.1.1 p-queue: 6.6.2 sharp: 0.33.4 @@ -4089,6 +4093,8 @@ snapshots: entities@4.5.0: {} + entities@5.0.0: {} + env-paths@2.2.1: optional: true From 16be73d0713a55eb81499f02981156036b5e1ac3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 26 Jul 2024 13:29:40 -0500 Subject: [PATCH 81/95] Bump shiki from 1.11.1 to 1.11.2 (#5997) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [shiki](https://github.com/shikijs/shiki/tree/HEAD/packages/shiki) from 1.11.1 to 1.11.2.
Release notes

Sourced from shiki's releases.

v1.11.2

   🐞 Bug Fixes

    View changes on GitHub
Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=shiki&package-manager=npm_and_yarn&previous-version=1.11.1&new-version=1.11.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index 231200271..5be035953 100644 --- a/package.json +++ b/package.json @@ -37,6 +37,6 @@ "markdown-it-deflist": "^3.0.0", "markdown-it-table": "^4.1.1", "sass": "^1.77.8", - "shiki": "^1.11.1" + "shiki": "^1.11.2" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8569e0dc6..6bde01406 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -58,8 +58,8 @@ importers: specifier: ^1.77.8 version: 1.77.8 shiki: - specifier: ^1.11.1 - version: 1.11.1 + specifier: ^1.11.2 + version: 1.11.2 packages: @@ -378,8 +378,8 @@ packages: '@protobufjs/utf8@1.1.0': resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} - '@shikijs/core@1.11.1': - resolution: {integrity: sha512-Qsn8h15SWgv5TDRoDmiHNzdQO2BxDe86Yq6vIHf5T0cCvmfmccJKIzHtep8bQO9HMBZYCtCBzaXdd1MnxZBPSg==} + '@shikijs/core@1.11.2': + resolution: {integrity: sha512-9IBY31lvOo2uhrZjqRt2wTqfqfrXJnddnIx0PFL5E8a5RQUNOhkx+PD11PogZtyrIHlL4aTYDVlb+eyryzy+pQ==} '@sindresorhus/slugify@2.2.1': resolution: {integrity: sha512-MkngSCRZ8JdSOCHRaYd+D01XhvU3Hjy6MGl06zhOk614hp9EOAp5gIkBeQg7wtmxpitU6eAL4kdiRMcJa2dlrw==} @@ -2565,8 +2565,8 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} - shiki@1.11.1: - resolution: {integrity: sha512-VHD3Q0EBXaaa245jqayBe5zQyMQUdXBFjmGr9MpDaDpAKRMYn7Ff00DM5MLk26UyKjnml3yQ0O2HNX7PtYVNFQ==} + shiki@1.11.2: + resolution: {integrity: sha512-WEHfKf+JWEKm/p8BoiE5F4m6VwV6LzY7nFfwRz0nAj+sVD1sRyWiODYScDu3Q8P/Dpi7xKe1TDJF3ZOQnhfT1g==} side-channel@1.0.6: resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} @@ -3395,7 +3395,7 @@ snapshots: '@protobufjs/utf8@1.1.0': {} - '@shikijs/core@1.11.1': + '@shikijs/core@1.11.2': dependencies: '@types/hast': 3.0.4 @@ -5865,9 +5865,9 @@ snapshots: shebang-regex@3.0.0: {} - shiki@1.11.1: + shiki@1.11.2: dependencies: - '@shikijs/core': 1.11.1 + '@shikijs/core': 1.11.2 '@types/hast': 3.0.4 side-channel@1.0.6: From a5c3e8c9ed501dec95d30c5e8ff10af5ead92590 Mon Sep 17 00:00:00 2001 From: Parker Lougheed Date: Fri, 26 Jul 2024 23:42:13 -0500 Subject: [PATCH 82/95] Mark site as documenting 3.4.4 and hide banner (#5999) --- src/_data/site.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/_data/site.yml b/src/_data/site.yml index dd4c0d9d4..a68f2cd6a 100644 --- a/src/_data/site.yml +++ b/src/_data/site.yml @@ -29,7 +29,7 @@ announce: https://groups.google.com/a/dartlang.org/g/announce android-dev: https://developer.android.com apple-dev: https://developer.apple.com -show_banner: true +show_banner: false # Increment this global og:image URL version number (used as a query parameter) # when you update any og:image file. (Also increment the corresponding number @@ -38,4 +38,4 @@ og_image_vers: "?2" sdkInfo: channel: stable - version: 3.4.1 + version: 3.4.4 From a272aa21577bba8336024eb15791dd59f25fcdee Mon Sep 17 00:00:00 2001 From: Parker Lougheed Date: Fri, 26 Jul 2024 23:42:57 -0500 Subject: [PATCH 83/95] Update pnpm and and various npm deps (#5998) --- package.json | 6 +- pnpm-lock.yaml | 167 ++++++++++++++++++++++++++----------------------- 2 files changed, 92 insertions(+), 81 deletions(-) diff --git a/package.json b/package.json index 5be035953..45bcfcb8c 100644 --- a/package.json +++ b/package.json @@ -17,14 +17,14 @@ "node": ">=20.12.0", "pnpm": ">=9.1.0" }, - "packageManager": "pnpm@9.5.0", + "packageManager": "pnpm@9.6.0", "dependencies": { "bootstrap-scss": "^4.6.2" }, "devDependencies": { "@11ty/eleventy": "3.0.0-alpha.17", "@11ty/eleventy-img": "5.0.0-beta.8", - "firebase-tools": "^13.14.0", + "firebase-tools": "^13.14.1", "hast-util-from-html": "^2.0.1", "hast-util-select": "^6.0.2", "hast-util-to-text": "^4.0.2", @@ -37,6 +37,6 @@ "markdown-it-deflist": "^3.0.0", "markdown-it-table": "^4.1.1", "sass": "^1.77.8", - "shiki": "^1.11.2" + "shiki": "^1.12.0" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6bde01406..f533d2c1d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -19,8 +19,8 @@ importers: specifier: 5.0.0-beta.8 version: 5.0.0-beta.8(encoding@0.1.13) firebase-tools: - specifier: ^13.14.0 - version: 13.14.0(encoding@0.1.13) + specifier: ^13.14.1 + version: 13.14.1(encoding@0.1.13) hast-util-from-html: specifier: ^2.0.1 version: 2.0.1 @@ -58,8 +58,8 @@ importers: specifier: ^1.77.8 version: 1.77.8 shiki: - specifier: ^1.11.2 - version: 1.11.2 + specifier: ^1.12.0 + version: 1.12.0 packages: @@ -151,8 +151,8 @@ packages: resolution: {integrity: sha512-65zgEpQLhpTZqUic+pm4BbdDByN9NsHkphfCIwzpx3fccHPc6OuKsW0XexYCq9oTUtTC4QRjFisBDLV9fChRtg==} engines: {node: '>=12.0.0'} - '@grpc/grpc-js@1.10.11': - resolution: {integrity: sha512-3RaoxOqkHHN2c05bwtBNVJmOf/UwMam0rZYtdl7dsRpsvDwcNpv6LkGgzltQ7xVf822LzBoKEPRvf4D7+xeIDw==} + '@grpc/grpc-js@1.11.1': + resolution: {integrity: sha512-gyt/WayZrVPH2w/UTLansS7F9Nwld472JxxaETamrM8HNlsa+jSLNyKAZmhxI2Me4c3mQHFiS1wWHDY1g1Kthw==} engines: {node: '>=12.10.0'} '@grpc/proto-loader@0.7.13': @@ -378,8 +378,8 @@ packages: '@protobufjs/utf8@1.1.0': resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} - '@shikijs/core@1.11.2': - resolution: {integrity: sha512-9IBY31lvOo2uhrZjqRt2wTqfqfrXJnddnIx0PFL5E8a5RQUNOhkx+PD11PogZtyrIHlL4aTYDVlb+eyryzy+pQ==} + '@shikijs/core@1.12.0': + resolution: {integrity: sha512-mc1cLbm6UQ8RxLc0dZES7v5rkH+99LxQp/ZvTqV3NLyYsO/fD6JhEflP1H5b2SDq9gI0+0G36AVZWxvounfR9w==} '@sindresorhus/slugify@2.2.1': resolution: {integrity: sha512-MkngSCRZ8JdSOCHRaYd+D01XhvU3Hjy6MGl06zhOk614hp9EOAp5gIkBeQg7wtmxpitU6eAL4kdiRMcJa2dlrw==} @@ -417,8 +417,8 @@ packages: '@types/mdurl@2.0.0': resolution: {integrity: sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==} - '@types/node@20.14.10': - resolution: {integrity: sha512-MdiXf+nDuMvY0gJKxyfZ7/6UFsETO7mGKF54MVD/ekJS6HdFtpZFBgrh6Pseu64XTb2MLyFPlbW6hj8HYRQNOQ==} + '@types/node@20.14.12': + resolution: {integrity: sha512-r7wNXakLeSsGT0H1AU863vS2wa5wBOK4bWMjZz2wj+8nBx+m5PeIn0k8AloSLpRuiwdRQZwarZqHE4FNArPuJQ==} '@types/request@2.48.12': resolution: {integrity: sha512-G3sY+NpsA9jnwm0ixhAFQSJ3Q9JkpLZpJbI3GMv0mIAT0y3mRabYeINzal5WOChIiaTEGQYlHOKgkaM9EisWHw==} @@ -479,8 +479,8 @@ packages: ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} - ajv@8.16.0: - resolution: {integrity: sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw==} + ajv@8.17.1: + resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} ansi-align@3.0.1: resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} @@ -672,8 +672,8 @@ packages: resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} engines: {node: '>= 0.8'} - cacache@18.0.3: - resolution: {integrity: sha512-qXCd4rh6I07cnDqh8V48/94Tc/WSfj+o3Gn6NZ0aZovS255bUx8O13uKxRFd2eWG0xgsco7+YItQNPaa5E85hg==} + cacache@18.0.4: + resolution: {integrity: sha512-B+L5iIa9mgcjLbliir2th36yEwPftrzteHYujzsx3dFP/31GCHcIeS8f5MGd80odLOjaOvSpU3EEAmRQptkxLQ==} engines: {node: ^16.14.0 || >=18.0.0} call-bind@1.0.7: @@ -1200,6 +1200,9 @@ packages: fast-json-stable-stringify@2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + fast-uri@3.0.1: + resolution: {integrity: sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw==} + fast-url-parser@1.1.3: resolution: {integrity: sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==} @@ -1233,8 +1236,8 @@ packages: resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} engines: {node: '>= 0.8'} - firebase-tools@13.14.0: - resolution: {integrity: sha512-W1682Rl9WpEI20ustis7mO/jxW3uhQD6LcoXcdp5v8u8l490s3XRI7mGx3PJUgJi1RrnBwTyM8Hm5Q1xXvS/Og==} + firebase-tools@13.14.1: + resolution: {integrity: sha512-/agXsDzlozIkxEUzc4iVJalfjyJ7DVXyvLpCkFQ1retM6tbt22ek4yKRndozxykb/u+7ndNTo6Uy2boIKcqHag==} engines: {node: '>=18.0.0 || >=20.0.0'} hasBin: true @@ -1482,8 +1485,8 @@ packages: engines: {node: '>=16.x'} hasBin: true - immutable@4.3.6: - resolution: {integrity: sha512-Ju0+lEMyzMVZarkTn/gqRpdqd5dOPaz1mCZ0SH3JV6iFw81PldE/PEB1hWVEA288HPt4WXW8O7AWxB10M+03QQ==} + immutable@4.3.7: + resolution: {integrity: sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw==} import-lazy@2.1.0: resolution: {integrity: sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A==} @@ -1743,8 +1746,8 @@ packages: linkify-it@5.0.0: resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==} - liquidjs@10.15.0: - resolution: {integrity: sha512-u5lYWhW8ioT+O3FdCcp5U+hiPEGNO4xASCFlCHA+k5rMTJwDIa2c2KF111ZDKc2xGM7LXPvMoNRIrBfbLNpRBg==} + liquidjs@10.16.1: + resolution: {integrity: sha512-1JFL/Y7ONoajrfwav37yuz5yQHU3+Pgz1XWsg9E/2T8Fp65KalNfMF8QZ3+tNETqGUIB66waOSLOi64niYZE9A==} engines: {node: '>=14'} hasBin: true @@ -1890,6 +1893,10 @@ packages: resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} engines: {node: '>= 0.6'} + mime-db@1.53.0: + resolution: {integrity: sha512-oHlN/w+3MQ3rba9rqFr6V/ypF10LSkdwUysQL7GkXoTgIWeV+tcXGA852TBxH+gsh8UWoyhR1hKcoMJTuWflpg==} + engines: {node: '>= 0.6'} + mime-types@2.1.35: resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} engines: {node: '>= 0.6'} @@ -1988,8 +1995,8 @@ packages: resolution: {integrity: sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ==} engines: {node: '>= 0.8.0'} - morphdom@2.7.3: - resolution: {integrity: sha512-rvGK92GxSuPEZLY8D/JH07cG3BxyA+/F0Bxg32OoGAEFFhGWA3OqVpqPZlOgZTCR52clXrmz+z2pYSJ6gOig1w==} + morphdom@2.7.4: + resolution: {integrity: sha512-ATTbWMgGa+FaMU3FhnFYB6WgulCqwf6opOll4CBzmVDTLvPMmUPrEv8CudmLPK0MESa64+6B89fWOxP3+YIlxQ==} ms@2.0.0: resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} @@ -2525,8 +2532,8 @@ packages: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true - semver@7.6.2: - resolution: {integrity: sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==} + semver@7.6.3: + resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} engines: {node: '>=10'} hasBin: true @@ -2565,8 +2572,8 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} - shiki@1.11.2: - resolution: {integrity: sha512-WEHfKf+JWEKm/p8BoiE5F4m6VwV6LzY7nFfwRz0nAj+sVD1sRyWiODYScDu3Q8P/Dpi7xKe1TDJF3ZOQnhfT1g==} + shiki@1.12.0: + resolution: {integrity: sha512-BuAxWOm5JhRcbSOl7XCei8wGjgJJonnV0oipUupPY58iULxUGyHhW5CF+9FRMuM1pcJ5cGEJGll1LusX6FwpPA==} side-channel@1.0.6: resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} @@ -2723,8 +2730,8 @@ packages: resolution: {integrity: sha512-resvxdc6Mgb7YEThw6G6bExlXKkv6+YbuzGg9xuXxSgxJF7Ozs+o8Y9+2R3sArdWdW8nOokoQb1yrpFB0pQK2g==} engines: {node: '>=14'} - terser@5.31.2: - resolution: {integrity: sha512-LGyRZVFm/QElZHy/CPr/O4eNZOZIzsrQ92y4v9UJe/pFJjypje2yI3C2FmPtvUEnhadlSbmG2nXtdcjHOjCfxw==} + terser@5.31.3: + resolution: {integrity: sha512-pAfYn3NIZLyZpa83ZKigvj6Rn9c/vd5KfYGX7cN1mnzqgDcxWvrU5ZtAfIKhEXz9nRecw4z3LXkjaq96/qZqAA==} engines: {node: '>=10'} hasBin: true @@ -2868,14 +2875,14 @@ packages: resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} engines: {node: '>= 0.8'} - vfile-location@5.0.2: - resolution: {integrity: sha512-NXPYyxyBSH7zB5U6+3uDdd6Nybz6o6/od9rk8bp9H8GR3L+cm/fC0uUTbqBmUTnMCUDslAGBOIKNfvvb+gGlDg==} + vfile-location@5.0.3: + resolution: {integrity: sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==} vfile-message@4.0.2: resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==} - vfile@6.0.1: - resolution: {integrity: sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==} + vfile@6.0.2: + resolution: {integrity: sha512-zND7NlS8rJYb/sPqkb13ZvbbUoExdbi4w3SfRrMq6R3FvnLQmmfpajJNITuuYm6AZ5uao9vy4BAos3EXBPf2rg==} wcwidth@1.0.1: resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} @@ -2975,8 +2982,8 @@ packages: yallist@4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - yaml@2.4.5: - resolution: {integrity: sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg==} + yaml@2.5.0: + resolution: {integrity: sha512-2wWLbGbYDiSqqIKoPjar3MPgB94ErzCtrNE1FdqGuaO0pi2JGjmE8aW8TDZwzU7vuxcGRdL/4gPQwQ7hD5AMSw==} engines: {node: '>= 14'} hasBin: true @@ -3021,7 +3028,7 @@ snapshots: finalhandler: 1.2.0 mime: 3.0.0 minimist: 1.2.8 - morphdom: 2.7.3 + morphdom: 2.7.4 please-upgrade-node: 3.2.0 send: 0.18.0 ssri: 10.0.6 @@ -3091,7 +3098,7 @@ snapshots: iso-639-1: 3.1.2 js-yaml: 4.1.0 kleur: 4.1.5 - liquidjs: 10.15.0 + liquidjs: 10.16.1 luxon: 3.4.4 markdown-it: 14.1.0 micromatch: 4.0.7 @@ -3103,7 +3110,7 @@ snapshots: please-upgrade-node: 3.2.0 posthtml: 0.16.6 posthtml-match-helper: 2.0.2(posthtml@0.16.6) - semver: 7.6.2 + semver: 7.6.3 slugify: 1.6.6 transitivePeerDependencies: - bufferutil @@ -3203,7 +3210,7 @@ snapshots: - encoding - supports-color - '@grpc/grpc-js@1.10.11': + '@grpc/grpc-js@1.11.1': dependencies: '@grpc/proto-loader': 0.7.13 '@js-sdsl/ordered-map': 4.4.2 @@ -3350,7 +3357,7 @@ snapshots: '@npmcli/fs@3.1.1': dependencies: - semver: 7.6.2 + semver: 7.6.3 optional: true '@opentelemetry/api@1.8.0': {} @@ -3395,7 +3402,7 @@ snapshots: '@protobufjs/utf8@1.1.0': {} - '@shikijs/core@1.11.2': + '@shikijs/core@1.12.0': dependencies: '@types/hast': 3.0.4 @@ -3431,14 +3438,14 @@ snapshots: '@types/mdurl@2.0.0': {} - '@types/node@20.14.10': + '@types/node@20.14.12': dependencies: undici-types: 5.26.5 '@types/request@2.48.12': dependencies: '@types/caseless': 0.12.5 - '@types/node': 20.14.10 + '@types/node': 20.14.12 '@types/tough-cookie': 4.0.5 form-data: 2.5.1 @@ -3486,9 +3493,9 @@ snapshots: indent-string: 4.0.0 optional: true - ajv-formats@2.1.1(ajv@8.16.0): + ajv-formats@2.1.1(ajv@8.17.1): optionalDependencies: - ajv: 8.16.0 + ajv: 8.17.1 ajv@6.12.6: dependencies: @@ -3497,12 +3504,12 @@ snapshots: json-schema-traverse: 0.4.1 uri-js: 4.4.1 - ajv@8.16.0: + ajv@8.17.1: dependencies: fast-deep-equal: 3.1.3 + fast-uri: 3.0.1 json-schema-traverse: 1.0.0 require-from-string: 2.0.2 - uri-js: 4.4.1 ansi-align@3.0.1: dependencies: @@ -3700,7 +3707,7 @@ snapshots: bytes@3.1.2: {} - cacache@18.0.3: + cacache@18.0.4: dependencies: '@npmcli/fs': 3.1.1 fs-minipass: 3.0.3 @@ -3864,7 +3871,7 @@ snapshots: compressible@2.0.18: dependencies: - mime-db: 1.52.0 + mime-db: 1.53.0 compression@1.7.4: dependencies: @@ -4164,8 +4171,8 @@ snapshots: exegesis@4.2.0: dependencies: '@apidevtools/json-schema-ref-parser': 9.1.2 - ajv: 8.16.0 - ajv-formats: 2.1.1(ajv@8.16.0) + ajv: 8.17.1 + ajv-formats: 2.1.1(ajv@8.17.1) body-parser: 1.20.2 content-type: 1.0.5 deep-freeze: 0.0.1 @@ -4179,7 +4186,7 @@ snapshots: pump: 3.0.0 qs: 6.12.3 raw-body: 2.5.2 - semver: 7.6.2 + semver: 7.6.3 transitivePeerDependencies: - supports-color @@ -4248,6 +4255,8 @@ snapshots: fast-json-stable-stringify@2.1.0: {} + fast-uri@3.0.1: {} + fast-url-parser@1.1.3: dependencies: punycode: 1.4.1 @@ -4294,7 +4303,7 @@ snapshots: transitivePeerDependencies: - supports-color - firebase-tools@13.14.0(encoding@0.1.13): + firebase-tools@13.14.1(encoding@0.1.13): dependencies: '@google-cloud/cloud-sql-connector': 1.3.3(encoding@0.1.13) '@google-cloud/pubsub': 4.5.0(encoding@0.1.13) @@ -4345,7 +4354,7 @@ snapshots: proxy-agent: 6.4.0 retry: 0.13.1 rimraf: 5.0.9 - semver: 7.6.2 + semver: 7.6.3 sql-formatter: 15.3.2 stream-chain: 2.2.5 stream-json: 1.8.0 @@ -4361,7 +4370,7 @@ snapshots: winston: 3.13.1 winston-transport: 4.7.1 ws: 7.5.10 - yaml: 2.4.5 + yaml: 2.5.0 transitivePeerDependencies: - bufferutil - encoding @@ -4518,7 +4527,7 @@ snapshots: google-gax@4.3.8(encoding@0.1.13): dependencies: - '@grpc/grpc-js': 1.10.11 + '@grpc/grpc-js': 1.11.1 '@grpc/proto-loader': 0.7.13 '@types/long': 4.0.2 abort-controller: 3.0.0 @@ -4591,7 +4600,7 @@ snapshots: devlop: 1.1.0 hast-util-from-parse5: 8.0.1 parse5: 7.1.2 - vfile: 6.0.1 + vfile: 6.0.2 vfile-message: 4.0.2 hast-util-from-parse5@8.0.1: @@ -4601,8 +4610,8 @@ snapshots: devlop: 1.1.0 hastscript: 8.0.0 property-information: 6.5.0 - vfile: 6.0.1 - vfile-location: 5.0.2 + vfile: 6.0.2 + vfile-location: 5.0.3 web-namespaces: 2.0.1 hast-util-has-property@3.0.0: @@ -4669,7 +4678,7 @@ snapshots: entities: 4.5.0 param-case: 3.0.4 relateurl: 0.2.7 - terser: 5.31.2 + terser: 5.31.3 htmlparser2@7.2.0: dependencies: @@ -4735,7 +4744,7 @@ snapshots: dependencies: queue: 6.0.2 - immutable@4.3.6: {} + immutable@4.3.7: {} import-lazy@2.1.0: {} @@ -4939,7 +4948,7 @@ snapshots: lodash.isstring: 4.0.1 lodash.once: 4.1.1 ms: 2.1.3 - semver: 7.6.2 + semver: 7.6.3 junk@1.0.3: {} @@ -4991,7 +5000,7 @@ snapshots: dependencies: uc.micro: 2.1.0 - liquidjs@10.15.0: + liquidjs@10.16.1: dependencies: commander: 10.0.1 @@ -5058,7 +5067,7 @@ snapshots: make-fetch-happen@13.0.1: dependencies: '@npmcli/agent': 2.2.2 - cacache: 18.0.3 + cacache: 18.0.4 http-cache-semantics: 4.1.1 is-lambda: 1.0.1 minipass: 7.1.2 @@ -5133,6 +5142,8 @@ snapshots: mime-db@1.52.0: {} + mime-db@1.53.0: {} + mime-types@2.1.35: dependencies: mime-db: 1.52.0 @@ -5225,7 +5236,7 @@ snapshots: transitivePeerDependencies: - supports-color - morphdom@2.7.3: {} + morphdom@2.7.4: {} ms@2.0.0: {} @@ -5275,7 +5286,7 @@ snapshots: make-fetch-happen: 13.0.1 nopt: 7.2.1 proc-log: 4.2.0 - semver: 7.6.2 + semver: 7.6.3 tar: 6.2.1 which: 4.0.0 transitivePeerDependencies: @@ -5351,7 +5362,7 @@ snapshots: openapi3-ts@3.2.0: dependencies: - yaml: 2.4.5 + yaml: 2.5.0 ora@5.4.1: dependencies: @@ -5567,7 +5578,7 @@ snapshots: '@protobufjs/path': 1.1.2 '@protobufjs/pool': 1.1.0 '@protobufjs/utf8': 1.1.0 - '@types/node': 20.14.10 + '@types/node': 20.14.12 long: 5.2.3 proxy-addr@2.0.7: @@ -5769,7 +5780,7 @@ snapshots: sass@1.77.8: dependencies: chokidar: 3.6.0 - immutable: 4.3.6 + immutable: 4.3.7 source-map-js: 1.2.0 section-matter@1.0.0: @@ -5787,7 +5798,7 @@ snapshots: semver@6.3.1: {} - semver@7.6.2: {} + semver@7.6.3: {} send@0.18.0: dependencies: @@ -5831,7 +5842,7 @@ snapshots: dependencies: color: 4.2.3 detect-libc: 2.0.3 - semver: 7.6.2 + semver: 7.6.3 optionalDependencies: '@img/sharp-darwin-arm64': 0.33.4 '@img/sharp-darwin-x64': 0.33.4 @@ -5865,9 +5876,9 @@ snapshots: shebang-regex@3.0.0: {} - shiki@1.11.2: + shiki@1.12.0: dependencies: - '@shikijs/core': 1.11.2 + '@shikijs/core': 1.12.0 '@types/hast': 3.0.4 side-channel@1.0.6: @@ -6063,7 +6074,7 @@ snapshots: - encoding - supports-color - terser@5.31.2: + terser@5.31.3: dependencies: '@jridgewell/source-map': 0.3.6 acorn: 8.12.1 @@ -6181,7 +6192,7 @@ snapshots: pupa: 2.1.1 registry-auth-token: 5.0.2 registry-url: 5.1.0 - semver: 7.6.2 + semver: 7.6.3 semver-diff: 3.1.1 xdg-basedir: 4.0.0 transitivePeerDependencies: @@ -6211,17 +6222,17 @@ snapshots: vary@1.1.2: {} - vfile-location@5.0.2: + vfile-location@5.0.3: dependencies: '@types/unist': 3.0.2 - vfile: 6.0.1 + vfile: 6.0.2 vfile-message@4.0.2: dependencies: '@types/unist': 3.0.2 unist-util-stringify-position: 4.0.0 - vfile@6.0.1: + vfile@6.0.2: dependencies: '@types/unist': 3.0.2 unist-util-stringify-position: 4.0.0 @@ -6318,7 +6329,7 @@ snapshots: yallist@4.0.0: {} - yaml@2.4.5: {} + yaml@2.5.0: {} yargs-parser@21.1.1: {} From 166da73aa18ed87030620c806027ebf9e43214ce Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 29 Jul 2024 07:55:38 -0500 Subject: [PATCH 84/95] Bump github/codeql-action from 3.25.14 to 3.25.15 (#6003) --- .github/workflows/codeql-analysis.yml | 6 +++--- .github/workflows/scorecards-analysis.yml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 1d10fe1f4..9a5e5c7d4 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -33,7 +33,7 @@ jobs: # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL - uses: github/codeql-action/init@5cf07d8b700b67e235fbb65cbc84f69c0cf10464 + uses: github/codeql-action/init@afb54ba388a7dca6ecae48f608c4ff05ff4cc77a with: languages: ${{ matrix.language }} # If you wish to specify custom queries, you can do so here or in a config file. @@ -44,7 +44,7 @@ jobs: # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). # If this step fails, then you should remove it and run the build manually (see below) - name: Autobuild - uses: github/codeql-action/autobuild@5cf07d8b700b67e235fbb65cbc84f69c0cf10464 + uses: github/codeql-action/autobuild@afb54ba388a7dca6ecae48f608c4ff05ff4cc77a # ℹ️ Command-line programs to run using the OS shell. # 📚 https://git.io/JvXDl @@ -58,4 +58,4 @@ jobs: # make release - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@5cf07d8b700b67e235fbb65cbc84f69c0cf10464 + uses: github/codeql-action/analyze@afb54ba388a7dca6ecae48f608c4ff05ff4cc77a diff --git a/.github/workflows/scorecards-analysis.yml b/.github/workflows/scorecards-analysis.yml index a6c179367..69513bf99 100644 --- a/.github/workflows/scorecards-analysis.yml +++ b/.github/workflows/scorecards-analysis.yml @@ -49,6 +49,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@5cf07d8b700b67e235fbb65cbc84f69c0cf10464 + uses: github/codeql-action/upload-sarif@afb54ba388a7dca6ecae48f608c4ff05ff4cc77a with: sarif_file: results.sarif From 42951efedfe24894ff83c6f537db54bed93acdbd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 29 Jul 2024 07:56:06 -0500 Subject: [PATCH 85/95] Bump ossf/scorecard-action from 2.3.3 to 2.4.0 (#6002) --- .github/workflows/scorecards-analysis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecards-analysis.yml b/.github/workflows/scorecards-analysis.yml index 69513bf99..39a39658d 100644 --- a/.github/workflows/scorecards-analysis.yml +++ b/.github/workflows/scorecards-analysis.yml @@ -26,7 +26,7 @@ jobs: persist-credentials: false - name: "Run analysis" - uses: ossf/scorecard-action@dc50aa9510b46c811795eb24b2f1ba02a914e534 + uses: ossf/scorecard-action@62b2cac7ed8198b15735ed49ab1e5cf35480ba46 with: results_file: results.sarif results_format: sarif From 1fe92db3eb9f5b5d6791dd5cd5d52b94958b368c Mon Sep 17 00:00:00 2001 From: i-3 <55412563+i-3@users.noreply.github.com> Date: Mon, 29 Jul 2024 16:28:35 +0300 Subject: [PATCH 86/95] Update concurrency.md (#6001) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Thanks for your contribution! Please replace this text with a description of what this PR is changing or adding and why, list any relevant issues, and review the contribution guidelines below. Fixes --- - [ ] I’ve reviewed the contributor guide and applied the relevant portions to this PR. - [ ] This PR doesn't contain automatically generated corrections or text (Grammarly, LLMs, and similar). - [ ] This PR follows the [Google Developer Documentation Style Guidelines](https://developers.google.com/style) — for example, it doesn't use _i.e._ or _e.g._, and it avoids _I_ and _we_ (first person). - [ ] This PR uses [semantic line breaks](https://github.com/dart-lang/site-shared/blob/main/doc/writing-for-dart-and-flutter-websites.md#semantic-line-breaks) of 80 characters or fewer.
Contribution guidelines:
- See our [contributor guide](https://github.com/dart-lang/site-www/blob/main/CONTRIBUTING.md) for general expectations for PRs. - Larger or significant changes should be discussed in an issue before creating a PR. - Code changes should generally follow the [Dart style guide](https://dart.dev/effective-dart) and use `dart format`. - Updates to [code excerpts](https://github.com/dart-lang/site-shared/blob/main/doc/code-excerpts.md) indicated by ` Co-authored-by: Eric Windmill --- src/content/language/concurrency.md | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/src/content/language/concurrency.md b/src/content/language/concurrency.md index 37062487c..6b8477075 100644 --- a/src/content/language/concurrency.md +++ b/src/content/language/concurrency.md @@ -239,7 +239,8 @@ shared-memory threads running concurrently. However, shared-state concurrency is lead to complicated code. Instead of threads, all Dart code runs inside isolates. -Using isolates, your Dart code can perform multiple independent tasks at once. +Using isolates, your Dart code can perform multiple independent tasks at once, +using additional processor cores if they're available. Isolates are like threads or processes, but each isolate has its own memory and a single thread running an event loop. @@ -253,11 +254,6 @@ won't occur in Dart. That said, isolates don't prevent race conditions all together. For more information on this concurrency model, read about the [Actor model](https://en.wikipedia.org/wiki/Actor_model). -Using isolates, your Dart code can perform multiple independent tasks at once, -using additional processor cores if they're available. Isolates are like threads -or processes, but each isolate has its own memory and a single thread running an -event loop. - :::note Platform note Only the [Dart Native platform][] implements isolates. To learn more about the Dart Web platform, From 76b455a762838eb252fe2b789fa109c0070d476f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 29 Jul 2024 09:42:05 -0500 Subject: [PATCH 87/95] Bump firebase-tools from 13.14.1 to 13.14.2 (#6004) --- package.json | 2 +- pnpm-lock.yaml | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 45bcfcb8c..0bbb9fe34 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ "devDependencies": { "@11ty/eleventy": "3.0.0-alpha.17", "@11ty/eleventy-img": "5.0.0-beta.8", - "firebase-tools": "^13.14.1", + "firebase-tools": "^13.14.2", "hast-util-from-html": "^2.0.1", "hast-util-select": "^6.0.2", "hast-util-to-text": "^4.0.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f533d2c1d..baecc6f83 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -19,8 +19,8 @@ importers: specifier: 5.0.0-beta.8 version: 5.0.0-beta.8(encoding@0.1.13) firebase-tools: - specifier: ^13.14.1 - version: 13.14.1(encoding@0.1.13) + specifier: ^13.14.2 + version: 13.14.2(encoding@0.1.13) hast-util-from-html: specifier: ^2.0.1 version: 2.0.1 @@ -1236,8 +1236,8 @@ packages: resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} engines: {node: '>= 0.8'} - firebase-tools@13.14.1: - resolution: {integrity: sha512-/agXsDzlozIkxEUzc4iVJalfjyJ7DVXyvLpCkFQ1retM6tbt22ek4yKRndozxykb/u+7ndNTo6Uy2boIKcqHag==} + firebase-tools@13.14.2: + resolution: {integrity: sha512-JK8oJdVnBQDFh2UfA1qA3ULDKD6vwIFvVDXvkQXpxLG1wqnBU55Y+KgKpRwWNcE7lYEYohsXFIney3wMgOkszw==} engines: {node: '>=18.0.0 || >=20.0.0'} hasBin: true @@ -4303,7 +4303,7 @@ snapshots: transitivePeerDependencies: - supports-color - firebase-tools@13.14.1(encoding@0.1.13): + firebase-tools@13.14.2(encoding@0.1.13): dependencies: '@google-cloud/cloud-sql-connector': 1.3.3(encoding@0.1.13) '@google-cloud/pubsub': 4.5.0(encoding@0.1.13) From 297091bf883cb3eab1e358f9d9bf26d5547beab2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 31 Jul 2024 14:38:07 -0700 Subject: [PATCH 88/95] Bump @11ty/eleventy from 3.0.0-alpha.17 to 3.0.0-alpha.18 (#6011) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [@11ty/eleventy](https://github.com/11ty/eleventy) from 3.0.0-alpha.17 to 3.0.0-alpha.18.
Release notes

Sourced from @​11ty/eleventy's releases.

Pre-release: Eleventy v3.0.0-alpha.18

  • Published with npm package provenance for improved auditing and security #3392
  • Pre-release 3.0-compatible plugins for Pug, EJS, Handlebars, Mustache, and HAML are now available: https://github.com/11ty/eleventy-plugin-template-languages
  • Upgrade Helper plugin for 3.0 now available: https://github.com/11ty/eleventy-upgrade-help
  • New eleventyConfig.setLiquidParameterParsing("builtin") API provides a path forward to opt-in to Liquid’s built-in parameter parser #2679
  • New renderContent Universal Filter provided by the Render Plugin allows rendering an arbitrary string of template content #3370
  • Missing file name passed as --config on command line now throws an error: #3373
  • Fix to deep merge objects passed to eleventyConfig.addGlobalData #3389
  • Fix internal error when folks try to pass non-function to addFilter, addShortcode configuration API methods #3385
  • TypeScript improvements for types in configuration API #3097
  • Fix issue with error message on SIGINT server close, removes process.exit calls for a graceful stop #3361 #3375
  • Fix bug with async config and manual use of RenderPlugin #3368

Full Changelog: https://github.com/11ty/eleventy/compare/v3.0.0-alpha.17...v3.0.0-alpha.18 Full Eleventy v3 Milestone: https://github.com/11ty/eleventy/milestone/40

🥳🥳🥳 2 issues left (150 closed) on the Eleventy 3.0.0 milestone!

We need your help!

11ty is now operating independently, with full time development and maintenance funded by our Open Collective supporters. We need your help to keep going! We have a goal of $6000 USD recurring monthly budget. Read more about this fundraising push or head directly to our Open Collective to start your recurring contribution!

Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@11ty/eleventy&package-manager=npm_and_yarn&previous-version=3.0.0-alpha.17&new-version=3.0.0-alpha.18)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 37 +++++++++++++++++++++++++------------ 2 files changed, 26 insertions(+), 13 deletions(-) diff --git a/package.json b/package.json index 0bbb9fe34..c72be0105 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,7 @@ "bootstrap-scss": "^4.6.2" }, "devDependencies": { - "@11ty/eleventy": "3.0.0-alpha.17", + "@11ty/eleventy": "3.0.0-alpha.18", "@11ty/eleventy-img": "5.0.0-beta.8", "firebase-tools": "^13.14.2", "hast-util-from-html": "^2.0.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index baecc6f83..c73755a6e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -13,8 +13,8 @@ importers: version: 4.6.2 devDependencies: '@11ty/eleventy': - specifier: 3.0.0-alpha.17 - version: 3.0.0-alpha.17 + specifier: 3.0.0-alpha.18 + version: 3.0.0-alpha.18 '@11ty/eleventy-img': specifier: 5.0.0-beta.8 version: 5.0.0-beta.8(encoding@0.1.13) @@ -69,8 +69,8 @@ packages: '@11ty/dependency-tree@3.0.1': resolution: {integrity: sha512-aZizxcL4Z/clm3KPRx8i9ohW9R2gLssXfUSy7qQmQRXb4CUOyvmqk2gKeJqRmXIfMi2bB9w03SgtN5v1YwqpiA==} - '@11ty/eleventy-dev-server@2.0.1': - resolution: {integrity: sha512-G92KbOx5vg2G3mlQQ1B0+L+Ni7pcn1yeMgQdnT8b2G20ZnbGNtuGYEPehbQV4Xqr2iAtoBfbihNskbLDoVtNOg==} + '@11ty/eleventy-dev-server@2.0.2': + resolution: {integrity: sha512-OupvJ36G+iY+AKmO3veUR7MEZUL2p9tQmodSPf05en0p8LnJltHqK11S+XQ0iGUA96qcyeTLcKQpD+/ctekgmw==} engines: {node: '>=18'} hasBin: true @@ -90,8 +90,8 @@ packages: resolution: {integrity: sha512-nULO91om7vQw4Y/UBjM8i7nJ1xl+/nyK4rImZ41lFxiY2d+XUz7ChAj1CDYFjrLZeu0utAYJTZ45LlcHTkUG4g==} engines: {node: '>=12'} - '@11ty/eleventy@3.0.0-alpha.17': - resolution: {integrity: sha512-CSRdniC1360qBYJ2ddohkIG/iMxGiYHvX62hRcz+l3vQg/71PBXsMmKiD3LoAs8zorSh/UR7dW26pcIrLaVKPw==} + '@11ty/eleventy@3.0.0-alpha.18': + resolution: {integrity: sha512-CQu4HOtYJySEexVRT/tFtLtqtI4+winun0NFmFIUp0SvxRpP46+ZxBvBc9ezSFLo1nN0zJkwoG8GTkhMPOThtg==} engines: {node: '>=18'} hasBin: true @@ -936,6 +936,15 @@ packages: supports-color: optional: true + debug@4.3.6: + resolution: {integrity: sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + deep-equal-in-any-order@2.0.6: resolution: {integrity: sha512-RfnWHQzph10YrUjvWwhd15Dne8ciSJcZ3U6OD7owPwiVwsdE5IFSoZGg8rlwJD11ES+9H5y8j3fCofviRHOqLQ==} @@ -3019,11 +3028,11 @@ snapshots: dependencies: '@11ty/eleventy-utils': 1.0.3 - '@11ty/eleventy-dev-server@2.0.1': + '@11ty/eleventy-dev-server@2.0.2': dependencies: '@11ty/eleventy-utils': 1.0.3 chokidar: 3.6.0 - debug: 4.3.5 + debug: 4.3.6 dev-ip: 1.0.1 finalhandler: 1.2.0 mime: 3.0.0 @@ -3065,7 +3074,7 @@ snapshots: '@11ty/eleventy-plugin-bundle@2.0.2': dependencies: - debug: 4.3.5 + debug: 4.3.6 transitivePeerDependencies: - supports-color @@ -3073,11 +3082,11 @@ snapshots: dependencies: normalize-path: 3.0.0 - '@11ty/eleventy@3.0.0-alpha.17': + '@11ty/eleventy@3.0.0-alpha.18': dependencies: '@11ty/dependency-tree': 3.0.1 '@11ty/dependency-tree-esm': 1.0.0 - '@11ty/eleventy-dev-server': 2.0.1 + '@11ty/eleventy-dev-server': 2.0.2 '@11ty/eleventy-plugin-bundle': 2.0.2 '@11ty/eleventy-utils': 1.0.3 '@11ty/lodash-custom': 4.17.21 @@ -3088,7 +3097,7 @@ snapshots: chardet: 2.0.0 chokidar: 3.6.0 cross-spawn: 7.0.3 - debug: 4.3.5 + debug: 4.3.6 dependency-graph: 1.0.0 fast-glob: 3.3.2 filesize: 10.1.4 @@ -3976,6 +3985,10 @@ snapshots: dependencies: ms: 2.1.2 + debug@4.3.6: + dependencies: + ms: 2.1.2 + deep-equal-in-any-order@2.0.6: dependencies: lodash.mapvalues: 4.6.0 From 5fbf1c15e53b365ba658415b13c76d3ba6bacaba Mon Sep 17 00:00:00 2001 From: Steve Dennis Date: Wed, 31 Jul 2024 17:43:37 -0400 Subject: [PATCH 89/95] Add Inedo ProGet to list of custom package repository services (#6009) [Inedo ProGet now supports pub repositories](https://blog.inedo.com/inedo/dart-and-flutter-have-landed-in-proget/), so added a link with the other package repository services. --- src/content/assets/img/tools/proget.svg | 16 ++++++++++++++++ .../tools/pub/custom-package-repositories.md | 4 ++++ 2 files changed, 20 insertions(+) create mode 100644 src/content/assets/img/tools/proget.svg diff --git a/src/content/assets/img/tools/proget.svg b/src/content/assets/img/tools/proget.svg new file mode 100644 index 000000000..09d9eafd4 --- /dev/null +++ b/src/content/assets/img/tools/proget.svg @@ -0,0 +1,16 @@ + + + + + + + + + + \ No newline at end of file diff --git a/src/content/tools/pub/custom-package-repositories.md b/src/content/tools/pub/custom-package-repositories.md index 22a249d38..954002f3f 100644 --- a/src/content/tools/pub/custom-package-repositories.md +++ b/src/content/tools/pub/custom-package-repositories.md @@ -212,6 +212,10 @@ your own custom package repository: Cloudsmith logo Cloudsmith +
  • + Inedo ProGet logo + Inedo ProGet +
  • JetBrains Space logo JetBrains Space From 761e063b221dce3f4a2b107a6fd05542ef7338ba Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 1 Aug 2024 12:50:58 -0500 Subject: [PATCH 90/95] Bump @11ty/eleventy from 3.0.0-alpha.18 to 3.0.0-beta.1 (#6014) --- package.json | 2 +- pnpm-lock.yaml | 32 ++++++++++++++++---------------- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/package.json b/package.json index c72be0105..959dbb790 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,7 @@ "bootstrap-scss": "^4.6.2" }, "devDependencies": { - "@11ty/eleventy": "3.0.0-alpha.18", + "@11ty/eleventy": "3.0.0-beta.1", "@11ty/eleventy-img": "5.0.0-beta.8", "firebase-tools": "^13.14.2", "hast-util-from-html": "^2.0.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c73755a6e..085bd727f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -13,8 +13,8 @@ importers: version: 4.6.2 devDependencies: '@11ty/eleventy': - specifier: 3.0.0-alpha.18 - version: 3.0.0-alpha.18 + specifier: 3.0.0-beta.1 + version: 3.0.0-beta.1 '@11ty/eleventy-img': specifier: 5.0.0-beta.8 version: 5.0.0-beta.8(encoding@0.1.13) @@ -90,8 +90,8 @@ packages: resolution: {integrity: sha512-nULO91om7vQw4Y/UBjM8i7nJ1xl+/nyK4rImZ41lFxiY2d+XUz7ChAj1CDYFjrLZeu0utAYJTZ45LlcHTkUG4g==} engines: {node: '>=12'} - '@11ty/eleventy@3.0.0-alpha.18': - resolution: {integrity: sha512-CQu4HOtYJySEexVRT/tFtLtqtI4+winun0NFmFIUp0SvxRpP46+ZxBvBc9ezSFLo1nN0zJkwoG8GTkhMPOThtg==} + '@11ty/eleventy@3.0.0-beta.1': + resolution: {integrity: sha512-iJT7vekH11l8PAUPBfUAcb5oWbYK0w4ijgwDTutUsk6tX9rp4ZRL1jdhVWvZq04/rkc55mczNFPPhHB/XO1/qw==} engines: {node: '>=18'} hasBin: true @@ -3082,7 +3082,7 @@ snapshots: dependencies: normalize-path: 3.0.0 - '@11ty/eleventy@3.0.0-alpha.18': + '@11ty/eleventy@3.0.0-beta.1': dependencies: '@11ty/dependency-tree': 3.0.1 '@11ty/dependency-tree-esm': 1.0.0 @@ -3486,13 +3486,13 @@ snapshots: agent-base@6.0.2: dependencies: - debug: 4.3.5 + debug: 4.3.6 transitivePeerDependencies: - supports-color agent-base@7.1.1: dependencies: - debug: 4.3.5 + debug: 4.3.6 transitivePeerDependencies: - supports-color @@ -4487,7 +4487,7 @@ snapshots: dependencies: basic-ftp: 5.0.5 data-uri-to-buffer: 6.0.2 - debug: 4.3.5 + debug: 4.3.6 fs-extra: 11.2.0 transitivePeerDependencies: - supports-color @@ -4717,28 +4717,28 @@ snapshots: dependencies: '@tootallnate/once': 2.0.0 agent-base: 6.0.2 - debug: 4.3.5 + debug: 4.3.6 transitivePeerDependencies: - supports-color http-proxy-agent@7.0.2: dependencies: agent-base: 7.1.1 - debug: 4.3.5 + debug: 4.3.6 transitivePeerDependencies: - supports-color https-proxy-agent@5.0.1: dependencies: agent-base: 6.0.2 - debug: 4.3.5 + debug: 4.3.6 transitivePeerDependencies: - supports-color https-proxy-agent@7.0.5: dependencies: agent-base: 7.1.1 - debug: 4.3.5 + debug: 4.3.6 transitivePeerDependencies: - supports-color @@ -5419,7 +5419,7 @@ snapshots: dependencies: '@tootallnate/quickjs-emscripten': 0.23.0 agent-base: 7.1.1 - debug: 4.3.5 + debug: 4.3.6 get-uri: 6.0.3 http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.5 @@ -5602,7 +5602,7 @@ snapshots: proxy-agent@6.4.0: dependencies: agent-base: 7.1.1 - debug: 4.3.5 + debug: 4.3.6 http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.5 lru-cache: 7.18.3 @@ -5918,7 +5918,7 @@ snapshots: socks-proxy-agent@8.0.4: dependencies: agent-base: 7.1.1 - debug: 4.3.5 + debug: 4.3.6 socks: 2.8.3 transitivePeerDependencies: - supports-color @@ -6181,7 +6181,7 @@ snapshots: universal-analytics@0.5.3: dependencies: - debug: 4.3.5 + debug: 4.3.6 uuid: 8.3.2 transitivePeerDependencies: - supports-color From 79c062594a03b8930ba56f52d2b33615fc11b1a7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 1 Aug 2024 15:28:51 -0500 Subject: [PATCH 91/95] Bump @11ty/eleventy-img from 5.0.0-beta.8 to 5.0.0-beta.10 (#6015) --- package.json | 2 +- pnpm-lock.yaml | 27 +++++++-------------------- 2 files changed, 8 insertions(+), 21 deletions(-) diff --git a/package.json b/package.json index 959dbb790..f612af72e 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ }, "devDependencies": { "@11ty/eleventy": "3.0.0-beta.1", - "@11ty/eleventy-img": "5.0.0-beta.8", + "@11ty/eleventy-img": "5.0.0-beta.10", "firebase-tools": "^13.14.2", "hast-util-from-html": "^2.0.1", "hast-util-select": "^6.0.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 085bd727f..06da3064e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -16,8 +16,8 @@ importers: specifier: 3.0.0-beta.1 version: 3.0.0-beta.1 '@11ty/eleventy-img': - specifier: 5.0.0-beta.8 - version: 5.0.0-beta.8(encoding@0.1.13) + specifier: 5.0.0-beta.10 + version: 5.0.0-beta.10(encoding@0.1.13) firebase-tools: specifier: ^13.14.2 version: 13.14.2(encoding@0.1.13) @@ -78,8 +78,8 @@ packages: resolution: {integrity: sha512-yIiLM5ziBmg86i4TlXpBdcIygJHvh/GgPJyAiFOckO9H4y9cQDM8eIcJCUQ4Mum0NEVui/OjhEut2R08xw0vlQ==} engines: {node: '>=14'} - '@11ty/eleventy-img@5.0.0-beta.8': - resolution: {integrity: sha512-iK6TJZlPBgIHi2Y6vqnepgjxSGGvyi1MFDGlbmbRjf80ssG2ayULmerO9TpPO43XAz/HTeFVq50bLK4w4wuOXA==} + '@11ty/eleventy-img@5.0.0-beta.10': + resolution: {integrity: sha512-4KwR/jKHu7GRsY7Ug4OFUusa49ITMM2a+TT5K9i67mnNUDk9PdmUv3p0u7sWz4zCPGYHjAplaBlyEo/CtqNt8g==} engines: {node: '>=18'} '@11ty/eleventy-plugin-bundle@2.0.2': @@ -927,15 +927,6 @@ packages: supports-color: optional: true - debug@4.3.5: - resolution: {integrity: sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - debug@4.3.6: resolution: {integrity: sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==} engines: {node: '>=6.0'} @@ -3050,7 +3041,7 @@ snapshots: '@11ty/eleventy-fetch@4.0.1(encoding@0.1.13)': dependencies: - debug: 4.3.5 + debug: 4.3.6 flat-cache: 3.2.0 node-fetch: 2.7.0(encoding@0.1.13) p-queue: 6.6.2 @@ -3058,12 +3049,12 @@ snapshots: - encoding - supports-color - '@11ty/eleventy-img@5.0.0-beta.8(encoding@0.1.13)': + '@11ty/eleventy-img@5.0.0-beta.10(encoding@0.1.13)': dependencies: '@11ty/eleventy-fetch': 4.0.1(encoding@0.1.13) '@11ty/eleventy-utils': 1.0.3 brotli-size: 4.0.0 - debug: 4.3.5 + debug: 4.3.6 entities: 5.0.0 image-size: 1.1.1 p-queue: 6.6.2 @@ -3981,10 +3972,6 @@ snapshots: dependencies: ms: 2.1.2 - debug@4.3.5: - dependencies: - ms: 2.1.2 - debug@4.3.6: dependencies: ms: 2.1.2 From b502250c29a1a12303fed78cd83dc4edd4d36110 Mon Sep 17 00:00:00 2001 From: Sigurd Meldgaard Date: Fri, 2 Aug 2024 00:49:07 +0200 Subject: [PATCH 92/95] Explain that `platforms` precedes flutter plugin declaration (#6013) https://github.com/dart-lang/pub-dev/issues/7884 --------- Co-authored-by: Shams Zakhour (ignore Sfshaza) <44418985+sfshaza2@users.noreply.github.com> --- src/content/tools/pub/pubspec.md | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/content/tools/pub/pubspec.md b/src/content/tools/pub/pubspec.md index 2b863827c..607735fd2 100644 --- a/src/content/tools/pub/pubspec.md +++ b/src/content/tools/pub/pubspec.md @@ -298,9 +298,13 @@ platforms: macos: ``` -:::flutter-note -Flutter plugins use [plugin declarations][] -instead of this field. +:::note If you use Flutter +Flutter plugins platform support is by default derived from the +[plugin declarations][]. + +If there is a discrepancy between the plugin declaration and the actual platform +support, a top-level `platforms` declaration can still be used and takes +precedence over the Flutter plugin declaration when deciding platform support. ::: :::version-note From 68ae807f96e2da4b38762f5a16b301f4950aea82 Mon Sep 17 00:00:00 2001 From: Srujan Gaddam <58529443+srujzs@users.noreply.github.com> Date: Thu, 1 Aug 2024 15:49:59 -0700 Subject: [PATCH 93/95] Add section on exporting members in usage (#6006) Addresses https://github.com/dart-lang/sdk/issues/56327#issuecomment-2257230135 Being able to call Dart code from JS is a common use case (e.g. event listeners). We should add a section that shows how to export functions and links to our section on exporting entire Dart instances. --- src/content/interop/js-interop/mock.md | 8 +++-- src/content/interop/js-interop/usage.md | 43 +++++++++++++++++++++++++ 2 files changed, 48 insertions(+), 3 deletions(-) diff --git a/src/content/interop/js-interop/mock.md b/src/content/interop/js-interop/mock.md index 77f1a35e5..8631d1645 100644 --- a/src/content/interop/js-interop/mock.md +++ b/src/content/interop/js-interop/mock.md @@ -97,9 +97,10 @@ void main() { `@JSExport` allows you to declare a class that can be used in `createJSInteropWrapper`. `createJSInteropWrapper` will create an object literal -that maps each of the class' instance member names (or renames) to a JS callback -that triggers the instance member when called. In the above example, getting and -setting `counter.value` gets and sets `fakeCounter.value`. +that maps each of the class' instance member names (or renames) to a JS +callback, which is created using [`Function.toJS`]. When called, the JS callback +will in turn call the instance member. In the above example, getting and setting +`counter.value` gets and sets `fakeCounter.value`. You can specify only some members of a class to be exported by omitting the annotation from the class and instead only annotate the specific members. You @@ -117,6 +118,7 @@ non-instance members unless the user explicitly replaces the real API in JS. [Usage]: /interop/js-interop/usage [`createJSInteropWrapper`]: {{site.dart-api}}/{{site.sdkInfo.channel}}/dart-js_interop/createJSInteropWrapper.html +[`Function.toJS`]: {{site.dart-api}}/{{site.sdkInfo.channel}}/dart-js_interop/FunctionToJSExportedDartFunction/toJS.html [`@JSExport`]: {{site.dart-api}}/{{site.sdkInfo.channel}}/dart-js_interop/JSExport-class.html [limitation is true for extension members]: {{site.repo.dart.org}}/mockito/blob/master/FAQ.md#how-do-i-mock-an-extension-method [extension types]: /language/extension-types diff --git a/src/content/interop/js-interop/usage.md b/src/content/interop/js-interop/usage.md index 5fd721b1e..29c5eeef2 100644 --- a/src/content/interop/js-interop/usage.md +++ b/src/content/interop/js-interop/usage.md @@ -389,6 +389,45 @@ but can often be elided on and within interop types and on extension members as the compiler can tell it is a JS interop type from the representation type and on-type. +## Exporting Dart functions and objects to JS + +The above sections show how to call JS members from Dart. It's also useful to +*export* Dart code so that it can be used in JS. To export a Dart function to +JS, first convert it using [`Function.toJS`], which wraps the Dart function with +a JS function. Then, pass the wrapped function to JS through an interop member. +At that point, it's ready to be called by other JS code. + +For example, this code converts a Dart function and uses interop to set it in a +global property, which is then called in JS: + +```dart +import 'dart:js_interop'; + +@JS() +external set exportedFunction(JSFunction value); + +void printString(JSString string) { + print(string.toDart); +} + +void main() { + exportedFunction = printString.toJS; +} +``` + +```js +globalThis.exportedFunction('hello world'); +``` + +Functions that are exported this way have type [restrictions] similar to those +of interop members. + +Sometimes it's useful to export an entire Dart interface so that JS can interact +with a Dart object. To do this, mark the Dart class as exportable using +[`@JSExport`] and wrap instances of that class using [`createJSInteropWrapper`]. +For a more detailed explanation of this technique, including how to mock JS +values, see the [mocking tutorial]. + ## `dart:js_interop` and `dart:js_interop_unsafe` [`dart:js_interop`] contains all the necessary members you should need, @@ -443,6 +482,10 @@ TODO: Some of these are not available on stable. How do we link to dev? [property accessors]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/Property_accessors#bracket_notation [utility functions]: {{site.dart-api}}/{{site.sdkInfo.channel}}/dart-js_interop/JSAnyOperatorExtension.html [`@JS()`]: {{site.dart-api}}/{{site.sdkInfo.channel}}/dart-js_interop/JS-class.html +[`Function.toJS`]: {{site.dart-api}}/{{site.sdkInfo.channel}}/dart-js_interop/FunctionToJSExportedDartFunction/toJS.html +[`@JSExport`]: {{site.dart-api}}/{{site.sdkInfo.channel}}/dart-js_interop/JSExport-class.html +[`createJSInteropWrapper`]: {{site.dart-api}}/{{site.sdkInfo.channel}}/dart-js_interop/createJSInteropWrapper.html +[mocking tutorial]: /interop/js-interop/mock [`dart:js_interop`]: {{site.dart-api}}/{{site.sdkInfo.channel}}/dart-js_interop [`globalContext`]: {{site.dart-api}}/{{site.sdkInfo.channel}}/dart-js_interop/globalContext.html [Helpers to inspect the type of JS values]: {{site.dart-api}}/{{site.sdkInfo.channel}}/dart-js_interop/JSAnyUtilityExtension.html From f4c3230add468598b2961d129b33a6d93cf3f443 Mon Sep 17 00:00:00 2001 From: Amos Date: Fri, 2 Aug 2024 14:15:12 +0800 Subject: [PATCH 94/95] Sync: 2024/08/02 --- .github/workflows/build.yml | 4 +- .../lib/common_fixes_analysis.dart | 12 + package.json | 14 +- pnpm-lock.yaml | 788 +++++++++--------- src/_data/side-nav.yml | 5 +- src/_data/site.yml | 4 +- src/content/404.html | 1 + src/content/assets/img/tools/proget.svg | 16 + src/content/brand.md | 1 + src/content/community/code-of-conduct.md | 1 + .../get-dart/archive/_archives_table.html | 2 +- .../guides/environment-declarations.md | 1 + src/content/guides/language/evolution.md | 1 + src/content/guides/language/language-tour.md | 1 + src/content/guides/language/sound-problems.md | 29 + .../guides/libraries/create-packages.md | 22 +- src/content/guides/libraries/library-tour.md | 1 + src/content/interop/js-interop/mock.md | 8 +- src/content/interop/js-interop/usage.md | 43 + src/content/language/concurrency.md | 9 +- src/content/language/functions.md | 2 +- src/content/language/index.md | 2 +- src/content/language/isolates.md | 1 + src/content/language/mixins.md | 4 +- src/content/libraries/async/async-await.md | 36 +- src/content/map.html | 1 + src/content/resources/breaking-changes.md | 1 + .../resources/coming-from/js-to-dart.md | 1 + .../resources/coming-from/swift-to-dart.md | 1 + src/content/resources/dart-cheatsheet.md | 6 +- src/content/resources/google-apis.md | 1 + src/content/robots.liquid | 1 + src/content/search-all.html | 1 + src/content/search.html | 1 + src/content/security.md | 1 + src/content/sitemap.liquid | 1 + src/content/terms.md | 1 + src/content/tools/diagnostic-messages.md | 1 + .../tools/linter-rules/individual-rules.md | 1 + .../tools/pub/custom-package-repositories.md | 4 + src/content/tools/pub/publishing.md | 2 +- src/content/tools/pub/pubspec.md | 10 +- src/content/tools/vs-code.md | 88 +- src/content/tutorials/index.md | 2 +- tool/dart_site/lib/dart_site.dart | 2 + .../dart_site/lib/src/commands/freshness.dart | 255 ++++++ tool/dart_site/pubspec.yaml | 4 +- tool/inject_dartpad/pubspec.yaml | 6 +- 48 files changed, 915 insertions(+), 485 deletions(-) create mode 100644 src/content/assets/img/tools/proget.svg create mode 100644 tool/dart_site/lib/src/commands/freshness.dart diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index e0edebc0f..15d9b97fe 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -81,7 +81,7 @@ jobs: - name: Fetch Dart packages run: dart pub get - uses: pnpm/action-setup@fe02b34f77f8bc703788d5817da081398fad5dd2 - - uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 + - uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b with: node-version: ${{ env.NODE_VERSION }} cache: 'pnpm' @@ -150,7 +150,7 @@ jobs: - name: Fetch Dart packages run: dart pub get - uses: pnpm/action-setup@fe02b34f77f8bc703788d5817da081398fad5dd2 - - uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 + - uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b with: node-version: ${{ env.NODE_VERSION }} cache: 'pnpm' diff --git a/examples/type_system/lib/common_fixes_analysis.dart b/examples/type_system/lib/common_fixes_analysis.dart index b04b730b7..68d168a0d 100644 --- a/examples/type_system/lib/common_fixes_analysis.dart +++ b/examples/type_system/lib/common_fixes_analysis.dart @@ -149,3 +149,15 @@ void infFix() { ints.fold(null, (a, b) => a == null || a < b ? b : a); // #enddocregion type-inf-fix } + +//----------------------------------------------- + +// #docregion compatible-generics +abstract class C implements List {} +// #enddocregion compatible-generics + +// #docregion conflicting-generics +// ignore: inconsistent_inheritance, conflicting_generic_interfaces, +// ignore: duplicate_definition +abstract class C implements List, Iterable {} +// #enddocregion conflicting-generics diff --git a/package.json b/package.json index 146fee9f4..b0e0d3215 100644 --- a/package.json +++ b/package.json @@ -17,14 +17,14 @@ "node": ">=20.12.0", "pnpm": ">=9.1.0" }, - "packageManager": "pnpm@9.1.4", + "packageManager": "pnpm@9.6.0", "dependencies": { "bootstrap-scss": "^4.6.2" }, "devDependencies": { - "@11ty/eleventy": "3.0.0-alpha.14", - "@11ty/eleventy-img": "5.0.0-beta.4", - "firebase-tools": "^13.12.0", + "@11ty/eleventy": "3.0.0-beta.1", + "@11ty/eleventy-img": "5.0.0-beta.10", + "firebase-tools": "^13.14.2", "hast-util-from-html": "^2.0.1", "hast-util-select": "^6.0.2", "hast-util-to-text": "^4.0.2", @@ -36,7 +36,7 @@ "markdown-it-container": "^4.0.0", "markdown-it-deflist": "^3.0.0", "markdown-it-table": "^4.1.1", - "sass": "^1.77.6", - "shiki": "^1.10.0" + "sass": "^1.77.8", + "shiki": "^1.12.0" } -} +} \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 99e6fa698..bd36e12bf 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -13,14 +13,14 @@ importers: version: 4.6.2 devDependencies: '@11ty/eleventy': - specifier: 3.0.0-alpha.14 - version: 3.0.0-alpha.14 + specifier: 3.0.0-beta.1 + version: 3.0.0-beta.1 '@11ty/eleventy-img': - specifier: 5.0.0-beta.4 - version: 5.0.0-beta.4(encoding@0.1.13) + specifier: 5.0.0-beta.10 + version: 5.0.0-beta.10(encoding@0.1.13) firebase-tools: - specifier: ^13.12.0 - version: 13.12.0(encoding@0.1.13) + specifier: ^13.14.2 + version: 13.14.2(encoding@0.1.13) hast-util-from-html: specifier: ^2.0.1 version: 2.0.1 @@ -55,22 +55,22 @@ importers: specifier: ^4.1.1 version: 4.1.1 sass: - specifier: ^1.77.6 - version: 1.77.6 + specifier: ^1.77.8 + version: 1.77.8 shiki: - specifier: ^1.10.0 - version: 1.10.0 + specifier: ^1.12.0 + version: 1.12.0 packages: '@11ty/dependency-tree-esm@1.0.0': resolution: {integrity: sha512-Z3KN1Fkv50UM/ZzTR3VBbyOY52HnmhIVCsAV1hn2UzFsGAjyF1Cw8uohhVtheDOSuBR7ZSeo1unwkz1HxFlUtQ==} - '@11ty/dependency-tree@3.0.0': - resolution: {integrity: sha512-+M+/KdAptDTK4USkI124CKoScvt2y0v1EoLBjS2rUi9zydjWgEC7+EJJ7Eu1DXuObe0JmY09LORjdBGKNPxgtg==} + '@11ty/dependency-tree@3.0.1': + resolution: {integrity: sha512-aZizxcL4Z/clm3KPRx8i9ohW9R2gLssXfUSy7qQmQRXb4CUOyvmqk2gKeJqRmXIfMi2bB9w03SgtN5v1YwqpiA==} - '@11ty/eleventy-dev-server@2.0.1': - resolution: {integrity: sha512-G92KbOx5vg2G3mlQQ1B0+L+Ni7pcn1yeMgQdnT8b2G20ZnbGNtuGYEPehbQV4Xqr2iAtoBfbihNskbLDoVtNOg==} + '@11ty/eleventy-dev-server@2.0.2': + resolution: {integrity: sha512-OupvJ36G+iY+AKmO3veUR7MEZUL2p9tQmodSPf05en0p8LnJltHqK11S+XQ0iGUA96qcyeTLcKQpD+/ctekgmw==} engines: {node: '>=18'} hasBin: true @@ -78,24 +78,20 @@ packages: resolution: {integrity: sha512-yIiLM5ziBmg86i4TlXpBdcIygJHvh/GgPJyAiFOckO9H4y9cQDM8eIcJCUQ4Mum0NEVui/OjhEut2R08xw0vlQ==} engines: {node: '>=14'} - '@11ty/eleventy-img@5.0.0-beta.4': - resolution: {integrity: sha512-vuizGnW8mgW+O4iP6CbOB4CCKq3W2GiY+Ev9112qTCra+qau+xxhn9yrnyI3621sC/hEzKQI9MUFRZ2x+F8XnQ==} + '@11ty/eleventy-img@5.0.0-beta.10': + resolution: {integrity: sha512-4KwR/jKHu7GRsY7Ug4OFUusa49ITMM2a+TT5K9i67mnNUDk9PdmUv3p0u7sWz4zCPGYHjAplaBlyEo/CtqNt8g==} engines: {node: '>=18'} '@11ty/eleventy-plugin-bundle@2.0.2': resolution: {integrity: sha512-zGyPp1g6bi+VC2I5ylwj4w29nivDmx4Uki5gWY6v3MT/1muK0JTtnc1KOMC7yUurv6YwtwdiLYyFK2eFyKv2wg==} engines: {node: '>=18'} - '@11ty/eleventy-utils@1.0.2': - resolution: {integrity: sha512-Zy2leMK1DQR6Q6ZPSagv7QpJaAz9uVbb+RmVetYFp3foMeQtOSZx7w2u5daRFmP+PeNq9vO9H4xtBToYFWZwHA==} - engines: {node: '>=12'} - '@11ty/eleventy-utils@1.0.3': resolution: {integrity: sha512-nULO91om7vQw4Y/UBjM8i7nJ1xl+/nyK4rImZ41lFxiY2d+XUz7ChAj1CDYFjrLZeu0utAYJTZ45LlcHTkUG4g==} engines: {node: '>=12'} - '@11ty/eleventy@3.0.0-alpha.14': - resolution: {integrity: sha512-SQGvi/0cSrgyjhTocO8nGpivQbZBXnFlVLp1M3H8xcdvpXYgCVHiEYvrY79TnDd9Nxvj5QtsQuCiselJb3X16g==} + '@11ty/eleventy@3.0.0-beta.1': + resolution: {integrity: sha512-iJT7vekH11l8PAUPBfUAcb5oWbYK0w4ijgwDTutUsk6tX9rp4ZRL1jdhVWvZq04/rkc55mczNFPPhHB/XO1/qw==} engines: {node: '>=18'} hasBin: true @@ -107,6 +103,9 @@ packages: resolution: {integrity: sha512-CcsRdI933x613u7CjM+QGs7iD/m8SaDup3Apohg1+7dybigrEUHc2jGS3mcMgQKvF2+IphqmepD/FrKLlPkPEg==} engines: {node: '>= 6'} + '@11ty/recursive-copy@3.0.0': + resolution: {integrity: sha512-v1Mr7dWx5nk69/HRRtDHUYDV9N8+cE12IGiKSFOwML7HjOzUXwTP88e3cGuhqoVstkBil1ZEIaOB0KPP1zwqXA==} + '@apidevtools/json-schema-ref-parser@9.1.2': resolution: {integrity: sha512-r1w81DpR+KyRWd3f+rk6TNqMgedmAxZP5v5KWlXQWlgMUUtyEJch0DKEci1SorPMiSeM8XPl7MZ3miJ60JIpQg==} @@ -124,8 +123,8 @@ packages: '@emnapi/runtime@1.2.0': resolution: {integrity: sha512-bV21/9LQmcQeCPEg3BDFtvwL6cwiTMksYNWQQ4KOxCZikEGalWtenoZ0wCiukJINlGCIi2KXx01g4FoH/LxpzQ==} - '@google-cloud/cloud-sql-connector@1.3.0': - resolution: {integrity: sha512-PPJgqTliwkpdC3iMWgG/rjh17VGL/UEYLyvcMtfWCUtFQ+DQFr7UV8gxrDKM7H0d0yEjai32uBkd4fMuijPKjQ==} + '@google-cloud/cloud-sql-connector@1.3.3': + resolution: {integrity: sha512-Z/6haHca3bnaf1I2t/lmRgU5pCzGQTK6u9hMnD6a6sCL46QB4JRiBvRI5QMSPjnG8VYr1R7Wp1ZawvQJodEY6g==} engines: {node: '>=14'} '@google-cloud/paginator@5.0.2': @@ -144,16 +143,16 @@ packages: resolution: {integrity: sha512-Orxzlfb9c67A15cq2JQEyVc7wEsmFBmHjZWZYQMUyJ1qivXyMwdyNOs9odi79hze+2zqdTtu1E19IM/FtqZ10g==} engines: {node: '>=14'} - '@google-cloud/pubsub@4.4.0': - resolution: {integrity: sha512-1eiiAZUFhxcOqKPVwZarc3ghXuhoc3S7z5BgNrxqdirJ/MYr3IjQVTA7Lq2dAAsDuWms1LBN897rbnEGW9PpfA==} + '@google-cloud/pubsub@4.5.0': + resolution: {integrity: sha512-ptRLLDrAp1rStD1n3ZrG8FdAfpccqI6M5rCaceF6PL7DU3hqJbvQ2Y91G8MKG7c7zK+jiWv655Qf5r2IvjTzwA==} engines: {node: '>=14.0.0'} - '@googleapis/sqladmin@16.1.0': - resolution: {integrity: sha512-88Y0pvkuLfiEAPu5NwTi4tkbdWwzmKR9bdlM4p9MTRIQ+tYt6H39qDoXTRlnBp1eO2xnQ5NRXofZFNycK7D08w==} + '@googleapis/sqladmin@19.0.0': + resolution: {integrity: sha512-65zgEpQLhpTZqUic+pm4BbdDByN9NsHkphfCIwzpx3fccHPc6OuKsW0XexYCq9oTUtTC4QRjFisBDLV9fChRtg==} engines: {node: '>=12.0.0'} - '@grpc/grpc-js@1.10.8': - resolution: {integrity: sha512-vYVqYzHicDqyKB+NQhAc54I1QWCBLCrYG6unqOIcBTHx+7x8C9lcoLj3KVJXs2VB4lUbpWY+Kk9NipcbXYWmvg==} + '@grpc/grpc-js@1.11.1': + resolution: {integrity: sha512-gyt/WayZrVPH2w/UTLansS7F9Nwld472JxxaETamrM8HNlsa+jSLNyKAZmhxI2Me4c3mQHFiS1wWHDY1g1Kthw==} engines: {node: '>=12.10.0'} '@grpc/proto-loader@0.7.13': @@ -293,8 +292,8 @@ packages: '@jridgewell/source-map@0.3.6': resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==} - '@jridgewell/sourcemap-codec@1.4.15': - resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + '@jridgewell/sourcemap-codec@1.5.0': + resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} '@jridgewell/trace-mapping@0.3.25': resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} @@ -379,8 +378,8 @@ packages: '@protobufjs/utf8@1.1.0': resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} - '@shikijs/core@1.10.0': - resolution: {integrity: sha512-BZcr6FCmPfP6TXaekvujZcnkFmJHZ/Yglu97r/9VjzVndQA56/F4WjUKtJRQUnK59Wi7p/UTAOekMfCJv7jnYg==} + '@shikijs/core@1.12.0': + resolution: {integrity: sha512-mc1cLbm6UQ8RxLc0dZES7v5rkH+99LxQp/ZvTqV3NLyYsO/fD6JhEflP1H5b2SDq9gI0+0G36AVZWxvounfR9w==} '@sindresorhus/slugify@2.2.1': resolution: {integrity: sha512-MkngSCRZ8JdSOCHRaYd+D01XhvU3Hjy6MGl06zhOk614hp9EOAp5gIkBeQg7wtmxpitU6eAL4kdiRMcJa2dlrw==} @@ -418,8 +417,8 @@ packages: '@types/mdurl@2.0.0': resolution: {integrity: sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==} - '@types/node@20.12.13': - resolution: {integrity: sha512-gBGeanV41c1L171rR7wjbMiEpEI/l5XFQdLLfhr/REwpgDy/4U8y89+i8kRiLzDyZdOkXh+cRaTetUnCYutoXA==} + '@types/node@20.14.12': + resolution: {integrity: sha512-r7wNXakLeSsGT0H1AU863vS2wa5wBOK4bWMjZz2wj+8nBx+m5PeIn0k8AloSLpRuiwdRQZwarZqHE4FNArPuJQ==} '@types/request@2.48.12': resolution: {integrity: sha512-G3sY+NpsA9jnwm0ixhAFQSJ3Q9JkpLZpJbI3GMv0mIAT0y3mRabYeINzal5WOChIiaTEGQYlHOKgkaM9EisWHw==} @@ -448,12 +447,12 @@ packages: resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} engines: {node: '>= 0.6'} - acorn-walk@8.3.2: - resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} + acorn-walk@8.3.3: + resolution: {integrity: sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==} engines: {node: '>=0.4.0'} - acorn@8.11.3: - resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} + acorn@8.12.1: + resolution: {integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==} engines: {node: '>=0.4.0'} hasBin: true @@ -480,8 +479,8 @@ packages: ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} - ajv@8.14.0: - resolution: {integrity: sha512-oYs1UUtO97ZO2lJ4bwnWeQW8/zvOIQLGKcvPTsWmvc2SYgBb+upuNS5NxoLaMU4h8Ju3Nbj6Cq8mD2LQoqVKFA==} + ajv@8.17.1: + resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} ansi-align@3.0.1: resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} @@ -535,10 +534,6 @@ packages: resolution: {integrity: sha512-LeZY+DZDRnvP7eMuQ6LHfCzUGxAAIViUBliK24P3hWXL6y4SortgR6Nim6xrkfSLlmH0+k+9NYNwVC2s53ZrYQ==} engines: {node: '>=0.10.0'} - array-differ@4.0.0: - resolution: {integrity: sha512-Q6VPTLMsmXZ47ENG3V+wQyZS1ZxXMxFyYzA+Z/GMrJ6yIutAIEf9wTyroTzmGjNfox9/h3GdGBCVh43GVFx4Uw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - array-flatten@1.1.1: resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} @@ -549,10 +544,6 @@ packages: resolution: {integrity: sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==} engines: {node: '>=0.10.0'} - array-union@3.0.1: - resolution: {integrity: sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw==} - engines: {node: '>=12'} - array-uniq@1.0.3: resolution: {integrity: sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==} engines: {node: '>=0.10.0'} @@ -575,8 +566,8 @@ packages: resolution: {integrity: sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==} engines: {node: '>=4'} - async-lock@1.3.2: - resolution: {integrity: sha512-phnXdS3RP7PPcmP6NWWzWMU0sLTeyvtZCxBPpZdkYE3seGLKSQZs9FrmVO/qwypq98FUtWWUEYxziLkdGk5nnA==} + async-lock@1.4.1: + resolution: {integrity: sha512-Az2ZTpuytrtqENulXwO3GGv1Bztugx6TT37NIo7imr/Qo0gsYiGtSdBa2B6fsXhTpVZDNfu1Qn3pk531e3q+nQ==} async@2.6.4: resolution: {integrity: sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==} @@ -681,8 +672,8 @@ packages: resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} engines: {node: '>= 0.8'} - cacache@18.0.3: - resolution: {integrity: sha512-qXCd4rh6I07cnDqh8V48/94Tc/WSfj+o3Gn6NZ0aZovS255bUx8O13uKxRFd2eWG0xgsco7+YItQNPaa5E85hg==} + cacache@18.0.4: + resolution: {integrity: sha512-B+L5iIa9mgcjLbliir2th36yEwPftrzteHYujzsx3dFP/31GCHcIeS8f5MGd80odLOjaOvSpU3EEAmRQptkxLQ==} engines: {node: ^16.14.0 || >=18.0.0} call-bind@1.0.7: @@ -936,17 +927,8 @@ packages: supports-color: optional: true - debug@4.3.4: - resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - - debug@4.3.5: - resolution: {integrity: sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==} + debug@4.3.6: + resolution: {integrity: sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==} engines: {node: '>=6.0'} peerDependencies: supports-color: '*' @@ -1090,6 +1072,10 @@ packages: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} + entities@5.0.0: + resolution: {integrity: sha512-BeJFvFRJddxobhvEdm5GqHzRV/X+ACeuw0/BuuxsCh1EUZcAIz8+kYmBp/LrQuloy6K1f3a0M7+IhmZ7QnkISA==} + engines: {node: '>=0.12'} + env-paths@2.2.1: resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} engines: {node: '>=6'} @@ -1179,8 +1165,8 @@ packages: resolution: {integrity: sha512-V2hqwTtYRj0bj43K4MCtm0caD97YWkqOUHFMRCBW5L1x9IjyqOEc7Xa4oQjjiFbeFOSQzzwPV+BzXsQjSz08fw==} engines: {node: '>=6.0.0', npm: '>5.0.0'} - exegesis@4.1.2: - resolution: {integrity: sha512-D9ZFTFQ8O5ZRBLZ0HAHqo0Gc3+ts330WimHf0cF7OQZLQ3YqRVfjig5qGvEjheS68m+fMjJSR/wN/Qousg17Dw==} + exegesis@4.2.0: + resolution: {integrity: sha512-MOzRyqhvl+hTA4+W4p0saWRIPlu0grIx4ykjMEYgGLiqr/z9NCIlwSq2jF0gyxNjPZD3xyHgmkW6BSaLVUdctg==} engines: {node: '>=6.0.0', npm: '>5.0.0'} exponential-backoff@3.1.1: @@ -1214,6 +1200,9 @@ packages: fast-json-stable-stringify@2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + fast-uri@3.0.1: + resolution: {integrity: sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw==} + fast-url-parser@1.1.3: resolution: {integrity: sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==} @@ -1227,6 +1216,10 @@ packages: resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} engines: {node: '>=8'} + filesize@10.1.4: + resolution: {integrity: sha512-ryBwPIIeErmxgPnm6cbESAzXjuEFubs+yKYLBZvg3CaiNcmkJChoOGcBSrZ6IwkMwPABwPpVXE6IlNdGJJrvEg==} + engines: {node: '>= 10.4.0'} + filesize@6.4.0: resolution: {integrity: sha512-mjFIpOHC4jbfcTfoh4rkWpI31mF7viw9ikj/JyLoKzqlwG/YsefKfvYlYhdYdg/9mtK2z1AzgN/0LvVQ3zdlSQ==} engines: {node: '>= 0.4.0'} @@ -1243,8 +1236,8 @@ packages: resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} engines: {node: '>= 0.8'} - firebase-tools@13.12.0: - resolution: {integrity: sha512-hr3rqrWeeiNshVzmVSeQkCOSGUSKMxZs+ztairg4r6wteGUOVz56DrYsDMTUxjqH5zPxz5pxK9cvJi4M4ER13g==} + firebase-tools@13.14.2: + resolution: {integrity: sha512-JK8oJdVnBQDFh2UfA1qA3ULDKD6vwIFvVDXvkQXpxLG1wqnBU55Y+KgKpRwWNcE7lYEYohsXFIney3wMgOkszw==} engines: {node: '>=18.0.0 || >=20.0.0'} hasBin: true @@ -1258,8 +1251,8 @@ packages: fn.name@1.1.0: resolution: {integrity: sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==} - foreground-child@3.1.1: - resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} + foreground-child@3.2.1: + resolution: {integrity: sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==} engines: {node: '>=14'} form-data@2.5.1: @@ -1309,8 +1302,8 @@ packages: resolution: {integrity: sha512-/gZffu4ykarLrCiP3Ygsa86UAo1E5vEVlvTrpkKywXSbP9Xhln3oSp9QSV57gEq3JFFpGJ4GZ+5zdEp3FcUh4w==} engines: {node: '>= 0.6.0'} - gaxios@6.6.0: - resolution: {integrity: sha512-bpOZVQV5gthH/jVCSuYuokRo2bTKOcuBiVWpjmTn6C5Agl5zclGfTljuGsQZxwwDBkli+YhZhP4TdlqTnhOezQ==} + gaxios@6.7.0: + resolution: {integrity: sha512-DSrkyMTfAnAm4ks9Go20QGOcXEyW/NmZhvTYBU2rb4afBB393WIMQPWPEDMl/k8xqiNN9HYq2zao3oWXsdl2Tg==} engines: {node: '>=14'} gcp-metadata@6.1.0: @@ -1343,9 +1336,8 @@ packages: glob-slasher@1.0.1: resolution: {integrity: sha512-5MUzqFiycIKLMD1B0dYOE4hGgLLUZUNGGYO4BExdwT32wUwW3DBOE7lMQars7vB1q43Fb3Tyt+HmgLKsJhDYdg==} - glob@10.4.1: - resolution: {integrity: sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==} - engines: {node: '>=16 || 14 >=14.18'} + glob@10.4.5: + resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} hasBin: true glob@7.2.3: @@ -1356,12 +1348,12 @@ packages: resolution: {integrity: sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==} engines: {node: '>=10'} - google-auth-library@9.10.0: - resolution: {integrity: sha512-ol+oSa5NbcGdDqA+gZ3G3mev59OHBZksBTxY/tYwjtcp1H/scAFwJfSQU9/1RALoyZ7FslNbke8j4i3ipwlyuQ==} + google-auth-library@9.11.0: + resolution: {integrity: sha512-epX3ww/mNnhl6tL45EQ/oixsY8JLEgUFoT4A5E/5iAR4esld9Kqv6IJGk7EmGuOgDvaarwF95hU2+v7Irql9lw==} engines: {node: '>=14'} - google-gax@4.3.5: - resolution: {integrity: sha512-zXRSGgHp33ottCQMdYlKEFX/MhWkzKVX5P3Vpmx+DW6rtseLILzp3V0YV5Rh4oQzzkM0BH9+nJIyX01EUgmd3g==} + google-gax@4.3.8: + resolution: {integrity: sha512-SKAQKtvdjtNW3PMOhmKEqpQP+2C5ZqNKfwWxy70efpSwxvRYuAcgMJs6aRHTBPJjz3SO6ZbiXwM6WIuGYFZ7LQ==} engines: {node: '>=14'} googleapis-common@7.2.0: @@ -1473,8 +1465,8 @@ packages: resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} engines: {node: '>= 6'} - https-proxy-agent@7.0.4: - resolution: {integrity: sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==} + https-proxy-agent@7.0.5: + resolution: {integrity: sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==} engines: {node: '>= 14'} iconv-lite@0.4.24: @@ -1493,8 +1485,8 @@ packages: engines: {node: '>=16.x'} hasBin: true - immutable@4.3.6: - resolution: {integrity: sha512-Ju0+lEMyzMVZarkTn/gqRpdqd5dOPaz1mCZ0SH3JV6iFw81PldE/PEB1hWVEA288HPt4WXW8O7AWxB10M+03QQ==} + immutable@4.3.7: + resolution: {integrity: sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw==} import-lazy@2.1.0: resolution: {integrity: sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A==} @@ -1662,9 +1654,8 @@ packages: isomorphic-fetch@3.0.0: resolution: {integrity: sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA==} - jackspeak@3.1.2: - resolution: {integrity: sha512-kWmLKn2tRtfYMF/BakihVVRzBKOxz4gJMiL2Rj91WnAB5TPZumSH99R/Yf1qE1u4uRimvCSJfm6hnxohXeEXjQ==} - engines: {node: '>=14'} + jackspeak@3.4.3: + resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} jju@1.4.0: resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==} @@ -1746,17 +1737,17 @@ packages: resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} engines: {node: '>=6'} - libsodium-wrappers@0.7.13: - resolution: {integrity: sha512-kasvDsEi/r1fMzKouIDv7B8I6vNmknXwGiYodErGuESoFTohGSKZplFtVxZqHaoQ217AynyIFgnOVRitpHs0Qw==} + libsodium-wrappers@0.7.14: + resolution: {integrity: sha512-300TtsePizhJZ7HjLmWr6hLHAgJUxIGhapSw+EwfCtDuWaEmEdGXSQv6j6qFw0bs9l4vS2NH9BtOHfXAq6h5kQ==} - libsodium@0.7.13: - resolution: {integrity: sha512-mK8ju0fnrKXXfleL53vtp9xiPq5hKM0zbDQtcxQIsSmxNgSxqCj6R7Hl9PkrNe2j29T4yoDaF7DJLK9/i5iWUw==} + libsodium@0.7.14: + resolution: {integrity: sha512-/pOd7eO6oZrfORquRTC4284OUJFcMi8F3Vnc9xtRBT0teLfOUxWIItaBFF3odYjZ7nlJNwnLdUVEUFHxVyX/Sw==} linkify-it@5.0.0: resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==} - liquidjs@10.14.0: - resolution: {integrity: sha512-Zjg35Yo3L/2aNy7QkICha/ulbXRtZS7oRenWyDDfw+J34Xy3fOKWWHxASC9r0gbxN661nrwmG/kOIKHfYcVk4Q==} + liquidjs@10.16.1: + resolution: {integrity: sha512-1JFL/Y7ONoajrfwav37yuz5yQHU3+Pgz1XWsg9E/2T8Fp65KalNfMF8QZ3+tNETqGUIB66waOSLOi64niYZE9A==} engines: {node: '>=14'} hasBin: true @@ -1806,8 +1797,8 @@ packages: resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} engines: {node: '>=10'} - logform@2.6.0: - resolution: {integrity: sha512-1ulHeNPp6k/LD8H91o7VYFBng5i1BDE7HoKxVbZiGFidS1Rj65qcywLxX+pVfAPoQJEjRdvKcusKwOupHCVOVQ==} + logform@2.6.1: + resolution: {integrity: sha512-CdaO738xRapbKIMVn2m4F6KTj4j7ooJ8POVnebSgKo3KBz5axNXRAL7ZdRjIV6NOr2Uf4vjtRkxrFETOioCqSA==} engines: {node: '>= 12.0.0'} long@5.2.3: @@ -1816,9 +1807,8 @@ packages: lower-case@2.0.2: resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} - lru-cache@10.2.2: - resolution: {integrity: sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==} - engines: {node: 14 || >=16.14} + lru-cache@10.4.3: + resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} lru-cache@7.18.3: resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} @@ -1903,6 +1893,10 @@ packages: resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} engines: {node: '>= 0.6'} + mime-db@1.53.0: + resolution: {integrity: sha512-oHlN/w+3MQ3rba9rqFr6V/ypF10LSkdwUysQL7GkXoTgIWeV+tcXGA852TBxH+gsh8UWoyhR1hKcoMJTuWflpg==} + engines: {node: '>= 0.6'} + mime-types@2.1.35: resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} engines: {node: '>= 0.6'} @@ -1937,8 +1931,8 @@ packages: resolution: {integrity: sha512-sauLxniAmvnhhRjFwPNnJKaPFYyddAgbYdeUpHULtCT/GhzdCx/MDNy+Y40lBxTQUrMzDE8e0S43Z5uqfO0REg==} engines: {node: '>=10'} - minimatch@9.0.4: - resolution: {integrity: sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==} + minimatch@9.0.5: + resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} engines: {node: '>=16 || 14 >=14.17'} minimist@1.2.8: @@ -1989,6 +1983,11 @@ packages: engines: {node: '>=10'} hasBin: true + mkdirp@3.0.1: + resolution: {integrity: sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==} + engines: {node: '>=10'} + hasBin: true + moo@0.5.2: resolution: {integrity: sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==} @@ -1996,8 +1995,8 @@ packages: resolution: {integrity: sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ==} engines: {node: '>= 0.8.0'} - morphdom@2.7.2: - resolution: {integrity: sha512-Dqb/lHFyTi7SZpY0a5R4I/0Edo+iPMbaUexsHHsLAByyixCDiLHPHyVoKVmrpL0THcT7V9Cgev9y21TQYq6wQg==} + morphdom@2.7.4: + resolution: {integrity: sha512-ATTbWMgGa+FaMU3FhnFYB6WgulCqwf6opOll4CBzmVDTLvPMmUPrEv8CudmLPK0MESa64+6B89fWOxP3+YIlxQ==} ms@2.0.0: resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} @@ -2008,15 +2007,11 @@ packages: ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - multimatch@7.0.0: - resolution: {integrity: sha512-SYU3HBAdF4psHEL/+jXDKHO95/m5P2RvboHT2Y0WtTttvJLP4H/2WS9WlQPFvF6C8d6SpLw8vjCnQOnVIVOSJQ==} - engines: {node: '>=18'} - mute-stream@0.0.8: resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} - nan@2.19.0: - resolution: {integrity: sha512-nO1xXxfh/RWNxfd/XPfbIfFk5vgLsAxUR9y5O0cHMJu/AW9U95JLXqthYHjEp+8gQ5p96K9jUp8nbVOxCdRbtw==} + nan@2.20.0: + resolution: {integrity: sha512-bk3gXBZDGILuuo/6sKtr0DQmSThYHLtNCdSdXk9YkxD/jK6X2vmCyyXBBxyqZ4XcnzTyYEAThfX3DCEnLf6igw==} nearley@2.20.1: resolution: {integrity: sha512-+Mc8UaAebFzgV+KpI5n7DasuuQCHA89dmwm7JXw3TV43ukfNQ9DnBH3Mdb2g/I4Fdxc26pwimBWvjIw0UAILSQ==} @@ -2048,8 +2043,8 @@ packages: encoding: optional: true - node-gyp@10.1.0: - resolution: {integrity: sha512-B4J5M1cABxPc5PwfjhbV5hoy2DP9p8lFXASnEN6hugXOa61416tnTZ29x9sSwAd0o99XNIcpvDDy1swAExsVKA==} + node-gyp@10.2.0: + resolution: {integrity: sha512-sp3FonBAaFe4aYTcFdZUn2NYkbP7xroPGYvQmP4Nl5PxamznItBnNCgjrVTKrEfQynInMsJvZrdmqUnysCJ8rw==} engines: {node: ^16.14.0 || >=18.0.0} hasBin: true @@ -2089,8 +2084,9 @@ packages: resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} engines: {node: '>= 6'} - object-inspect@1.13.1: - resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} + object-inspect@1.13.2: + resolution: {integrity: sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==} + engines: {node: '>= 0.4'} object-keys@1.1.1: resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} @@ -2165,14 +2161,17 @@ packages: resolution: {integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==} engines: {node: '>=8'} - pac-proxy-agent@7.0.1: - resolution: {integrity: sha512-ASV8yU4LLKBAjqIPMbrgtaKIvxQri/yh2OpI+S6hVa9JRkUI3Y3NPFbfngDtY7oFtSMD3w31Xns89mDa3Feo5A==} + pac-proxy-agent@7.0.2: + resolution: {integrity: sha512-BFi3vZnO9X5Qt6NRz7ZOaPja3ic0PhlsmCRYLOpN11+mWBCR6XJDqW5RF3j8jm4WGGQZtBA+bTfxYzeKW73eHg==} engines: {node: '>= 14'} pac-resolver@7.0.1: resolution: {integrity: sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==} engines: {node: '>= 14'} + package-json-from-dist@1.0.0: + resolution: {integrity: sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==} + param-case@3.0.4: resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==} @@ -2233,8 +2232,8 @@ packages: resolution: {integrity: sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==} engines: {node: '>=4'} - pg@8.11.5: - resolution: {integrity: sha512-jqgNHSKL5cbDjFlHyYsCXmQDrfIX/3RsNwYqpd4N0Kt8niLuNoRNH+aazv6cOd43gPh9Y4DjQCtb+X0MH0Hvnw==} + pg@8.12.0: + resolution: {integrity: sha512-A+LHUSnwnxrnL/tZ+OLfqR1SxLN3c/pgDztZ47Rpbsd4jUytsTtwQo/TLPRzPJMp/1pbhYVhH9cuSZLAajNfjQ==} engines: {node: '>= 8.0.0'} peerDependencies: pg-native: '>=3.0.1' @@ -2279,6 +2278,12 @@ packages: resolution: {integrity: sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==} engines: {node: '>=0.10.0'} + posthtml-match-helper@2.0.2: + resolution: {integrity: sha512-ehnazjlSwcGa3P2LlFYmTmcnaembTSt9dLWIRRDVHDPidf6InWAr9leKeeLvUXgnU32g6BrFS64Je+c2Ld+l9g==} + engines: {node: '>=18'} + peerDependencies: + posthtml: ^0.16.6 + posthtml-parser@0.11.0: resolution: {integrity: sha512-QecJtfLekJbWVo/dMAA+OSwY79wpRmbqS5TeXvXSX+f0c6pW4/SE6inzZ2qkU7oAMCPqIDkZDvd/bQsSFUnKyw==} engines: {node: '>=12'} @@ -2291,10 +2296,6 @@ packages: resolution: {integrity: sha512-JcEmHlyLK/o0uGAlj65vgg+7LIms0xKXe60lcDOTU7oVX/3LuEuLwrQpW3VJ7de5TaFKiW4kWkaIpJL42FEgxQ==} engines: {node: '>=12.0.0'} - proc-log@3.0.0: - resolution: {integrity: sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - proc-log@4.2.0: resolution: {integrity: sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -2330,8 +2331,8 @@ packages: resolution: {integrity: sha512-SAzp/O4Yh02jGdRc+uIrGoe87dkN/XtwxfZ4ZyafJHymd79ozp5VG5nyZ7ygqPM5+cpLDjjGnYFUkngonyDPOQ==} engines: {node: '>=14.0.0'} - protobufjs@7.3.0: - resolution: {integrity: sha512-YWD03n3shzV9ImZRX3ccbjqLxj7NokGN0V/ESiBV5xWqrommYHYiihuIyavq03pWSGqlyvYUFmfoMKd+1rPA/g==} + protobufjs@7.3.2: + resolution: {integrity: sha512-RXyHaACeqXeqAKGLDl68rQKbmObRsTIn4TYVUUug1KfS47YWCo5MacGITEryugIgZqORCvJWEk4l449POg5Txg==} engines: {node: '>=12.0.0'} proxy-addr@2.0.7: @@ -2370,8 +2371,8 @@ packages: resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} engines: {node: '>=0.6'} - qs@6.12.1: - resolution: {integrity: sha512-zWmv4RSuB9r2mYQw3zxQuHWeU+42aKi1wWig/j4ele4ygELZ7PEO6MM7rim9oAQH2A5MWfsAVf/jPvTPgCbvUQ==} + qs@6.12.3: + resolution: {integrity: sha512-AWJm14H1vVaO/iNZ4/hO+HyaTehuy9nRqVdkTqlJt0HWvBiBIEXFmb4C0DGeYo3Xes9rrEW+TxHsaigCbN5ICQ==} engines: {node: '>=0.6'} queue-microtask@1.2.3: @@ -2402,8 +2403,8 @@ packages: resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} hasBin: true - re2@1.20.12: - resolution: {integrity: sha512-pfCHx+j0agxahWorhQZ2hyaZh/LH2e/vpoAilggksI3fFt+62oF0AY7UP7uvmpWleYLy6UoBTz4r/Kif0LfB/g==} + re2@1.21.3: + resolution: {integrity: sha512-GI+KoGkHT4kxTaX+9p0FgNB1XUnCndO9slG5qqeEoZ7kbf6Dk6ohQVpmwKVeSp7LPLn+g6Q3BaCopz4oHuBDuQ==} readable-stream@2.3.8: resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} @@ -2423,9 +2424,6 @@ packages: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} - recursive-copy@2.0.14: - resolution: {integrity: sha512-K8WNY8f8naTpfbA+RaXmkaQuD1IeW9EgNEfyGxSqqTQukpVtoOKros9jUqbpEsSw59YOmpd8nCBgtqJZy5nvog==} - redeyed@2.1.1: resolution: {integrity: sha512-FNpGGo1DycYAdnrKFxCMmKYgo/mILAqtRYbkdQD8Ep/Hk2PQ5+aEAEx+IU713RTDmuBaH0c8P5ZozurNu5ObRQ==} @@ -2473,19 +2471,14 @@ packages: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - rimraf@2.7.1: - resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==} - deprecated: Rimraf versions prior to v4 are no longer supported - hasBin: true - rimraf@3.0.2: resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true - rimraf@5.0.7: - resolution: {integrity: sha512-nV6YcJo5wbLW77m+8KjH8aB/7/rxQy9SZ0HY5shnwULfS+9nmTtVXAJET5NdZmCzA4fPI/Hm1wo/Po/4mopOdg==} - engines: {node: '>=14.18'} + rimraf@5.0.9: + resolution: {integrity: sha512-3i7b8OcswU6CpU8Ej89quJD4O98id7TtVM5U4Mybh84zQXdrFmDLouWBEEaD/QfO3gDDfH+AGFCGsR7kngzQnA==} + engines: {node: 14 >=14.20 || 16 >=16.20 || >=18} hasBin: true router@1.3.8: @@ -2515,8 +2508,8 @@ packages: safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - sass@1.77.6: - resolution: {integrity: sha512-ByXE1oLD79GVq9Ht1PeHWCPMPB8XHpBuz1r85oByKHjZY6qV6rWnQovQzXJXuQ/XyE1Oj3iPk3lo28uzaRA2/Q==} + sass@1.77.8: + resolution: {integrity: sha512-4UHg6prsrycW20fqLGPShtEvo/WyHRVRHwOP4DzkUrObWoWI05QBSfzU71TVB7PFaL104TwNaHpjlWXAZbQiNQ==} engines: {node: '>=14.0.0'} hasBin: true @@ -2539,8 +2532,8 @@ packages: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true - semver@7.6.2: - resolution: {integrity: sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==} + semver@7.6.3: + resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} engines: {node: '>=10'} hasBin: true @@ -2579,8 +2572,8 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} - shiki@1.10.0: - resolution: {integrity: sha512-YD2sXQ+TMD/F9BimV9Jn0wj35pqOvywvOG/3PB6hGHyGKlM7TJ9tyJ02jOb2kF8F0HfJwKNYrh3sW7jEcuRlXA==} + shiki@1.12.0: + resolution: {integrity: sha512-BuAxWOm5JhRcbSOl7XCei8wGjgJJonnV0oipUupPY58iULxUGyHhW5CF+9FRMuM1pcJ5cGEJGll1LusX6FwpPA==} side-channel@1.0.6: resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} @@ -2608,8 +2601,8 @@ packages: resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} - socks-proxy-agent@8.0.3: - resolution: {integrity: sha512-VNegTZKhuGq5vSD6XNKlbqWhyt/40CgoEw8XxD6dhnm8Jq9IEa3nIa4HwnM8XOqU0CdB0BwWVXusqiFXfHB3+A==} + socks-proxy-agent@8.0.4: + resolution: {integrity: sha512-GNAq/eg8Udq2x0eNiFkr9gRg5bA7PXEWagQdeRX4cPSG+X/8V38v637gim9bjFptMk1QWsCTr0ttrJEiXbNnRw==} engines: {node: '>= 14'} socks@2.8.3: @@ -2643,8 +2636,8 @@ packages: sprintf-js@1.1.3: resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==} - sql-formatter@15.3.1: - resolution: {integrity: sha512-L/dqan+Hrt0PpPdCbHcI9bdfOvqaQZR7v5c5SWMJ3bUGQSezK09Mm9q2I3B4iObjaq7FyoldIM+fDSmfzGRXCA==} + sql-formatter@15.3.2: + resolution: {integrity: sha512-pNxSMf5DtwhpZ8gUcOGCGZIWtCcyAUx9oLgAtlO4ag7DvlfnETL0BGqXaISc84pNrXvTWmt8Wal1FWKxdTsL3Q==} hasBin: true ssri@10.0.6: @@ -2737,13 +2730,13 @@ packages: resolution: {integrity: sha512-resvxdc6Mgb7YEThw6G6bExlXKkv6+YbuzGg9xuXxSgxJF7Ozs+o8Y9+2R3sArdWdW8nOokoQb1yrpFB0pQK2g==} engines: {node: '>=14'} - terser@5.31.0: - resolution: {integrity: sha512-Q1JFAoUKE5IMfI4Z/lkE/E6+SwgzO+x4tq4v1AyBLRj8VSYvRO6A/rQrPg1yud4g0En9EKI1TvFRF2tQFcoUkg==} + terser@5.31.3: + resolution: {integrity: sha512-pAfYn3NIZLyZpa83ZKigvj6Rn9c/vd5KfYGX7cN1mnzqgDcxWvrU5ZtAfIKhEXz9nRecw4z3LXkjaq96/qZqAA==} engines: {node: '>=10'} hasBin: true - text-decoder@1.1.0: - resolution: {integrity: sha512-TmLJNj6UgX8xcUZo4UDStGQtDiTzF7BzWlzn9g7UWrjkpHr5uJTK1ld16wZ3LXb2vb6jH8qU89dW5whuMdXYdw==} + text-decoder@1.1.1: + resolution: {integrity: sha512-8zll7REEv4GDD3x4/0pW+ppIxSNs7H1J10IKFZsuOMscumCdM2a+toDGLPA3T+1+fLBql4zbt5z83GEQGGV5VA==} text-hex@1.0.0: resolution: {integrity: sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==} @@ -2777,8 +2770,8 @@ packages: resolution: {integrity: sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==} engines: {node: '>= 14.0.0'} - tslib@2.6.2: - resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} + tslib@2.6.3: + resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==} type-fest@0.20.2: resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} @@ -2863,6 +2856,10 @@ packages: resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} engines: {node: '>= 0.4.0'} + uuid@10.0.0: + resolution: {integrity: sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==} + hasBin: true + uuid@8.3.2: resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} hasBin: true @@ -2878,14 +2875,14 @@ packages: resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} engines: {node: '>= 0.8'} - vfile-location@5.0.2: - resolution: {integrity: sha512-NXPYyxyBSH7zB5U6+3uDdd6Nybz6o6/od9rk8bp9H8GR3L+cm/fC0uUTbqBmUTnMCUDslAGBOIKNfvvb+gGlDg==} + vfile-location@5.0.3: + resolution: {integrity: sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==} vfile-message@4.0.2: resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==} - vfile@6.0.1: - resolution: {integrity: sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==} + vfile@6.0.2: + resolution: {integrity: sha512-zND7NlS8rJYb/sPqkb13ZvbbUoExdbi4w3SfRrMq6R3FvnLQmmfpajJNITuuYm6AZ5uao9vy4BAos3EXBPf2rg==} wcwidth@1.0.1: resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} @@ -2920,12 +2917,12 @@ packages: resolution: {integrity: sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==} engines: {node: '>=8'} - winston-transport@4.7.0: - resolution: {integrity: sha512-ajBj65K5I7denzer2IYW6+2bNIVqLGDHqDw3Ow8Ohh+vdW+rv4MZ6eiDvHoKhfJFZ2auyN8byXieDDJ96ViONg==} + winston-transport@4.7.1: + resolution: {integrity: sha512-wQCXXVgfv/wUPOfb2x0ruxzwkcZfxcktz6JIMUaPLmcNhO4bZTwA/WtDWK74xV3F2dKu8YadrFv0qhwYjVEwhA==} engines: {node: '>= 12.0.0'} - winston@3.13.0: - resolution: {integrity: sha512-rwidmA1w3SE4j0E5MuIufFhyJPBDG7Nu71RkZor1p2+qHvJSZ9GYDA81AyleQcZbh/+V6HjeBdfnTZJm9rSeQQ==} + winston@3.13.1: + resolution: {integrity: sha512-SvZit7VFNvXRzbqGHsv5KSmgbEYR5EiQfDAL9gxYkRqa934Hnk++zze0wANKtMHcy/gI4W/3xmSDwlhf865WGw==} engines: {node: '>= 12.0.0'} wrap-ansi@6.2.0: @@ -2946,8 +2943,8 @@ packages: write-file-atomic@3.0.3: resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==} - ws@7.5.9: - resolution: {integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==} + ws@7.5.10: + resolution: {integrity: sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==} engines: {node: '>=8.3.0'} peerDependencies: bufferutil: ^4.0.1 @@ -2958,8 +2955,8 @@ packages: utf-8-validate: optional: true - ws@8.17.0: - resolution: {integrity: sha512-uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow==} + ws@8.18.0: + resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==} engines: {node: '>=10.0.0'} peerDependencies: bufferutil: ^4.0.1 @@ -2985,8 +2982,8 @@ packages: yallist@4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - yaml@2.4.2: - resolution: {integrity: sha512-B3VqDZ+JAg1nZpaEmWtTXUlBneoGx6CPM9b0TENK6aoSu5t73dItudwdgmi6tHlIZZId4dZ9skcAQ2UbcyAeVA==} + yaml@2.5.0: + resolution: {integrity: sha512-2wWLbGbYDiSqqIKoPjar3MPgB94ErzCtrNE1FdqGuaO0pi2JGjmE8aW8TDZwzU7vuxcGRdL/4gPQwQ7hD5AMSw==} engines: {node: '>= 14'} hasBin: true @@ -3014,29 +3011,29 @@ snapshots: '@11ty/dependency-tree-esm@1.0.0': dependencies: '@11ty/eleventy-utils': 1.0.3 - acorn: 8.11.3 + acorn: 8.12.1 dependency-graph: 0.11.0 normalize-path: 3.0.0 - '@11ty/dependency-tree@3.0.0': + '@11ty/dependency-tree@3.0.1': dependencies: '@11ty/eleventy-utils': 1.0.3 - '@11ty/eleventy-dev-server@2.0.1': + '@11ty/eleventy-dev-server@2.0.2': dependencies: '@11ty/eleventy-utils': 1.0.3 chokidar: 3.6.0 - debug: 4.3.5 + debug: 4.3.6 dev-ip: 1.0.1 finalhandler: 1.2.0 mime: 3.0.0 minimist: 1.2.8 - morphdom: 2.7.2 + morphdom: 2.7.4 please-upgrade-node: 3.2.0 send: 0.18.0 ssri: 10.0.6 urlpattern-polyfill: 10.0.0 - ws: 8.17.0 + ws: 8.18.0 transitivePeerDependencies: - bufferutil - supports-color @@ -3044,7 +3041,7 @@ snapshots: '@11ty/eleventy-fetch@4.0.1(encoding@0.1.13)': dependencies: - debug: 4.3.4 + debug: 4.3.6 flat-cache: 3.2.0 node-fetch: 2.7.0(encoding@0.1.13) p-queue: 6.6.2 @@ -3052,13 +3049,13 @@ snapshots: - encoding - supports-color - '@11ty/eleventy-img@5.0.0-beta.4(encoding@0.1.13)': + '@11ty/eleventy-img@5.0.0-beta.10(encoding@0.1.13)': dependencies: '@11ty/eleventy-fetch': 4.0.1(encoding@0.1.13) - '@11ty/eleventy-utils': 1.0.2 + '@11ty/eleventy-utils': 1.0.3 brotli-size: 4.0.0 - debug: 4.3.4 - entities: 4.5.0 + debug: 4.3.6 + entities: 5.0.0 image-size: 1.1.1 p-queue: 6.6.2 sharp: 0.33.4 @@ -3068,54 +3065,52 @@ snapshots: '@11ty/eleventy-plugin-bundle@2.0.2': dependencies: - debug: 4.3.5 + debug: 4.3.6 transitivePeerDependencies: - supports-color - '@11ty/eleventy-utils@1.0.2': - dependencies: - normalize-path: 3.0.0 - '@11ty/eleventy-utils@1.0.3': dependencies: normalize-path: 3.0.0 - '@11ty/eleventy@3.0.0-alpha.14': + '@11ty/eleventy@3.0.0-beta.1': dependencies: - '@11ty/dependency-tree': 3.0.0 + '@11ty/dependency-tree': 3.0.1 '@11ty/dependency-tree-esm': 1.0.0 - '@11ty/eleventy-dev-server': 2.0.1 + '@11ty/eleventy-dev-server': 2.0.2 '@11ty/eleventy-plugin-bundle': 2.0.2 '@11ty/eleventy-utils': 1.0.3 '@11ty/lodash-custom': 4.17.21 '@11ty/posthtml-urls': 1.0.0 + '@11ty/recursive-copy': 3.0.0 '@sindresorhus/slugify': 2.2.1 bcp-47-normalize: 2.3.0 chardet: 2.0.0 chokidar: 3.6.0 cross-spawn: 7.0.3 - debug: 4.3.5 + debug: 4.3.6 dependency-graph: 1.0.0 fast-glob: 3.3.2 + filesize: 10.1.4 graceful-fs: 4.2.11 gray-matter: 4.0.3 is-glob: 4.0.3 iso-639-1: 3.1.2 + js-yaml: 4.1.0 kleur: 4.1.5 - liquidjs: 10.14.0 + liquidjs: 10.16.1 luxon: 3.4.4 markdown-it: 14.1.0 micromatch: 4.0.7 minimist: 1.2.8 moo: 0.5.2 - multimatch: 7.0.0 node-retrieve-globals: 6.0.0 normalize-path: 3.0.0 nunjucks: 3.2.4(chokidar@3.6.0) please-upgrade-node: 3.2.0 posthtml: 0.16.6 - recursive-copy: 2.0.14 - semver: 7.6.2 + posthtml-match-helper: 2.0.2(posthtml@0.16.6) + semver: 7.6.3 slugify: 1.6.6 transitivePeerDependencies: - bufferutil @@ -3132,6 +3127,18 @@ snapshots: object.entries: 1.1.8 parse-srcset: 1.0.2 + '@11ty/recursive-copy@3.0.0': + dependencies: + errno: 0.1.8 + graceful-fs: 4.2.11 + junk: 1.0.3 + maximatch: 0.1.0 + mkdirp: 3.0.1 + pify: 2.3.0 + promise: 7.3.1 + rimraf: 5.0.9 + slash: 1.0.0 + '@apidevtools/json-schema-ref-parser@9.1.2': dependencies: '@jsdevtools/ono': 7.1.3 @@ -3152,14 +3159,14 @@ snapshots: '@emnapi/runtime@1.2.0': dependencies: - tslib: 2.6.2 + tslib: 2.6.3 optional: true - '@google-cloud/cloud-sql-connector@1.3.0(encoding@0.1.13)': + '@google-cloud/cloud-sql-connector@1.3.3(encoding@0.1.13)': dependencies: - '@googleapis/sqladmin': 16.1.0(encoding@0.1.13) - gaxios: 6.6.0(encoding@0.1.13) - google-auth-library: 9.10.0(encoding@0.1.13) + '@googleapis/sqladmin': 19.0.0(encoding@0.1.13) + gaxios: 6.7.0(encoding@0.1.13) + google-auth-library: 9.11.0(encoding@0.1.13) p-throttle: 5.1.0 transitivePeerDependencies: - encoding @@ -3176,7 +3183,7 @@ snapshots: '@google-cloud/promisify@4.0.0': {} - '@google-cloud/pubsub@4.4.0(encoding@0.1.13)': + '@google-cloud/pubsub@4.5.0(encoding@0.1.13)': dependencies: '@google-cloud/paginator': 5.0.2 '@google-cloud/precise-date': 4.0.0 @@ -3186,8 +3193,8 @@ snapshots: '@opentelemetry/semantic-conventions': 1.21.0 arrify: 2.0.1 extend: 3.0.2 - google-auth-library: 9.10.0(encoding@0.1.13) - google-gax: 4.3.5(encoding@0.1.13) + google-auth-library: 9.11.0(encoding@0.1.13) + google-gax: 4.3.8(encoding@0.1.13) heap-js: 2.5.0 is-stream-ended: 0.1.4 lodash.snakecase: 4.1.1 @@ -3196,14 +3203,14 @@ snapshots: - encoding - supports-color - '@googleapis/sqladmin@16.1.0(encoding@0.1.13)': + '@googleapis/sqladmin@19.0.0(encoding@0.1.13)': dependencies: googleapis-common: 7.2.0(encoding@0.1.13) transitivePeerDependencies: - encoding - supports-color - '@grpc/grpc-js@1.10.8': + '@grpc/grpc-js@1.11.1': dependencies: '@grpc/proto-loader': 0.7.13 '@js-sdsl/ordered-map': 4.4.2 @@ -3212,7 +3219,7 @@ snapshots: dependencies: lodash.camelcase: 4.3.0 long: 5.2.3 - protobufjs: 7.3.0 + protobufjs: 7.3.2 yargs: 17.7.2 '@img/sharp-darwin-arm64@0.33.4': @@ -3302,7 +3309,7 @@ snapshots: '@jridgewell/gen-mapping@0.3.5': dependencies: '@jridgewell/set-array': 1.2.1 - '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/sourcemap-codec': 1.5.0 '@jridgewell/trace-mapping': 0.3.25 '@jridgewell/resolve-uri@3.1.2': {} @@ -3314,12 +3321,12 @@ snapshots: '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 - '@jridgewell/sourcemap-codec@1.4.15': {} + '@jridgewell/sourcemap-codec@1.5.0': {} '@jridgewell/trace-mapping@0.3.25': dependencies: '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/sourcemap-codec': 1.5.0 '@js-sdsl/ordered-map@4.4.2': {} @@ -3341,16 +3348,16 @@ snapshots: dependencies: agent-base: 7.1.1 http-proxy-agent: 7.0.2 - https-proxy-agent: 7.0.4 - lru-cache: 10.2.2 - socks-proxy-agent: 8.0.3 + https-proxy-agent: 7.0.5 + lru-cache: 10.4.3 + socks-proxy-agent: 8.0.4 transitivePeerDependencies: - supports-color optional: true '@npmcli/fs@3.1.1': dependencies: - semver: 7.6.2 + semver: 7.6.3 optional: true '@opentelemetry/api@1.8.0': {} @@ -3395,7 +3402,9 @@ snapshots: '@protobufjs/utf8@1.1.0': {} - '@shikijs/core@1.10.0': {} + '@shikijs/core@1.12.0': + dependencies: + '@types/hast': 3.0.4 '@sindresorhus/slugify@2.2.1': dependencies: @@ -3429,14 +3438,14 @@ snapshots: '@types/mdurl@2.0.0': {} - '@types/node@20.12.13': + '@types/node@20.14.12': dependencies: undici-types: 5.26.5 '@types/request@2.48.12': dependencies: '@types/caseless': 0.12.5 - '@types/node': 20.12.13 + '@types/node': 20.14.12 '@types/tough-cookie': 4.0.5 form-data: 2.5.1 @@ -3460,19 +3469,21 @@ snapshots: mime-types: 2.1.35 negotiator: 0.6.3 - acorn-walk@8.3.2: {} + acorn-walk@8.3.3: + dependencies: + acorn: 8.12.1 - acorn@8.11.3: {} + acorn@8.12.1: {} agent-base@6.0.2: dependencies: - debug: 4.3.5 + debug: 4.3.6 transitivePeerDependencies: - supports-color agent-base@7.1.1: dependencies: - debug: 4.3.5 + debug: 4.3.6 transitivePeerDependencies: - supports-color @@ -3482,9 +3493,9 @@ snapshots: indent-string: 4.0.0 optional: true - ajv-formats@2.1.1(ajv@8.14.0): + ajv-formats@2.1.1(ajv@8.17.1): optionalDependencies: - ajv: 8.14.0 + ajv: 8.17.1 ajv@6.12.6: dependencies: @@ -3493,12 +3504,12 @@ snapshots: json-schema-traverse: 0.4.1 uri-js: 4.4.1 - ajv@8.14.0: + ajv@8.17.1: dependencies: fast-deep-equal: 3.1.3 + fast-uri: 3.0.1 json-schema-traverse: 1.0.0 require-from-string: 2.0.2 - uri-js: 4.4.1 ansi-align@3.0.1: dependencies: @@ -3529,7 +3540,7 @@ snapshots: archiver-utils@5.0.2: dependencies: - glob: 10.4.1 + glob: 10.4.5 graceful-fs: 4.2.11 is-stream: 2.0.1 lazystream: 1.0.1 @@ -3555,8 +3566,6 @@ snapshots: array-differ@1.0.0: {} - array-differ@4.0.0: {} - array-flatten@1.1.1: {} array-flatten@3.0.0: {} @@ -3565,8 +3574,6 @@ snapshots: dependencies: array-uniq: 1.0.3 - array-union@3.0.1: {} - array-uniq@1.0.3: {} arrify@1.0.1: {} @@ -3579,9 +3586,9 @@ snapshots: ast-types@0.13.4: dependencies: - tslib: 2.6.2 + tslib: 2.6.3 - async-lock@1.3.2: {} + async-lock@1.4.1: {} async@2.6.4: dependencies: @@ -3700,12 +3707,12 @@ snapshots: bytes@3.1.2: {} - cacache@18.0.3: + cacache@18.0.4: dependencies: '@npmcli/fs': 3.1.1 fs-minipass: 3.0.3 - glob: 10.4.1 - lru-cache: 10.2.2 + glob: 10.4.5 + lru-cache: 10.4.3 minipass: 7.1.2 minipass-collect: 2.0.1 minipass-flush: 1.0.5 @@ -3729,7 +3736,7 @@ snapshots: camel-case@4.1.2: dependencies: pascal-case: 3.1.2 - tslib: 2.6.2 + tslib: 2.6.3 camelcase@6.3.0: {} @@ -3864,7 +3871,7 @@ snapshots: compressible@2.0.18: dependencies: - mime-db: 1.52.0 + mime-db: 1.53.0 compression@1.7.4: dependencies: @@ -3965,11 +3972,7 @@ snapshots: dependencies: ms: 2.1.2 - debug@4.3.4: - dependencies: - ms: 2.1.2 - - debug@4.3.5: + debug@4.3.6: dependencies: ms: 2.1.2 @@ -4051,7 +4054,7 @@ snapshots: dot-case@3.0.4: dependencies: no-case: 3.0.4 - tslib: 2.6.2 + tslib: 2.6.3 dot-prop@5.3.0: dependencies: @@ -4097,6 +4100,8 @@ snapshots: entities@4.5.0: {} + entities@5.0.0: {} + env-paths@2.2.1: optional: true @@ -4137,7 +4142,7 @@ snapshots: esm-import-transformer@3.0.2: dependencies: - acorn: 8.11.3 + acorn: 8.12.1 esprima@4.0.1: {} @@ -4159,29 +4164,29 @@ snapshots: exegesis-express@4.0.0: dependencies: - exegesis: 4.1.2 + exegesis: 4.2.0 transitivePeerDependencies: - supports-color - exegesis@4.1.2: + exegesis@4.2.0: dependencies: '@apidevtools/json-schema-ref-parser': 9.1.2 - ajv: 8.14.0 - ajv-formats: 2.1.1(ajv@8.14.0) + ajv: 8.17.1 + ajv-formats: 2.1.1(ajv@8.17.1) body-parser: 1.20.2 content-type: 1.0.5 deep-freeze: 0.0.1 events-listener: 1.1.0 - glob: 10.4.1 + glob: 10.4.5 json-ptr: 3.1.1 json-schema-traverse: 1.0.0 lodash: 4.17.21 openapi3-ts: 3.2.0 promise-breaker: 6.0.0 pump: 3.0.0 - qs: 6.12.1 + qs: 6.12.3 raw-body: 2.5.2 - semver: 7.6.2 + semver: 7.6.3 transitivePeerDependencies: - supports-color @@ -4250,6 +4255,8 @@ snapshots: fast-json-stable-stringify@2.1.0: {} + fast-uri@3.0.1: {} + fast-url-parser@1.1.3: dependencies: punycode: 1.4.1 @@ -4264,6 +4271,8 @@ snapshots: dependencies: escape-string-regexp: 1.0.5 + filesize@10.1.4: {} + filesize@6.4.0: {} fill-range@7.1.1: @@ -4294,14 +4303,14 @@ snapshots: transitivePeerDependencies: - supports-color - firebase-tools@13.12.0(encoding@0.1.13): + firebase-tools@13.14.2(encoding@0.1.13): dependencies: - '@google-cloud/cloud-sql-connector': 1.3.0(encoding@0.1.13) - '@google-cloud/pubsub': 4.4.0(encoding@0.1.13) + '@google-cloud/cloud-sql-connector': 1.3.3(encoding@0.1.13) + '@google-cloud/pubsub': 4.5.0(encoding@0.1.13) abort-controller: 3.0.0 ajv: 6.12.6 archiver: 7.0.1 - async-lock: 1.3.2 + async-lock: 1.4.1 body-parser: 1.20.2 chokidar: 3.6.0 cjson: 0.3.3 @@ -4314,21 +4323,21 @@ snapshots: cross-spawn: 7.0.3 csv-parse: 5.5.6 deep-equal-in-any-order: 2.0.6 - exegesis: 4.1.2 + exegesis: 4.2.0 exegesis-express: 4.0.0 express: 4.19.2 filesize: 6.4.0 form-data: 4.0.0 fs-extra: 10.1.0 fuzzy: 0.1.3 - gaxios: 6.6.0(encoding@0.1.13) - glob: 10.4.1 - google-auth-library: 9.10.0(encoding@0.1.13) + gaxios: 6.7.0(encoding@0.1.13) + glob: 10.4.5 + google-auth-library: 9.11.0(encoding@0.1.13) inquirer: 8.2.6 inquirer-autocomplete-prompt: 2.0.1(inquirer@8.2.6) jsonwebtoken: 9.0.2 leven: 3.1.0 - libsodium-wrappers: 0.7.13 + libsodium-wrappers: 0.7.14 lodash: 4.17.21 marked: 4.3.0 marked-terminal: 5.2.0(marked@4.3.0) @@ -4339,14 +4348,14 @@ snapshots: open: 6.4.0 ora: 5.4.1 p-limit: 3.1.0 - pg: 8.11.5 + pg: 8.12.0 portfinder: 1.0.32 progress: 2.0.3 proxy-agent: 6.4.0 retry: 0.13.1 - rimraf: 5.0.7 - semver: 7.6.2 - sql-formatter: 15.3.1 + rimraf: 5.0.9 + semver: 7.6.3 + sql-formatter: 15.3.2 stream-chain: 2.2.5 stream-json: 1.8.0 strip-ansi: 6.0.1 @@ -4358,10 +4367,10 @@ snapshots: universal-analytics: 0.5.3 update-notifier-cjs: 5.1.6(encoding@0.1.13) uuid: 8.3.2 - winston: 3.13.0 - winston-transport: 4.7.0 - ws: 7.5.9 - yaml: 2.4.2 + winston: 3.13.1 + winston-transport: 4.7.1 + ws: 7.5.10 + yaml: 2.5.0 transitivePeerDependencies: - bufferutil - encoding @@ -4379,7 +4388,7 @@ snapshots: fn.name@1.1.0: {} - foreground-child@3.1.1: + foreground-child@3.2.1: dependencies: cross-spawn: 7.0.3 signal-exit: 4.1.0 @@ -4430,20 +4439,20 @@ snapshots: fuzzy@0.1.3: {} - gaxios@6.6.0(encoding@0.1.13): + gaxios@6.7.0(encoding@0.1.13): dependencies: extend: 3.0.2 - https-proxy-agent: 7.0.4 + https-proxy-agent: 7.0.5 is-stream: 2.0.1 node-fetch: 2.7.0(encoding@0.1.13) - uuid: 9.0.1 + uuid: 10.0.0 transitivePeerDependencies: - encoding - supports-color gcp-metadata@6.1.0(encoding@0.1.13): dependencies: - gaxios: 6.6.0(encoding@0.1.13) + gaxios: 6.7.0(encoding@0.1.13) json-bigint: 1.0.0 transitivePeerDependencies: - encoding @@ -4465,7 +4474,7 @@ snapshots: dependencies: basic-ftp: 5.0.5 data-uri-to-buffer: 6.0.2 - debug: 4.3.5 + debug: 4.3.6 fs-extra: 11.2.0 transitivePeerDependencies: - supports-color @@ -4482,12 +4491,13 @@ snapshots: lodash.isobject: 2.4.1 toxic: 1.0.1 - glob@10.4.1: + glob@10.4.5: dependencies: - foreground-child: 3.1.1 - jackspeak: 3.1.2 - minimatch: 9.0.4 + foreground-child: 3.2.1 + jackspeak: 3.4.3 + minimatch: 9.0.5 minipass: 7.1.2 + package-json-from-dist: 1.0.0 path-scurry: 1.11.1 glob@7.2.3: @@ -4503,11 +4513,11 @@ snapshots: dependencies: ini: 2.0.0 - google-auth-library@9.10.0(encoding@0.1.13): + google-auth-library@9.11.0(encoding@0.1.13): dependencies: base64-js: 1.5.1 ecdsa-sig-formatter: 1.0.11 - gaxios: 6.6.0(encoding@0.1.13) + gaxios: 6.7.0(encoding@0.1.13) gcp-metadata: 6.1.0(encoding@0.1.13) gtoken: 7.1.0(encoding@0.1.13) jws: 4.0.0 @@ -4515,18 +4525,18 @@ snapshots: - encoding - supports-color - google-gax@4.3.5(encoding@0.1.13): + google-gax@4.3.8(encoding@0.1.13): dependencies: - '@grpc/grpc-js': 1.10.8 + '@grpc/grpc-js': 1.11.1 '@grpc/proto-loader': 0.7.13 '@types/long': 4.0.2 abort-controller: 3.0.0 duplexify: 4.1.3 - google-auth-library: 9.10.0(encoding@0.1.13) + google-auth-library: 9.11.0(encoding@0.1.13) node-fetch: 2.7.0(encoding@0.1.13) object-hash: 3.0.0 proto3-json-serializer: 2.0.2 - protobufjs: 7.3.0 + protobufjs: 7.3.2 retry-request: 7.0.2(encoding@0.1.13) uuid: 9.0.1 transitivePeerDependencies: @@ -4536,9 +4546,9 @@ snapshots: googleapis-common@7.2.0(encoding@0.1.13): dependencies: extend: 3.0.2 - gaxios: 6.6.0(encoding@0.1.13) - google-auth-library: 9.10.0(encoding@0.1.13) - qs: 6.12.1 + gaxios: 6.7.0(encoding@0.1.13) + google-auth-library: 9.11.0(encoding@0.1.13) + qs: 6.12.3 url-template: 2.0.8 uuid: 9.0.1 transitivePeerDependencies: @@ -4562,7 +4572,7 @@ snapshots: gtoken@7.1.0(encoding@0.1.13): dependencies: - gaxios: 6.6.0(encoding@0.1.13) + gaxios: 6.7.0(encoding@0.1.13) jws: 4.0.0 transitivePeerDependencies: - encoding @@ -4590,7 +4600,7 @@ snapshots: devlop: 1.1.0 hast-util-from-parse5: 8.0.1 parse5: 7.1.2 - vfile: 6.0.1 + vfile: 6.0.2 vfile-message: 4.0.2 hast-util-from-parse5@8.0.1: @@ -4600,8 +4610,8 @@ snapshots: devlop: 1.1.0 hastscript: 8.0.0 property-information: 6.5.0 - vfile: 6.0.1 - vfile-location: 5.0.2 + vfile: 6.0.2 + vfile-location: 5.0.3 web-namespaces: 2.0.1 hast-util-has-property@3.0.0: @@ -4668,7 +4678,7 @@ snapshots: entities: 4.5.0 param-case: 3.0.4 relateurl: 0.2.7 - terser: 5.31.0 + terser: 5.31.3 htmlparser2@7.2.0: dependencies: @@ -4694,28 +4704,28 @@ snapshots: dependencies: '@tootallnate/once': 2.0.0 agent-base: 6.0.2 - debug: 4.3.5 + debug: 4.3.6 transitivePeerDependencies: - supports-color http-proxy-agent@7.0.2: dependencies: agent-base: 7.1.1 - debug: 4.3.5 + debug: 4.3.6 transitivePeerDependencies: - supports-color https-proxy-agent@5.0.1: dependencies: agent-base: 6.0.2 - debug: 4.3.5 + debug: 4.3.6 transitivePeerDependencies: - supports-color - https-proxy-agent@7.0.4: + https-proxy-agent@7.0.5: dependencies: agent-base: 7.1.1 - debug: 4.3.5 + debug: 4.3.6 transitivePeerDependencies: - supports-color @@ -4734,7 +4744,7 @@ snapshots: dependencies: queue: 6.0.2 - immutable@4.3.6: {} + immutable@4.3.7: {} import-lazy@2.1.0: {} @@ -4880,7 +4890,7 @@ snapshots: transitivePeerDependencies: - encoding - jackspeak@3.1.2: + jackspeak@3.4.3: dependencies: '@isaacs/cliui': 8.0.2 optionalDependencies: @@ -4938,7 +4948,7 @@ snapshots: lodash.isstring: 4.0.1 lodash.once: 4.1.1 ms: 2.1.3 - semver: 7.6.2 + semver: 7.6.3 junk@1.0.3: {} @@ -4980,17 +4990,17 @@ snapshots: leven@3.1.0: {} - libsodium-wrappers@0.7.13: + libsodium-wrappers@0.7.14: dependencies: - libsodium: 0.7.13 + libsodium: 0.7.14 - libsodium@0.7.13: {} + libsodium@0.7.14: {} linkify-it@5.0.0: dependencies: uc.micro: 2.1.0 - liquidjs@10.14.0: + liquidjs@10.16.1: dependencies: commander: 10.0.1 @@ -5029,7 +5039,7 @@ snapshots: chalk: 4.1.2 is-unicode-supported: 0.1.0 - logform@2.6.0: + logform@2.6.1: dependencies: '@colors/colors': 1.6.0 '@types/triple-beam': 1.3.5 @@ -5042,9 +5052,9 @@ snapshots: lower-case@2.0.2: dependencies: - tslib: 2.6.2 + tslib: 2.6.3 - lru-cache@10.2.2: {} + lru-cache@10.4.3: {} lru-cache@7.18.3: {} @@ -5057,7 +5067,7 @@ snapshots: make-fetch-happen@13.0.1: dependencies: '@npmcli/agent': 2.2.2 - cacache: 18.0.3 + cacache: 18.0.4 http-cache-semantics: 4.1.1 is-lambda: 1.0.1 minipass: 7.1.2 @@ -5132,6 +5142,8 @@ snapshots: mime-db@1.52.0: {} + mime-db@1.53.0: {} + mime-types@2.1.35: dependencies: mime-db: 1.52.0 @@ -5156,7 +5168,7 @@ snapshots: dependencies: brace-expansion: 2.0.1 - minimatch@9.0.4: + minimatch@9.0.5: dependencies: brace-expansion: 2.0.1 @@ -5210,6 +5222,8 @@ snapshots: mkdirp@1.0.4: {} + mkdirp@3.0.1: {} + moo@0.5.2: {} morgan@1.10.0: @@ -5222,7 +5236,7 @@ snapshots: transitivePeerDependencies: - supports-color - morphdom@2.7.2: {} + morphdom@2.7.4: {} ms@2.0.0: {} @@ -5230,15 +5244,9 @@ snapshots: ms@2.1.3: {} - multimatch@7.0.0: - dependencies: - array-differ: 4.0.0 - array-union: 3.0.1 - minimatch: 9.0.4 - mute-stream@0.0.8: {} - nan@2.19.0: + nan@2.20.0: optional: true nearley@2.20.1: @@ -5257,7 +5265,7 @@ snapshots: no-case@3.0.4: dependencies: lower-case: 2.0.2 - tslib: 2.6.2 + tslib: 2.6.3 node-emoji@1.11.0: dependencies: @@ -5269,16 +5277,16 @@ snapshots: optionalDependencies: encoding: 0.1.13 - node-gyp@10.1.0: + node-gyp@10.2.0: dependencies: env-paths: 2.2.1 exponential-backoff: 3.1.1 - glob: 10.4.1 + glob: 10.4.5 graceful-fs: 4.2.11 make-fetch-happen: 13.0.1 nopt: 7.2.1 - proc-log: 3.0.0 - semver: 7.6.2 + proc-log: 4.2.0 + semver: 7.6.3 tar: 6.2.1 which: 4.0.0 transitivePeerDependencies: @@ -5287,8 +5295,8 @@ snapshots: node-retrieve-globals@6.0.0: dependencies: - acorn: 8.11.3 - acorn-walk: 8.3.2 + acorn: 8.12.1 + acorn-walk: 8.3.3 esm-import-transformer: 3.0.2 nopt@7.2.1: @@ -5316,7 +5324,7 @@ snapshots: object-hash@3.0.0: {} - object-inspect@1.13.1: {} + object-inspect@1.13.2: {} object-keys@1.1.1: {} @@ -5354,7 +5362,7 @@ snapshots: openapi3-ts@3.2.0: dependencies: - yaml: 2.4.2 + yaml: 2.5.0 ora@5.4.1: dependencies: @@ -5394,16 +5402,16 @@ snapshots: dependencies: p-finally: 1.0.0 - pac-proxy-agent@7.0.1: + pac-proxy-agent@7.0.2: dependencies: '@tootallnate/quickjs-emscripten': 0.23.0 agent-base: 7.1.1 - debug: 4.3.5 + debug: 4.3.6 get-uri: 6.0.3 http-proxy-agent: 7.0.2 - https-proxy-agent: 7.0.4 + https-proxy-agent: 7.0.5 pac-resolver: 7.0.1 - socks-proxy-agent: 8.0.3 + socks-proxy-agent: 8.0.4 transitivePeerDependencies: - supports-color @@ -5412,10 +5420,12 @@ snapshots: degenerator: 5.0.1 netmask: 2.0.2 + package-json-from-dist@1.0.0: {} + param-case@3.0.4: dependencies: dot-case: 3.0.4 - tslib: 2.6.2 + tslib: 2.6.3 parse-srcset@1.0.2: {} @@ -5428,7 +5438,7 @@ snapshots: pascal-case@3.1.2: dependencies: no-case: 3.0.4 - tslib: 2.6.2 + tslib: 2.6.3 path-is-absolute@1.0.1: {} @@ -5438,7 +5448,7 @@ snapshots: path-scurry@1.11.1: dependencies: - lru-cache: 10.2.2 + lru-cache: 10.4.3 minipass: 7.1.2 path-to-regexp@0.1.7: {} @@ -5454,9 +5464,9 @@ snapshots: pg-int8@1.0.1: {} - pg-pool@3.6.2(pg@8.11.5): + pg-pool@3.6.2(pg@8.12.0): dependencies: - pg: 8.11.5 + pg: 8.12.0 pg-protocol@1.6.1: {} @@ -5468,10 +5478,10 @@ snapshots: postgres-date: 1.0.7 postgres-interval: 1.2.0 - pg@8.11.5: + pg@8.12.0: dependencies: pg-connection-string: 2.6.4 - pg-pool: 3.6.2(pg@8.11.5) + pg-pool: 3.6.2(pg@8.12.0) pg-protocol: 1.6.1 pg-types: 2.2.0 pgpass: 1.0.5 @@ -5510,6 +5520,10 @@ snapshots: dependencies: xtend: 4.0.2 + posthtml-match-helper@2.0.2(posthtml@0.16.6): + dependencies: + posthtml: 0.16.6 + posthtml-parser@0.11.0: dependencies: htmlparser2: 7.2.0 @@ -5523,9 +5537,6 @@ snapshots: posthtml-parser: 0.11.0 posthtml-render: 3.0.0 - proc-log@3.0.0: - optional: true - proc-log@4.2.0: optional: true @@ -5553,9 +5564,9 @@ snapshots: proto3-json-serializer@2.0.2: dependencies: - protobufjs: 7.3.0 + protobufjs: 7.3.2 - protobufjs@7.3.0: + protobufjs@7.3.2: dependencies: '@protobufjs/aspromise': 1.1.2 '@protobufjs/base64': 1.1.2 @@ -5567,7 +5578,7 @@ snapshots: '@protobufjs/path': 1.1.2 '@protobufjs/pool': 1.1.0 '@protobufjs/utf8': 1.1.0 - '@types/node': 20.12.13 + '@types/node': 20.14.12 long: 5.2.3 proxy-addr@2.0.7: @@ -5578,13 +5589,13 @@ snapshots: proxy-agent@6.4.0: dependencies: agent-base: 7.1.1 - debug: 4.3.5 + debug: 4.3.6 http-proxy-agent: 7.0.2 - https-proxy-agent: 7.0.4 + https-proxy-agent: 7.0.5 lru-cache: 7.18.3 - pac-proxy-agent: 7.0.1 + pac-proxy-agent: 7.0.2 proxy-from-env: 1.1.0 - socks-proxy-agent: 8.0.3 + socks-proxy-agent: 8.0.4 transitivePeerDependencies: - supports-color @@ -5611,7 +5622,7 @@ snapshots: dependencies: side-channel: 1.0.6 - qs@6.12.1: + qs@6.12.3: dependencies: side-channel: 1.0.6 @@ -5646,11 +5657,11 @@ snapshots: minimist: 1.2.8 strip-json-comments: 2.0.1 - re2@1.20.12: + re2@1.21.3: dependencies: install-artifact-from-github: 1.3.5 - nan: 2.19.0 - node-gyp: 10.1.0 + nan: 2.20.0 + node-gyp: 10.2.0 transitivePeerDependencies: - supports-color optional: true @@ -5687,18 +5698,6 @@ snapshots: dependencies: picomatch: 2.3.1 - recursive-copy@2.0.14: - dependencies: - errno: 0.1.8 - graceful-fs: 4.2.11 - junk: 1.0.3 - maximatch: 0.1.0 - mkdirp: 0.5.6 - pify: 2.3.0 - promise: 7.3.1 - rimraf: 2.7.1 - slash: 1.0.0 - redeyed@2.1.1: dependencies: esprima: 4.0.1 @@ -5740,17 +5739,13 @@ snapshots: reusify@1.0.4: {} - rimraf@2.7.1: - dependencies: - glob: 7.2.3 - rimraf@3.0.2: dependencies: glob: 7.2.3 - rimraf@5.0.7: + rimraf@5.0.9: dependencies: - glob: 10.4.1 + glob: 10.4.5 router@1.3.8: dependencies: @@ -5772,7 +5767,7 @@ snapshots: rxjs@7.8.1: dependencies: - tslib: 2.6.2 + tslib: 2.6.3 safe-buffer@5.1.2: {} @@ -5782,10 +5777,10 @@ snapshots: safer-buffer@2.1.2: {} - sass@1.77.6: + sass@1.77.8: dependencies: chokidar: 3.6.0 - immutable: 4.3.6 + immutable: 4.3.7 source-map-js: 1.2.0 section-matter@1.0.0: @@ -5803,7 +5798,7 @@ snapshots: semver@6.3.1: {} - semver@7.6.2: {} + semver@7.6.3: {} send@0.18.0: dependencies: @@ -5847,7 +5842,7 @@ snapshots: dependencies: color: 4.2.3 detect-libc: 2.0.3 - semver: 7.6.2 + semver: 7.6.3 optionalDependencies: '@img/sharp-darwin-arm64': 0.33.4 '@img/sharp-darwin-x64': 0.33.4 @@ -5881,16 +5876,17 @@ snapshots: shebang-regex@3.0.0: {} - shiki@1.10.0: + shiki@1.12.0: dependencies: - '@shikijs/core': 1.10.0 + '@shikijs/core': 1.12.0 + '@types/hast': 3.0.4 side-channel@1.0.6: dependencies: call-bind: 1.0.7 es-errors: 1.3.0 get-intrinsic: 1.2.4 - object-inspect: 1.13.1 + object-inspect: 1.13.2 signal-exit@3.0.7: {} @@ -5906,10 +5902,10 @@ snapshots: smart-buffer@4.2.0: {} - socks-proxy-agent@8.0.3: + socks-proxy-agent@8.0.4: dependencies: agent-base: 7.1.1 - debug: 4.3.5 + debug: 4.3.6 socks: 2.8.3 transitivePeerDependencies: - supports-color @@ -5940,7 +5936,7 @@ snapshots: sprintf-js@1.1.3: {} - sql-formatter@15.3.1: + sql-formatter@15.3.2: dependencies: argparse: 2.0.1 get-stdin: 8.0.0 @@ -5972,7 +5968,7 @@ snapshots: dependencies: fast-fifo: 1.3.2 queue-tick: 1.0.1 - text-decoder: 1.1.0 + text-decoder: 1.1.1 optionalDependencies: bare-events: 2.4.2 @@ -6031,7 +6027,7 @@ snapshots: router: 1.3.8 update-notifier-cjs: 5.1.6(encoding@0.1.13) optionalDependencies: - re2: 1.20.12 + re2: 1.21.3 transitivePeerDependencies: - encoding - supports-color @@ -6078,14 +6074,14 @@ snapshots: - encoding - supports-color - terser@5.31.0: + terser@5.31.3: dependencies: '@jridgewell/source-map': 0.3.6 - acorn: 8.11.3 + acorn: 8.12.1 commander: 2.20.3 source-map-support: 0.5.21 - text-decoder@1.1.0: + text-decoder@1.1.1: dependencies: b4a: 1.6.6 @@ -6113,7 +6109,7 @@ snapshots: triple-beam@1.4.1: {} - tslib@2.6.2: {} + tslib@2.6.3: {} type-fest@0.20.2: {} @@ -6172,7 +6168,7 @@ snapshots: universal-analytics@0.5.3: dependencies: - debug: 4.3.5 + debug: 4.3.6 uuid: 8.3.2 transitivePeerDependencies: - supports-color @@ -6196,7 +6192,7 @@ snapshots: pupa: 2.1.1 registry-auth-token: 5.0.2 registry-url: 5.1.0 - semver: 7.6.2 + semver: 7.6.3 semver-diff: 3.1.1 xdg-basedir: 4.0.0 transitivePeerDependencies: @@ -6216,6 +6212,8 @@ snapshots: utils-merge@1.0.1: {} + uuid@10.0.0: {} + uuid@8.3.2: {} uuid@9.0.1: {} @@ -6224,17 +6222,17 @@ snapshots: vary@1.1.2: {} - vfile-location@5.0.2: + vfile-location@5.0.3: dependencies: '@types/unist': 3.0.2 - vfile: 6.0.1 + vfile: 6.0.2 vfile-message@4.0.2: dependencies: '@types/unist': 3.0.2 unist-util-stringify-position: 4.0.0 - vfile@6.0.1: + vfile@6.0.2: dependencies: '@types/unist': 3.0.2 unist-util-stringify-position: 4.0.0 @@ -6272,25 +6270,25 @@ snapshots: dependencies: string-width: 4.2.3 - winston-transport@4.7.0: + winston-transport@4.7.1: dependencies: - logform: 2.6.0 + logform: 2.6.1 readable-stream: 3.6.2 triple-beam: 1.4.1 - winston@3.13.0: + winston@3.13.1: dependencies: '@colors/colors': 1.6.0 '@dabh/diagnostics': 2.0.3 async: 3.2.5 is-stream: 2.0.1 - logform: 2.6.0 + logform: 2.6.1 one-time: 1.0.0 readable-stream: 3.6.2 safe-stable-stringify: 2.4.3 stack-trace: 0.0.10 triple-beam: 1.4.1 - winston-transport: 4.7.0 + winston-transport: 4.7.1 wrap-ansi@6.2.0: dependencies: @@ -6319,9 +6317,9 @@ snapshots: signal-exit: 3.0.7 typedarray-to-buffer: 3.1.5 - ws@7.5.9: {} + ws@7.5.10: {} - ws@8.17.0: {} + ws@8.18.0: {} xdg-basedir@4.0.0: {} @@ -6331,7 +6329,7 @@ snapshots: yallist@4.0.0: {} - yaml@2.4.2: {} + yaml@2.5.0: {} yargs-parser@21.1.1: {} @@ -6353,4 +6351,4 @@ snapshots: compress-commons: 6.0.2 readable-stream: 4.5.2 - zwitch@2.0.4: {} + zwitch@2.0.4: {} \ No newline at end of file diff --git a/src/_data/side-nav.yml b/src/_data/side-nav.yml index 27d1a28e8..87b07c0b8 100644 --- a/src/_data/side-nav.yml +++ b/src/_data/side-nav.yml @@ -184,6 +184,8 @@ permalink: /tools/pub/security-advisories - title: 版本管理 permalink: /tools/pub/versioning + - title: 不应提交的内容 + permalink: /guides/libraries/private-files - title: 开发文档 expanded: false @@ -334,9 +336,6 @@ permalink: /guides/testing - title: 调试 Web 应用 permalink: /web/debugging - - title: 不应提交的内容 - permalink: /guides/libraries/private-files - - divider - title: 资源 diff --git a/src/_data/site.yml b/src/_data/site.yml index c2ae5072a..baf2d03a4 100644 --- a/src/_data/site.yml +++ b/src/_data/site.yml @@ -29,7 +29,7 @@ announce: https://groups.google.com/a/dartlang.org/g/announce android-dev: https://developer.android.com apple-dev: https://developer.apple.com -show_banner: true +show_banner: false # Increment this global og:image URL version number (used as a query parameter) # when you update any og:image file. (Also increment the corresponding number @@ -38,4 +38,4 @@ og_image_vers: "?2" sdkInfo: channel: stable - version: 3.4.1 + version: 3.4.4 diff --git a/src/content/404.html b/src/content/404.html index a26f20508..ab0d49c4a 100644 --- a/src/content/404.html +++ b/src/content/404.html @@ -4,6 +4,7 @@ description: "dart.dev's 404 page." sitemap: false permalink: /404.html +skipFreshness: true ---
    diff --git a/src/content/assets/img/tools/proget.svg b/src/content/assets/img/tools/proget.svg new file mode 100644 index 000000000..09d9eafd4 --- /dev/null +++ b/src/content/assets/img/tools/proget.svg @@ -0,0 +1,16 @@ + + + + + + + + + + \ No newline at end of file diff --git a/src/content/brand.md b/src/content/brand.md index d016f7275..53f08c710 100644 --- a/src/content/brand.md +++ b/src/content/brand.md @@ -5,6 +5,7 @@ title: Dart 品牌指南 # The guidelines governing the usage of the Dart trademarks and assets. description: >- 关于使用 Dart 品牌和资产的指导原则。 +skipFreshness: true --- The "Dart" name and logo are trademarks owned by Google. diff --git a/src/content/community/code-of-conduct.md b/src/content/community/code-of-conduct.md index b33f7b6d4..90fe0ca97 100644 --- a/src/content/community/code-of-conduct.md +++ b/src/content/community/code-of-conduct.md @@ -3,6 +3,7 @@ title: 行为准则 description: Be excellent to each other. toc: false +skipFreshness: true --- We expect Dart community members to act professionally and respectfully, and diff --git a/src/content/get-dart/archive/_archives_table.html b/src/content/get-dart/archive/_archives_table.html index 8ffa2fd62..83d18d7f6 100644 --- a/src/content/get-dart/archive/_archives_table.html +++ b/src/content/get-dart/archive/_archives_table.html @@ -27,7 +27,7 @@ {% if channel == 'stable' %} 0.0.0 (rev 00000) - {% else if channel == 'beta' %} + {% elsif channel == 'beta' %} 0.0.0-0.0.beta (rev 00000) {% else %} 0.0.0-0.0.dev (rev 00000) diff --git a/src/content/guides/environment-declarations.md b/src/content/guides/environment-declarations.md index 66b8d7130..ade10c748 100644 --- a/src/content/guides/environment-declarations.md +++ b/src/content/guides/environment-declarations.md @@ -3,6 +3,7 @@ title: Configuring apps with compilation environment declarations description: >- Learn about using compilation environment declarations to customize application behavior. +lastVerified: 2023-02-23 --- You can specify compilation environment declarations diff --git a/src/content/guides/language/evolution.md b/src/content/guides/language/evolution.md index de58cf4f5..1f2dece45 100644 --- a/src/content/guides/language/evolution.md +++ b/src/content/guides/language/evolution.md @@ -2,6 +2,7 @@ title: Dart language evolution short-title: Language evolution description: Notable changes and additions to the Dart programming language. +lastVerified: 2024-05-14 --- This page lists notable changes and additions to the diff --git a/src/content/guides/language/language-tour.md b/src/content/guides/language/language-tour.md index 322a309b9..2e32b4fda 100644 --- a/src/content/guides/language/language-tour.md +++ b/src/content/guides/language/language-tour.md @@ -8,6 +8,7 @@ js: [{url: '/assets/js/language-tour-redirector.js'}] sitemap: false canonical: https://dart.cn/language noindex: true +skipFreshness: true --- :::warning diff --git a/src/content/guides/language/sound-problems.md b/src/content/guides/language/sound-problems.md index 03df03f86..eda10d272 100644 --- a/src/content/guides/language/sound-problems.md +++ b/src/content/guides/language/sound-problems.md @@ -496,6 +496,35 @@ var maximumOrNull =
    +### Conflicting Superinterfaces + +A class which `implements` more than one superinterface must be able to +implement valid overrides for every member of every superinterface. +Each member with a given name requires compatible signatures across the +superinterfaces. + +Superinterfaces must not include conflicting generics. +A class can't implement both `C` and `C`, including indirect +superinterfaces. + +#### Example + +In the following code, +class `C` has conflicting generic interfaces. +Definitions of valid overrides for some members would be impossible. + + +```dart tag=fails-sa +abstract class C implements List, Iterable {} +``` + +#### Fix: Use consistent generics or avoid repeating transitive interfaces + + +```dart tag=passes-sa +abstract class C implements List {} +``` + ## Runtime errors diff --git a/src/content/guides/libraries/create-packages.md b/src/content/guides/libraries/create-packages.md index 1bde76b15..5dbf8bbfa 100644 --- a/src/content/guides/libraries/create-packages.md +++ b/src/content/guides/libraries/create-packages.md @@ -15,7 +15,6 @@ This page tells you how to create a standard shared 本章将通过最常见的 [Package](/tools/pub/glossary#package) 来介绍如何创建一个 Package。 - ## Creating a new package ## 创建一个新的 package @@ -32,10 +31,6 @@ and the `package` template: $ dart create -t package ``` -{% comment %} -TODO: Add coverage of packages that contain tools. -{% endcomment %} - ## What makes a package ## Package 的组成 @@ -101,12 +96,17 @@ you have a situation where two classes are tightly coupled. :::note -You may have heard of the `part` directive, which allows -you to split a library into multiple Dart files. We recommend -that you avoid using `part` and create mini libraries instead. - -在文件的头部使用 `part` 命令,能够将一个 Library 分割成多个 Dart 文件。 -这里,我们建议应该创建 Mini Library ,而避免使用 `part` 命令。 +You might know about the `part` directive. +This directive allows you to split a library into multiple Dart files. +Though part files can incorporate generated code into a library, +the Dart team doesn't recommend using them. +Instead, create small libraries. + +你也许知道 `part` 指令。 +该指令允许你将一个 library 分割成多个 Dart 文件。 +虽然 part 文件可以将生成的代码整合到 library 中, +但 Dart 团队并不推荐使用它们。 +取而代之更推荐创建 Mini Library。 ::: diff --git a/src/content/guides/libraries/library-tour.md b/src/content/guides/libraries/library-tour.md index 9326c746b..783efa3b9 100644 --- a/src/content/guides/libraries/library-tour.md +++ b/src/content/guides/libraries/library-tour.md @@ -6,6 +6,7 @@ js: [{url: '/assets/js/library-tour-redirector.js'}] sitemap: false canonical: https://dart.cn/libraries noindex: true +skipFreshness: true --- :::warning diff --git a/src/content/interop/js-interop/mock.md b/src/content/interop/js-interop/mock.md index 77f1a35e5..8631d1645 100644 --- a/src/content/interop/js-interop/mock.md +++ b/src/content/interop/js-interop/mock.md @@ -97,9 +97,10 @@ void main() { `@JSExport` allows you to declare a class that can be used in `createJSInteropWrapper`. `createJSInteropWrapper` will create an object literal -that maps each of the class' instance member names (or renames) to a JS callback -that triggers the instance member when called. In the above example, getting and -setting `counter.value` gets and sets `fakeCounter.value`. +that maps each of the class' instance member names (or renames) to a JS +callback, which is created using [`Function.toJS`]. When called, the JS callback +will in turn call the instance member. In the above example, getting and setting +`counter.value` gets and sets `fakeCounter.value`. You can specify only some members of a class to be exported by omitting the annotation from the class and instead only annotate the specific members. You @@ -117,6 +118,7 @@ non-instance members unless the user explicitly replaces the real API in JS. [Usage]: /interop/js-interop/usage [`createJSInteropWrapper`]: {{site.dart-api}}/{{site.sdkInfo.channel}}/dart-js_interop/createJSInteropWrapper.html +[`Function.toJS`]: {{site.dart-api}}/{{site.sdkInfo.channel}}/dart-js_interop/FunctionToJSExportedDartFunction/toJS.html [`@JSExport`]: {{site.dart-api}}/{{site.sdkInfo.channel}}/dart-js_interop/JSExport-class.html [limitation is true for extension members]: {{site.repo.dart.org}}/mockito/blob/master/FAQ.md#how-do-i-mock-an-extension-method [extension types]: /language/extension-types diff --git a/src/content/interop/js-interop/usage.md b/src/content/interop/js-interop/usage.md index 5fd721b1e..29c5eeef2 100644 --- a/src/content/interop/js-interop/usage.md +++ b/src/content/interop/js-interop/usage.md @@ -389,6 +389,45 @@ but can often be elided on and within interop types and on extension members as the compiler can tell it is a JS interop type from the representation type and on-type. +## Exporting Dart functions and objects to JS + +The above sections show how to call JS members from Dart. It's also useful to +*export* Dart code so that it can be used in JS. To export a Dart function to +JS, first convert it using [`Function.toJS`], which wraps the Dart function with +a JS function. Then, pass the wrapped function to JS through an interop member. +At that point, it's ready to be called by other JS code. + +For example, this code converts a Dart function and uses interop to set it in a +global property, which is then called in JS: + +```dart +import 'dart:js_interop'; + +@JS() +external set exportedFunction(JSFunction value); + +void printString(JSString string) { + print(string.toDart); +} + +void main() { + exportedFunction = printString.toJS; +} +``` + +```js +globalThis.exportedFunction('hello world'); +``` + +Functions that are exported this way have type [restrictions] similar to those +of interop members. + +Sometimes it's useful to export an entire Dart interface so that JS can interact +with a Dart object. To do this, mark the Dart class as exportable using +[`@JSExport`] and wrap instances of that class using [`createJSInteropWrapper`]. +For a more detailed explanation of this technique, including how to mock JS +values, see the [mocking tutorial]. + ## `dart:js_interop` and `dart:js_interop_unsafe` [`dart:js_interop`] contains all the necessary members you should need, @@ -443,6 +482,10 @@ TODO: Some of these are not available on stable. How do we link to dev? [property accessors]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/Property_accessors#bracket_notation [utility functions]: {{site.dart-api}}/{{site.sdkInfo.channel}}/dart-js_interop/JSAnyOperatorExtension.html [`@JS()`]: {{site.dart-api}}/{{site.sdkInfo.channel}}/dart-js_interop/JS-class.html +[`Function.toJS`]: {{site.dart-api}}/{{site.sdkInfo.channel}}/dart-js_interop/FunctionToJSExportedDartFunction/toJS.html +[`@JSExport`]: {{site.dart-api}}/{{site.sdkInfo.channel}}/dart-js_interop/JSExport-class.html +[`createJSInteropWrapper`]: {{site.dart-api}}/{{site.sdkInfo.channel}}/dart-js_interop/createJSInteropWrapper.html +[mocking tutorial]: /interop/js-interop/mock [`dart:js_interop`]: {{site.dart-api}}/{{site.sdkInfo.channel}}/dart-js_interop [`globalContext`]: {{site.dart-api}}/{{site.sdkInfo.channel}}/dart-js_interop/globalContext.html [Helpers to inspect the type of JS values]: {{site.dart-api}}/{{site.sdkInfo.channel}}/dart-js_interop/JSAnyUtilityExtension.html diff --git a/src/content/language/concurrency.md b/src/content/language/concurrency.md index c4bb3d59b..6b8477075 100644 --- a/src/content/language/concurrency.md +++ b/src/content/language/concurrency.md @@ -3,6 +3,7 @@ title: Concurrency in Dart description: >- Use isolates to enable parallel code execution on multiple processor cores. short-title: Concurrency +lastVerified: 2023-12-14 prevpage: url: /language/modifier-reference title: Class modifiers reference @@ -238,7 +239,8 @@ shared-memory threads running concurrently. However, shared-state concurrency is lead to complicated code. Instead of threads, all Dart code runs inside isolates. -Using isolates, your Dart code can perform multiple independent tasks at once. +Using isolates, your Dart code can perform multiple independent tasks at once, +using additional processor cores if they're available. Isolates are like threads or processes, but each isolate has its own memory and a single thread running an event loop. @@ -252,11 +254,6 @@ won't occur in Dart. That said, isolates don't prevent race conditions all together. For more information on this concurrency model, read about the [Actor model](https://en.wikipedia.org/wiki/Actor_model). -Using isolates, your Dart code can perform multiple independent tasks at once, -using additional processor cores if they're available. Isolates are like threads -or processes, but each isolate has its own memory and a single thread running an -event loop. - :::note Platform note Only the [Dart Native platform][] implements isolates. To learn more about the Dart Web platform, diff --git a/src/content/language/functions.md b/src/content/language/functions.md index 2c14ab131..26bc8e17a 100644 --- a/src/content/language/functions.md +++ b/src/content/language/functions.md @@ -280,7 +280,7 @@ An anonymous function resembles a named function as it has: The following code block contains the function's body: ```dart -([[Type]] param1[, ...]]) { +([[Type] param1[, ...]]) { codeBlock; } ``` diff --git a/src/content/language/index.md b/src/content/language/index.md index fe7e2718b..76d8118ed 100644 --- a/src/content/language/index.md +++ b/src/content/language/index.md @@ -19,7 +19,7 @@ To learn more about the Dart language, visit the in-depth, individual topic pages listed under **Language** in the left side menu. -想要深度学习 Dart 语言,请访问左侧栏 **语言** 的具体内容。 +想要深度学习 Dart 语言,请访问左侧栏 **Dart 开发语言** 的具体内容。 For coverage of Dart's core libraries, check out the [core library documentation](/libraries). diff --git a/src/content/language/isolates.md b/src/content/language/isolates.md index 503ed4e91..d116ecbe8 100644 --- a/src/content/language/isolates.md +++ b/src/content/language/isolates.md @@ -2,6 +2,7 @@ title: Isolates description: Information on writing isolates in Dart. short-title: Isolates +lastVerified: 2024-01-04 prevpage: url: /language/async title: Asynchronous support diff --git a/src/content/language/mixins.md b/src/content/language/mixins.md index a9dd3876e..423506d6b 100644 --- a/src/content/language/mixins.md +++ b/src/content/language/mixins.md @@ -160,7 +160,7 @@ class Musician { } mixin MusicalPerformer [!on Musician!] { - perfomerMethod() { + performerMethod() { print('Performing music!'); super.musicianMethod(); } @@ -169,7 +169,7 @@ mixin MusicalPerformer [!on Musician!] { class SingerDancer extends Musician with MusicalPerformer { } main() { - SingerDance().performerMethod(); + SingerDancer().performerMethod(); } ``` diff --git a/src/content/libraries/async/async-await.md b/src/content/libraries/async/async-await.md index fd72b9520..4b8ce028c 100644 --- a/src/content/libraries/async/async-await.md +++ b/src/content/libraries/async/async-await.md @@ -18,6 +18,10 @@ To get the most out of this tutorial, you should have the following: * Knowledge of [basic Dart syntax](/language). * Some experience writing asynchronous code in another language. +* The [`discarded_futures`][] and [`unawaited_futures`][] lints enabled. + +[`discarded_futures`]: /tools/linter-rules/discarded_futures +[`unawaited_futures`]: /tools/linter-rules/unawaited_futures This tutorial covers the following material: @@ -279,10 +283,6 @@ The only differences are highlighted in the asynchronous example, which—if your window is wide enough—is to the right of the synchronous example. -
    -
    -
    - #### Example: synchronous functions @@ -308,11 +308,11 @@ void main() { ```plaintext Fetching user order... -Your order is: Instance of '_Future' +Your order is: Instance of 'Future' ``` -
    -
    +As shown in following two examples, +it operates like synchronous code. #### Example: asynchronous functions @@ -342,10 +342,6 @@ Fetching user order... Your order is: Large Latte ``` -
    -
    -
    - The asynchronous example is different in three ways: * The return type for `createOrderMessage()` changes @@ -433,14 +429,9 @@ which are provided for you: {:.table .table-striped}
    - #### Part 1: `reportUserRole()` Add code to the `reportUserRole()` function so that it does the following: -{% comment %} - Some bulleted items are intentionally lacking punctuation to avoid - confusing the users about characters in string values -{% endcomment -%} * Returns a future that completes with the following string: `"User role: "` @@ -449,7 +440,7 @@ Add code to the `reportUserRole()` function so that it does the following: * Example return value: `"User role: tester"` * Gets the user role by calling the provided function `fetchRole()`. -#### Part 2: `reportLogins()` +#### Part 2: `reportLogins()` Implement an `async` function `reportLogins()` so that it does the following: @@ -1078,6 +1069,17 @@ bool _logoutSucceeds = false;
  • +## Which lints work for futures? + +To catch common mistakes that arise while working with async and futures, +[enable](/tools/analysis#individual-rules) the following lints: + +* [`discarded_futures`][] +* [`unawaited_futures`][] + +[`discarded_futures`]: /tools/linter-rules/discarded_futures +[`unawaited_futures`]: /tools/linter-rules/unawaited_futures + ## What's next? Congratulations, you've finished the tutorial! If you'd like to learn more, here diff --git a/src/content/map.html b/src/content/map.html index 20497ead7..4922b1512 100644 --- a/src/content/map.html +++ b/src/content/map.html @@ -2,6 +2,7 @@ title: Document index description: Human-readable sitemap of all pages on dart.dev. toc: false +skipFreshness: true --- {% assign pages = collections.all | sort: 'data.title' %} diff --git a/src/content/resources/breaking-changes.md b/src/content/resources/breaking-changes.md index 14110681b..7fdc8d01e 100644 --- a/src/content/resources/breaking-changes.md +++ b/src/content/resources/breaking-changes.md @@ -1,6 +1,7 @@ --- title: Breaking changes and deprecations description: A list of breaking changes by release in Dart. +lastVerified: 2024-05-14 --- {% assign versioned = 'Language versioned' %} diff --git a/src/content/resources/coming-from/js-to-dart.md b/src/content/resources/coming-from/js-to-dart.md index b11646d1a..bbbc0d325 100644 --- a/src/content/resources/coming-from/js-to-dart.md +++ b/src/content/resources/coming-from/js-to-dart.md @@ -2,6 +2,7 @@ title: Learning Dart as a JavaScript developer description: Leverage your JavaScript knowledge when learning Dart. body_class: highlight-languages +lastVerified: 2022-11-21 --- This guide aims to leverage your JavaScript programming knowledge diff --git a/src/content/resources/coming-from/swift-to-dart.md b/src/content/resources/coming-from/swift-to-dart.md index 0ee1de50e..562f179e3 100644 --- a/src/content/resources/coming-from/swift-to-dart.md +++ b/src/content/resources/coming-from/swift-to-dart.md @@ -2,6 +2,7 @@ title: Learning Dart as a Swift developer description: Leverage your Swift knowledge when learning Dart. body_class: highlight-languages +lastVerified: 2022-12-13 --- This guide aims to leverage your Swift programming diff --git a/src/content/resources/dart-cheatsheet.md b/src/content/resources/dart-cheatsheet.md index d3c76ef66..5ac2d3571 100644 --- a/src/content/resources/dart-cheatsheet.md +++ b/src/content/resources/dart-cheatsheet.md @@ -14,9 +14,7 @@ This tutorial walks you through the most important of these language features. Dart 语言旨在让从其他编程语言转来的开发者们能够轻松学习,但也有它的独特之处。 -本篇将基于谷歌工程师编写的 -[Dart 语言速查表](/guides/language/cheatsheet) -为你介绍一些最重要的语言特性。 +本篇将为你介绍一些最重要的语言特性。 The embedded editors in this tutorial have partially completed code snippets. You can use these editors to test your knowledge by completing the code and @@ -1401,7 +1399,7 @@ Dart 代码可以抛出和捕获异常。 Dart provides `Exception` and `Error` types, but you're allowed to throw any non-null object: -虽然 Dart 提供了 Exception 和 Error 类型,但是你可以抛出任何非空对象: +虽然 Dart 提供了 `Exception` 和 `Error` 类型,但是你可以抛出任何非空对象: ```dart diff --git a/src/content/resources/google-apis.md b/src/content/resources/google-apis.md index 26fcca167..4335d5670 100644 --- a/src/content/resources/google-apis.md +++ b/src/content/resources/google-apis.md @@ -2,6 +2,7 @@ title: Using Google APIs short-title: Google APIs description: Your Dart apps can use Firebase and Google client APIs. +lastVerified: 2021-05-13 --- This page points to resources to help you use diff --git a/src/content/robots.liquid b/src/content/robots.liquid index 748f44bd7..3c61c1345 100644 --- a/src/content/robots.liquid +++ b/src/content/robots.liquid @@ -1,6 +1,7 @@ --- layout: none permalink: robots.txt +skipFreshness: true --- {%- if isProduction == true -%} diff --git a/src/content/search-all.html b/src/content/search-all.html index 39f0fb929..1e6e4eb5d 100644 --- a/src/content/search-all.html +++ b/src/content/search-all.html @@ -6,6 +6,7 @@ flutter.dev, and more. --> description: 在 flutter.dev、api.flutter.dev、dart.dev 上搜索内容。 toc: false +skipFreshness: true ---

    请使用下面的搜索框搜索 Flutter 中文社区的所有内容,包括掘金、思否等。

    diff --git a/src/content/search.html b/src/content/search.html index 6b738a5cc..19e0c2e11 100644 --- a/src/content/search.html +++ b/src/content/search.html @@ -6,6 +6,7 @@ description: 搜索 flutter.cn 和 dart.cn 的文档内容. toc: false +skipFreshness: true --- Want results from additional Dart-related sites, like api.dart.dev and flutter.dev? diff --git a/src/content/security.md b/src/content/security.md index de5f3bbc3..2a83c321a 100644 --- a/src/content/security.md +++ b/src/content/security.md @@ -5,6 +5,7 @@ title: 安全 # An overview of the Dart team's philosophy and processes for security. description: >- Dart 团队的安全理念和流程的概述 +skipFreshness: true --- The Dart team takes the security of Dart and the applications diff --git a/src/content/sitemap.liquid b/src/content/sitemap.liquid index 58251c0ff..41f0251f1 100644 --- a/src/content/sitemap.liquid +++ b/src/content/sitemap.liquid @@ -2,6 +2,7 @@ layout: none sitemap: false permalink: sitemap.xml +skipFreshness: true --- diff --git a/src/content/terms.md b/src/content/terms.md index 5a9fc5ebb..891d5d00d 100644 --- a/src/content/terms.md +++ b/src/content/terms.md @@ -2,6 +2,7 @@ title: Terms of use description: The terms of use for dart.dev. toc: false +skipFreshness: true --- https://dart.cn is a community-owned and hosted website diff --git a/src/content/tools/diagnostic-messages.md b/src/content/tools/diagnostic-messages.md index 0e1893916..8547641c2 100644 --- a/src/content/tools/diagnostic-messages.md +++ b/src/content/tools/diagnostic-messages.md @@ -2,6 +2,7 @@ title: Diagnostic messages description: Details for diagnostics produced by the Dart analyzer. body_class: highlight-diagnostics +skipFreshness: true --- {%- comment %} WARNING: Do NOT EDIT this file directly. It is autogenerated by the script in diff --git a/src/content/tools/linter-rules/individual-rules.md b/src/content/tools/linter-rules/individual-rules.md index a5d2f4a01..63b6257f0 100644 --- a/src/content/tools/linter-rules/individual-rules.md +++ b/src/content/tools/linter-rules/individual-rules.md @@ -10,6 +10,7 @@ eleventyComputed: permalink: "/tools/linter-rules/{{lint.name}}.html" title: "{{ lint.name }}" description: "Learn more about the {{ lint.name }} linter rule." +skipFreshness: true --- {{lint.description}} diff --git a/src/content/tools/pub/custom-package-repositories.md b/src/content/tools/pub/custom-package-repositories.md index 22a249d38..954002f3f 100644 --- a/src/content/tools/pub/custom-package-repositories.md +++ b/src/content/tools/pub/custom-package-repositories.md @@ -212,6 +212,10 @@ your own custom package repository: Cloudsmith logo Cloudsmith +
  • + Inedo ProGet logo + Inedo ProGet +
  • JetBrains Space logo JetBrains Space diff --git a/src/content/tools/pub/publishing.md b/src/content/tools/pub/publishing.md index 8af84d1a9..0be60e9dd 100644 --- a/src/content/tools/pub/publishing.md +++ b/src/content/tools/pub/publishing.md @@ -854,7 +854,7 @@ Once you discontinue a package, the package will: To mark a package as discontinued: 1. Sign in to pub.dev using a Google Account with uploader or - [verified publisher][]permissions for the package. + [verified publisher][] permissions for the package. 1. Navigate to the package's **Admin** tab. diff --git a/src/content/tools/pub/pubspec.md b/src/content/tools/pub/pubspec.md index 501757d14..13c9a70ab 100644 --- a/src/content/tools/pub/pubspec.md +++ b/src/content/tools/pub/pubspec.md @@ -300,9 +300,13 @@ platforms: macos: ``` -:::flutter-note -Flutter plugins use [plugin declarations][] -instead of this field. +:::note If you use Flutter +Flutter plugins platform support is by default derived from the +[plugin declarations][]. + +If there is a discrepancy between the plugin declaration and the actual platform +support, a top-level `platforms` declaration can still be used and takes +precedence over the Flutter plugin declaration when deciding platform support. ::: :::version-note diff --git a/src/content/tools/vs-code.md b/src/content/tools/vs-code.md index 0eb005169..ff22e7a28 100644 --- a/src/content/tools/vs-code.md +++ b/src/content/tools/vs-code.md @@ -6,33 +6,79 @@ description: 你可以使用 VS Code 开发 Dart 应用。 toc: false --- -With the Dart plugin, you can use [Visual Studio Code (VS Code)][vs-code] -to develop Dart apps. -The Flutter site has details on how to set up and use VS Code for Flutter apps. +To develop Dart apps, +install [Visual Studio Code][vs-code] (VS Code) +and add the [Dart extension][]. -你可以在 [Visual Studio Code (VS Code)][vs-code] -中安装 Dart 插件来开发 Dart 应用。 -Flutter 的网站上有详尽的关于如何设置 -和使用 VS Code 开发 Flutter 应用的介绍。 +你可以安装 [Visual Studio Code (VS Code)][vs-code] +并添加 [Dart 扩展][Dart extension] 来开发 Dart 应用。 -Until this page has more information, -see the Flutter documentation for instructions that you can apply to -other kinds of Dart apps: +## Install VS Code -在本文有更多详细的信息前,你可以先查阅 Flutter 文档获取有关可以应用于其他类型 Dart 应用的说明。 +## 安装 VS Code -* [Set up an editor][setup] on the Flutter site has - instructions for installing the Flutter and Dart plugins into VS Code. +To install the latest version of [VS Code][], +follow Microsoft's instructions for the relevant platform: - Flutter 网站上的 [设置编辑器][setup] 部分会向你介绍如何将 - Flutter 和 Dart 插件安装到 VS Code 中。 +请按照微软针对相应平台的说明来安装最新版的 [VS Code][]: -* [Visual Studio Code][vscode-flutter] on the Flutter site has - details on using VS Code to develop Flutter apps. +- [Install on macOS][] - Flutter 网站上的 [Visual Studio Code][vscode-flutter] - 部分有如何使用 VS Code 开发 Flutter 应用的详细说明。 + [在 macOS 上安装][Install on macOS] -[setup]: {{site.flutter-docs}}/get-started/editor?tab=vscode +- [Install on Windows][] + + [在 Windows 上安装][Install on Windows] + +- [Install on Linux][] + + [在 Linux 上安装][Install on Linux] + +[VS Code]: https://code.visualstudio.com/ +[Install on macOS]: https://code.visualstudio.com/docs/setup/mac +[Install on Windows]: https://code.visualstudio.com/docs/setup/windows +[Install on Linux]: https://code.visualstudio.com/docs/setup/linux + +## Install the VS Code Dart extension + +## 安装 VS Code 的 Dart 扩展 + +The Dart extension for VS Code supports Dart-specific development capabilities. +These include syntax highlighting, package resolution, hot reload, and others. + +VS Code 的 Dart 扩展支持 Dart 特有的开发功能。 +这些功能包括语法高亮、package 解析、热重载等。 + +1. Launch **VS Code**. + + 启动 **VS Code**。 + +1. Click **Extensions** in the **Activity Bar**. + You can also press + Control / Command + + Shift + X. + + 点击 **活动栏(默认在左侧)** 中的 **扩展**。 + 你也可以使用快捷键 + Control / Command + + Shift + X。 + +1. In the Search box, type `Dart`. + The first extension returned should be the [Dart extension][]. + + 在搜索框中输入 `Dart`。 + 搜索到的第一个扩展应该就是 [Dart 扩展][Dart extension]。 + +1. Click **Install**. + + 点击 **安装**。 + +To review the full list of features, +consult the [extension documentation][Dart extension]. + +如果要查看完整的功能列表, +请查阅 [扩展文档][Dart extension]。 + +[Dart extension]: https://marketplace.visualstudio.com/items?itemName=Dart-Code.dart-code +[documentation]: https://dartcode.org/docs/ [vs-code]: https://code.visualstudio.com/ -[vscode-flutter]: {{site.flutter-docs}}/development/tools/vs-code diff --git a/src/content/tutorials/index.md b/src/content/tutorials/index.md index 1b65038e4..b4ad63284 100644 --- a/src/content/tutorials/index.md +++ b/src/content/tutorials/index.md @@ -73,7 +73,7 @@ try more of the available tutorials!

    快速体验 Dart 独特的语言特性。

    -

    记录 (Record) 和模式匹配 (Pattern)

    +

    Records and Patterns记录 (Record) 和模式匹配 (Pattern)

    Discover Dart's support for records and patterns.

    探索 Dart 对记录 (Record) 和模式匹配 (Pattern) 的支持。

    diff --git a/tool/dart_site/lib/dart_site.dart b/tool/dart_site/lib/dart_site.dart index efdda292e..fe292a638 100644 --- a/tool/dart_site/lib/dart_site.dart +++ b/tool/dart_site/lib/dart_site.dart @@ -11,6 +11,7 @@ import 'src/commands/check_link_references.dart'; import 'src/commands/check_links.dart'; import 'src/commands/check_site_variable.dart'; import 'src/commands/format_dart.dart'; +import 'src/commands/freshness.dart'; import 'src/commands/generate_effective_dart_toc.dart'; import 'src/commands/refresh_excerpts.dart'; import 'src/commands/serve.dart'; @@ -32,6 +33,7 @@ final class DartSiteCommandRunner extends CommandRunner { addCommand(VerifyFirebaseJsonCommand()); addCommand(RefreshExcerptsCommand()); addCommand(FormatDartCommand()); + addCommand(FreshnessCommand()); addCommand(GenerateEffectiveDartToc()); addCommand(AnalyzeDartCommand()); addCommand(TestDartCommand()); diff --git a/tool/dart_site/lib/src/commands/freshness.dart b/tool/dart_site/lib/src/commands/freshness.dart new file mode 100644 index 000000000..45506f3a4 --- /dev/null +++ b/tool/dart_site/lib/src/commands/freshness.dart @@ -0,0 +1,255 @@ +// Copyright (c) 2024, the Dart project authors. Please see the AUTHORS file +// for details. All rights reserved. Use of this source code is governed by a +// BSD-style license that can be found in the LICENSE file. + +import 'dart:io'; + +import 'package:args/command_runner.dart'; +import 'package:fbh_front_matter/fbh_front_matter.dart' as front_matter; +import 'package:intl/intl.dart'; +import 'package:path/path.dart' as path; + +import '../utils.dart'; + +final class FreshnessCommand extends Command { + static const String _includeMissingFlag = 'include-missing'; + static const String _cutoffDaysOption = 'cutoff'; + + FreshnessCommand() { + argParser.addFlag( + _includeMissingFlag, + defaultsTo: true, + help: 'Whether to output files that are missing lastVerified dates.', + ); + argParser.addOption( + _cutoffDaysOption, + help: 'The cut off amount of days since lastVerified date ' + 'to consider inclusion in output.', + ); + } + + @override + String get description => 'Check freshness of the docs on the website.'; + + @override + String get name => 'freshness'; + + @override + Future run() async => determineFreshness( + includeMissing: argResults.get(_includeMissingFlag, true), + cutOffDays: int.tryParse(argResults.get(_cutoffDaysOption, '')), + ); +} + +int determineFreshness({bool includeMissing = true, int? cutOffDays}) { + // Directories to check for content. + final directoryPathsToCheck = [ + path.join('src', 'content'), + ]; + + const extensionsToConsider = { + '.md', + '.html', + '.liquid', + }; + + final currentDate = DateTime.now(); + final results = FreshnessResults._(); + final initialCutoff = Duration(days: cutOffDays ?? _cutoffDays.first.days); + + for (final directory in directoryPathsToCheck.map(Directory.new)) { + final filesToCheck = directory + .listSync(recursive: true) + .whereType() + .where( + (file) => extensionsToConsider.contains(path.extension(file.path))) + .where( + (file) => !path.basenameWithoutExtension(file.path).startsWith('_')) + .where((file) => path.basenameWithoutExtension(file.path).isNotEmpty) + .toList(growable: false); + + for (final file in filesToCheck) { + final filePath = path.relative(file.path, from: directory.path); + try { + final fileContents = file.readAsStringSync(); + final frontMatter = front_matter.parse(fileContents); + if (frontMatter.data['skipFreshness'] case final skipFreshness? + when skipFreshness == true || skipFreshness == 'true') { + continue; + } + + if (frontMatter.data.containsKey('lastVerified')) { + final lastVerifiedRaw = frontMatter.data['lastVerified']; + if (lastVerifiedRaw case final String lastVerifiedString?) { + final lastVerified = DateTime.tryParse(lastVerifiedString); + if (lastVerified != null) { + final difference = currentDate.difference(lastVerified); + if (difference > initialCutoff) { + results._addStale(filePath, lastVerified: lastVerified); + } + } else { + results._addMisformatted(filePath, + misformattedDate: lastVerifiedString); + } + } else { + results._addMisformatted(filePath, + misformattedDate: '$lastVerifiedRaw'); + } + } else { + results._addMissingVerified(filePath); + } + } catch (e) { + results._addError(filePath, error: '$e'); + } + } + } + + final errorOutput = results.errorOutput(); + final staleOutput = results.staleOutput(includeMissing: includeMissing); + + print(errorOutput); + print(staleOutput); + + return 0; +} + +final List<({int days, String icon})> _cutoffDays = [ + (days: 270, icon: '🟨'), + (days: 540, icon: '🟧'), + (days: 810, icon: '🟥') +]; + +final DateFormat _dateFormat = DateFormat('y-MM-dd'); + +final class FreshnessResults { + FreshnessResults._(); + + final List _staleFiles = []; + final List _missingVerifiedDateFiles = []; + + final List _misformattedDateFiles = []; + final List _errorFiles = []; + + void _addStale(String path, {required DateTime lastVerified}) { + _staleFiles.add(StaleFile(path, lastVerified: lastVerified)); + } + + void _addMissingVerified(String path) { + _missingVerifiedDateFiles.add(MissingVerifiedDateFile(path)); + } + + void _addMisformatted(String path, {required String misformattedDate}) { + _misformattedDateFiles + .add(MisformattedDateFile(path, misformattedDate: misformattedDate)); + } + + void _addError(String path, {required String error}) { + _errorFiles.add(ErrorFile(path, error: error)); + } + + String staleOutput({bool includeMissing = true}) { + _staleFiles.sort((a, b) => a.lastVerified.compareTo(b.lastVerified)); + + final buffer = StringBuffer(); + + if (includeMissing && _missingVerifiedDateFiles.isNotEmpty) { + _missingVerifiedDateFiles.sortByPath(); + buffer.writeln('\n====== Files with missing lastVerified dates ======\n'); + for (final missingFile in _missingVerifiedDateFiles) { + buffer.write('❓ '); + buffer.write('missing-date '); + buffer.writeln(missingFile.path); + } + } + + if (_staleFiles.isNotEmpty) { + buffer.writeln('\n====== Files with stale lastVerified dates ======\n'); + final currentDate = DateTime.now(); + for (final staleFile in _staleFiles) { + final dayDifference = + currentDate.difference(staleFile.lastVerified).inDays; + var outputIcon = '🟩'; + for (final (:days, :icon) in _cutoffDays.reversed) { + if (dayDifference < days) continue; + + outputIcon = icon; + + if (dayDifference >= days) break; + } + + buffer.write(outputIcon); + buffer.write(' '); + buffer.write(_dateFormat.format(staleFile.lastVerified)); + buffer.write(' '); + buffer.writeln(staleFile.path); + } + } + + return buffer.toString(); + } + + String errorOutput() { + final buffer = StringBuffer(); + + if (_errorFiles.isNotEmpty) { + _errorFiles.sortByPath(); + buffer.writeln('\n====== Files with parsing or other errors ======\n'); + for (final errorFile in _errorFiles) { + buffer.write('‼️ '); + buffer.write('file-with-error'); + buffer.write(' '); + buffer.writeln(errorFile.path); + buffer.write(' '); + buffer.writeln(errorFile.error); + } + } + + if (_misformattedDateFiles.isNotEmpty) { + _misformattedDateFiles.sortByPath(); + buffer.writeln( + '\n====== Files with misformatted lastVerified dates ======\n'); + for (final misformattedFile in _misformattedDateFiles) { + buffer.write('❗ '); + buffer.write(misformattedFile.misformattedDate); + buffer.write(' '); + buffer.writeln(misformattedFile.path); + } + } + + return buffer.toString(); + } +} + +extension on List { + void sortByPath() { + sort((a, b) => a.path.compareTo(b.path)); + } +} + +sealed class FileOfInterest { + final String path; + + FileOfInterest(this.path); +} + +final class MisformattedDateFile extends FileOfInterest { + final String misformattedDate; + + MisformattedDateFile(super.path, {required this.misformattedDate}); +} + +final class StaleFile extends FileOfInterest { + final DateTime lastVerified; + + StaleFile(super.path, {required this.lastVerified}); +} + +final class MissingVerifiedDateFile extends FileOfInterest { + MissingVerifiedDateFile(super.path); +} + +final class ErrorFile extends FileOfInterest { + final String error; + + ErrorFile(super.path, {required this.error}); +} diff --git a/tool/dart_site/pubspec.yaml b/tool/dart_site/pubspec.yaml index dab22b023..256b53db4 100644 --- a/tool/dart_site/pubspec.yaml +++ b/tool/dart_site/pubspec.yaml @@ -9,12 +9,14 @@ dependencies: args: ^2.4.2 excerpter: path: ../../site-shared/packages/excerpter + fbh_front_matter: ^0.0.1 html_unescape: ^2.0.0 + intl: ^0.19.0 io: ^1.0.4 linkcheck: ^3.0.0 - yaml_variable_scanner: ^0.0.5 markdown: ^7.2.0 path: ^1.9.0 + yaml_variable_scanner: ^0.0.5 dev_dependencies: analysis_defaults: diff --git a/tool/inject_dartpad/pubspec.yaml b/tool/inject_dartpad/pubspec.yaml index 2711da462..06bbde1cc 100644 --- a/tool/inject_dartpad/pubspec.yaml +++ b/tool/inject_dartpad/pubspec.yaml @@ -2,15 +2,15 @@ name: inject_dartpad publish_to: none environment: - sdk: ^3.3.0 + sdk: ^3.4.0 dependencies: html_unescape: ^2.0.0 web: ^0.5.1 dev_dependencies: - build_runner: ^2.4.8 - build_web_compilers: ^4.0.9 + build_runner: ^2.4.9 + build_web_compilers: ^4.0.10 path: ^1.9.0 test: ^1.25.2 webdev: any From c0857adc6eaf9168ea312c2193878c284d32b9fe Mon Sep 17 00:00:00 2001 From: Amos Date: Fri, 2 Aug 2024 14:21:45 +0800 Subject: [PATCH 95/95] Sync: site-shared 43ee194 --- site-shared | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site-shared b/site-shared index d50b05880..43ee19493 160000 --- a/site-shared +++ b/site-shared @@ -1 +1 @@ -Subproject commit d50b05880ad6405518e3a08255bcda5fa72bbf2a +Subproject commit 43ee1949382ad3961e3192d702681b02af03ca90