From 90abd4a0a1dbf4cd82d4164c37c575c6afe38817 Mon Sep 17 00:00:00 2001 From: Patrice Bender Date: Mon, 27 Oct 2025 14:26:14 +0100 Subject: [PATCH 01/91] chore: remove node.js only marker for most standard functions (#2169) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit most of the standard database functions are also supported by the java runtime. Hence this section needed to be updated. Date / Aggregation / SAP HANA functions are still a todo for Java. Once the BLIs are implemented, we can also unlock those sections for Java. --------- Co-authored-by: Adrian Görler --- guides/databases.md | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/guides/databases.md b/guides/databases.md index 06f943fc58..784069076a 100644 --- a/guides/databases.md +++ b/guides/databases.md @@ -921,12 +921,12 @@ Instead, they protect the integrity of your data in the database layer against p ## Standard Database Functions -A specified set of standard functions - inspired by [OData](https://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part2-url-conventions.html#sec_StringandCollectionFunctions) and [SAP HANA](https://help.sap.com/docs/hana-cloud-database/sap-hana-cloud-sap-hana-database-sql-reference-guide/alphabetical-list-of-functions?locale=en-US) - is supported in a **database-agnostic**, hence portable way, and translated to the best-possible native SQL functions or polyfills during runtime (currently only Node.js) and for your CDL files. +A specified set of standard functions - inspired by [OData](https://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part2-url-conventions.html#sec_StringandCollectionFunctions) and [SAP HANA](https://help.sap.com/docs/hana-cloud-database/sap-hana-cloud-sap-hana-database-sql-reference-guide/alphabetical-list-of-functions?locale=en-US) - is supported in a **database-agnostic**, hence portable way. The functions are translated to the best-possible database-specific SQL expressions at runtime and also during compilation of your CDL files. ### OData standard functions -The `@sap/cds-compiler` and all CAP Node.js database services come with out of the box support for common OData functions. +The `@sap/cds-compiler` and the database services come with out of the box support for common OData functions. ::: warning Case Sensitivity The OData function mappings are case-sensitive and must be written as in the list below. @@ -1021,6 +1021,8 @@ For example, `startsWith` instead of `startswith` will be passed as-is to the da If you provide more than one argument, the `round` function may behave differently depending on the database. ::: +
+ #### Date and Time Functions - `year(x)`, `month(x)`, `day(x)`, `hour(x)`, `minute(x)`, `second(x)` @@ -1038,11 +1040,14 @@ For example, `startsWith` instead of `startswith` will be passed as-is to the da - `mindatetime()` Returns the earliest possible point in time: `'0001-01-01T00:00:00.000Z'`. +
+ #### Aggregate Functions - `min(x)`, `max(x)`, `sum(x)`, `average(x)`, `count(x)`, `countdistinct(x)` Standard aggregate functions used to calculate minimum, maximum, sum, average, count, and distinct count of values. +
### SAP HANA Functions @@ -1066,7 +1071,7 @@ For the SAP HANA functions, both usages are allowed: all-lowercase as given abov ### Special Runtime Functions -In addition to the OData and SAP HANA standard functions, the **CAP runtimes** provides special functions that are only available for runtime queries: +In addition to the OData and SAP HANA standard functions, the **CAP runtime** provides special functions that are only available for runtime queries: - `search(x, y)` Checks whether `y` is contained in any element of `x` (fuzzy matching may apply). @@ -1079,6 +1084,8 @@ In addition to the OData and SAP HANA standard functions, the **CAP runtimes** p - `now()` Returns the current timestamp. +
+ ## Using Native Features { #native-db-functions} In general, the CDS 2 SQL compiler doesn't 'understand' SQL functions but translates them to SQL generically as long as they follow the standard call syntax of `function(param1, param2)`. This allows you to use native database functions inside your CDS models. @@ -1191,4 +1198,4 @@ Once you have 2 non-HANA local databases, you need to have 2 distinct database c -CAP samples demonstrate this in [@capire/bookstore](https://github.com/capire/bookstore/tree/main/db). \ No newline at end of file +CAP samples demonstrate this in [@capire/bookstore](https://github.com/capire/bookstore/tree/main/db). From 965492ff8c6620e8ed7e783e93d7255d404d3327 Mon Sep 17 00:00:00 2001 From: Steffen Waldmann Date: Mon, 27 Oct 2025 14:27:57 +0100 Subject: [PATCH 02/91] Simplify multitenancy guide (#2173) - `with-mtx` profile config is added on `cds add multitenancy` by default. - Removed `oauth-configuration` snippet: was hardcoded to a specific region (bad practice!) and we add a more generic one in `cds add xsuaa/ias`. - `cds add kyma` is a convenient shortcut for `cds add helm,containerize`. - Removed the "Behind the Scenes" section as it's overly hard-wired to XSUAA + Service Manager. It wasn't adding a lot of value imo. --- guides/deployment/to-cf.md | 2 -- guides/multitenancy/index.md | 37 ++++-------------------------------- 2 files changed, 4 insertions(+), 35 deletions(-) diff --git a/guides/deployment/to-cf.md b/guides/deployment/to-cf.md index a343e5b052..0257f2b7e1 100644 --- a/guides/deployment/to-cf.md +++ b/guides/deployment/to-cf.md @@ -216,8 +216,6 @@ To enable multitenancy for production, run the following command: cds add multitenancy ``` -[Learn more about MTX services.](../multitenancy/#behind-the-scenes){.learn-more} -
::: tip You're set! diff --git a/guides/multitenancy/index.md b/guides/multitenancy/index.md index e303290108..ab4b624109 100644 --- a/guides/multitenancy/index.md +++ b/guides/multitenancy/index.md @@ -79,6 +79,9 @@ cds add multitenancy "requires": { "[production]": { "multitenancy": true + }, + "[with-mtx]": { + "multitenancy": true } } } @@ -721,25 +724,11 @@ cds add mta ``` ```sh [Kyma] -cds add helm,containerize +cds add kyma ``` ::: -::: details Add xsuaa redirect for trial / extension landscapes -Add the following snippet to your _xs-security.json_ and adapt it to the landscape you're deploying to: - -```json - "oauth2-configuration": { - "redirect-uris": ["https://*.cfapps.us10-001.hana.ondemand.com/**"] - } -``` - -::: - -[Learn more about configured BTP services for SaaS applications.](#behind-the-scenes){.learn-more} - - ::: code-group ```sh [Cloud Foundry] @@ -1275,24 +1264,6 @@ The main task for the MTX sidecar is to serve `subscribe` and `upgrade` requests The CAP services runtime requests models from the sidecar only when you apply tenant-specific extensions. For Node.js projects, you have the option to run the MTX services embedded in the main app, instead of in a sidecar. - -### Behind the Scenes { #behind-the-scenes} - -With adding the MTX services, your project configuration is adapted at all relevant places. - -Configuration and dependencies are added to your _package.json_ and an _xs-security.json_ containing MTX-specific scopes and roles is created. {.node} - -Configuration and dependencies are added to your _.cdsrc.json_ and an _xs-security.json_ containing MTX-specific scopes and roles is created. {.java} - -For the MTA deployment service dependencies are added to the _mta.yaml_ file. Each SaaS application will have bindings to at least three SAP BTP service instances. - -| Service | Description | -| ------------------------------------------------------------ | ------------------------------------------------------------ | -| [Service Manager](https://help.sap.com/docs/SERVICEMANAGEMENT/09cc82baadc542a688176dce601398de/4e19b11211fe4ca2a266d3fdd4a72188.html) (`service-manager`) | CAP uses this service for creating a new SAP HANA Deployment Infrastructure (HDI) container for each tenant and for retrieving tenant-specific database connections. | -| [SaaS Provisioning Service](https://help.sap.com/products/BTP/65de2977205c403bbc107264b8eccf4b/3971151ba22e4faa9b245943feecea54.html) (`saas-registry`) | To make a SaaS application available for subscription to SaaS consumer tenants, the application provider must register the application in the SAP BTP Cloud Foundry environment through the SaaS Provisioning Service. | -| [User Account and Authentication Service](https://help.sap.com/docs/CP_AUTHORIZ_TRUST_MNG) (`xsuaa`) | Binding information contains the OAuth client ID and client credentials. The XSUAA service can be used to validate the JSON Web Token (JWT) from requests and to retrieve the tenant context from the JWT.| - - If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/capire/docs). Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index a688484952..12d18b990d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7549,9 +7549,9 @@ "license": "MIT" }, "node_modules/sass": { - "version": "1.93.2", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.93.2.tgz", - "integrity": "sha512-t+YPtOQHpGW1QWsh1CHQ5cPIr9lbbGZLZnbihP/D/qZj/yuV68m8qarcV17nvkOX81BCrvzAlq2klCQFZghyTg==", + "version": "1.93.3", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.93.3.tgz", + "integrity": "sha512-elOcIZRTM76dvxNAjqYrucTSI0teAF/L2Lv0s6f6b7FOwcwIuA357bIE871580AjHJuSvLIRUosgV+lIWx6Rgg==", "dev": true, "license": "MIT", "peer": true, From 0a7b6ee7d65e85bdcdf19464932cffda8c1058e1 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 31 Oct 2025 16:56:55 +0100 Subject: [PATCH 07/91] chore(deps): update dependency @types/express to v4.17.25 (#2176) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR contains the following updates: | Package | Change | Age | Confidence | |---|---|---|---| | [@types/express](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/express) ([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/express)) | [`4.17.24` -> `4.17.25`](https://renovatebot.com/diffs/npm/@types%2fexpress/4.17.24/4.17.25) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fexpress/4.17.25?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fexpress/4.17.24/4.17.25?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/capire/docs). Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package-lock.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index 12d18b990d..54ecbedcbc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2714,9 +2714,9 @@ "license": "MIT" }, "node_modules/@types/express": { - "version": "4.17.24", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.24.tgz", - "integrity": "sha512-Mbrt4SRlXSTWryOnHAh2d4UQ/E7n9lZyGSi6KgX+4hkuL9soYbLOVXVhnk/ODp12YsGc95f4pOvqywJ6kngUwg==", + "version": "4.17.25", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.25.tgz", + "integrity": "sha512-dVd04UKsfpINUnK0yBoYHDF3xu7xVH4BuDotC/xGuycx4CgbP48X/KF/586bcObxT0HENHXEU8Nqtu6NR+eKhw==", "dev": true, "license": "MIT", "peer": true, @@ -2724,7 +2724,7 @@ "@types/body-parser": "*", "@types/express-serve-static-core": "^4.17.33", "@types/qs": "*", - "@types/serve-static": "*" + "@types/serve-static": "^1" } }, "node_modules/@types/express-serve-static-core": { From 3c1235f1bdf93382fafefda7cd02a4a111e57988 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 31 Oct 2025 16:57:35 +0100 Subject: [PATCH 08/91] chore: Update CLI texts (#2179) Updates the output of cds CLI texts to the latest version. Co-authored-by: chgeo <7470719+chgeo@users.noreply.github.com> --- tools/assets/help/cds-version-md.out.md | 12 ++++++------ tools/assets/help/cds-version.out.md | 12 ++++++------ 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/tools/assets/help/cds-version-md.out.md b/tools/assets/help/cds-version-md.out.md index d472cf5402..d7b7b53f51 100644 --- a/tools/assets/help/cds-version-md.out.md +++ b/tools/assets/help/cds-version-md.out.md @@ -4,15 +4,15 @@ | your-project | https://github.com/<your/repo> | | ---------------------- | --------------------------------------- | -| @sap/cds | 9.4.3 | +| @sap/cds | 9.4.4 | | @sap/cds-dk | -- missing -- | -| @sap/cds-compiler | 6.4.2 | -| @sap/cds-dk (global) | 9.4.1 | +| @sap/cds-compiler | 6.4.6 | +| @sap/cds-dk (global) | 9.4.2 | | @sap/cds-fiori | 2.1.0 | -| @sap/cds-mtxs | 3.3.1 | +| @sap/cds-mtxs | 3.4.2 | | @cap-js/asyncapi | 1.0.3 | -| @cap-js/db-service | 2.5.1 | +| @cap-js/db-service | 2.6.0 | | @cap-js/openapi | 1.2.3 | -| @cap-js/sqlite | 2.0.3 | +| @cap-js/sqlite | 2.0.4 | | Node.js | v22.20.0 | diff --git a/tools/assets/help/cds-version.out.md b/tools/assets/help/cds-version.out.md index 1c407d30dd..51d6e28215 100644 --- a/tools/assets/help/cds-version.out.md +++ b/tools/assets/help/cds-version.out.md @@ -2,15 +2,15 @@
 > cds version
 
-@sap/cds: 9.4.3
+@sap/cds: 9.4.4
 @sap/cds-dk: undefined
-@sap/cds-compiler: 6.4.2
-@sap/cds-dk (global): 9.4.1
+@sap/cds-compiler: 6.4.6
+@sap/cds-dk (global): 9.4.2
 @sap/cds-fiori: 2.1.0
-@sap/cds-mtxs: 3.3.1
+@sap/cds-mtxs: 3.4.2
 @cap-js/asyncapi: 1.0.3
-@cap-js/db-service: 2.5.1
+@cap-js/db-service: 2.6.0
 @cap-js/openapi: 1.2.3
-@cap-js/sqlite: 2.0.3
+@cap-js/sqlite: 2.0.4
 Node.js: v22.20.0
 
From 63ff0ae5a5071bae97f3e85c84cd8c065bd5453e Mon Sep 17 00:00:00 2001 From: Evgeny Andreev Date: Tue, 4 Nov 2025 12:09:08 +0100 Subject: [PATCH 09/91] Document Tree Views (#2005) --- advanced/fiori.md | 106 +++++++++++++++++++++++++++++++++++++++++++--- menu.md | 2 +- 2 files changed, 102 insertions(+), 6 deletions(-) diff --git a/advanced/fiori.md b/advanced/fiori.md index 1b1b2d27be..dde6e4c7ab 100644 --- a/advanced/fiori.md +++ b/advanced/fiori.md @@ -1,5 +1,4 @@ --- -shorty: Fiori UIs synopsis: > CAP provides out-of-the-box support for SAP Fiori elements front ends. permalink: advanced/fiori @@ -9,7 +8,7 @@ impl-variants: true uacp: Used as link target from Help Portal at https://help.sap.com/products/BTP/65de2977205c403bbc107264b8eccf4b/e4a7559baf9f4e4394302442745edcd9.html --- -# Serving Fiori UIs +# Serving SAP Fiori UIs {{ $frontmatter.synopsis }} @@ -23,13 +22,13 @@ This guide explains how to add one or more SAP Fiori elements apps to a CAP proj ## SAP Fiori Preview -For entities exposed via OData V4 there is a _Fiori preview_ link on the index page. It dynamically serves an SAP Fiori Elements list page that allows you to quickly see the effect of annotation changes without having to create a UI application first. +For entities exposed via OData V4 there is a _Fiori preview_ link on the index page. It dynamically serves an SAP Fiori elements list page that allows you to quickly see the effect of annotation changes without having to create a UI application first. ::: details Be aware that this is **not meant for production**.
-The preview not meant as a replacement for a proper SAP Fiori Elements (UI5) application. +The preview is not meant as a replacement for a proper SAP Fiori elements (UI5) application. It is only active locally where the [development profile](../node.js/cds-env#profiles) is enabled. To also enable it in cloud deployments, for test or demo purposes maybe, set cds.fiori.preview:true. @@ -38,7 +37,7 @@ To also enable it in cloud deployments, for test or demo purposes maybe, set -The preview not meant as a replacement for a proper SAP Fiori Elements (UI5) application. +The preview is not meant as a replacement for a proper SAP Fiori elements (UI5) application. It is active by default, but disabled automatically in case the [production profile](../java/developing-applications/configuring#production-profile) is enabled. To also enable it in cloud deployments, for test or demo purposes maybe, set cds.index-page.enabled:true. @@ -744,4 +743,101 @@ Cache Control feature is currently supported on the Java runtime only.
+## Hierarchical Tree Views + +Recursive hierarchies are parent-child hierarchies, where each entity references its parent and through that defines the hierarchical structure. A common example is a company organization structure or HR reporting, where each employee entity references another employee as a direct report or manager. + +Database support for a generic hierarchy implementation by CAP runtimes: + +| Runtime\DB | SAP HANA | H2 | PostgreSQL | SQLite | +|-------------|----------|----|------------|--------| +| CAP Java | ✓ | ✓ | ✓ | | +| CAP Node.js | ✓ | |✓ |✓ | + + +### Example +Let's assume we have the following domain model and its projection in a service: + +::: code-group +```cds [schema.cds] +namespace my.bookshop; + +entity Genres { //... + parent : Association to Genres; +} +``` +::: + +::: code-group +```cds [AdminService.cds] +service AdminService { + entity Genres as projection on my.bookshop.Genres; +} +``` +::: + + +Annotate/extend the entity in the service as follows: + +```cds +// declare a hierarchy with the qualifier "GenresHierarchy" +annotate AdminService.Genres with @Aggregation.RecursiveHierarchy #GenresHierarchy : { + NodeProperty : ID, // identifies a node, usually the key + ParentNavigationProperty : parent // navigates to a node's parent +}; + +extend AdminService.Genres with @( + // The computed properties expected by Fiori to be present in hierarchy entities + Hierarchy.RecursiveHierarchy #GenresHierarchy : { + LimitedDescendantCount : LimitedDescendantCount, + DistanceFromRoot : DistanceFromRoot, + DrillState : DrillState, + LimitedRank : LimitedRank + }, + // Disallow filtering on these properties from Fiori UIs + Capabilities.FilterRestrictions.NonFilterableProperties: [ + 'LimitedDescendantCount', 'DistanceFromRoot', 'DrillState', 'LimitedRank' + ], + // Disallow sorting on these properties from Fiori UIs + Capabilities.SortRestrictions.NonSortableProperties : [ + 'LimitedDescendantCount', 'DistanceFromRoot', 'DrillState', 'LimitedRank' + ], +) columns { // Ensure we can query these columns from the database + null as LimitedDescendantCount : Int16, + null as DistanceFromRoot : Int16, + null as DrillState : String, + null as LimitedRank : Int16 +}; +``` + +> Note: When naming the hierarchy qualifier, use the following pattern:
+> `Hierarchy` + +Configure the TreeTable in UI5's _manifest.json_ file: + +```jsonc + "sap.ui5": { ... + "routing": { ... + "targets": { ... + "GenresList": { ... + "options": { + "settings": { ... + "controlConfiguration": { + "@com.sap.vocabularies.UI.v1.LineItem": { + "tableSettings": { + "hierarchyQualifier": "GenresHierarchy", // [!code focus] + "type": "TreeTable" // [!code focus] + } + } + } + } + } + }, + }, + }, +``` + +> Note: use the `hierarchyQualifier` declared earlier +
+ diff --git a/menu.md b/menu.md index 56e3f7a37a..959b213a55 100644 --- a/menu.md +++ b/menu.md @@ -55,7 +55,7 @@ ### [AsyncAPI](advanced/publishing-apis/asyncapi) ## [Serving UIs](advanced/fiori) - ### [Fiori UIs](advanced/fiori) + ### [SAP Fiori UIs](advanced/fiori) ## [Databases](guides/databases) From 9168a8fdd9ea9f1cc7b633957b8c754c1248ddd9 Mon Sep 17 00:00:00 2001 From: Rene Jeglinsky Date: Tue, 4 Nov 2025 14:00:34 +0100 Subject: [PATCH 10/91] add ai review action --- .github/workflows/ai-review.yml | 34 +++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 .github/workflows/ai-review.yml diff --git a/.github/workflows/ai-review.yml b/.github/workflows/ai-review.yml new file mode 100644 index 0000000000..2325344eb7 --- /dev/null +++ b/.github/workflows/ai-review.yml @@ -0,0 +1,34 @@ +name: AI Review + +on: + pull_request: + branches: [main] + merge_group: + +concurrency: + group: pr-sap-${{ github.workflow }}-${{ github.head_ref || github.run_id }} + cancel-in-progress: true + +permissions: + contents: read + +jobs: + ai-review: + name: AI Review + if: ${{ contains(github.event.pull_request.labels.*.name, 'AI Review') }} + runs-on: [self-hosted, solinas] + steps: + - uses: SAP/ai-assisted-github-actions/pr-review@v3 + with: + aicore-service-key: ${{ secrets.AICORE_SERVICE_KEY }} + model: gpt-5 + model-parameters: '{"temperature": 0.1}' + prompt: | + - As an AI bot reviewing documentation pull requests on GitHub, please focus on the following areas to ensure high-quality and effective documentation: + - Check for spelling errors in English and provide corrections. + - Identify and correct grammatical errors and incorrect punctuation. + - Provide suggestions for improving the clarity and conciseness of the text to make it more understandable. + - Consider the guidelines that can be found in .github/workflows/assets/editor.md and apply them. + - Ensure that the tone is appropriate for technical documentation, maintaining a professional and informative style. + - Verify that the structure of the document is logical and that headings and subheadings are used effectively. + - Check for consistency in terminology and style throughout the document. From 65502a22304b8c23c7073835daf5b49b66c2c185 Mon Sep 17 00:00:00 2001 From: Rene Jeglinsky Date: Tue, 4 Nov 2025 15:08:24 +0100 Subject: [PATCH 11/91] update runner --- .github/workflows/ai-review.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ai-review.yml b/.github/workflows/ai-review.yml index 2325344eb7..adae0ca418 100644 --- a/.github/workflows/ai-review.yml +++ b/.github/workflows/ai-review.yml @@ -16,7 +16,7 @@ jobs: ai-review: name: AI Review if: ${{ contains(github.event.pull_request.labels.*.name, 'AI Review') }} - runs-on: [self-hosted, solinas] + runs-on: ubuntu-latest steps: - uses: SAP/ai-assisted-github-actions/pr-review@v3 with: From b8741581c547d103d257e8ae359b732f8ceb8df2 Mon Sep 17 00:00:00 2001 From: Rene Jeglinsky Date: Tue, 4 Nov 2025 15:17:03 +0100 Subject: [PATCH 12/91] switch model --- .github/workflows/ai-review.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ai-review.yml b/.github/workflows/ai-review.yml index adae0ca418..186831cad3 100644 --- a/.github/workflows/ai-review.yml +++ b/.github/workflows/ai-review.yml @@ -21,7 +21,7 @@ jobs: - uses: SAP/ai-assisted-github-actions/pr-review@v3 with: aicore-service-key: ${{ secrets.AICORE_SERVICE_KEY }} - model: gpt-5 + model: anthropic--claude-4-sonnet model-parameters: '{"temperature": 0.1}' prompt: | - As an AI bot reviewing documentation pull requests on GitHub, please focus on the following areas to ensure high-quality and effective documentation: From 18c92c1ab8167f482dbc0927494da16ad07279a4 Mon Sep 17 00:00:00 2001 From: Rene Jeglinsky Date: Tue, 4 Nov 2025 15:35:14 +0100 Subject: [PATCH 13/91] allow writing to pull requests --- .github/workflows/ai-review.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/ai-review.yml b/.github/workflows/ai-review.yml index 186831cad3..1a66629d64 100644 --- a/.github/workflows/ai-review.yml +++ b/.github/workflows/ai-review.yml @@ -11,6 +11,7 @@ concurrency: permissions: contents: read + pull-request: write jobs: ai-review: From c8363f63dc9574d85c8ee3d630ff8744a062162b Mon Sep 17 00:00:00 2001 From: Rene Jeglinsky Date: Tue, 4 Nov 2025 15:45:54 +0100 Subject: [PATCH 14/91] move write permission into job --- .github/workflows/ai-review.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ai-review.yml b/.github/workflows/ai-review.yml index 1a66629d64..4c7bae2c99 100644 --- a/.github/workflows/ai-review.yml +++ b/.github/workflows/ai-review.yml @@ -11,13 +11,14 @@ concurrency: permissions: contents: read - pull-request: write jobs: ai-review: name: AI Review if: ${{ contains(github.event.pull_request.labels.*.name, 'AI Review') }} runs-on: ubuntu-latest + permissions: + pull-request: write steps: - uses: SAP/ai-assisted-github-actions/pr-review@v3 with: From 573035929ecb0ee377ef7f7776bcabee3fc31aa5 Mon Sep 17 00:00:00 2001 From: Rene Jeglinsky Date: Tue, 4 Nov 2025 15:47:40 +0100 Subject: [PATCH 15/91] another try with contents: write --- .github/workflows/ai-review.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/ai-review.yml b/.github/workflows/ai-review.yml index 4c7bae2c99..ffe001da63 100644 --- a/.github/workflows/ai-review.yml +++ b/.github/workflows/ai-review.yml @@ -10,15 +10,13 @@ concurrency: cancel-in-progress: true permissions: - contents: read + contents: write jobs: ai-review: name: AI Review if: ${{ contains(github.event.pull_request.labels.*.name, 'AI Review') }} runs-on: ubuntu-latest - permissions: - pull-request: write steps: - uses: SAP/ai-assisted-github-actions/pr-review@v3 with: From 588639c93f0a998d3a8b99135c3810588d76187d Mon Sep 17 00:00:00 2001 From: Rene Jeglinsky Date: Tue, 4 Nov 2025 16:01:59 +0100 Subject: [PATCH 16/91] move permission in job completely --- .github/workflows/ai-review.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ai-review.yml b/.github/workflows/ai-review.yml index ffe001da63..f090441316 100644 --- a/.github/workflows/ai-review.yml +++ b/.github/workflows/ai-review.yml @@ -9,14 +9,14 @@ concurrency: group: pr-sap-${{ github.workflow }}-${{ github.head_ref || github.run_id }} cancel-in-progress: true -permissions: - contents: write - jobs: ai-review: name: AI Review if: ${{ contains(github.event.pull_request.labels.*.name, 'AI Review') }} runs-on: ubuntu-latest + permissions: + contents: read + pull-requests: write steps: - uses: SAP/ai-assisted-github-actions/pr-review@v3 with: From 8194b47d240f84a29bd1acfb33899a6dca490af1 Mon Sep 17 00:00:00 2001 From: Rene Jeglinsky Date: Wed, 5 Nov 2025 09:02:04 +0100 Subject: [PATCH 17/91] add guidelines for ai editor --- .github/workflows/assets/editor.md | 83 ++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 .github/workflows/assets/editor.md diff --git a/.github/workflows/assets/editor.md b/.github/workflows/assets/editor.md new file mode 100644 index 0000000000..3c49a0a655 --- /dev/null +++ b/.github/workflows/assets/editor.md @@ -0,0 +1,83 @@ +--- +description: Reviews code for quality and best practices +temperature: 0.1 +prompt: Do a detailed edit as outlined in the following. +--- + +# Detailed Edit +## ROLE +You are a helpful editor for a technical writer. Your task is to review and improve the text while ensuring that it adheres to a structured set of writing rules. All categories are of equal priority—no rule should be prioritized over another. + +## TASK +Perform a structured review of the text, checking compliance with the following rules: + + +1. Guidelines +For this repository you should consider the following guideline: + +To have a consistent look and feel throughout capire, use the following semantic when formatting your text. + +| Format | Semantic | +|---|---| +| _Italic_ | Indicates new terms, URLs, email addresses, filenames, and file extensions, and UI Elements.| +|`Constant width` | Used for program listings, as well as within paragraphs to refer to program elements such as variable or function names, databases, data types, environment variables, statements, and keywords.| + +It boils down to very basic considerations: + +- Everything that is code or related to code, which includes configuration, is at `Constant width` +- Everything else, that is neither code nor configuration, is _Italic_ +- Everything that is important and should be highlighted is **Bold** +- Keywords and all other things you want to highlight, can be formatted as `Constant width` but it should be used wisely. + +There are a couple of aspects that are easy to consider when writing w/o digging too deep into guidelines for technical communication at SAP. + +- Use active voice instead of passive voice + + Example: Add the parameter `xyz` to ... ✅ | The parameter `xyz` is added to ... ❌ +- Be friendly and conversational, put yourself in the users shoes. + + This includes using contractions (don't instead of do not) or the use of please in rare cases. Write as if you'd explain sth to a friend. +- Use simple language. + + This sound easier than it is, but if you can put it in simpler words, it gets automatically clearer and more helpful. + +- Avoid emoticons and emojis. +- Do NOT remove TODO markers at all. +- Do NOT remove tip, warning or danger notes indicated by `... tip` or similar constructs. + +- Use present and avoid future tense! + +The documentation should follow the here described style guidance so that it keeps a consistent external and internal appearance: + +| Topic | Write | Don't Write | +|----------------------------------|----------------------------------|--------------------------------------------------------------------------------| +| Single quotes | isn't, or don't | isn’t, or don’t | +| The other single quote: ‘ | ' | ‘ | +| In-text, in-line, single quoting | \`assets\` (showing as `assets`) | \`\`assets\`\`, or \`\`\`assets\`\`\` (showing as ``assets``, or ```assets```) | +| JavaScript code snippets | \`\`\`js | \`\`\`javascript | +| Three dots | ... (good: 3 1-dot characters) | … (bad: 1 3-dot characters) | +| Long dash | --- (good: 3 single dashes) | —, —, – (bad: long-dash character, \— or \–) | + +| Terminology | Don't Write | +|-------------------------------------------------------------------------|-------------------------------| +| for example | e.g. 1 | +| GitHub | Github, github 2 | +| that is | i.e. 1 | +| Java | JAVA, java 2 | +| micro service | micro-service, microservice | +| modeling | modelling | +| multitarget | multi-target, multi target | +| multitenancy | multi-tenancy, multi tenancy | +| multitenant | multi-tenant, multi tenant | +| Node.js | node.js 2 | +| SAP BTP | SAP CP, CP | +| SAP HANA | HANA, Hana, hana 2 | +| SAP Software-as-a-Service Provisioning service | saas registry 2 | +| SQLite | SqLite, sqlite 2 | +| versus | vs. 1 | +| XSUAA | xsuaa 2 | + +1 Avoid latin abbreviations.
+2 Use the not recommended spelling only if you're clearly referring to some technical entity or process. + +To improve readability and translatability, avoid using modal verbs in your content. \ No newline at end of file From d47af0ea209ff3b9c34b7df4cbab18b700bd0e95 Mon Sep 17 00:00:00 2001 From: Rene Jeglinsky Date: Wed, 5 Nov 2025 10:00:42 +0100 Subject: [PATCH 18/91] improve prompt --- .github/workflows/ai-review.yml | 2 ++ .github/workflows/assets/editor.md | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ai-review.yml b/.github/workflows/ai-review.yml index f090441316..1f0dd47037 100644 --- a/.github/workflows/ai-review.yml +++ b/.github/workflows/ai-review.yml @@ -32,3 +32,5 @@ jobs: - Ensure that the tone is appropriate for technical documentation, maintaining a professional and informative style. - Verify that the structure of the document is logical and that headings and subheadings are used effectively. - Check for consistency in terminology and style throughout the document. + - Use active voice instead of passive voice + - Use present tense and **avoid future tense**! diff --git a/.github/workflows/assets/editor.md b/.github/workflows/assets/editor.md index 3c49a0a655..635cc73b5a 100644 --- a/.github/workflows/assets/editor.md +++ b/.github/workflows/assets/editor.md @@ -41,11 +41,11 @@ There are a couple of aspects that are easy to consider when writing w/o digging This sound easier than it is, but if you can put it in simpler words, it gets automatically clearer and more helpful. +- Use present tense and **avoid future tense**! - Avoid emoticons and emojis. - Do NOT remove TODO markers at all. - Do NOT remove tip, warning or danger notes indicated by `... tip` or similar constructs. -- Use present and avoid future tense! The documentation should follow the here described style guidance so that it keeps a consistent external and internal appearance: From cf9379ff808616f99c3dc3576b244b5c273734e1 Mon Sep 17 00:00:00 2001 From: Rene Jeglinsky Date: Wed, 5 Nov 2025 12:15:41 +0100 Subject: [PATCH 19/91] restriction for suggestions --- .github/workflows/ai-review.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ai-review.yml b/.github/workflows/ai-review.yml index 1f0dd47037..b0a77b3823 100644 --- a/.github/workflows/ai-review.yml +++ b/.github/workflows/ai-review.yml @@ -27,7 +27,7 @@ jobs: - As an AI bot reviewing documentation pull requests on GitHub, please focus on the following areas to ensure high-quality and effective documentation: - Check for spelling errors in English and provide corrections. - Identify and correct grammatical errors and incorrect punctuation. - - Provide suggestions for improving the clarity and conciseness of the text to make it more understandable. + - Provide suggestions for improving the clarity and conciseness of the text to make it more understandable. Restrict yourself to the 5 most important findings and create suggestions for them. - Consider the guidelines that can be found in .github/workflows/assets/editor.md and apply them. - Ensure that the tone is appropriate for technical documentation, maintaining a professional and informative style. - Verify that the structure of the document is logical and that headings and subheadings are used effectively. From 80342d8bb4d88a93faf7e8c7b8ec0891a2daf39e Mon Sep 17 00:00:00 2001 From: Rene Jeglinsky Date: Wed, 5 Nov 2025 12:46:01 +0100 Subject: [PATCH 20/91] use us english --- .github/workflows/ai-review.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ai-review.yml b/.github/workflows/ai-review.yml index b0a77b3823..6b22c4ff66 100644 --- a/.github/workflows/ai-review.yml +++ b/.github/workflows/ai-review.yml @@ -25,7 +25,8 @@ jobs: model-parameters: '{"temperature": 0.1}' prompt: | - As an AI bot reviewing documentation pull requests on GitHub, please focus on the following areas to ensure high-quality and effective documentation: - - Check for spelling errors in English and provide corrections. + - Use U.S. English spelling and punctuation. + - Check for spelling errors and provide corrections. - Identify and correct grammatical errors and incorrect punctuation. - Provide suggestions for improving the clarity and conciseness of the text to make it more understandable. Restrict yourself to the 5 most important findings and create suggestions for them. - Consider the guidelines that can be found in .github/workflows/assets/editor.md and apply them. From 5749749bdc45d8ac7d85926d16032c849e633896 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 5 Nov 2025 14:56:02 +0100 Subject: [PATCH 21/91] chore: Update CLI texts (#2187) Updates the output of cds CLI texts to the latest version. Co-authored-by: chgeo <7470719+chgeo@users.noreply.github.com> --- tools/assets/help/cds-help.out.md | 4 ++-- tools/assets/help/cds-version-md.out.md | 8 ++++---- tools/assets/help/cds-version.out.md | 8 ++++---- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/tools/assets/help/cds-help.out.md b/tools/assets/help/cds-help.out.md index e7f753c2cb..805966d96d 100644 --- a/tools/assets/help/cds-help.out.md +++ b/tools/assets/help/cds-help.out.md @@ -30,10 +30,10 @@ | logout logout from extensible multitenant SaaS app | pull pull base model of extensible SaaS app | push push extension to extensible SaaS app - t | lint run linter for env or model checks + | lint run linter for env or model checks v | version get detailed version information | completion add/remove cli completion for cds commands - ? | help get detailed usage information + h | help get detailed usage information Learn more about each command using: cds help <command> or diff --git a/tools/assets/help/cds-version-md.out.md b/tools/assets/help/cds-version-md.out.md index d7b7b53f51..ee81e18db7 100644 --- a/tools/assets/help/cds-version-md.out.md +++ b/tools/assets/help/cds-version-md.out.md @@ -7,12 +7,12 @@ | @sap/cds | 9.4.4 | | @sap/cds-dk | -- missing -- | | @sap/cds-compiler | 6.4.6 | -| @sap/cds-dk (global) | 9.4.2 | -| @sap/cds-fiori | 2.1.0 | -| @sap/cds-mtxs | 3.4.2 | +| @sap/cds-dk (global) | 9.4.3 | +| @sap/cds-fiori | 2.1.1 | +| @sap/cds-mtxs | 3.4.3 | | @cap-js/asyncapi | 1.0.3 | | @cap-js/db-service | 2.6.0 | | @cap-js/openapi | 1.2.3 | | @cap-js/sqlite | 2.0.4 | -| Node.js | v22.20.0 | +| Node.js | v22.21.1 | diff --git a/tools/assets/help/cds-version.out.md b/tools/assets/help/cds-version.out.md index 51d6e28215..565c175459 100644 --- a/tools/assets/help/cds-version.out.md +++ b/tools/assets/help/cds-version.out.md @@ -5,12 +5,12 @@ @sap/cds: 9.4.4 @sap/cds-dk: undefined @sap/cds-compiler: 6.4.6 -@sap/cds-dk (global): 9.4.2 -@sap/cds-fiori: 2.1.0 -@sap/cds-mtxs: 3.4.2 +@sap/cds-dk (global): 9.4.3 +@sap/cds-fiori: 2.1.1 +@sap/cds-mtxs: 3.4.3 @cap-js/asyncapi: 1.0.3 @cap-js/db-service: 2.6.0 @cap-js/openapi: 1.2.3 @cap-js/sqlite: 2.0.4 -Node.js: v22.20.0 +Node.js: v22.21.1 From a73bfafe97ef0f6ae8fe2931aeec53e1c937565e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 6 Nov 2025 11:16:01 +0100 Subject: [PATCH 22/91] chore(deps): update dependency cspell to v9.3.0 (#2189) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR contains the following updates: | Package | Change | Age | Confidence | |---|---|---|---| | [cspell](https://cspell.org/) ([source](https://redirect.github.com/streetsidesoftware/cspell/tree/HEAD/packages/cspell)) | [`9.2.2` -> `9.3.0`](https://renovatebot.com/diffs/npm/cspell/9.2.2/9.3.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/cspell/9.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/cspell/9.2.2/9.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
streetsidesoftware/cspell (cspell) ### [`v9.3.0`](https://redirect.github.com/streetsidesoftware/cspell/blob/HEAD/packages/cspell/CHANGELOG.md#v930-2025-11-05) [Compare Source](https://redirect.github.com/streetsidesoftware/cspell/compare/v9.2.2...v9.3.0) ##### Features
feat: Support loading `.ts` and `.mts` config files. (#​7961) ##### feat: Support loading `.ts` and `.mts` config files. ([#​7961](https://redirect.github.com/streetsidesoftware/cspell/pull/7961)) This PR add support to read TypeScript cspell config files. Note: TypeScript config files will fail to load when NodeJS version is less than `v22.18.0`. See: [Node.js — Running TypeScript Natively](https://nodejs.org/en/learn/typescript/run-natively) ***
##### Dictionary Updates
fix: Workflow Bot -- Update Dictionaries (main) (#​7950) ##### fix: Workflow Bot -- Update Dictionaries (main) ([#​7950](https://redirect.github.com/streetsidesoftware/cspell/pull/7950))
--- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/capire/docs). Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package-lock.json | 312 +++++++++++++++++++++++----------------------- 1 file changed, 156 insertions(+), 156 deletions(-) diff --git a/package-lock.json b/package-lock.json index 54ecbedcbc..07ea9199cb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -371,30 +371,30 @@ } }, "node_modules/@cspell/cspell-bundled-dicts": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/@cspell/cspell-bundled-dicts/-/cspell-bundled-dicts-9.2.2.tgz", - "integrity": "sha512-W3FKgb89DwMuQEVWz0dPH9uZqC8w+ylpbtmXuevflw3SLtGPyllMvf/1T6tcqIkg3KEWoRYFxjpJWyoOjJkZGw==", + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/@cspell/cspell-bundled-dicts/-/cspell-bundled-dicts-9.3.0.tgz", + "integrity": "sha512-rf5SAdg1EmgCBIo/zFEAIjydlO+VtVLR6oUVeD4rIE7zIPrPdJb0OMUGsxfOH7uePyhcfIxPYTjneQla0e5Ljw==", "dev": true, "license": "MIT", "dependencies": { "@cspell/dict-ada": "^4.1.1", "@cspell/dict-al": "^1.1.1", "@cspell/dict-aws": "^4.0.15", - "@cspell/dict-bash": "^4.2.1", - "@cspell/dict-companies": "^3.2.6", - "@cspell/dict-cpp": "^6.0.12", + "@cspell/dict-bash": "^4.2.2", + "@cspell/dict-companies": "^3.2.7", + "@cspell/dict-cpp": "^6.0.14", "@cspell/dict-cryptocurrencies": "^5.0.5", "@cspell/dict-csharp": "^4.0.7", "@cspell/dict-css": "^4.0.18", "@cspell/dict-dart": "^2.3.1", - "@cspell/dict-data-science": "^2.0.10", + "@cspell/dict-data-science": "^2.0.11", "@cspell/dict-django": "^4.1.5", "@cspell/dict-docker": "^1.1.16", "@cspell/dict-dotnet": "^5.0.10", "@cspell/dict-elixir": "^4.0.8", - "@cspell/dict-en_us": "^4.4.20", - "@cspell/dict-en-common-misspellings": "^2.1.6", - "@cspell/dict-en-gb-mit": "^3.1.10", + "@cspell/dict-en_us": "^4.4.24", + "@cspell/dict-en-common-misspellings": "^2.1.8", + "@cspell/dict-en-gb-mit": "^3.1.14", "@cspell/dict-filetypes": "^3.0.14", "@cspell/dict-flutter": "^1.1.1", "@cspell/dict-fonts": "^4.0.5", @@ -402,7 +402,7 @@ "@cspell/dict-fullstack": "^3.2.7", "@cspell/dict-gaming-terms": "^1.1.2", "@cspell/dict-git": "^3.0.7", - "@cspell/dict-golang": "^6.0.23", + "@cspell/dict-golang": "^6.0.24", "@cspell/dict-google": "^1.0.9", "@cspell/dict-haskell": "^4.0.6", "@cspell/dict-html": "^4.0.12", @@ -418,17 +418,17 @@ "@cspell/dict-markdown": "^2.0.12", "@cspell/dict-monkeyc": "^1.0.11", "@cspell/dict-node": "^5.0.8", - "@cspell/dict-npm": "^5.2.18", - "@cspell/dict-php": "^4.0.15", + "@cspell/dict-npm": "^5.2.20", + "@cspell/dict-php": "^4.1.0", "@cspell/dict-powershell": "^5.0.15", "@cspell/dict-public-licenses": "^2.0.15", - "@cspell/dict-python": "^4.2.20", + "@cspell/dict-python": "^4.2.21", "@cspell/dict-r": "^2.1.1", "@cspell/dict-ruby": "^5.0.9", "@cspell/dict-rust": "^4.0.12", "@cspell/dict-scala": "^5.0.8", - "@cspell/dict-shell": "^1.1.1", - "@cspell/dict-software-terms": "^5.1.9", + "@cspell/dict-shell": "^1.1.2", + "@cspell/dict-software-terms": "^5.1.11", "@cspell/dict-sql": "^2.2.1", "@cspell/dict-svelte": "^1.0.7", "@cspell/dict-swift": "^2.0.6", @@ -441,22 +441,22 @@ } }, "node_modules/@cspell/cspell-json-reporter": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/@cspell/cspell-json-reporter/-/cspell-json-reporter-9.2.2.tgz", - "integrity": "sha512-7nTqnnRCyQB+bTmIuBR4aRwV5JHymckmz1snCF+ItjDSvlc3qzjxldG8ao5zm34h+b/8YCvdMU9B92eHBt803w==", + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/@cspell/cspell-json-reporter/-/cspell-json-reporter-9.3.0.tgz", + "integrity": "sha512-bvpLNS73/SN3969ksipVSYDdMYsxYZqeBDkcA2yKJZ9eHRY/tHUbjTTIvyvlCLODzUiop2RFGrvDPcjyam/FoQ==", "dev": true, "license": "MIT", "dependencies": { - "@cspell/cspell-types": "9.2.2" + "@cspell/cspell-types": "9.3.0" }, "engines": { "node": ">=20" } }, "node_modules/@cspell/cspell-pipe": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/@cspell/cspell-pipe/-/cspell-pipe-9.2.2.tgz", - "integrity": "sha512-YOdbp1uoKMkYy92qxMjoOxcqcR6LEVDus+72C4X9L8eJ2b+CBO3VaVqU16Y7OQGjYMnukYgB6eyTh8YFo9uBRw==", + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/@cspell/cspell-pipe/-/cspell-pipe-9.3.0.tgz", + "integrity": "sha512-LEl2TYvXnGk/D+Vjq5DBsNQuLsmn3/2QV9dxteK5e323pJRcpEosq76elzsYpVLuB3s1hp2pFQhppWk69Gx2CQ==", "dev": true, "license": "MIT", "engines": { @@ -464,9 +464,9 @@ } }, "node_modules/@cspell/cspell-resolver": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/@cspell/cspell-resolver/-/cspell-resolver-9.2.2.tgz", - "integrity": "sha512-5tST2xoU8xbXihr1bdQ6pfcScQ3PkFpKKhFGClVfqS0yf/CKYURqzJlRDVjrFZsl+PT6tw/Jdt0E9Wwp1X1Qgw==", + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/@cspell/cspell-resolver/-/cspell-resolver-9.3.0.tgz", + "integrity": "sha512-AOIC6xV2XuEWKy/K/CUBHQ7caavDnjb2zflP25j7fGMWpS/GIGKLPjgGQUHFbgNSSy9UY2ZGV7MVCsnD7moW5Q==", "dev": true, "license": "MIT", "dependencies": { @@ -477,9 +477,9 @@ } }, "node_modules/@cspell/cspell-service-bus": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/@cspell/cspell-service-bus/-/cspell-service-bus-9.2.2.tgz", - "integrity": "sha512-AxJuw/YPJkz1Ali5mA+OW9y4JiJzb2U7H4pGYq0nRB/mWwI/xtFjuWVkI+BhwrA2P6hHdifu0JdxSLqW4IYpPQ==", + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/@cspell/cspell-service-bus/-/cspell-service-bus-9.3.0.tgz", + "integrity": "sha512-e9ZfG1VJ/kbzh2LBW/TJImEWcEUuBMYSDnIYbQCsclKAWyF3g8eLGxoX7xDbZ82USo4IU2tqYmrDvPcUD8CHxg==", "dev": true, "license": "MIT", "engines": { @@ -487,9 +487,9 @@ } }, "node_modules/@cspell/cspell-types": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/@cspell/cspell-types/-/cspell-types-9.2.2.tgz", - "integrity": "sha512-/1dRFQ3sEY9Yo+f3w0A8MFJ0BOapQc1uFjlMF19c3uoD/e4PpNLpL1qXY4FeLWKDk1D9VT8SL93J+lIwEi5bvg==", + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/@cspell/cspell-types/-/cspell-types-9.3.0.tgz", + "integrity": "sha512-WN3R4nqQ7BEgS8UEoPIwNBRuSFT/8GImqXmlx7EHmzBAhevWjF3IDF+OEtokRJ95qik6a4xqJJTJgi624UxDFg==", "dev": true, "license": "MIT", "engines": { @@ -518,26 +518,26 @@ "license": "MIT" }, "node_modules/@cspell/dict-bash": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@cspell/dict-bash/-/dict-bash-4.2.1.tgz", - "integrity": "sha512-SBnzfAyEAZLI9KFS7DUG6Xc1vDFuLllY3jz0WHvmxe8/4xV3ufFE3fGxalTikc1VVeZgZmxYiABw4iGxVldYEg==", + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@cspell/dict-bash/-/dict-bash-4.2.2.tgz", + "integrity": "sha512-kyWbwtX3TsCf5l49gGQIZkRLaB/P8g73GDRm41Zu8Mv51kjl2H7Au0TsEvHv7jzcsRLS6aUYaZv6Zsvk1fOz+Q==", "dev": true, "license": "MIT", "dependencies": { - "@cspell/dict-shell": "1.1.1" + "@cspell/dict-shell": "1.1.2" } }, "node_modules/@cspell/dict-companies": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/@cspell/dict-companies/-/dict-companies-3.2.6.tgz", - "integrity": "sha512-cVWBk4DSUOthCsgOsoB+5L5F1Wk8lWGHnw5de75YCKSjOEV8/6kskwwDrPTIHkoGVzpIzIIQ/OdXhYwa2G+16A==", + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/@cspell/dict-companies/-/dict-companies-3.2.7.tgz", + "integrity": "sha512-fEyr3LmpFKTaD0LcRhB4lfW1AmULYBqzg4gWAV0dQCv06l+TsA+JQ+3pZJbUcoaZirtgsgT3dL3RUjmGPhUH0A==", "dev": true, "license": "MIT" }, "node_modules/@cspell/dict-cpp": { - "version": "6.0.12", - "resolved": "https://registry.npmjs.org/@cspell/dict-cpp/-/dict-cpp-6.0.12.tgz", - "integrity": "sha512-N4NsCTttVpMqQEYbf0VQwCj6np+pJESov0WieCN7R/0aByz4+MXEiDieWWisaiVi8LbKzs1mEj4ZTw5K/6O2UQ==", + "version": "6.0.14", + "resolved": "https://registry.npmjs.org/@cspell/dict-cpp/-/dict-cpp-6.0.14.tgz", + "integrity": "sha512-dkmpSwvVfVdtoZ4mW/CK2Ep1v8mJlp6uiKpMNbSMOdJl4kq28nQS4vKNIX3B2bJa0Ha5iHHu+1mNjiLeO3g7Xg==", "dev": true, "license": "MIT" }, @@ -571,9 +571,9 @@ "license": "MIT" }, "node_modules/@cspell/dict-data-science": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/@cspell/dict-data-science/-/dict-data-science-2.0.10.tgz", - "integrity": "sha512-vZSsz7845ugW6mY65966Ki2bMS/ZnAZoTVvpuXQ07a2rYxJhUC+6WuBMD80hFLlKwjC5T/5Llv4F/VlB00swpw==", + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@cspell/dict-data-science/-/dict-data-science-2.0.11.tgz", + "integrity": "sha512-Dt+83nVCcF+dQyvFSaZjCKt1H5KbsVJFtH2X7VUfmIzQu8xCnV1fUmkhBzGJ+NiFs99Oy9JA6I9EjeqExzXk7g==", "dev": true, "license": "MIT" }, @@ -606,23 +606,23 @@ "license": "MIT" }, "node_modules/@cspell/dict-en_us": { - "version": "4.4.20", - "resolved": "https://registry.npmjs.org/@cspell/dict-en_us/-/dict-en_us-4.4.20.tgz", - "integrity": "sha512-acAlX967bkrLwRhSJ8KGBCBUITMOe8+smwsShjei431vTB6tU5ZID6XDxR9hH/kDxfdiRTXAE8vkT3WJAHnc1Q==", + "version": "4.4.24", + "resolved": "https://registry.npmjs.org/@cspell/dict-en_us/-/dict-en_us-4.4.24.tgz", + "integrity": "sha512-JE+/H2YicHJTneRmgH4GSI21rS+1yGZVl1jfOQgl8iHLC+yTTMtCvueNDMK94CgJACzYAoCsQB70MqiFJJfjLQ==", "dev": true, "license": "MIT" }, "node_modules/@cspell/dict-en-common-misspellings": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/@cspell/dict-en-common-misspellings/-/dict-en-common-misspellings-2.1.6.tgz", - "integrity": "sha512-xV9yryOqZizbSqxRS7kSVRrxVEyWHUqwdY56IuT7eAWGyTCJNmitXzXa4p+AnEbhL+AB2WLynGVSbNoUC3ceFA==", + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/@cspell/dict-en-common-misspellings/-/dict-en-common-misspellings-2.1.8.tgz", + "integrity": "sha512-vDsjRFPQGuAADAiitf82z9Mz3DcqKZi6V5hPAEIFkLLKjFVBcjUsSq59SfL59ElIFb76MtBO0BLifdEbBj+DoQ==", "dev": true, "license": "CC BY-SA 4.0" }, "node_modules/@cspell/dict-en-gb-mit": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/@cspell/dict-en-gb-mit/-/dict-en-gb-mit-3.1.10.tgz", - "integrity": "sha512-oFandL5N4B55wmOd0hOAoyaiUZBkClQ1FPCkcAY/HMuq6zeCQE/oEK9lLGDmnzLGgWnTT7wd0KOSYUPTxWQaNQ==", + "version": "3.1.14", + "resolved": "https://registry.npmjs.org/@cspell/dict-en-gb-mit/-/dict-en-gb-mit-3.1.14.tgz", + "integrity": "sha512-b+vEerlHP6rnNf30tmTJb7JZnOq4WAslYUvexOz/L3gDna9YJN3bAnwRJ3At3bdcOcMG7PTv3Pi+C73IR22lNg==", "dev": true, "license": "MIT" }, @@ -676,9 +676,9 @@ "license": "MIT" }, "node_modules/@cspell/dict-golang": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/@cspell/dict-golang/-/dict-golang-6.0.23.tgz", - "integrity": "sha512-oXqUh/9dDwcmVlfUF5bn3fYFqbUzC46lXFQmi5emB0vYsyQXdNWsqi6/yH3uE7bdRE21nP7Yo0mR1jjFNyLamg==", + "version": "6.0.24", + "resolved": "https://registry.npmjs.org/@cspell/dict-golang/-/dict-golang-6.0.24.tgz", + "integrity": "sha512-rY7PlC3MsHozmjrZWi0HQPUl0BVCV0+mwK0rnMT7pOIXqOe4tWCYMULDIsEk4F0gbIxb5badd2dkCPDYjLnDgA==", "dev": true, "license": "MIT" }, @@ -796,16 +796,16 @@ "license": "MIT" }, "node_modules/@cspell/dict-npm": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/@cspell/dict-npm/-/dict-npm-5.2.18.tgz", - "integrity": "sha512-uJV1T7y9ifFysO22XmxjU7y95c+02lfCZHNsTYHw2KOL6tLjc3XK/i0xt9iGLkPpcxwNJSCdu13UpjXZGqce/Q==", + "version": "5.2.20", + "resolved": "https://registry.npmjs.org/@cspell/dict-npm/-/dict-npm-5.2.20.tgz", + "integrity": "sha512-tJRv1qEdW3f8fxK/D2huoqkSvM6ogz55hAt9RTdB7tZy57wio9Tkj+xfi2DIeOlmf6e94c6pNPZIC/o5rclMhw==", "dev": true, "license": "MIT" }, "node_modules/@cspell/dict-php": { - "version": "4.0.15", - "resolved": "https://registry.npmjs.org/@cspell/dict-php/-/dict-php-4.0.15.tgz", - "integrity": "sha512-iepGB2gtToMWSTvybesn4/lUp4LwXcEm0s8vasJLP76WWVkq1zYjmeS+WAIzNgsuURyZ/9mGqhS0CWMuo74ODw==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@cspell/dict-php/-/dict-php-4.1.0.tgz", + "integrity": "sha512-dTDeabyOj7eFvn2Q4Za3uVXM2+SzeFMqX8ly2P0XTo4AzbCmI2hulFD/QIADwWmwiRrInbbf8cxwFHNIYrXl4w==", "dev": true, "license": "MIT" }, @@ -824,13 +824,13 @@ "license": "MIT" }, "node_modules/@cspell/dict-python": { - "version": "4.2.20", - "resolved": "https://registry.npmjs.org/@cspell/dict-python/-/dict-python-4.2.20.tgz", - "integrity": "sha512-c1wbfb3MDMSY4UTNdGnA18NkrcX6cMlYER0HSpGYh2jLK43gS1QL3j2B49qgnRYfcLUp4xgeA05vzCQsjGbwuQ==", + "version": "4.2.21", + "resolved": "https://registry.npmjs.org/@cspell/dict-python/-/dict-python-4.2.21.tgz", + "integrity": "sha512-M9OgwXWhpZqEZqKU2psB2DFsT8q5SwEahkQeIpNIRWIErjwG7I9yYhhfvPz6s5gMCMhhb3hqcPJTnmdgqGrQyg==", "dev": true, "license": "MIT", "dependencies": { - "@cspell/dict-data-science": "^2.0.10" + "@cspell/dict-data-science": "^2.0.11" } }, "node_modules/@cspell/dict-r": { @@ -862,16 +862,16 @@ "license": "MIT" }, "node_modules/@cspell/dict-shell": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@cspell/dict-shell/-/dict-shell-1.1.1.tgz", - "integrity": "sha512-T37oYxE7OV1x/1D4/13Y8JZGa1QgDCXV7AVt3HLXjn0Fe3TaNDvf5sU0fGnXKmBPqFFrHdpD3uutAQb1dlp15g==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@cspell/dict-shell/-/dict-shell-1.1.2.tgz", + "integrity": "sha512-WqOUvnwcHK1X61wAfwyXq04cn7KYyskg90j4lLg3sGGKMW9Sq13hs91pqrjC44Q+lQLgCobrTkMDw9Wyl9nRFA==", "dev": true, "license": "MIT" }, "node_modules/@cspell/dict-software-terms": { - "version": "5.1.9", - "resolved": "https://registry.npmjs.org/@cspell/dict-software-terms/-/dict-software-terms-5.1.9.tgz", - "integrity": "sha512-lpiSpS1iTF2n8barqVkPmhe5qXs5291IqcDUPr5ttFRxPMZ7pgrMUdvcdNUdkajymjDOyWfUNhdYXW7JndThZw==", + "version": "5.1.11", + "resolved": "https://registry.npmjs.org/@cspell/dict-software-terms/-/dict-software-terms-5.1.11.tgz", + "integrity": "sha512-xwARdlp6o81BK7uNl4qR5CmLBXuc9xWyEeEwzeAw/8SkBdYheVQO6F1Fey2iqMRDT9LAb5Znbg83pJVpLjgBjg==", "dev": true, "license": "MIT" }, @@ -919,13 +919,13 @@ "license": "MIT" }, "node_modules/@cspell/dynamic-import": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/@cspell/dynamic-import/-/dynamic-import-9.2.2.tgz", - "integrity": "sha512-RHQLp0iYcWuK0MGiUBA6dgEOCdI29kZTiBRVcJM/Pzvhvs8j9pzBTkMesZAJ7XOSFz2kU+skRMBsFd774dmYTA==", + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/@cspell/dynamic-import/-/dynamic-import-9.3.0.tgz", + "integrity": "sha512-c+coQC+bM1PuHX/Blg1mp2ODPZmMnWzXrZwX/JKpnY0uxcAjUrcmGjdjsV1/S/7ph9OJHvZL5KITCRBgFD1Kqg==", "dev": true, "license": "MIT", "dependencies": { - "@cspell/url": "9.2.2", + "@cspell/url": "9.3.0", "import-meta-resolve": "^4.2.0" }, "engines": { @@ -933,9 +933,9 @@ } }, "node_modules/@cspell/filetypes": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/@cspell/filetypes/-/filetypes-9.2.2.tgz", - "integrity": "sha512-oM+cqipbZ4PNxQcKP9sKOeRKBG+oM3NKO3To1FyxYxvnUG7DukW2yH6BS0/GUY7qK+oSftuq5d6DXEAl9wzbEQ==", + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/@cspell/filetypes/-/filetypes-9.3.0.tgz", + "integrity": "sha512-pH413zKkMd5lh40HyLNgYfTacIryxsHDhxWShyxS7M+8W9MPl+tmzIHlSEvEVcKUUe3Qpowxo6b6Xkg7taRp/A==", "dev": true, "license": "MIT", "engines": { @@ -943,9 +943,9 @@ } }, "node_modules/@cspell/strong-weak-map": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/@cspell/strong-weak-map/-/strong-weak-map-9.2.2.tgz", - "integrity": "sha512-Z7rd7NwHaoH/d/Ds97Rv042WS9PgpVdqgO2X0ehYZmgj2E0LIq2MTkIJMheUrSn37D0PW/suroKh6hN15pJtpQ==", + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/@cspell/strong-weak-map/-/strong-weak-map-9.3.0.tgz", + "integrity": "sha512-s8/QwCPWvWRXZsAzUbWzv/cgL0xjo7p+5QveThFmD3vODX3IlrC+MfnLpEWQAyTQ7CqB5bRuBVAR2cU9gpzZTA==", "dev": true, "license": "MIT", "engines": { @@ -953,9 +953,9 @@ } }, "node_modules/@cspell/url": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/@cspell/url/-/url-9.2.2.tgz", - "integrity": "sha512-gvLprhrArvLP/rnC8b766dA80EXwBbzXqb9tNDRk1esQV7d3uS1Ftk1970MRlAfLg1pG6V+3C4UrB6WOB/rMCQ==", + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/@cspell/url/-/url-9.3.0.tgz", + "integrity": "sha512-EY4Niv1apHP9RN1mMRP/AHm6xr14fhK+PXnytang6SVwX+tbAEYwwlnFjoEDO6ygPsqs5BBiQ4N7TiSlfmXfmw==", "dev": true, "license": "MIT", "engines": { @@ -3798,9 +3798,9 @@ } }, "node_modules/commander": { - "version": "14.0.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-14.0.1.tgz", - "integrity": "sha512-2JkV3gUZUVrbNA+1sjBOYLsMZ5cEEl8GTFP2a4AVz5hvasAMCQ1D2l2le/cX+pV4N6ZU17zjUahLpIXRrnWL8A==", + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/commander/-/commander-14.0.2.tgz", + "integrity": "sha512-TywoWNNRbhoD0BXs1P3ZEScW8W5iKrnbithIl0YH+uCmBd0QpPOA8yc82DS3BIE5Ma6FnBVUsJ7wVUDz4dvOWQ==", "dev": true, "license": "MIT", "engines": { @@ -3908,26 +3908,26 @@ } }, "node_modules/cspell": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/cspell/-/cspell-9.2.2.tgz", - "integrity": "sha512-D9jxXlYWIxUw4IjicxrmK83n5BzuQVZaIhsDsfRiH7iP4F71gDtKR9b+UgmXevvseN7OH4LkdyaPKzjNliGAbg==", + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/cspell/-/cspell-9.3.0.tgz", + "integrity": "sha512-YyXjOS3MAF6d0XggxHZtkyde6Yf0VgXkrFvR8C6jfxcnY0SJrJDKLiOppmm4ol+oWlvt1Dir1neGJW13xN+dUg==", "dev": true, "license": "MIT", "dependencies": { - "@cspell/cspell-json-reporter": "9.2.2", - "@cspell/cspell-pipe": "9.2.2", - "@cspell/cspell-types": "9.2.2", - "@cspell/dynamic-import": "9.2.2", - "@cspell/url": "9.2.2", + "@cspell/cspell-json-reporter": "9.3.0", + "@cspell/cspell-pipe": "9.3.0", + "@cspell/cspell-types": "9.3.0", + "@cspell/dynamic-import": "9.3.0", + "@cspell/url": "9.3.0", "chalk": "^5.6.2", "chalk-template": "^1.1.2", - "commander": "^14.0.1", - "cspell-config-lib": "9.2.2", - "cspell-dictionary": "9.2.2", - "cspell-gitignore": "9.2.2", - "cspell-glob": "9.2.2", - "cspell-io": "9.2.2", - "cspell-lib": "9.2.2", + "commander": "^14.0.2", + "cspell-config-lib": "9.3.0", + "cspell-dictionary": "9.3.0", + "cspell-gitignore": "9.3.0", + "cspell-glob": "9.3.0", + "cspell-io": "9.3.0", + "cspell-lib": "9.3.0", "fast-json-stable-stringify": "^2.1.0", "flatted": "^3.3.3", "semver": "^7.7.3", @@ -3945,13 +3945,13 @@ } }, "node_modules/cspell-config-lib": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/cspell-config-lib/-/cspell-config-lib-9.2.2.tgz", - "integrity": "sha512-Fp3jdFxb5gxcQP146TfNVmDqXKfm3xmcEUr1K829DmAFwhc7s+/pCRjhBPoGfQt6U7ugpxjkSx2gGKSbLhp7Mg==", + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/cspell-config-lib/-/cspell-config-lib-9.3.0.tgz", + "integrity": "sha512-YyKMBwRIo8Sh3D9roHWWpW9KnQCkeWOoPJkcLEA3q+UldspkqpjQ8A8bUvigLgVg4dBQosiEUdda3MUZT79Lyg==", "dev": true, "license": "MIT", "dependencies": { - "@cspell/cspell-types": "9.2.2", + "@cspell/cspell-types": "9.3.0", "comment-json": "^4.4.1", "smol-toml": "^1.4.2", "yaml": "^2.8.1" @@ -3961,15 +3961,15 @@ } }, "node_modules/cspell-dictionary": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/cspell-dictionary/-/cspell-dictionary-9.2.2.tgz", - "integrity": "sha512-lnoCFoCAaiFJi+Hz22t+tdTj76jyTA76EYFKhmf/dbj5UO6kVy8by08uFfUbbMaC9Oi09YHnI62P/e+LBx1v8Q==", + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/cspell-dictionary/-/cspell-dictionary-9.3.0.tgz", + "integrity": "sha512-+gS59D0ly/UfTDsjKavWCDTSukmQ3HO0Xy+t4+pwgkVOa8kXzhERoXxT0V3v71TJS+kFRHfsWeGekfaVB4n2ng==", "dev": true, "license": "MIT", "dependencies": { - "@cspell/cspell-pipe": "9.2.2", - "@cspell/cspell-types": "9.2.2", - "cspell-trie-lib": "9.2.2", + "@cspell/cspell-pipe": "9.3.0", + "@cspell/cspell-types": "9.3.0", + "cspell-trie-lib": "9.3.0", "fast-equals": "^5.3.2" }, "engines": { @@ -3977,15 +3977,15 @@ } }, "node_modules/cspell-gitignore": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/cspell-gitignore/-/cspell-gitignore-9.2.2.tgz", - "integrity": "sha512-Idx3IVKTpnGoyRlkj8F/lSWtWiJpqLhXmZglTzfGWxzbik8E0aQmSyT3blbNWhZL/K1JqlTjbSiAICVMoWTkhA==", + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/cspell-gitignore/-/cspell-gitignore-9.3.0.tgz", + "integrity": "sha512-AdI8WLKGNtTni1P+fbepDBh6u7Mv22diwtqMQoasDPeafArmQHpTp9gc8FgNnQO9tQASB7ZMjIOnLFNvmML+nw==", "dev": true, "license": "MIT", "dependencies": { - "@cspell/url": "9.2.2", - "cspell-glob": "9.2.2", - "cspell-io": "9.2.2" + "@cspell/url": "9.3.0", + "cspell-glob": "9.3.0", + "cspell-io": "9.3.0" }, "bin": { "cspell-gitignore": "bin.mjs" @@ -3995,13 +3995,13 @@ } }, "node_modules/cspell-glob": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/cspell-glob/-/cspell-glob-9.2.2.tgz", - "integrity": "sha512-6mhUk4iLu5YzY9PE86ZyAjNFjM7TD8Oh4btJ7ZV+edzJjdVjFugXWyefPXCGNfuvpaJqpuoLDwMvNHJxUmLwbg==", + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/cspell-glob/-/cspell-glob-9.3.0.tgz", + "integrity": "sha512-Mp1T4Y3utyIB5dgQk+XksdmS97il8TfFI9byMUR6Mprml/I+QglXj38bHX/++DeApfFHr+5y5DgqxmRn3/wnKA==", "dev": true, "license": "MIT", "dependencies": { - "@cspell/url": "9.2.2", + "@cspell/url": "9.3.0", "picomatch": "^4.0.3" }, "engines": { @@ -4009,14 +4009,14 @@ } }, "node_modules/cspell-grammar": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/cspell-grammar/-/cspell-grammar-9.2.2.tgz", - "integrity": "sha512-m0aozo5gjZYL5Vm3/9D0/yLZJTsVJAP8VeRVljN4u5T7w+WY+LsnvKSZhnkOvsT3kCJDhcKEkMVkCo8d/7EcAQ==", + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/cspell-grammar/-/cspell-grammar-9.3.0.tgz", + "integrity": "sha512-X6VrCto78Xm72st+3YZ13qk5jw5sS9QOcS4x3KO41T90YoOMXbMsSH7HPaNrhqaa1rtEKk43kFQp33OLPvsI3Q==", "dev": true, "license": "MIT", "dependencies": { - "@cspell/cspell-pipe": "9.2.2", - "@cspell/cspell-types": "9.2.2" + "@cspell/cspell-pipe": "9.3.0", + "@cspell/cspell-types": "9.3.0" }, "bin": { "cspell-grammar": "bin.mjs" @@ -4026,41 +4026,41 @@ } }, "node_modules/cspell-io": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/cspell-io/-/cspell-io-9.2.2.tgz", - "integrity": "sha512-Rpky4woeB6/1VUCk7DtRm94A6c5XRbhcj5dUZh851EpZ0ItEz3S9+MhkX8g1sTVkDg6Hln1pu+Nbm9dFIpGkGA==", + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/cspell-io/-/cspell-io-9.3.0.tgz", + "integrity": "sha512-39Gp7asqdsrLvZ9L3BUXYX5wE6gAuvxeklguB4hjz+7i7Jhz02CcjFXDd1VhIA6tJ4hRTHWtgqaoaFv6qQF/vg==", "dev": true, "license": "MIT", "dependencies": { - "@cspell/cspell-service-bus": "9.2.2", - "@cspell/url": "9.2.2" + "@cspell/cspell-service-bus": "9.3.0", + "@cspell/url": "9.3.0" }, "engines": { "node": ">=20" } }, "node_modules/cspell-lib": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/cspell-lib/-/cspell-lib-9.2.2.tgz", - "integrity": "sha512-ksy+5vCSZz7ECUDlLA8ZGNEcWmnzl5bMe4IEPHAMaPFY3iWNsG7dXBrae1dj/b/3HqVqOdXPdwjnGAyZciissg==", + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/cspell-lib/-/cspell-lib-9.3.0.tgz", + "integrity": "sha512-MM71PponJHWn/tt93hYBSvBVeyivjWjaiROfQ4UlUGw7TIwysAyywH3XNYUnydaHcbjWTk7W12JbEVa8sQaBIQ==", "dev": true, "license": "MIT", "dependencies": { - "@cspell/cspell-bundled-dicts": "9.2.2", - "@cspell/cspell-pipe": "9.2.2", - "@cspell/cspell-resolver": "9.2.2", - "@cspell/cspell-types": "9.2.2", - "@cspell/dynamic-import": "9.2.2", - "@cspell/filetypes": "9.2.2", - "@cspell/strong-weak-map": "9.2.2", - "@cspell/url": "9.2.2", + "@cspell/cspell-bundled-dicts": "9.3.0", + "@cspell/cspell-pipe": "9.3.0", + "@cspell/cspell-resolver": "9.3.0", + "@cspell/cspell-types": "9.3.0", + "@cspell/dynamic-import": "9.3.0", + "@cspell/filetypes": "9.3.0", + "@cspell/strong-weak-map": "9.3.0", + "@cspell/url": "9.3.0", "clear-module": "^4.1.2", - "cspell-config-lib": "9.2.2", - "cspell-dictionary": "9.2.2", - "cspell-glob": "9.2.2", - "cspell-grammar": "9.2.2", - "cspell-io": "9.2.2", - "cspell-trie-lib": "9.2.2", + "cspell-config-lib": "9.3.0", + "cspell-dictionary": "9.3.0", + "cspell-glob": "9.3.0", + "cspell-grammar": "9.3.0", + "cspell-io": "9.3.0", + "cspell-trie-lib": "9.3.0", "env-paths": "^3.0.0", "gensequence": "^7.0.0", "import-fresh": "^3.3.1", @@ -4074,14 +4074,14 @@ } }, "node_modules/cspell-trie-lib": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/cspell-trie-lib/-/cspell-trie-lib-9.2.2.tgz", - "integrity": "sha512-84L0Or6xkfnDMmxx2BtuaqsM4LOVCgnG4ZzMMgwQJU+9nSOAHs0ULNWQTHLbsCF+FFG/siILpUkIc3z+UxjGFw==", + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/cspell-trie-lib/-/cspell-trie-lib-9.3.0.tgz", + "integrity": "sha512-/hLujE3Gp36hhgJChvp6C3uJdBo5hGOqtyal6HjNmn+K27GXRrrn1L+5RoKaDMgFao9Ks5ccca9NtjQTw1EcoA==", "dev": true, "license": "MIT", "dependencies": { - "@cspell/cspell-pipe": "9.2.2", - "@cspell/cspell-types": "9.2.2", + "@cspell/cspell-pipe": "9.3.0", + "@cspell/cspell-types": "9.3.0", "gensequence": "^7.0.0" }, "engines": { From 9b81e2acc85c6b56096c69555047c0f2c7cf5b28 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 6 Nov 2025 11:16:20 +0100 Subject: [PATCH 23/91] chore(deps): update eslint (#2185) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR contains the following updates: | Package | Change | Age | Confidence | |---|---|---|---| | [@typescript-eslint/parser](https://typescript-eslint.io/packages/parser) ([source](https://redirect.github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser)) | [`8.46.2` -> `8.46.3`](https://renovatebot.com/diffs/npm/@typescript-eslint%2fparser/8.46.2/8.46.3) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@typescript-eslint%2fparser/8.46.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@typescript-eslint%2fparser/8.46.2/8.46.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [eslint](https://eslint.org) ([source](https://redirect.github.com/eslint/eslint)) | [`9.38.0` -> `9.39.1`](https://renovatebot.com/diffs/npm/eslint/9.38.0/9.39.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/eslint/9.39.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/eslint/9.38.0/9.39.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
typescript-eslint/typescript-eslint (@​typescript-eslint/parser) ### [`v8.46.3`](https://redirect.github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#8463-2025-11-03) [Compare Source](https://redirect.github.com/typescript-eslint/typescript-eslint/compare/v8.46.2...v8.46.3) This was a version bump only for parser to align it with other projects, there were no code changes. You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website.
eslint/eslint (eslint) ### [`v9.39.1`](https://redirect.github.com/eslint/eslint/compare/v9.39.0...e2772811a8595d161870835ff04822b25a2cdf45) [Compare Source](https://redirect.github.com/eslint/eslint/compare/v9.39.0...v9.39.1) ### [`v9.39.0`](https://redirect.github.com/eslint/eslint/compare/v9.38.0...ac3a60dffc29d8d4d5031621bc062e77f891532a) [Compare Source](https://redirect.github.com/eslint/eslint/compare/v9.38.0...v9.39.0)
--- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://redirect.github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/capire/docs). Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package-lock.json | 110 +++++++++++++++++++++++----------------------- 1 file changed, 55 insertions(+), 55 deletions(-) diff --git a/package-lock.json b/package-lock.json index 07ea9199cb..8fb60894b1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1486,22 +1486,22 @@ } }, "node_modules/@eslint/config-helpers": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.4.1.tgz", - "integrity": "sha512-csZAzkNhsgwb0I/UAV6/RGFTbiakPCf0ZrGmrIxQpYvGZ00PhTkSnyKNolphgIvmnJeGw6rcGVEXfTzUnFuEvw==", + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.4.2.tgz", + "integrity": "sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@eslint/core": "^0.16.0" + "@eslint/core": "^0.17.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, "node_modules/@eslint/core": { - "version": "0.16.0", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.16.0.tgz", - "integrity": "sha512-nmC8/totwobIiFcGkDza3GIKfAw1+hLiYVrh3I1nIomQ8PEr5cxg34jnkmGawul/ep52wGRAcyeDCNtWKSOj4Q==", + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.17.0.tgz", + "integrity": "sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -1560,9 +1560,9 @@ } }, "node_modules/@eslint/js": { - "version": "9.38.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.38.0.tgz", - "integrity": "sha512-UZ1VpFvXf9J06YG9xQBdnzU+kthors6KjhMAl6f4gH4usHyh31rUf2DLGInT8RFYIReYXNSydgPY0V2LuWgl7A==", + "version": "9.39.1", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.1.tgz", + "integrity": "sha512-S26Stp4zCy88tH94QbBv3XCuzRQiZ9yXofEILmglYTh/Ug/a9/umqvgFtYBAo3Lp0nsI/5/qH1CCrbdK3AP1Tw==", "dev": true, "license": "MIT", "peer": true, @@ -1584,13 +1584,13 @@ } }, "node_modules/@eslint/plugin-kit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.4.0.tgz", - "integrity": "sha512-sB5uyeq+dwCWyPi31B2gQlVlo+j5brPlWx4yZBrEaRo/nhdDE8Xke1gsGgtiBdaBTxuTkceLVuVt/pclrasb0A==", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.4.1.tgz", + "integrity": "sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@eslint/core": "^0.16.0", + "@eslint/core": "^0.17.0", "levn": "^0.4.1" }, "engines": { @@ -2882,17 +2882,17 @@ "license": "MIT" }, "node_modules/@typescript-eslint/parser": { - "version": "8.46.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.46.2.tgz", - "integrity": "sha512-BnOroVl1SgrPLywqxyqdJ4l3S2MsKVLDVxZvjI1Eoe8ev2r3kGDo+PcMihNmDE+6/KjkTubSJnmqGZZjQSBq/g==", + "version": "8.46.3", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.46.3.tgz", + "integrity": "sha512-6m1I5RmHBGTnUGS113G04DMu3CpSdxCAU/UvtjNWL4Nuf3MW9tQhiJqRlHzChIkhy6kZSAQmc+I1bcGjE3yNKg==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@typescript-eslint/scope-manager": "8.46.2", - "@typescript-eslint/types": "8.46.2", - "@typescript-eslint/typescript-estree": "8.46.2", - "@typescript-eslint/visitor-keys": "8.46.2", + "@typescript-eslint/scope-manager": "8.46.3", + "@typescript-eslint/types": "8.46.3", + "@typescript-eslint/typescript-estree": "8.46.3", + "@typescript-eslint/visitor-keys": "8.46.3", "debug": "^4.3.4" }, "engines": { @@ -2908,14 +2908,14 @@ } }, "node_modules/@typescript-eslint/project-service": { - "version": "8.46.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.46.2.tgz", - "integrity": "sha512-PULOLZ9iqwI7hXcmL4fVfIsBi6AN9YxRc0frbvmg8f+4hQAjQ5GYNKK0DIArNo+rOKmR/iBYwkpBmnIwin4wBg==", + "version": "8.46.3", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.46.3.tgz", + "integrity": "sha512-Fz8yFXsp2wDFeUElO88S9n4w1I4CWDTXDqDr9gYvZgUpwXQqmZBr9+NTTql5R3J7+hrJZPdpiWaB9VNhAKYLuQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/tsconfig-utils": "^8.46.2", - "@typescript-eslint/types": "^8.46.2", + "@typescript-eslint/tsconfig-utils": "^8.46.3", + "@typescript-eslint/types": "^8.46.3", "debug": "^4.3.4" }, "engines": { @@ -2930,14 +2930,14 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.46.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.46.2.tgz", - "integrity": "sha512-LF4b/NmGvdWEHD2H4MsHD8ny6JpiVNDzrSZr3CsckEgCbAGZbYM4Cqxvi9L+WqDMT+51Ozy7lt2M+d0JLEuBqA==", + "version": "8.46.3", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.46.3.tgz", + "integrity": "sha512-FCi7Y1zgrmxp3DfWfr+3m9ansUUFoy8dkEdeQSgA9gbm8DaHYvZCdkFRQrtKiedFf3Ha6VmoqoAaP68+i+22kg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.46.2", - "@typescript-eslint/visitor-keys": "8.46.2" + "@typescript-eslint/types": "8.46.3", + "@typescript-eslint/visitor-keys": "8.46.3" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -2948,9 +2948,9 @@ } }, "node_modules/@typescript-eslint/tsconfig-utils": { - "version": "8.46.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.46.2.tgz", - "integrity": "sha512-a7QH6fw4S57+F5y2FIxxSDyi5M4UfGF+Jl1bCGd7+L4KsaUY80GsiF/t0UoRFDHAguKlBaACWJRmdrc6Xfkkag==", + "version": "8.46.3", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.46.3.tgz", + "integrity": "sha512-GLupljMniHNIROP0zE7nCcybptolcH8QZfXOpCfhQDAdwJ/ZTlcaBOYebSOZotpti/3HrHSw7D3PZm75gYFsOA==", "dev": true, "license": "MIT", "engines": { @@ -2965,9 +2965,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "8.46.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.46.2.tgz", - "integrity": "sha512-lNCWCbq7rpg7qDsQrd3D6NyWYu+gkTENkG5IKYhUIcxSb59SQC/hEQ+MrG4sTgBVghTonNWq42bA/d4yYumldQ==", + "version": "8.46.3", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.46.3.tgz", + "integrity": "sha512-G7Ok9WN/ggW7e/tOf8TQYMaxgID3Iujn231hfi0Pc7ZheztIJVpO44ekY00b7akqc6nZcvregk0Jpah3kep6hA==", "dev": true, "license": "MIT", "engines": { @@ -2979,16 +2979,16 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.46.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.46.2.tgz", - "integrity": "sha512-f7rW7LJ2b7Uh2EiQ+7sza6RDZnajbNbemn54Ob6fRwQbgcIn+GWfyuHDHRYgRoZu1P4AayVScrRW+YfbTvPQoQ==", + "version": "8.46.3", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.46.3.tgz", + "integrity": "sha512-f/NvtRjOm80BtNM5OQtlaBdM5BRFUv7gf381j9wygDNL+qOYSNOgtQ/DCndiYi80iIOv76QqaTmp4fa9hwI0OA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/project-service": "8.46.2", - "@typescript-eslint/tsconfig-utils": "8.46.2", - "@typescript-eslint/types": "8.46.2", - "@typescript-eslint/visitor-keys": "8.46.2", + "@typescript-eslint/project-service": "8.46.3", + "@typescript-eslint/tsconfig-utils": "8.46.3", + "@typescript-eslint/types": "8.46.3", + "@typescript-eslint/visitor-keys": "8.46.3", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", @@ -3008,13 +3008,13 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.46.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.46.2.tgz", - "integrity": "sha512-tUFMXI4gxzzMXt4xpGJEsBsTox0XbNQ1y94EwlD/CuZwFcQP79xfQqMhau9HsRc/J0cAPA/HZt1dZPtGn9V/7w==", + "version": "8.46.3", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.46.3.tgz", + "integrity": "sha512-uk574k8IU0rOF/AjniX8qbLSGURJVUCeM5e4MIMKBFFi8weeiLrG1fyQejyLXQpRZbU/1BuQasleV/RfHC3hHg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.46.2", + "@typescript-eslint/types": "8.46.3", "eslint-visitor-keys": "^4.2.1" }, "engines": { @@ -4395,9 +4395,9 @@ } }, "node_modules/eslint": { - "version": "9.38.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.38.0.tgz", - "integrity": "sha512-t5aPOpmtJcZcz5UJyY2GbvpDlsK5E8JqRqoKtfiKE3cNh437KIqfJr3A3AKf5k64NPx6d0G3dno6XDY05PqPtw==", + "version": "9.39.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.1.tgz", + "integrity": "sha512-BhHmn2yNOFA9H9JmmIVKJmd288g9hrVRDkdoIgRCRuSySRUHH7r/DI6aAXW9T1WwUuY3DFgrcaqB+deURBLR5g==", "dev": true, "license": "MIT", "peer": true, @@ -4405,11 +4405,11 @@ "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.1", "@eslint/config-array": "^0.21.1", - "@eslint/config-helpers": "^0.4.1", - "@eslint/core": "^0.16.0", + "@eslint/config-helpers": "^0.4.2", + "@eslint/core": "^0.17.0", "@eslint/eslintrc": "^3.3.1", - "@eslint/js": "9.38.0", - "@eslint/plugin-kit": "^0.4.0", + "@eslint/js": "9.39.1", + "@eslint/plugin-kit": "^0.4.1", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/retry": "^0.4.2", From e8f49225c2524d136ea2803b8e887d6fd95898d3 Mon Sep 17 00:00:00 2001 From: Simon Kobler <32038731+KoblerS@users.noreply.github.com> Date: Thu, 6 Nov 2025 11:22:17 +0100 Subject: [PATCH 24/91] Kyma documentation update (#2188) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: René Jeglinsky --- guides/deployment/to-kyma.md | 83 ++++++++++++-------------------- tools/apis/cds-add.md | 6 +-- tools/assets/help/cds-add.out.md | 13 +---- 3 files changed, 35 insertions(+), 67 deletions(-) diff --git a/guides/deployment/to-kyma.md b/guides/deployment/to-kyma.md index 3355fbe200..95396b3be8 100644 --- a/guides/deployment/to-kyma.md +++ b/guides/deployment/to-kyma.md @@ -68,7 +68,7 @@ Deploying apps on the SAP BTP Kyma Runtime requires two main artifact types: The following diagram illustrates the deployment workflow: -![A CAP Helm chart is added to your project. Then you build your project as container images and push those images to a container registry of your choice. As last step the Helm chart is deployed to your Kyma resources, where service instances of SAP BTP services are created and pods pull the previously created container images from the container registry.](assets/deploy-kyma.drawio.svg) +![A CAP Helm chart is added to your project. Then you build your project as container images and push those images to a container registry of your choice. As a last step the Helm chart is deployed to your Kyma cluster, where service instances of SAP BTP services are created and pods pull the previously created container images from the container registry.](assets/deploy-kyma.drawio.svg) ## Prerequisites {#prerequisites} @@ -79,9 +79,8 @@ The following diagram illustrates the deployment workflow: + Install [Docker Desktop or Docker for Linux](https://docs.docker.com/get-docker/) + Download and install the following command line tools: + [`kubectl` command line client](https://kubernetes.io/docs/tasks/tools/) for Kubernetes - + [`pack` command line tool](https://buildpacks.io/docs/tools/pack/) + + [`pack` command line tool](https://buildpacks.io/docs/for-platform-operators/how-to/integrate-ci/pack/) + [`helm` command line tool](https://helm.sh/docs/intro/install/) - + [`ctz` command line tool](https://www.npmjs.com/package/ctz) + Make sure your SAP HANA Cloud is [mapped to your namespace](https://community.sap.com/t5/technology-blogs-by-sap/consuming-sap-hana-cloud-from-the-kyma-environment/ba-p/13552718#toc-hId-569025164) + Ensure SAP HANA Cloud is accessible from your Kyma cluster by [configuring trusted source IPs](https://help.sap.com/docs/HANA_CLOUD/9ae9104a46f74a6583ce5182e7fb20cb/0610e4440c7643b48d869a6376ccaecd.html) @@ -96,34 +95,19 @@ Download the Kubernetes configuration from SAP BTP and move it to _$HOME/.kube/c SAP BTP doesn't provide a container image registry (or container repository), but you can choose from offerings of hosted open source and private container image registries, as well as solutions that can be run on premise or in your own cloud infrastructure. ::: tip Ensure network access - Verify the Kubernetes cluster has network access to the container registry, especially if hosted behind a VPN or within a restricted network environment. - ::: #### Set Up Your Cluster for a Private Container Registry To use a docker image from a private repository, you need to [create an image pull secret](https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/) and configure this secret for your containers. -::: details Use this script to create the docker pull secret... - -```sh -echo -n "Your docker registry server: "; read YOUR_REGISTRY -echo -n "Your user: "; read YOUR_USER -echo -n "Your email: "; read YOUR_EMAIL -echo -n "Your API token: "; read -s YOUR_API_TOKEN -kubectl create secret docker-registry \ - docker-registry \ - "--docker-server=$YOUR_REGISTRY" \ - "--docker-username=$YOUR_USER" \ - "--docker-password=$YOUR_API_TOKEN" \ - "--docker-email=$YOUR_EMAIL" -# The 2nd 'docker-registry' above is our default secret name. -``` +:::info Interactive setup +If a pull secret does not exist for your namespace when deploying your application, the CLI will prompt you to set up the pull secret interactively. ::: ::: warning Assign limited permissions to the technical user -It is recommended to use a technical user for this secret that has only read permission, because users with access to the Kubernetes cluster can reveal the password from the secret. +For this secret, use a technical user with read-only permissions. This limits the risk, as anyone with access to the Kubernetes cluster could retrieve the password from the secret and potentially modify or publish images to the registry. ::: @@ -166,9 +150,9 @@ cds add workzone CAP provides a configurable [Helm chart](https://helm.sh/) for Node.js and Java applications, which can be added like so: ```sh -cds add helm +cds add kyma ``` -> You will be asked to provide a Kyma domain, the secret name to pull images and your container registry name. +> You will be asked to provide a Kyma cluster domain and your container registry name. ::: details Running `cds build` now creates a _gen_/_chart_ folder @@ -184,27 +168,38 @@ They support the deployment of your CAP service, database, UI content, and the c You can now quickly deploy the application like so: ```sh -cds up -2 k8s +cds up -2 k8s [ -n ] ``` ::: details Essentially, this automates the following steps... ```zsh -cds add helm,containerize # if not already done +cds add kyma # if not already done # Installing app dependencies, e.g. -npm i app/browse + +# If package-lock.json doesn't exist +npm install --prefix app/browse + +npm run build --prefix app/browse + +# If package-lock.json doesn't exist npm i app/admin-books +npm run build --prefix app/admin-books + # If project is multitenant npm i --package-lock-only mtx/sidecar # If package-lock.json doesn't exist npm i --package-lock-only +# Buildpack commands +pack build bookshop-srv:latest --path gen/srv --builder builder-jammy-base --env BP_NODE_RUN_SCRIPTS="" +pack build bookshop-html5-deployer:latest --path app/html5-deployer --builder builder-jammy-base --env BP_NODE_RUN_SCRIPTS="" + # Final assembly and deployment, e.g. -ctz containerize.yaml --log --push -helm upgrade --install bookshop ./gen/chart --wait --wait-for-jobs --set-file xsuaa.jsonParameters=xs-security.json +helm upgrade --install bookshop ./gen/chart --namespace bookshop --wait --wait-for-jobs --timeout=10m kubectl rollout status deployment bookshop-srv --timeout=8m kubectl rollout status deployment bookshop-approuter --timeout=8m kubectl rollout status deployment bookshop-sidecar --timeout=8m @@ -212,6 +207,8 @@ kubectl rollout status deployment bookshop-sidecar --timeout=8m ::: +_This command uses checksums to detect changes in your code. If any modifications are found, it automatically triggers a rebuild. The checksums are reflected in the Docker image tags._ + This process can take a few minutes to complete and logs output like this: ```log @@ -257,24 +254,13 @@ Specify the repository where you want to push the images: ... repository: ``` - ::: -Now, we use the `ctz` build tool to build all the images: - -```sh -ctz containerize.yaml -``` - -This will start containerizing your modules based on the configuration in _containerize.yaml_. After finishing, it will ask whether you want to push the images or not. Type `y` and press enter to push your images. You can also use the above command with `--push` flag to auto-confirm. If you want more logs, you can use the `--log` flag with the above command. - -[Learn more about the `ctz` build tool.](https://www.npmjs.com/package/ctz/){.learn-more style="margin-top:10px"} - ### Customize Helm Chart {#customize-helm-chart} #### About CAP Helm Charts {#about-cap-helm} -The following files are added to a _chart_ folder by executing `cds add helm`: +The following files are added to a _chart_ folder by executing `cds add kyma`: ```zsh chart/ @@ -323,7 +309,7 @@ imagePullSecret: # Kubernetes cluster ingress domain (used for application URLs) domain: -# Container image registry +# Container image registry where to pull the image from image: registry: ``` @@ -494,13 +480,6 @@ parametersFrom: ``` ::: -The `jsonParameters` key can also be specified using the `--set file` flag while installing/upgrading Helm release. For example, `jsonParameters` for the `xsuaa` property can be defined using the following command: - -```sh -helm install bookshop ./chart \ - --set-file xsuaa.jsonParameters=xs-security.json -``` - > You can explore more configuration options in the subchart's directory _gen/chart/charts/service-instance_. #### Configuration Options for Service Bindings @@ -573,18 +552,18 @@ srv: # Key is the target service, e.g. 'srv' Modifying the Helm chart allows you to customize it to your needs. However, this has consequences if you want to update with the latest changes from the CAP template. -You can run `cds add helm` again to update your Helm chart. It has the following behavior for modified files: +You can run `cds add kyma` again to update your Helm chart. It has the following behavior for modified files: -1. Your changes of the _chart/values.yaml_ and _chart/Chart.yaml_ will not be modified. Only new or missing properties will be added by `cds add helm`. +1. Your changes of the _chart/values.yaml_ and _chart/Chart.yaml_ will not be modified. Only new or missing properties will be added by `cds add kyma`. 2. To modify any of the generated files such as templates or subcharts, copy the files from _gen/chart_ folder and place it in the same level inside the _chart_ folder. After the next `cds build` executions the generated chart will have the modified files. 3. If you want to have some custom files such as templates or subcharts, you can place them in the _chart_ folder at the same level where you want them to be in _gen/chart_ folder. They will be copied as is. ### Extend -Instead of modifying consider extending the CAP Helm chart. Just make sure adding new files to the Helm chart does not conflict with `cds add helm`. +Instead of modifying consider extending the CAP Helm chart. Just make sure adding new files to the Helm chart does not conflict with `cds add kyma`. ::: tip Consider Kustomize -A modification-free approach to change files is to use [Kustomize](https://kustomize.io/) as a [post-processor](https://helm.sh/docs/topics/advanced/#post-rendering) for your Helm chart. This might be usable for small changes if you don't want to branch-out from the generated `cds add helm` content. +A modification-free approach to change files is to use [Kustomize](https://kustomize.io/) as a [post-processor](https://helm.sh/docs/topics/advanced/#post-rendering) for your Helm chart. This might be usable for small changes if you don't want to branch-out from the generated `cds add kyma` content. ::: diff --git a/tools/apis/cds-add.md b/tools/apis/cds-add.md index 36da62a727..cb9d114f6d 100644 --- a/tools/apis/cds-add.md +++ b/tools/apis/cds-add.md @@ -83,7 +83,7 @@ Our `cds add postgres` will: 1. Register with `cds-dk` 2. Add a Dockerfile to start a PostgreSQL instance for development 3. Integrate with `cds add mta` for [Cloud Foundry](../../guides/deployment/to-cf) deployment -4. Integrate with `cds add helm` for [Kyma](../../guides/deployment/to-kyma) deployment +4. Integrate with `cds add kyma` for [Kyma](../../guides/deployment/to-kyma) deployment 5. Integrate with `cds help` Starting with 1, register the plugin: @@ -208,7 +208,7 @@ resources: # [!code ++] ``` ::: -Step 4 integrates with `cds add helm`: +Step 4 integrates with `cds add kyma`: ::: code-group ```js [lib/add.js] @@ -255,7 +255,7 @@ postgres: # [!code ++] ::: ::: tip Common integrations -Typically integrations are for deployment descriptors (`cds add mta` and `cds add helm`), security descriptors (`cds add xsuaa`), or changes that might impact your plugin configuration (`cds add multitenancy`). +Typically integrations are for deployment descriptors (`cds add mta` and `cds add kyma`), security descriptors (`cds add xsuaa`), or changes that might impact your plugin configuration (`cds add multitenancy`). ::: For step 5 we'll add some command-specific options to let users override the output path for the `pg.yaml` file when running `cds add postgres --out `: diff --git a/tools/assets/help/cds-add.out.md b/tools/assets/help/cds-add.out.md index 1fe04d8b36..a465c5e670 100644 --- a/tools/assets/help/cds-add.out.md +++ b/tools/assets/help/cds-add.out.md @@ -16,10 +16,7 @@ extension - extension project mta - Cloud Foundry deployment using mta.yaml cf-manifest - Cloud Foundry deployment using manifest files - helm - Kyma deployment using Helm charts - helm-unified-runtime - Kyma deployment using Unified Runtime Helm charts - containerize - containerization using ctz CLI - kyma - helm + containerize + kyma - Kyma deployment using Helm charts tiny-sample - minimal sample files sample - sample files including Fiori UI handler - handler stubs for service entities, actions and functions @@ -165,14 +162,6 @@ Custom output directory. For Java, the default is 'handlers'. For Node.js, the default is 'srv'. - - cds add helm - - --y - - If provided, the default values will be used for all prompts. - - cds add http --filter | -f From 4d40af8377265e92ecee12175a3f3df106c8453b Mon Sep 17 00:00:00 2001 From: Rene Jeglinsky Date: Thu, 6 Nov 2025 14:13:40 +0100 Subject: [PATCH 25/91] enhance with acrolinx check --- .github/workflows/ai-review.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/.github/workflows/ai-review.yml b/.github/workflows/ai-review.yml index 6b22c4ff66..baa1c52a59 100644 --- a/.github/workflows/ai-review.yml +++ b/.github/workflows/ai-review.yml @@ -35,3 +35,14 @@ jobs: - Check for consistency in terminology and style throughout the document. - Use active voice instead of passive voice - Use present tense and **avoid future tense**! + analyze: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Run Custom Analysis + uses: acrolinx/nextgen-analyzer@v0.0.6 + with: + acrolinx_token: ${{ secrets.ACROLINX_KEY }} + github_token: ${{ secrets.GITHUB_TOKEN }} + style-guide: 'chicago' + add_commit_status: 'true' \ No newline at end of file From c1dddc78e8d607162335a865817f79cd88eb6409 Mon Sep 17 00:00:00 2001 From: Rene Jeglinsky Date: Thu, 6 Nov 2025 14:32:02 +0100 Subject: [PATCH 26/91] move acrolinx check out of ai review --- .github/workflows/PR-SAP.yml | 11 +++++++++++ .github/workflows/ai-review.yml | 13 +------------ 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/.github/workflows/PR-SAP.yml b/.github/workflows/PR-SAP.yml index 316e90d111..8369320224 100644 --- a/.github/workflows/PR-SAP.yml +++ b/.github/workflows/PR-SAP.yml @@ -57,3 +57,14 @@ jobs: npm run docs:preview -- --port 5555 & sleep 2 .github/etc/blc.js http://localhost:5555/docs/ + analyze: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Run Custom Analysis + uses: acrolinx/nextgen-analyzer@v0.0.6 + with: + acrolinx_token: ${{ secrets.ACROLINX_KEY }} + github_token: ${{ secrets.GITHUB_TOKEN }} + style-guide: 'chicago' + add_commit_status: 'true' \ No newline at end of file diff --git a/.github/workflows/ai-review.yml b/.github/workflows/ai-review.yml index baa1c52a59..dfe9b01dc2 100644 --- a/.github/workflows/ai-review.yml +++ b/.github/workflows/ai-review.yml @@ -34,15 +34,4 @@ jobs: - Verify that the structure of the document is logical and that headings and subheadings are used effectively. - Check for consistency in terminology and style throughout the document. - Use active voice instead of passive voice - - Use present tense and **avoid future tense**! - analyze: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - name: Run Custom Analysis - uses: acrolinx/nextgen-analyzer@v0.0.6 - with: - acrolinx_token: ${{ secrets.ACROLINX_KEY }} - github_token: ${{ secrets.GITHUB_TOKEN }} - style-guide: 'chicago' - add_commit_status: 'true' \ No newline at end of file + - Use present tense and **avoid future tense**! \ No newline at end of file From 24e056b17569b09362c64c8645189a526d51d440 Mon Sep 17 00:00:00 2001 From: Rene Jeglinsky Date: Thu, 6 Nov 2025 14:50:39 +0100 Subject: [PATCH 27/91] adapt permissions --- .github/workflows/PR-SAP.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/PR-SAP.yml b/.github/workflows/PR-SAP.yml index 8369320224..0e17d90dba 100644 --- a/.github/workflows/PR-SAP.yml +++ b/.github/workflows/PR-SAP.yml @@ -63,6 +63,9 @@ jobs: - uses: actions/checkout@v4 - name: Run Custom Analysis uses: acrolinx/nextgen-analyzer@v0.0.6 + permissions: + pull-requests: write + statuses: write with: acrolinx_token: ${{ secrets.ACROLINX_KEY }} github_token: ${{ secrets.GITHUB_TOKEN }} From 455c81d8b0a6e6deec1ec36b8d9069e05147e58a Mon Sep 17 00:00:00 2001 From: Rene Jeglinsky Date: Thu, 6 Nov 2025 14:57:57 +0100 Subject: [PATCH 28/91] move permissions --- .github/workflows/PR-SAP.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/PR-SAP.yml b/.github/workflows/PR-SAP.yml index 0e17d90dba..0de99e5737 100644 --- a/.github/workflows/PR-SAP.yml +++ b/.github/workflows/PR-SAP.yml @@ -59,13 +59,13 @@ jobs: .github/etc/blc.js http://localhost:5555/docs/ analyze: runs-on: ubuntu-latest + permissions: + pull-requests: write + statuses: write steps: - uses: actions/checkout@v4 - name: Run Custom Analysis uses: acrolinx/nextgen-analyzer@v0.0.6 - permissions: - pull-requests: write - statuses: write with: acrolinx_token: ${{ secrets.ACROLINX_KEY }} github_token: ${{ secrets.GITHUB_TOKEN }} From 327b90c593ce6474c142ac8c8e8367b712d0d76c Mon Sep 17 00:00:00 2001 From: Rene Jeglinsky Date: Thu, 6 Nov 2025 15:02:44 +0100 Subject: [PATCH 29/91] update version of nextgen-analyzer --- .github/workflows/PR-SAP.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/PR-SAP.yml b/.github/workflows/PR-SAP.yml index 0de99e5737..f56860411f 100644 --- a/.github/workflows/PR-SAP.yml +++ b/.github/workflows/PR-SAP.yml @@ -65,7 +65,7 @@ jobs: steps: - uses: actions/checkout@v4 - name: Run Custom Analysis - uses: acrolinx/nextgen-analyzer@v0.0.6 + uses: acrolinx/nextgen-analyzer@v0.0.7 with: acrolinx_token: ${{ secrets.ACROLINX_KEY }} github_token: ${{ secrets.GITHUB_TOKEN }} From 0fd12d5c8e6e6d7aa2def5b1653e02769050f605 Mon Sep 17 00:00:00 2001 From: Rene Jeglinsky Date: Fri, 7 Nov 2025 09:46:58 +0100 Subject: [PATCH 30/91] enhance permission and bump version --- .github/workflows/PR-SAP.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/PR-SAP.yml b/.github/workflows/PR-SAP.yml index f56860411f..0547e3f285 100644 --- a/.github/workflows/PR-SAP.yml +++ b/.github/workflows/PR-SAP.yml @@ -60,10 +60,11 @@ jobs: analyze: runs-on: ubuntu-latest permissions: + contents: write pull-requests: write statuses: write steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Run Custom Analysis uses: acrolinx/nextgen-analyzer@v0.0.7 with: From a14e211c82ad2e5e4e0aac948aef848660397c4c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 7 Nov 2025 10:23:19 +0100 Subject: [PATCH 31/91] chore(deps): update cap java sdk to v4.4.2 (#2191) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR contains the following updates: | Package | Change | Age | Confidence | |---|---|---|---| | [com.sap.cds:cds-services-api](https://cap.cloud.sap/docs/java) | `4.4.1` -> `4.4.2` | [![age](https://developer.mend.io/api/mc/badges/age/maven/com.sap.cds:cds-services-api/4.4.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.sap.cds:cds-services-api/4.4.1/4.4.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [com.sap.cds:cds4j-api](http://www.sap.com) ([source](https://cap.cloud.sap/docs/java/)) | `4.4.1` -> `4.4.2` | [![age](https://developer.mend.io/api/mc/badges/age/maven/com.sap.cds:cds4j-api/4.4.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.sap.cds:cds4j-api/4.4.1/4.4.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/capire/docs). Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .vitepress/config.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.vitepress/config.js b/.vitepress/config.js index a04d68f67b..b7942c106d 100644 --- a/.vitepress/config.js +++ b/.vitepress/config.js @@ -106,8 +106,8 @@ config.rewrites = rewrites // Add custom capire info to the theme config config.themeConfig.capire = { versions: { - java_services: '4.4.1', - java_cds4j: '4.4.1' + java_services: '4.4.2', + java_cds4j: '4.4.2' }, gotoLinks: [] } From bfed019db4fced676f29b2415b5b29d7a15baad9 Mon Sep 17 00:00:00 2001 From: Olena Date: Fri, 7 Nov 2025 11:05:58 +0100 Subject: [PATCH 32/91] node.js: Change 'code' to 'status' in req.reject() examples (#2190) --- node.js/events.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/node.js/events.md b/node.js/events.md index 8fdb54101b..55451b544b 100644 --- a/node.js/events.md +++ b/node.js/events.md @@ -482,7 +482,7 @@ This is a convenience variant of the [`req.reject()`](#req-reject) method, with ```tsx function req.reject ( - code? : number, + status? : number, message? : string, target? : string, args? : string[] From c87f0d0709e96c472b35309248fc1063e81d8d3f Mon Sep 17 00:00:00 2001 From: DJ Adams Date: Mon, 10 Nov 2025 09:35:15 +0000 Subject: [PATCH 33/91] Minor fixes in CDL Language Preliminaries (#2195) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Working through this section to learn more, I came across a few places that might benefit from very minor improvements. Thanks! - 24:59:59 is just wishful thinking :) - remove duplicated paragraph - add tip about made-up annotations in example - clarify ref to prev model - make comma spacing consistent --------- Co-authored-by: René Jeglinsky --- cds/cdl.md | 12 ++++++++---- cds/types.md | 4 +--- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/cds/cdl.md b/cds/cdl.md index 4d10803e71..278deb9b1f 100644 --- a/cds/cdl.md +++ b/cds/cdl.md @@ -41,7 +41,7 @@ The *Conceptual Definition Language (CDL)* is a human-readable language for defi ```cds namespace capire.bookshop; -using { managed, cuid } from `@sap/cds/common`; +using { managed, cuid } from '@sap/cds/common'; aspect primary : managed, cuid {} entity Books : primary { @@ -85,7 +85,7 @@ The following literals can be used in CDL (mostly as in JavaScript, Java, and SQ ```cds true , false , null // as in all common languages -11 , 2.4 , 1e3, 1.23e-11 // for numbers +11 , 2.4 , 1e3 , 1.23e-11 // for numbers 'A string''s literal' // for strings `A string\n paragraph` // for strings with escape sequences { foo:'boo', bar:'car' } // for records @@ -130,6 +130,10 @@ entity DocumentedEntity { } ``` +::: tip +These annotations are illustrative only and are not defined nor have any meaning beyond this example. +::: + Within those strings, escape sequences from JavaScript, such as `\t` or `\u0020`, are supported. Line endings are normalized. If you don't want a line ending at that position, end a line with a backslash (`\`). For string literals inside triple backticks, indentation is stripped and tagging is possible. @@ -238,7 +242,7 @@ context scoped { You can define types and entities with other definitions' names as prefixes: -```cds +```cds [prefixes.cds] namespace foo.bar; entity Foo {} //> foo.bar.Foo entity Foo.Bar {} //> foo.bar.Foo.Bar @@ -248,7 +252,7 @@ type Foo.Bar.Car {} //> foo.bar.Foo.Bar.Car #### Fully Qualified Names -A model ultimately is a collection of definitions with unique, fully qualified names. For example, the second model above would compile to this [CSN](./csn): +A model ultimately is a collection of definitions with unique, fully qualified names. For example, the model in `contexts.cds` would compile to the following [CSN](./csn): ::: code-group diff --git a/cds/types.md b/cds/types.md index 7c5aeac693..57c3704390 100644 --- a/cds/types.md +++ b/cds/types.md @@ -36,7 +36,7 @@ These types are used to define the structure of entities and services, and are m | `Decimal` (`prec`, `scale`) | A *decfloat* type is used if arguments are omitted | _DECIMAL_ | | `Double` | Floating point with binary mantissa | _DOUBLE_ | | `Date` | e.g. `2022-12-31` | _DATE_ | -| `Time` | e.g. `24:59:59` | _TIME_ | +| `Time` | e.g. `23:59:59` | _TIME_ | | `DateTime` | _sec_ precision | _TIMESTAMP_ | | `Timestamp` | _µs_ precision, with up to 7 fractional digits | _TIMESTAMP_ | | `String` (`length`) | Default *length*: 255; on HANA: 5000 (4)(5) | _NVARCHAR_ | @@ -46,8 +46,6 @@ These types are used to define the structure of entities and services, and are m | `Map` | Mapped to *NCLOB* for HANA. | *JSON* type | | `Vector` (`dimension `) | Requires SAP HANA Cloud QRC 1/2024, or later | _REAL_VECTOR_ | -These types are used to define the structure of entities and services, and are mapped to respective database types when the model is deployed. - > (1) Concrete mappings to specific databases may differ. > > (2) See also [Best Practices](../guides/domain-modeling#don-t-interpret-uuids). From 93f50e0ae1aab2e33cf766bb04974f4f1ff1ea7a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrian=20G=C3=B6rler?= Date: Mon, 10 Nov 2025 10:36:40 +0100 Subject: [PATCH 34/91] Remove restrictions for UInt8 (#2193) Remove restrictions for cds.UInt8 --- java/cqn-services/persistence-services.md | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/java/cqn-services/persistence-services.md b/java/cqn-services/persistence-services.md index ec2c0250f6..9c84de9a0c 100644 --- a/java/cqn-services/persistence-services.md +++ b/java/cqn-services/persistence-services.md @@ -50,8 +50,7 @@ CAP Java SDK is tested on [PostgreSQL](https://www.postgresql.org/) 15 and suppo 1. No locale specific sorting. The sort order of queries behaves as configured on the database. 2. Write operations through CDS views are only supported for views that can be [resolved](../working-with-cql/query-execution#updatable-views) or are [updatable](https://www.postgresql.org/docs/14/sql-createview.html#SQL-CREATEVIEW-UPDATABLE-VIEWS) in PostgreSQL. -3. The CDS type `UInt8` can't be used with PostgreSQL, as there's no `TINYINT`. Use `Int16` instead. -4. [Multitenancy](../../guides/multitenancy/) and [extensibility](../../guides/extensibility/) aren't yet supported on PostgreSQL. +3. [Multitenancy](../../guides/multitenancy/) and [extensibility](../../guides/extensibility/) aren't yet supported on PostgreSQL. ### H2 Database @@ -62,8 +61,7 @@ CAP Java SDK is tested on [PostgreSQL](https://www.postgresql.org/) 15 and suppo 3. By default, views aren't updatable on H2. However, the CAP Java SDK supports some views to be updatable as described [here](../working-with-cql/query-execution#updatable-views). 4. Although referential and foreign key constraints are supported, H2 [doesn't support deferred checking](https://www.h2database.com/html/grammar.html#referential_action). As a consequence, schema SQL is never generated with referential constraints. 5. In [pessimistic locking](../working-with-cql/query-execution#pessimistic-locking), _shared_ locks are not supported but an _exclusive_ lock is used instead. -6. The CDS type `UInt8` can't be used with H2, as there is no `TINYINT`. Use `Int16` instead. -7. For regular expressions, H2's implementation is compatible with Java's: the matching behaviour is an equivalent of the `Matcher.find()` call for the given pattern. +6. For regular expressions, H2's implementation is compatible with Java's: the matching behaviour is an equivalent of the `Matcher.find()` call for the given pattern. ::: warning Support for localized and temporal data via session context variables requires H2 v2.2.x or later. From 7969a02487d35f651adbd0ed50cf7955e4adfab9 Mon Sep 17 00:00:00 2001 From: Christian Georgi Date: Tue, 11 Nov 2025 14:46:42 +0100 Subject: [PATCH 35/91] Custom key delimiters in config inspector --- .vitepress/theme/components/ConfigInspect.vue | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/.vitepress/theme/components/ConfigInspect.vue b/.vitepress/theme/components/ConfigInspect.vue index 48520cb0be..5854f2dc0f 100644 --- a/.vitepress/theme/components/ConfigInspect.vue +++ b/.vitepress/theme/components/ConfigInspect.vue @@ -36,12 +36,13 @@ import FloatingVue from 'floating-vue' import yaml from 'yaml' - const { java, keyOnly, filesOnly, showPrivate, label:labelProp } = defineProps<{ + const { java, keyOnly, filesOnly, showPrivate, label:labelProp, keyDelim } = defineProps<{ java?: boolean, keyOnly?: boolean, filesOnly?: boolean, showPrivate?: boolean, - label?: string + label?: string, + keyDelim?: string }>() // sub component that renders code blocks similar to the markdown `::: code-block` syntax @@ -85,6 +86,7 @@ const [key, val] = slotVal.split(/\s*[:=]\s*(.*)/) // split on first `:` or `=` const label = labelProp || `${keyOnly ? key: slotVal}` + const keyDel = keyDelim ?? '.' const cfgKey = ref() const popperVisible = ref(false) @@ -114,25 +116,25 @@ let jsonVal if (typeof value === 'string' && value.trim().match(/^[[{].*[\]}]$/)) { try { jsonVal = JSON.parse(value) } catch {/*ignore*/ } } - const pkg = toJson(key, jsonVal ?? value) + const pkg = toJson(key, jsonVal ?? value, keyDel) pkgStr.value = JSON.stringify(pkg, null, 2) rcJsonStr.value = JSON.stringify(pkg.cds??{}, null, 2) rcJsStr.value = 'module.exports = ' + rcJsonStr.value.replace(/"(\w*?)":/g, '$1:') rcYmlStr.value = yaml.stringify(pkg.cds) - propStr.value = `${key}=${jsonVal ? JSON.stringify(jsonVal) : value}` - let envKey = key.replaceAll('_', '__').replaceAll('.', '_') + let envKey = key.replaceAll('_', '__').replaceAll(keyDel, '_') if (/^[a-z_]+$/.test(envKey)) envKey = envKey.toUpperCase() // only uppercase if not camelCase envStr.value = `${envKey}=${jsonVal ? JSON.stringify(jsonVal) : value}` + propStr.value = `${envKey}=${jsonVal ? JSON.stringify(jsonVal) : value}` javaAppyml.value = yaml.stringify(pkg) javaEnvStr.value = `-D${propStr.value}` }) -function toJson(key:string, value:string): Record { +function toJson(key:string, value:string, delim:string): Record { let res = {} - const parts = key.split('.') + const parts = key.split(delim) parts.reduce((r:Record, a, i) => { r[a] = r[a] || (i < parts.length-1 ? {} : value) return r[a]; From c25aeb08fb071825e23392cabc709d1c5372ca73 Mon Sep 17 00:00:00 2001 From: Christian Georgi Date: Tue, 11 Nov 2025 15:18:20 +0100 Subject: [PATCH 36/91] Make log blocks draw over outline --- .vitepress/theme/styles.scss | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/.vitepress/theme/styles.scss b/.vitepress/theme/styles.scss index 29c198e614..5a207a9733 100644 --- a/.vitepress/theme/styles.scss +++ b/.vitepress/theme/styles.scss @@ -115,11 +115,11 @@ main { // Custom list styles for nested items ul { list-style-type: disc; // First level: filled circle - + ul { list-style-type: circle; // Second level: empty circle - - + + ul { list-style-type: square; // Third level: square } @@ -551,15 +551,14 @@ html.node { pre.log:focus { min-width: fit-content; padding-right: 40px; - z-index: 1; // draw over outline + z-index: 1; position: relative; // draw over outline } table:hover, table:focus { min-width: fit-content; } - tr { // make wide rows go over outline, not below it - z-index: 1; - position: relative; + tr { + z-index: 1; position: relative; // draw wide rows over outline } [class*='language-'] pre { overflow: hidden !important; From 543e48f7e2baa0883ec46fe95734eca4f89efaae Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 11 Nov 2025 21:03:18 +0100 Subject: [PATCH 37/91] chore(deps): update dependency @typescript-eslint/parser to v8.46.4 (#2198) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR contains the following updates: | Package | Change | Age | Confidence | |---|---|---|---| | [@typescript-eslint/parser](https://typescript-eslint.io/packages/parser) ([source](https://redirect.github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser)) | [`8.46.3` -> `8.46.4`](https://renovatebot.com/diffs/npm/@typescript-eslint%2fparser/8.46.3/8.46.4) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@typescript-eslint%2fparser/8.46.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@typescript-eslint%2fparser/8.46.3/8.46.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
typescript-eslint/typescript-eslint (@​typescript-eslint/parser) ### [`v8.46.4`](https://redirect.github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#8464-2025-11-10) [Compare Source](https://redirect.github.com/typescript-eslint/typescript-eslint/compare/v8.46.3...v8.46.4) This was a version bump only for parser to align it with other projects, there were no code changes. You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website.
--- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/capire/docs). Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package-lock.json | 68 +++++++++++++++++++++++------------------------ 1 file changed, 34 insertions(+), 34 deletions(-) diff --git a/package-lock.json b/package-lock.json index 8fb60894b1..7d4e7278bc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2882,17 +2882,17 @@ "license": "MIT" }, "node_modules/@typescript-eslint/parser": { - "version": "8.46.3", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.46.3.tgz", - "integrity": "sha512-6m1I5RmHBGTnUGS113G04DMu3CpSdxCAU/UvtjNWL4Nuf3MW9tQhiJqRlHzChIkhy6kZSAQmc+I1bcGjE3yNKg==", + "version": "8.46.4", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.46.4.tgz", + "integrity": "sha512-tK3GPFWbirvNgsNKto+UmB/cRtn6TZfyw0D6IKrW55n6Vbs7KJoZtI//kpTKzE/DUmmnAFD8/Ca46s7Obs92/w==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@typescript-eslint/scope-manager": "8.46.3", - "@typescript-eslint/types": "8.46.3", - "@typescript-eslint/typescript-estree": "8.46.3", - "@typescript-eslint/visitor-keys": "8.46.3", + "@typescript-eslint/scope-manager": "8.46.4", + "@typescript-eslint/types": "8.46.4", + "@typescript-eslint/typescript-estree": "8.46.4", + "@typescript-eslint/visitor-keys": "8.46.4", "debug": "^4.3.4" }, "engines": { @@ -2908,14 +2908,14 @@ } }, "node_modules/@typescript-eslint/project-service": { - "version": "8.46.3", - "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.46.3.tgz", - "integrity": "sha512-Fz8yFXsp2wDFeUElO88S9n4w1I4CWDTXDqDr9gYvZgUpwXQqmZBr9+NTTql5R3J7+hrJZPdpiWaB9VNhAKYLuQ==", + "version": "8.46.4", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.46.4.tgz", + "integrity": "sha512-nPiRSKuvtTN+no/2N1kt2tUh/HoFzeEgOm9fQ6XQk4/ApGqjx0zFIIaLJ6wooR1HIoozvj2j6vTi/1fgAz7UYQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/tsconfig-utils": "^8.46.3", - "@typescript-eslint/types": "^8.46.3", + "@typescript-eslint/tsconfig-utils": "^8.46.4", + "@typescript-eslint/types": "^8.46.4", "debug": "^4.3.4" }, "engines": { @@ -2930,14 +2930,14 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.46.3", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.46.3.tgz", - "integrity": "sha512-FCi7Y1zgrmxp3DfWfr+3m9ansUUFoy8dkEdeQSgA9gbm8DaHYvZCdkFRQrtKiedFf3Ha6VmoqoAaP68+i+22kg==", + "version": "8.46.4", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.46.4.tgz", + "integrity": "sha512-tMDbLGXb1wC+McN1M6QeDx7P7c0UWO5z9CXqp7J8E+xGcJuUuevWKxuG8j41FoweS3+L41SkyKKkia16jpX7CA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.46.3", - "@typescript-eslint/visitor-keys": "8.46.3" + "@typescript-eslint/types": "8.46.4", + "@typescript-eslint/visitor-keys": "8.46.4" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -2948,9 +2948,9 @@ } }, "node_modules/@typescript-eslint/tsconfig-utils": { - "version": "8.46.3", - "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.46.3.tgz", - "integrity": "sha512-GLupljMniHNIROP0zE7nCcybptolcH8QZfXOpCfhQDAdwJ/ZTlcaBOYebSOZotpti/3HrHSw7D3PZm75gYFsOA==", + "version": "8.46.4", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.46.4.tgz", + "integrity": "sha512-+/XqaZPIAk6Cjg7NWgSGe27X4zMGqrFqZ8atJsX3CWxH/jACqWnrWI68h7nHQld0y+k9eTTjb9r+KU4twLoo9A==", "dev": true, "license": "MIT", "engines": { @@ -2965,9 +2965,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "8.46.3", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.46.3.tgz", - "integrity": "sha512-G7Ok9WN/ggW7e/tOf8TQYMaxgID3Iujn231hfi0Pc7ZheztIJVpO44ekY00b7akqc6nZcvregk0Jpah3kep6hA==", + "version": "8.46.4", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.46.4.tgz", + "integrity": "sha512-USjyxm3gQEePdUwJBFjjGNG18xY9A2grDVGuk7/9AkjIF1L+ZrVnwR5VAU5JXtUnBL/Nwt3H31KlRDaksnM7/w==", "dev": true, "license": "MIT", "engines": { @@ -2979,16 +2979,16 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.46.3", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.46.3.tgz", - "integrity": "sha512-f/NvtRjOm80BtNM5OQtlaBdM5BRFUv7gf381j9wygDNL+qOYSNOgtQ/DCndiYi80iIOv76QqaTmp4fa9hwI0OA==", + "version": "8.46.4", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.46.4.tgz", + "integrity": "sha512-7oV2qEOr1d4NWNmpXLR35LvCfOkTNymY9oyW+lUHkmCno7aOmIf/hMaydnJBUTBMRCOGZh8YjkFOc8dadEoNGA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/project-service": "8.46.3", - "@typescript-eslint/tsconfig-utils": "8.46.3", - "@typescript-eslint/types": "8.46.3", - "@typescript-eslint/visitor-keys": "8.46.3", + "@typescript-eslint/project-service": "8.46.4", + "@typescript-eslint/tsconfig-utils": "8.46.4", + "@typescript-eslint/types": "8.46.4", + "@typescript-eslint/visitor-keys": "8.46.4", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", @@ -3008,13 +3008,13 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.46.3", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.46.3.tgz", - "integrity": "sha512-uk574k8IU0rOF/AjniX8qbLSGURJVUCeM5e4MIMKBFFi8weeiLrG1fyQejyLXQpRZbU/1BuQasleV/RfHC3hHg==", + "version": "8.46.4", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.46.4.tgz", + "integrity": "sha512-/++5CYLQqsO9HFGLI7APrxBJYo+5OCMpViuhV8q5/Qa3o5mMrF//eQHks+PXcsAVaLdn817fMuS7zqoXNNZGaw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.46.3", + "@typescript-eslint/types": "8.46.4", "eslint-visitor-keys": "^4.2.1" }, "engines": { From bb9d5c363a3a7b1ddd4adcddbd8c640a8b0f0c2e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 11 Nov 2025 21:03:58 +0100 Subject: [PATCH 38/91] chore(deps): update dependency sass to v1.94.0 (#2199) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR contains the following updates: | Package | Change | Age | Confidence | |---|---|---|---| | [sass](https://redirect.github.com/sass/dart-sass) | [`1.93.3` -> `1.94.0`](https://renovatebot.com/diffs/npm/sass/1.93.3/1.94.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/sass/1.94.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/sass/1.93.3/1.94.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
sass/dart-sass (sass) ### [`v1.94.0`](https://redirect.github.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1940) [Compare Source](https://redirect.github.com/sass/dart-sass/compare/1.93.3...1.94.0) - **Potentially breaking compatibility fix:** `@function` rules whose names begin with `--` are now parsed as unknown at-rules to support the plain CSS `@function` rule. Within this rule, the `result` property is parsed as raw CSS just like custom properties. - **Potentially breaking compatibility fix:** `@mixin` rules whose names begin with `--` are now errors. These are not yet parsed as unknown at-rules because no browser currently supports CSS mixins.
--- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/capire/docs). Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7d4e7278bc..a1817e8348 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7549,9 +7549,9 @@ "license": "MIT" }, "node_modules/sass": { - "version": "1.93.3", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.93.3.tgz", - "integrity": "sha512-elOcIZRTM76dvxNAjqYrucTSI0teAF/L2Lv0s6f6b7FOwcwIuA357bIE871580AjHJuSvLIRUosgV+lIWx6Rgg==", + "version": "1.94.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.94.0.tgz", + "integrity": "sha512-Dqh7SiYcaFtdv5Wvku6QgS5IGPm281L+ZtVD1U2FJa7Q0EFRlq8Z3sjYtz6gYObsYThUOz9ArwFqPZx+1azILQ==", "dev": true, "license": "MIT", "peer": true, From d2ed1d6291202ca59b2160ea525dfe0c469fa56c Mon Sep 17 00:00:00 2001 From: Robin Date: Wed, 12 Nov 2025 10:41:13 +0100 Subject: [PATCH 39/91] adjust the draft protection snippet to the implementation (#2196) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: René Jeglinsky --- java/fiori-drafts.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/fiori-drafts.md b/java/fiori-drafts.md index 8652fa3e90..f751e8d6a9 100644 --- a/java/fiori-drafts.md +++ b/java/fiori-drafts.md @@ -155,7 +155,7 @@ cds.drafts.cancellationTimeout: 1h You can turn off this feature completely by means of the application configuration property: ```yaml -cds.security.draftProtection.enabled: false +cds.security.authorization.draftProtection.enabled: false ``` ## Draft Garbage Collection { #draft-gc } From 8f945c13be1313848c0183c7efe2c7d39839597b Mon Sep 17 00:00:00 2001 From: Matthias Schur <107557548+MattSchur@users.noreply.github.com> Date: Wed, 12 Nov 2025 13:20:49 +0100 Subject: [PATCH 40/91] Java: Draft Bypassing (#2184) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Added warning about bypassing draft updates for entities. --------- Co-authored-by: Marc Becker Co-authored-by: René Jeglinsky --- java/fiori-drafts.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/java/fiori-drafts.md b/java/fiori-drafts.md index f751e8d6a9..7f16baacd8 100644 --- a/java/fiori-drafts.md +++ b/java/fiori-drafts.md @@ -144,6 +144,10 @@ It's possible to create and update data directly without creating intermediate d These events have the same semantics as described in section [Handling CRUD events](./cqn-services/application-services#crudevents). +::: warning +Directly updating the active entity does **not** bypass the [Draft Lock](#draft-lock). If an existing draft locks the active entity, the system blocks any attempt to update it. This ensures that the system does not lose changes to the active entity when you subsequently activate a draft. +::: + ## Draft Lock { #draft-lock } An entity with a draft is locked from being edited by other users until either the draft is saved or a timeout is hit (15 minutes by default). You can configure this timeout by the following application configuration property: From ae7159dd0a586145f67f9e3f457cc9dcc27c2505 Mon Sep 17 00:00:00 2001 From: Matthias Schur <107557548+MattSchur@users.noreply.github.com> Date: Wed, 12 Nov 2025 13:22:43 +0100 Subject: [PATCH 41/91] Java: Draft Aggregations (#2181) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Marc Becker Co-authored-by: René Jeglinsky Co-authored-by: Mahati Shankar <93712176+smahati@users.noreply.github.com> --- java/fiori-drafts.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/java/fiori-drafts.md b/java/fiori-drafts.md index 7f16baacd8..6ac3ca9446 100644 --- a/java/fiori-drafts.md +++ b/java/fiori-drafts.md @@ -60,6 +60,9 @@ public Result delegateToS4(ActiveReadEventContext context) { When setting `cds.drafts.persistence` to `split` only queries that are specified by the SAP Fiori draft orchestration are supported. ::: +### Aggregation Queries +Aggregating over active and inactive draft entities isn't supported. Queries with aggregation functions implicitly add `IsActiveEntity` as a part of the group-by clause, resulting in disjunct `active` and `inactive` rows being returned instead of aggregated rows. + ## Editing Drafts When users edit a draft-enabled entity in the frontend, the following requests are sent to the CAP Java backend. As an effect, draft-specific events are triggered, as described in the following table. The draft-specific events are defined by the [DraftService](https://www.javadoc.io/doc/com.sap.cds/cds-services-api/latest/com/sap/cds/services/draft/DraftService.html) interface. From 7589ba8588c5f14032783e034988a3de49f4cd17 Mon Sep 17 00:00:00 2001 From: Rene Jeglinsky Date: Thu, 13 Nov 2025 12:35:40 +0100 Subject: [PATCH 42/91] improve prompt --- .github/workflows/assets/editor.md | 67 ++++++++++++++++++++++++++---- 1 file changed, 59 insertions(+), 8 deletions(-) diff --git a/.github/workflows/assets/editor.md b/.github/workflows/assets/editor.md index 635cc73b5a..63253599fb 100644 --- a/.github/workflows/assets/editor.md +++ b/.github/workflows/assets/editor.md @@ -1,5 +1,6 @@ --- description: Reviews code for quality and best practices +mode: subagent temperature: 0.1 prompt: Do a detailed edit as outlined in the following. --- @@ -9,10 +10,56 @@ prompt: Do a detailed edit as outlined in the following. You are a helpful editor for a technical writer. Your task is to review and improve the text while ensuring that it adheres to a structured set of writing rules. All categories are of equal priority—no rule should be prioritized over another. ## TASK -Perform a structured review of the text, checking compliance with the following rules: +Perform a structured review of the text, checking compliance with the following categories: + +1. Grammar & Style + +- Use U.S. English spelling and punctuation. +- Prefer active voice and present tense. +- Allow passive voice only when explaining a system process. +- Use common contractions, but avoid them in warnings or important messages. +- Use colons, parentheses, question marks, and intensifiers judiciously. +- Avoid exclamation marks, and abbreviations. +- Use a colon (:) to introduce information. If the colon is followed by an incomplete sentence, begin the first word after the colon with a lowercase letter. +- Spell out numbers one through nine in full. Use numerals for 10 and higher. +- Search for semicolons (;) and replace them with a period (.) For example: Instead of "This isn't needed; the system does this for you" write "This isn't needed. The system does this for you." +- Ensure lists are parallel. +- Avoid wordy constructions. + +2. Clarity & Readability + +- Write clear, concise, and short sentences that are easy to understand. +- Avoid jargon, colloquialisms, dialect, clipped words, and unnecessary complexity. +- Avoid hyperbole. +- Use positive formulations. +- Do NOT edit phrases that contain "the following". Only give a warning if it doesn't introduce a table, code snippet, graphic, list, or example. +- Do not remove markdown-specific formatting like _document URLs_. +- Do not edit code samples, not even whitespace. + +3. Consistency & Tone + +- Use the personal pronoun “you” and make sure the user is the center of the narrative. +- Use "please" when the user is asked to do something extra due to software error or if the situation is already troubling for the user. Avoid "please" when the user is asked to do something that is standard procedure. + +4. Inclusivity & Ethical Considerations + +- Avoid stereotypes, discrimination, and biases. +- Check for stopwords, including: abort, execute, grandfather, terminate, kill, disable, whitelist, blacklist, slave, master) +- Output the detected stopwords as a Python list and explain why they must be replaced or avoided. If no stopwords are found, output: "Language checked." +- Check for potentially sensitive topics, including: personal ability, mobility, status, gender (e.g., "him", "her", "man", "woman", "girl", "boy"), sexist language, appearance, type, culture, ethnicity, language, age, economic background, religion, sexual orientation. +- Output the detected topics as a Python list. If no topics are found, output: "Language checked." +- Be mindful of verbs related to senses (e.g., see, hear, watch, listen) as they may exclude people with disabilities. Consider more inclusive alternatives where appropriate, such as: +Instead of "See the highlighted section," → Use "Note the highlighted sections." +Instead of "Did you hear the announcement?" → Use "Did you receive the announcement?" +Note: "See" is ok when used to mean "refer to" → "For more information, see Troubleshooting." + +5. Formality & Suitability +- Avoid emoticons and emojis. +- Do NOT remove TODO markers at all. +- Do NOT remove tip, warning or danger notes indicated by `::: tip` or similar constructs. -1. Guidelines +6. Guidelines For this repository you should consider the following guideline: To have a consistent look and feel throughout capire, use the following semantic when formatting your text. @@ -41,11 +88,7 @@ There are a couple of aspects that are easy to consider when writing w/o digging This sound easier than it is, but if you can put it in simpler words, it gets automatically clearer and more helpful. -- Use present tense and **avoid future tense**! -- Avoid emoticons and emojis. -- Do NOT remove TODO markers at all. -- Do NOT remove tip, warning or danger notes indicated by `... tip` or similar constructs. - +Use present and avoid future tense! The documentation should follow the here described style guidance so that it keeps a consistent external and internal appearance: @@ -80,4 +123,12 @@ The documentation should follow the here described style guidance so that it kee 1 Avoid latin abbreviations.
2 Use the not recommended spelling only if you're clearly referring to some technical entity or process. -To improve readability and translatability, avoid using modal verbs in your content. \ No newline at end of file +> Always use proper **product names**. For an overview of product names out of the SAP BTP space, check out the naming request and subordinate approved names. + +To improve readability and translatability, avoid using modal verbs in your content. + +## FINAL STEPS +Provide a report summarizing how well the text adheres to the writing rules, highlighting issues found in each category. +Rewrite the text to align with all guidelines while maintaining clarity, accuracy, and user focus. +Explain each change by displaying every sentence of the revised text along with a justification for what was modified or retained. +Finally, output the revised text in its entirety. From 15ed1d0d6d7be18876bb8deb8294d2bdf1c2e03a Mon Sep 17 00:00:00 2001 From: Rene Jeglinsky Date: Fri, 14 Nov 2025 09:18:22 +0100 Subject: [PATCH 43/91] improve prompt --- .github/workflows/ai-review.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ai-review.yml b/.github/workflows/ai-review.yml index dfe9b01dc2..934c649d84 100644 --- a/.github/workflows/ai-review.yml +++ b/.github/workflows/ai-review.yml @@ -28,7 +28,7 @@ jobs: - Use U.S. English spelling and punctuation. - Check for spelling errors and provide corrections. - Identify and correct grammatical errors and incorrect punctuation. - - Provide suggestions for improving the clarity and conciseness of the text to make it more understandable. Restrict yourself to the 5 most important findings and create suggestions for them. + - Provide suggestions for improving the clarity and conciseness of the text to make it more understandable. Use the comments to create real suggestions and include all proposals that target the same line into one suggestions. Do not create multiple suggestions for the same line or paragraph. - Consider the guidelines that can be found in .github/workflows/assets/editor.md and apply them. - Ensure that the tone is appropriate for technical documentation, maintaining a professional and informative style. - Verify that the structure of the document is logical and that headings and subheadings are used effectively. From c666178366bad917515ff44d4dd8c9d72671e1a6 Mon Sep 17 00:00:00 2001 From: Rene Jeglinsky Date: Tue, 18 Nov 2025 09:03:20 +0100 Subject: [PATCH 44/91] edit prompt instructions --- .github/workflows/assets/editor.md | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/assets/editor.md b/.github/workflows/assets/editor.md index 63253599fb..e415282644 100644 --- a/.github/workflows/assets/editor.md +++ b/.github/workflows/assets/editor.md @@ -35,6 +35,7 @@ Perform a structured review of the text, checking compliance with the following - Do NOT edit phrases that contain "the following". Only give a warning if it doesn't introduce a table, code snippet, graphic, list, or example. - Do not remove markdown-specific formatting like _document URLs_. - Do not edit code samples, not even whitespace. +- Do not touch tags, as these have a special meaning and need to be preserved. 3. Consistency & Tone From 0238c146800b195aacb34ee4826557096c1d1c8c Mon Sep 17 00:00:00 2001 From: Rene Jeglinsky Date: Tue, 18 Nov 2025 09:03:39 +0100 Subject: [PATCH 45/91] fixes --- guides/deployment/microservices.md | 2 +- node.js/authentication.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/guides/deployment/microservices.md b/guides/deployment/microservices.md index 0f72155024..60bdae144c 100644 --- a/guides/deployment/microservices.md +++ b/guides/deployment/microservices.md @@ -747,7 +747,7 @@ Before deploying you need to log in to Cloud Foundry: `cf login --sso` Start the deployment and build process: -``` +```sh cds up ``` diff --git a/node.js/authentication.md b/node.js/authentication.md index 2188408e94..99e253f179 100644 --- a/node.js/authentication.md +++ b/node.js/authentication.md @@ -486,7 +486,7 @@ Both caches are enabled by default. The _signature cache_ can be configured or deactivated via cds.requires.auth.config (which is passed through to `@sap/xssec`). -[Learn more about signature cache and its configuration.](https://www.npmjs.com/package/@sap/xssec#signature-cache)[.learn-more] +[Learn more about signature cache and its configuration.](https://www.npmjs.com/package/@sap/xssec#signature-cache){}.learn-more} The _token decode cache_, on the other hand, can only be configured programmatically during bootstrapping, for example in a [custom `server.js`](cds-server#custom-server-js) file, as follows: ```js From dc64c80f33bf0a8aa51d23a2e32e0b884ac184fa Mon Sep 17 00:00:00 2001 From: Steffen Waldmann Date: Tue, 18 Nov 2025 14:11:02 +0100 Subject: [PATCH 46/91] Fix `.learn-more` styling in `:::` blocks (#2211) Before: Screenshot 2025-11-18 at 11 11 28 After: Screenshot 2025-11-18 at 11 11 15 This also fixed the 15 more cases I found via Regex search `.*\{\.learn-more\}\n*:::\n` in VS Code. --- .vitepress/theme/styles.scss | 5 +++++ get-started/in-a-nutshell.md | 2 +- guides/deployment/to-cf.md | 4 ++-- guides/multitenancy/index.md | 2 +- 4 files changed, 9 insertions(+), 4 deletions(-) diff --git a/.vitepress/theme/styles.scss b/.vitepress/theme/styles.scss index 5a207a9733..e4e2722169 100644 --- a/.vitepress/theme/styles.scss +++ b/.vitepress/theme/styles.scss @@ -299,6 +299,11 @@ main { border-width: 0 0 0 7px; border-radius: 14px; + .learn-more { + margin-top: 10px; + margin-bottom: -5px; + } + &.note { background-color: #f6f6f6; border-color: #bbb; diff --git a/get-started/in-a-nutshell.md b/get-started/in-a-nutshell.md index 822af6e0f5..adaa7f60bf 100644 --- a/get-started/in-a-nutshell.md +++ b/get-started/in-a-nutshell.md @@ -393,7 +393,7 @@ Create CSV files that already include some sample data: ```sh cds add data --records 10 ``` -[Find the full set of options here.](../tools/cds-cli.md#data){.learn-more} +[Find the full set of options in the CLI reference.](../tools/cds-cli.md#data){.learn-more} ::: diff --git a/guides/deployment/to-cf.md b/guides/deployment/to-cf.md index 0257f2b7e1..10c55058e5 100644 --- a/guides/deployment/to-cf.md +++ b/guides/deployment/to-cf.md @@ -277,11 +277,11 @@ While `cds build` is already ran as part of `mbt build` in `cds up`, you can als cds build --production ``` -[Learn more about running and customizing `cds build`.](custom-builds){.learn-more style="margin-top: 10px"} +[Learn more about running and customizing `cds build`.](custom-builds){.learn-more} ::: -[Got errors? See the troubleshooting guide.](../../get-started/troubleshooting#mta){.learn-more style="margin-top: 10px"} +[Got errors? See the troubleshooting guide.](../../get-started/troubleshooting#mta){.learn-more} [Learn how to reduce the MTA archive size **during development**.](../../get-started/troubleshooting#reduce-mta-size){.learn-more} This process can take some minutes and finally logs an output like this: diff --git a/guides/multitenancy/index.md b/guides/multitenancy/index.md index ab4b624109..46ea73bf05 100644 --- a/guides/multitenancy/index.md +++ b/guides/multitenancy/index.md @@ -1172,7 +1172,7 @@ modules: TENANT_HOST_PATTERN: ^(.*)-${default-uri} ``` -[Learn more about _Defining MTA Extension Descriptors_](https://help.sap.com/docs/btp/sap-business-technology-platform/defining-mta-extension-descriptors?q=The%20MTA%20Deployment%20Extension%20Descriptor){.learn-more style="margin-top: 10px;"} +[Learn more about _Defining MTA Extension Descriptors_](https://help.sap.com/docs/btp/sap-business-technology-platform/defining-mta-extension-descriptors?q=The%20MTA%20Deployment%20Extension%20Descriptor){.learn-more} ::: From 479bc411123a160555b618c393012954bd7fc922 Mon Sep 17 00:00:00 2001 From: simonoswald <126768147+simonoswald@users.noreply.github.com> Date: Tue, 18 Nov 2025 14:23:26 +0100 Subject: [PATCH 47/91] cdl.md: Remove superflous , (#2210) --- cds/cdl.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cds/cdl.md b/cds/cdl.md index 278deb9b1f..39fb01b314 100644 --- a/cds/cdl.md +++ b/cds/cdl.md @@ -1882,7 +1882,7 @@ service MyOrders { ``` ::: tip -You can optionally add annotations such as `@readonly` or `@insertonly` to exposed entities, which, will be enforced by the CAP runtimes in Java and Node.js. +You can optionally add annotations such as `@readonly` or `@insertonly` to exposed entities, which will be enforced by the CAP runtimes in Java and Node.js. ::: Entities can be also exposed as views with parameters: From 867169f112cb116538cab446b01500784050321c Mon Sep 17 00:00:00 2001 From: Steffen Waldmann Date: Tue, 18 Nov 2025 14:27:49 +0100 Subject: [PATCH 48/91] Prefer `-a` instead of `--to-app-services` in `cds bind` (#2212) Much simpler and more intuitive. I just leave the one usage of `--to-app-services` here: https://cap.cloud.sap/docs/advanced/hybrid-testing#bindings-from-a-cloud-application --- advanced/hybrid-testing.md | 4 ++-- guides/multitenancy/index.md | 4 ++-- guides/multitenancy/old-mtx-migration.md | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/advanced/hybrid-testing.md b/advanced/hybrid-testing.md index 6683a3fd2f..93d549ffd6 100644 --- a/advanced/hybrid-testing.md +++ b/advanced/hybrid-testing.md @@ -458,10 +458,10 @@ cds bind --to my-service,redis-cache:my-key,bookshop-xsuaa --credentials \ '{ "my-service": { "onpremise_proxy_host": "localhost" }, "redis-cache:my-key":{ "hostname": "localhost", "port": 1234 }}' ``` -Use the service instance name in combination with the option `--to-app-services` if you want to create bindings for all service instances of your application: +Use the service instance name in combination with the option `-a` if you want to create bindings for all service instances of your application: ```sh -cds bind --to-app-services bookshop-srv --credentials \ +cds bind -a bookshop-srv --credentials \ '{ "my-service": { "onpremise_proxy_host": "localhost" }, "redis-cache":{ "hostname": "localhost", "port": 1234 }}' ``` diff --git a/guides/multitenancy/index.md b/guides/multitenancy/index.md index 46ea73bf05..56c66e7cfd 100644 --- a/guides/multitenancy/index.md +++ b/guides/multitenancy/index.md @@ -897,14 +897,14 @@ For faster turnaround cycles in development and testing, you can run the app loc To achieve this, bind your SaaS app and the MTX sidecar to its required cloud services, for example: ```sh -cds bind --to-app-services bookshop-srv +cds bind -a bookshop-srv ``` For testing the sidecar, make sure to run the command there as well: ```sh cd mtx/sidecar -cds bind --to-app-services bookshop-srv +cds bind -a bookshop-mtx ``` To generate the SAP HANA HDI files for deployment, go to your project root and run the build: diff --git a/guides/multitenancy/old-mtx-migration.md b/guides/multitenancy/old-mtx-migration.md index fdc81580db..5e46038677 100644 --- a/guides/multitenancy/old-mtx-migration.md +++ b/guides/multitenancy/old-mtx-migration.md @@ -420,7 +420,7 @@ See also [Extensibility configuration](./mtxs.md#extensibility-config) ### Verify Application Locally As first verification of your configuration changes, you can try to run your application locally in [hybrid mode](../../advanced/hybrid-testing#run-with-service-bindings). To bind all the service -that are bound to your existing application, you can call `cds bind --to-app-services `. Afterwards, you can run `cds run --profile hybrid --resolve-bindings`. +that are bound to your existing application, you can call `cds bind -a `. Afterwards, you can run `cds run --profile hybrid --resolve-bindings`. ### Migrate Tenant Content of Existing Applications From 7ba4355be0d5fd790d5a0602c653ab5a3dcc509e Mon Sep 17 00:00:00 2001 From: Steffen Waldmann Date: Tue, 18 Nov 2025 23:04:18 +0100 Subject: [PATCH 49/91] Cosmetic improvements for i18n guide --- guides/i18n.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/guides/i18n.md b/guides/i18n.md index 30e7977a25..b7f5562949 100644 --- a/guides/i18n.md +++ b/guides/i18n.md @@ -54,8 +54,8 @@ Then you can translate the texts in localized bundles, each with a language/loca ```sh _i18n/ - i18n.properties # dev main --› 'default fallback' - i18n_en.properties # English --› 'default language' + i18n.properties # dev main → 'default fallback' + i18n_en.properties # English → 'default language' i18n_de.properties # German i18n_zh_TW.properties # Traditional Chinese ... @@ -66,7 +66,7 @@ _i18n/ Recommendation is to put your properties files in a folder named `_i18n` in the root of your project, as in this example: -```txt +```zsh bookshop/ ├─ _i18n/ │ ├─ i18n_en.properties @@ -80,7 +80,7 @@ bookshop/ By default, text bundles are fetched from folders named *_i18n* or *i18n* in the neighborhood of models, i.e. all folders that contain `.cds` sources or parent folders thereof. For example, given the following project layout and sources: -```txt +```zsh bookshop/ ├─ app/ │ ├─ browse/ @@ -95,9 +95,9 @@ bookshop/ └─ readme.md ``` -We will be loading i18n bundles from all of these locations, if exist: +We will be loading i18n bundles from all of these locations, if existing: -```txt +```zsh bookshop/app/browse/_i18n bookshop/app/_i18n bookshop/srv/_i18n @@ -122,7 +122,6 @@ The format is as follows: | Book | Book | Buch | ... | | Books | Books | Bücher | ... | | ... | -{ style="width: auto"} With this CSV source: @@ -187,7 +186,8 @@ Upon incoming requests at runtime, the user's preferred language is determined a 2. The value of the `sap-language` URL parameter, but only if it's `1Q`, `2Q` or `3Q` as described below. 3. The first entry from the request's `Accept-Language` header. 2. Narrow to normalized locales as described below. -::: tip + +::: tip Differences between Node.js and Java runtimes CAP Node.js accepts formats following the available standards of POSIX and RFC 1766, and transforms them into normalized locales. CAP Java only accepts language codes following the standard of RFC 1766 (or [IETF's BCP 47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt)). ::: From 5fcdfe24bedee75ad02481cbf430bd8e0bf88ab5 Mon Sep 17 00:00:00 2001 From: Steffen Waldmann Date: Wed, 19 Nov 2025 07:44:51 +0100 Subject: [PATCH 50/91] Fix code fence languages for Temporal Data guide --- guides/temporal-data.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/guides/temporal-data.md b/guides/temporal-data.md index 64a4081025..6c91060341 100644 --- a/guides/temporal-data.md +++ b/guides/temporal-data.md @@ -158,7 +158,7 @@ READ requests without specifying any temporal query parameter will automatically For example, assumed the following OData query to read all employees with their current work assignments is processed on March 2019: -```cds +```http GET Employees? $expand=jobs($select=role&$expand=dept($select=name)) ``` @@ -188,7 +188,7 @@ The result set would be: We can run the same OData query as in the previous sample to read a snapshot data as valid on January 1, 2017 using the `sap-valid-at` query parameter: -```cds +```http GET Employees?sap-valid-at=date'2017-01-01' $expand=jobs($select=role&$expand=dept($select=name)) ``` @@ -218,7 +218,7 @@ Time-travel queries aren't supported on SQLite due to the lack of *session_conte We can run the same OData query as in the previous sample to read all history of data as valid since 2016 using the `sap-valid-from` query parameter: -```cds +```http GET Employees?sap-valid-from=date'2016-01-01' $expand=jobs($select=role&$expand=dept($select=name)) ``` @@ -238,7 +238,7 @@ The result set would be: > You would add `validFrom` in such time-period queries, for example: -```cds +```http GET Employees?sap-valid-from=date'2016-01-01' $expand=jobs($select=validFrom,role,dept/name) ``` @@ -265,7 +265,7 @@ entity Departments : temporal {/*...*/} When reading employees with all history since 2016, for example: -```cds +```http GET Employees?sap-valid-from=date'2016-01-01' $expand=jobs( $select=validFrom,role&$expand=dept( From c1ea510180273bf4fe874a9306e940d80151cc1f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 19 Nov 2025 16:02:24 +0100 Subject: [PATCH 51/91] chore(deps): update dependency markdownlint-cli to v0.46.0 (#2214) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR contains the following updates: | Package | Change | Age | Confidence | |---|---|---|---| | [markdownlint-cli](https://redirect.github.com/igorshubovych/markdownlint-cli) | [`0.45.0` -> `0.46.0`](https://renovatebot.com/diffs/npm/markdownlint-cli/0.45.0/0.46.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/markdownlint-cli/0.46.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/markdownlint-cli/0.45.0/0.46.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
igorshubovych/markdownlint-cli (markdownlint-cli) ### [`v0.46.0`](https://redirect.github.com/igorshubovych/markdownlint-cli/releases/tag/v0.46.0) [Compare Source](https://redirect.github.com/igorshubovych/markdownlint-cli/compare/v0.45.0...v0.46.0) - Replace `glob` dependency with `tinyglobby` (smaller and fewer dependencies) - Update `markdownlint` dependency to `0.39.0` - Add `MD060`/`table-column-style` - Improve `MD001`/`MD007`/`MD009`/`MD010`/`MD029`/`MD033`/`MD037`/`MD059` - Update all dependencies via `Dependabot`
--- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/capire/docs). Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package-lock.json | 595 +++++++++------------------------------------- 1 file changed, 115 insertions(+), 480 deletions(-) diff --git a/package-lock.json b/package-lock.json index a1817e8348..a7631514c0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -189,7 +189,6 @@ "integrity": "sha512-PTAFMJOpVtJweExEYYgdmSCC6n4V/R+ctDL3fRQy77ulZM/p+zMLIQC9c7HCQE1zqpauvVck3f2zYSejaUTtrw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@algolia/client-common": "5.38.0", "@algolia/requester-browser-xhr": "5.38.0", @@ -358,7 +357,6 @@ "dev": true, "hasInstallScript": true, "license": "Apache-2.0", - "peer": true, "peerDependencies": { "@sap/cds": ">=9.0.0", "@sap/cds-dk": "^9", @@ -560,8 +558,7 @@ "resolved": "https://registry.npmjs.org/@cspell/dict-css/-/dict-css-4.0.18.tgz", "integrity": "sha512-EF77RqROHL+4LhMGW5NTeKqfUd/e4OOv6EDFQ/UQQiFyWuqkEKyEz0NDILxOFxWUEVdjT2GQ2cC7t12B6pESwg==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/@cspell/dict-dart": { "version": "2.3.1", @@ -701,16 +698,14 @@ "resolved": "https://registry.npmjs.org/@cspell/dict-html/-/dict-html-4.0.12.tgz", "integrity": "sha512-JFffQ1dDVEyJq6tCDWv0r/RqkdSnV43P2F/3jJ9rwLgdsOIXwQbXrz6QDlvQLVvNSnORH9KjDtenFTGDyzfCaA==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/@cspell/dict-html-symbol-entities": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/@cspell/dict-html-symbol-entities/-/dict-html-symbol-entities-4.0.4.tgz", "integrity": "sha512-afea+0rGPDeOV9gdO06UW183Qg6wRhWVkgCFwiO3bDupAoyXRuvupbb5nUyqSTsLXIKL8u8uXQlJ9pkz07oVXw==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/@cspell/dict-java": { "version": "5.0.12", @@ -908,8 +903,7 @@ "resolved": "https://registry.npmjs.org/@cspell/dict-typescript/-/dict-typescript-3.2.3.tgz", "integrity": "sha512-zXh1wYsNljQZfWWdSPYwQhpwiuW0KPW1dSd8idjMRvSD0aSvWWHoWlrMsmZeRl4qM4QCEAjua8+cjflm41cQBg==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/@cspell/dict-vue": { "version": "3.0.5", @@ -1565,7 +1559,6 @@ "integrity": "sha512-S26Stp4zCy88tH94QbBv3XCuzRQiZ9yXofEILmglYTh/Ug/a9/umqvgFtYBAo3Lp0nsI/5/qH1CCrbdK3AP1Tw==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, @@ -1716,24 +1709,6 @@ "node": "20 || >=22" } }, - "node_modules/@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", - "dev": true, - "license": "ISC", - "dependencies": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/@jridgewell/sourcemap-codec": { "version": "1.5.5", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", @@ -2403,7 +2378,6 @@ "integrity": "sha512-JJCHeEJF4xzFyZSf2ToocvVE9dyHfNLTRXOauOxlmpfyaLg97G7Qp+L4bD132eB0onBG9bQj3eH8DzBm0hVvIw==", "dev": true, "license": "SEE LICENSE IN LICENSE", - "peer": true, "dependencies": { "@sap/cds-compiler": "^6.3", "@sap/cds-fiori": "^2", @@ -2719,7 +2693,6 @@ "integrity": "sha512-dVd04UKsfpINUnK0yBoYHDF3xu7xVH4BuDotC/xGuycx4CgbP48X/KF/586bcObxT0HENHXEU8Nqtu6NR+eKhw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@types/body-parser": "*", "@types/express-serve-static-core": "^4.17.33", @@ -2887,7 +2860,6 @@ "integrity": "sha512-tK3GPFWbirvNgsNKto+UmB/cRtn6TZfyw0D6IKrW55n6Vbs7KJoZtI//kpTKzE/DUmmnAFD8/Ca46s7Obs92/w==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@typescript-eslint/scope-manager": "8.46.4", "@typescript-eslint/types": "8.46.4", @@ -3369,6 +3341,7 @@ "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "mime-types": "~2.1.34", "negotiator": "0.6.3" @@ -3383,7 +3356,6 @@ "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "dev": true, "license": "MIT", - "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -3434,7 +3406,6 @@ "integrity": "sha512-8VJKIzheeI9cjuVJhU1hYEVetOTe7LvA+CujAI7yqvYsPtZfVEvv1pg9AeFNtHBg/ZoSLGU5LPijhcY5l3Ea9g==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@algolia/abtesting": "1.4.0", "@algolia/client-abtesting": "5.38.0", @@ -3462,32 +3433,6 @@ "dev": true, "license": "MIT" }, - "node_modules/ansi-regex": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", - "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/ansi-styles": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", - "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, "node_modules/argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", @@ -3500,7 +3445,8 @@ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/array-timsort": { "version": "1.0.3", @@ -3532,6 +3478,7 @@ "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "bytes": "3.1.2", "content-type": "~1.0.5", @@ -3557,6 +3504,7 @@ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "ms": "2.0.0" } @@ -3566,7 +3514,8 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/boolbase": { "version": "1.0.0", @@ -3604,6 +3553,7 @@ "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 0.8" } @@ -3614,6 +3564,7 @@ "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "es-errors": "^1.3.0", "function-bind": "^1.1.2" @@ -3628,6 +3579,7 @@ "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "call-bind-apply-helpers": "^1.0.2", "get-intrinsic": "^1.3.0" @@ -3835,6 +3787,7 @@ "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "safe-buffer": "5.2.1" }, @@ -3848,6 +3801,7 @@ "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 0.6" } @@ -3858,6 +3812,7 @@ "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 0.6" } @@ -3867,7 +3822,8 @@ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/copy-anything": { "version": "3.0.5", @@ -4170,6 +4126,7 @@ "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 0.8" } @@ -4190,6 +4147,7 @@ "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 0.8", "npm": "1.2.8000 || >= 1.4.16" @@ -4229,6 +4187,7 @@ "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "call-bind-apply-helpers": "^1.0.1", "es-errors": "^1.3.0", @@ -4238,26 +4197,13 @@ "node": ">= 0.4" } }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true, - "license": "MIT" - }, "node_modules/ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", "dev": true, - "license": "MIT" - }, - "node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/emoji-regex-xs": { "version": "1.0.0", @@ -4272,6 +4218,7 @@ "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 0.8" } @@ -4308,6 +4255,7 @@ "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 0.4" } @@ -4318,6 +4266,7 @@ "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 0.4" } @@ -4328,6 +4277,7 @@ "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "es-errors": "^1.3.0" }, @@ -4379,7 +4329,8 @@ "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/escape-string-regexp": { "version": "4.0.0", @@ -4400,7 +4351,6 @@ "integrity": "sha512-BhHmn2yNOFA9H9JmmIVKJmd288g9hrVRDkdoIgRCRuSySRUHH7r/DI6aAXW9T1WwUuY3DFgrcaqB+deURBLR5g==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.1", @@ -4665,6 +4615,7 @@ "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 0.6" } @@ -4675,6 +4626,7 @@ "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", @@ -4722,6 +4674,7 @@ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "ms": "2.0.0" } @@ -4731,7 +4684,8 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/extend-shallow": { "version": "2.0.1", @@ -4874,6 +4828,7 @@ "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "debug": "2.6.9", "encodeurl": "~2.0.0", @@ -4893,6 +4848,7 @@ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "ms": "2.0.0" } @@ -4902,7 +4858,8 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/find-up": { "version": "5.0.0", @@ -4968,34 +4925,17 @@ "integrity": "sha512-7Ke1jyybbbPZyZXFxEftUtxFGLMpE2n6A+z//m4CRDlj0hW+o3iYSmh8nFlYMurOiJVDmJRilUQtJr08KfIxlg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "tabbable": "^6.2.0" } }, - "node_modules/foreground-child": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", - "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", - "dev": true, - "license": "ISC", - "dependencies": { - "cross-spawn": "^7.0.6", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/forwarded": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 0.6" } @@ -5006,6 +4946,7 @@ "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 0.6" } @@ -5031,6 +4972,7 @@ "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", "dev": true, "license": "MIT", + "peer": true, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -5051,6 +4993,7 @@ "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "call-bind-apply-helpers": "^1.0.2", "es-define-property": "^1.0.1", @@ -5076,6 +5019,7 @@ "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "dunder-proto": "^1.0.1", "es-object-atoms": "^1.0.0" @@ -5084,30 +5028,6 @@ "node": ">= 0.4" } }, - "node_modules/glob": { - "version": "11.0.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.3.tgz", - "integrity": "sha512-2Nim7dha1KVkaiF4q6Dj+ngPPMdfvLJEOpZk/jKiUAkqKebpGAWQXAq9z1xu9HKu5lWfqw/FASuccEjyznjPaA==", - "dev": true, - "license": "ISC", - "dependencies": { - "foreground-child": "^3.3.1", - "jackspeak": "^4.1.1", - "minimatch": "^10.0.3", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^2.0.0" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "engines": { - "node": "20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/glob-parent": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", @@ -5121,22 +5041,6 @@ "node": ">=10.13.0" } }, - "node_modules/glob/node_modules/minimatch": { - "version": "10.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.3.tgz", - "integrity": "sha512-IPZ167aShDZZUMdRk66cyQAW3qr0WzbHkPdMYa8bzZhlHhO3jALbKdxcaak7W9FfT2rZNpQuUu4Od7ILEpXSaw==", - "dev": true, - "license": "ISC", - "dependencies": { - "@isaacs/brace-expansion": "^5.0.0" - }, - "engines": { - "node": "20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/global-directory": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/global-directory/-/global-directory-4.0.1.tgz", @@ -5172,6 +5076,7 @@ "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 0.4" }, @@ -5235,6 +5140,7 @@ "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 0.4" }, @@ -5248,6 +5154,7 @@ "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "function-bind": "^1.1.2" }, @@ -5327,6 +5234,7 @@ "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "depd": "2.0.0", "inherits": "2.0.4", @@ -5344,6 +5252,7 @@ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "safer-buffer": ">= 2.1.2 < 3" }, @@ -5434,7 +5343,8 @@ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "dev": true, - "license": "ISC" + "license": "ISC", + "peer": true }, "node_modules/ini": { "version": "4.1.1", @@ -5452,6 +5362,7 @@ "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 0.10" } @@ -5513,16 +5424,6 @@ "node": ">=0.10.0" } }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/is-glob": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", @@ -5577,26 +5478,10 @@ "dev": true, "license": "ISC" }, - "node_modules/jackspeak": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.1.1.tgz", - "integrity": "sha512-zptv57P3GpL+O0I7VdMJNBZCu+BPHVQUk55Ft8/QCJjTVxrnJHuVuX/0Bl2A6/+2oyR/ZMEuFKwmzqqZ/U5nPQ==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "engines": { - "node": "20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", "dev": true, "license": "MIT", "dependencies": { @@ -5749,16 +5634,6 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/lru-cache": { - "version": "11.2.2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.2.tgz", - "integrity": "sha512-F9ODfyqML2coTIsQpSkRHnLSZMtkU8Q+mSfcaIyKwy58u+8k5nvAYeiNhsyMARvzNcXJ9QfWVrcPsC9e9rAxtg==", - "dev": true, - "license": "ISC", - "engines": { - "node": "20 || >=22" - } - }, "node_modules/magic-string": { "version": "0.30.19", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.19.tgz", @@ -5806,9 +5681,9 @@ } }, "node_modules/markdownlint": { - "version": "0.38.0", - "resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.38.0.tgz", - "integrity": "sha512-xaSxkaU7wY/0852zGApM8LdlIfGCW8ETZ0Rr62IQtAnUMlMuifsg09vWJcNYeL4f0anvr8Vo4ZQar8jGpV0btQ==", + "version": "0.39.0", + "resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.39.0.tgz", + "integrity": "sha512-Xt/oY7bAiHwukL1iru2np5LIkhwD19Y7frlsiDILK62v3jucXCD6JXlZlwMG12HZOR+roHIVuJZrfCkOhp6k3g==", "dev": true, "license": "MIT", "dependencies": { @@ -5829,23 +5704,24 @@ } }, "node_modules/markdownlint-cli": { - "version": "0.45.0", - "resolved": "https://registry.npmjs.org/markdownlint-cli/-/markdownlint-cli-0.45.0.tgz", - "integrity": "sha512-GiWr7GfJLVfcopL3t3pLumXCYs8sgWppjIA1F/Cc3zIMgD3tmkpyZ1xkm1Tej8mw53B93JsDjgA3KOftuYcfOw==", + "version": "0.46.0", + "resolved": "https://registry.npmjs.org/markdownlint-cli/-/markdownlint-cli-0.46.0.tgz", + "integrity": "sha512-4gxTNzPjpLnY7ftrEZD4flPY0QBkQLiqezb6KURFSkV+vPHFOsYw8OMtY6fu82Yt8ghtSrWegpYdq1ix25VFLQ==", "dev": true, "license": "MIT", "dependencies": { - "commander": "~13.1.0", - "glob": "~11.0.2", - "ignore": "~7.0.4", - "js-yaml": "~4.1.0", + "commander": "~14.0.2", + "deep-extend": "~0.6.0", + "ignore": "~7.0.5", + "js-yaml": "~4.1.1", "jsonc-parser": "~3.3.1", "jsonpointer": "~5.0.1", "markdown-it": "~14.1.0", - "markdownlint": "~0.38.0", - "minimatch": "~10.0.1", + "markdownlint": "~0.39.0", + "minimatch": "~10.1.1", "run-con": "~1.3.2", - "smol-toml": "~1.3.4" + "smol-toml": "~1.5.2", + "tinyglobby": "~0.2.15" }, "bin": { "markdownlint": "markdownlint.js" @@ -5854,16 +5730,6 @@ "node": ">=20" } }, - "node_modules/markdownlint-cli/node_modules/commander": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-13.1.0.tgz", - "integrity": "sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - } - }, "node_modules/markdownlint-cli/node_modules/ignore": { "version": "7.0.5", "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", @@ -5875,11 +5741,11 @@ } }, "node_modules/markdownlint-cli/node_modules/minimatch": { - "version": "10.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.3.tgz", - "integrity": "sha512-IPZ167aShDZZUMdRk66cyQAW3qr0WzbHkPdMYa8bzZhlHhO3jALbKdxcaak7W9FfT2rZNpQuUu4Od7ILEpXSaw==", + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.1.1.tgz", + "integrity": "sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ==", "dev": true, - "license": "ISC", + "license": "BlueOak-1.0.0", "dependencies": { "@isaacs/brace-expansion": "^5.0.0" }, @@ -5890,19 +5756,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/markdownlint-cli/node_modules/smol-toml": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/smol-toml/-/smol-toml-1.3.4.tgz", - "integrity": "sha512-UOPtVuYkzYGee0Bd2Szz8d2G3RfMfJ2t3qVdZUAozZyAk+a0Sxa+QKix0YCwjL/A1RR0ar44nCxaoN9FxdJGwA==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">= 18" - }, - "funding": { - "url": "https://github.com/sponsors/cyyynthia" - } - }, "node_modules/markdownlint-micromark": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/markdownlint-micromark/-/markdownlint-micromark-0.1.2.tgz", @@ -5945,6 +5798,7 @@ "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 0.4" } @@ -6197,6 +6051,7 @@ "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 0.6" } @@ -6207,6 +6062,7 @@ "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", "dev": true, "license": "MIT", + "peer": true, "funding": { "url": "https://github.com/sponsors/sindresorhus" } @@ -6227,6 +6083,7 @@ "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 0.6" } @@ -6823,6 +6680,7 @@ "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", "dev": true, "license": "MIT", + "peer": true, "bin": { "mime": "cli.js" }, @@ -6836,6 +6694,7 @@ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 0.6" } @@ -6846,6 +6705,7 @@ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "mime-db": "1.52.0" }, @@ -6879,16 +6739,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, "node_modules/minisearch": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/minisearch/-/minisearch-7.2.0.tgz", @@ -6949,6 +6799,7 @@ "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 0.6" } @@ -6980,6 +6831,7 @@ "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 0.4" }, @@ -6993,6 +6845,7 @@ "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "ee-first": "1.1.1" }, @@ -7062,13 +6915,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/package-json-from-dist": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", - "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", - "dev": true, - "license": "BlueOak-1.0.0" - }, "node_modules/parent-module": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-2.0.0.tgz", @@ -7115,6 +6961,7 @@ "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 0.8" } @@ -7146,29 +6993,13 @@ "node": ">=8" } }, - "node_modules/path-scurry": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.0.tgz", - "integrity": "sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "lru-cache": "^11.0.0", - "minipass": "^7.1.2" - }, - "engines": { - "node": "20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/path-to-regexp": { "version": "0.1.12", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz", "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/perfect-debounce": { "version": "1.0.0", @@ -7278,6 +7109,7 @@ "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "forwarded": "0.2.0", "ipaddr.js": "1.9.1" @@ -7312,6 +7144,7 @@ "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", "dev": true, "license": "BSD-3-Clause", + "peer": true, "dependencies": { "side-channel": "^1.0.6" }, @@ -7349,6 +7182,7 @@ "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 0.6" } @@ -7359,6 +7193,7 @@ "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "bytes": "3.1.2", "http-errors": "2.0.0", @@ -7539,14 +7374,16 @@ "url": "https://feross.org/support" } ], - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/sass": { "version": "1.94.0", @@ -7554,7 +7391,6 @@ "integrity": "sha512-Dqh7SiYcaFtdv5Wvku6QgS5IGPm281L+ZtVD1U2FJa7Q0EFRlq8Z3sjYtz6gYObsYThUOz9ArwFqPZx+1azILQ==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "chokidar": "^4.0.0", "immutable": "^5.0.2", @@ -7611,6 +7447,7 @@ "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "debug": "2.6.9", "depd": "2.0.0", @@ -7636,6 +7473,7 @@ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "ms": "2.0.0" } @@ -7645,7 +7483,8 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/send/node_modules/encodeurl": { "version": "1.0.2", @@ -7653,6 +7492,7 @@ "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 0.8" } @@ -7663,6 +7503,7 @@ "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "encodeurl": "~2.0.0", "escape-html": "~1.0.3", @@ -7678,7 +7519,8 @@ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", "dev": true, - "license": "ISC" + "license": "ISC", + "peer": true }, "node_modules/shebang-command": { "version": "2.0.0", @@ -7752,6 +7594,7 @@ "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "es-errors": "^1.3.0", "object-inspect": "^1.13.3", @@ -7772,6 +7615,7 @@ "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "es-errors": "^1.3.0", "object-inspect": "^1.13.3" @@ -7789,6 +7633,7 @@ "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", @@ -7808,6 +7653,7 @@ "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", @@ -7822,23 +7668,10 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/smol-toml": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/smol-toml/-/smol-toml-1.4.2.tgz", - "integrity": "sha512-rInDH6lCNiEyn3+hH8KVGFdbjc099j47+OSgbMrfDYX1CmXLfdKd7qi6IfcWj2wFxvSVkuI46M+wPGYfEOEj6g==", + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/smol-toml/-/smol-toml-1.5.2.tgz", + "integrity": "sha512-QlaZEqcAH3/RtNyet1IPIYPsEWAaYyXXv1Krsi+1L/QHppjX4Ifm8MQsBISz9vE8cHicIq3clogsheili5vhaQ==", "dev": true, "license": "BSD-3-Clause", "engines": { @@ -7892,74 +7725,11 @@ "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 0.8" } }, - "node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dev": true, - "license": "MIT", - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/string-width-cjs": { - "name": "string-width", - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width-cjs/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, - "license": "MIT" - }, - "node_modules/string-width-cjs/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/stringify-entities": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz", @@ -7975,46 +7745,6 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/strip-ansi": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", - "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/strip-ansi-cjs": { - "name": "strip-ansi", - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/strip-bom-string": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz", @@ -8107,6 +7837,7 @@ "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=0.6" } @@ -8193,6 +7924,7 @@ "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "media-typer": "0.3.0", "mime-types": "~2.1.24" @@ -8309,6 +8041,7 @@ "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 0.8" } @@ -8336,6 +8069,7 @@ "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 0.4.0" } @@ -8346,6 +8080,7 @@ "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 0.8" } @@ -8386,7 +8121,6 @@ "integrity": "sha512-j3lYzGC3P+B5Yfy/pfKNgVEg4+UtcIJcVRt2cDjIOmhLourAqPqf8P7acgxeiSgUB7E3p2P8/3gNIgDLpwzs4g==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "esbuild": "^0.21.3", "postcss": "^8.4.43", @@ -8529,7 +8263,6 @@ "integrity": "sha512-toaZjQ3a/G/mYaLSbV+QsQhIdMo9x5rrqIpYRObsJ6T/J+RyCSFwN2LHNVH9v8uIcljDNa3QzPVdv3Y6b9hAJQ==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@vue/compiler-dom": "3.5.22", "@vue/compiler-sfc": "3.5.22", @@ -8607,104 +8340,6 @@ "node": ">=0.10.0" } }, - "node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs": { - "name": "wrap-ansi", - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, - "license": "MIT" - }, - "node_modules/wrap-ansi-cjs/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/xdg-basedir": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-5.1.0.tgz", From ddc564961c0e036d62972f86037dd1c570904649 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Jeglinsky?= Date: Fri, 21 Nov 2025 11:20:14 +0100 Subject: [PATCH 52/91] Remove custom analysis step from PR workflow --- .github/workflows/PR-SAP.yml | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/.github/workflows/PR-SAP.yml b/.github/workflows/PR-SAP.yml index 0547e3f285..316e90d111 100644 --- a/.github/workflows/PR-SAP.yml +++ b/.github/workflows/PR-SAP.yml @@ -57,18 +57,3 @@ jobs: npm run docs:preview -- --port 5555 & sleep 2 .github/etc/blc.js http://localhost:5555/docs/ - analyze: - runs-on: ubuntu-latest - permissions: - contents: write - pull-requests: write - statuses: write - steps: - - uses: actions/checkout@v5 - - name: Run Custom Analysis - uses: acrolinx/nextgen-analyzer@v0.0.7 - with: - acrolinx_token: ${{ secrets.ACROLINX_KEY }} - github_token: ${{ secrets.GITHUB_TOKEN }} - style-guide: 'chicago' - add_commit_status: 'true' \ No newline at end of file From 1ef75c050edeca8439d2e3cd703a78f9e15fc40e Mon Sep 17 00:00:00 2001 From: Johannes Vogt Date: Fri, 21 Nov 2025 17:11:39 +0100 Subject: [PATCH 53/91] cds build is a separate step for `cds up -2 k8s` (#2222) --- guides/deployment/to-kyma.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/guides/deployment/to-kyma.md b/guides/deployment/to-kyma.md index 95396b3be8..b4c9c8b067 100644 --- a/guides/deployment/to-kyma.md +++ b/guides/deployment/to-kyma.md @@ -194,6 +194,9 @@ npm i --package-lock-only mtx/sidecar # If package-lock.json doesn't exist npm i --package-lock-only +# Build tasks +cds build --production + # Buildpack commands pack build bookshop-srv:latest --path gen/srv --builder builder-jammy-base --env BP_NODE_RUN_SCRIPTS="" pack build bookshop-html5-deployer:latest --path app/html5-deployer --builder builder-jammy-base --env BP_NODE_RUN_SCRIPTS="" From 880049d61932cc0f147302c4f4517b5ab03df092 Mon Sep 17 00:00:00 2001 From: Steffen Waldmann Date: Mon, 24 Nov 2025 12:54:54 +0100 Subject: [PATCH 54/91] Link to CI/CD documentation after doing ad-hoc deployment (#2230) --- guides/deployment/cicd.md | 22 +++++++++++----------- guides/deployment/to-cf.md | 5 +++++ guides/deployment/to-kyma.md | 5 ++++- 3 files changed, 20 insertions(+), 12 deletions(-) diff --git a/guides/deployment/cicd.md b/guides/deployment/cicd.md index d525289b6e..d28cde448d 100644 --- a/guides/deployment/cicd.md +++ b/guides/deployment/cicd.md @@ -31,7 +31,7 @@ cds add github-actions ### Deploy to Staging -The created workflows do a _Staging_ deployment for pushes on the `main` branch, for example after merging pull requests. +The created workflows do a _Staging_ deployment for pushes on the `main` branch, usually after merging pull requests. If no defaults are maintained in your GitHub org, a set of variables and secrets has to be provided. Open the repository and navigate here to maintain them: @@ -41,19 +41,19 @@ For a minimal deployment setup, these variables and secrets are required: #### Cloud Foundry -| **Type** | **Name** | **Note** | **Example** | -|------------|----------------|-----------|-------------------| -| Variable | `CF_API` | API URL | `https://api.cf.example.com` | -| | `CF_USERNAME` | Username | `user@example.com` | -| | `CF_ORG` | Org Name | `my-org` | -| | `CF_SPACE` | Space Name| `my-space` | -| Secret | `CF_PASSWORD` | Password | `********` | +| **Type** | **Name** | **Note** | **Example** | +|------------|----------------|------------|-------------------| +| Variable | `CF_API` | API URL | `https://api.cf.example.com` | +| | `CF_USERNAME` | Username | `user@example.com` | +| | `CF_ORG` | Org Name | `my-org` | +| | `CF_SPACE` | Space Name | `my-space` | +| Secret | `CF_PASSWORD` | Password | `********` | #### Kyma | **Type** | **Name** | **Note** | **Example** | |------------|----------------|-----------|-------------------| -| Secret | `KUBE_CONFIG` | Base64-encoded Kubernetes config | see below | +| Secret | `KUBE_CONFIG` | Base64-encoded Kubernetes config | see below | ::: details Example of a decoded `KUBE_CONFIG` @@ -80,7 +80,7 @@ contexts: user: ci-user current-context: ci-context ``` -[Learn more about configuring Kubernetes](./to-kyma#configure-kubernetes){.learn-more style="margin-top:20px"} +[Learn more about configuring Kubernetes](./to-kyma#configure-kubernetes){.learn-more} ::: @@ -107,7 +107,7 @@ You can now simply push any CAP project that was set up using `cds add github-ac For the actual release we want to override org-wide sandbox variables to deploy to a different subaccount/organization and database. -Go to `Settings` → `Environments` → `New environment` → enter "Production". +Go to **Settings** → **Environments** → **New environment** → enter "Production". Now override org-wide variables (e.g. `CF_ORG` and `CF_SPACE` in Cloud Foundry) to use a dedicated subaccount you created for the release deployment. diff --git a/guides/deployment/to-cf.md b/guides/deployment/to-cf.md index 10c55058e5..746d9aa672 100644 --- a/guides/deployment/to-cf.md +++ b/guides/deployment/to-cf.md @@ -382,6 +382,11 @@ sed -i 's/org.springframework.boot.loader.JarLauncher/-Dloader.main=com.sap.cds. ::: +## Next Up... + +You would then [set up your CI/CD](../deployment/cicd) for automating deployments, for example after merging pull requests. + + ---- +## Next Up... + +You would then [set up your CI/CD](../deployment/cicd) for automating deployments, for example after merging pull requests. + {style="margin-top:11em"} ## Deep Dives From 2b86b934a3273cf9af069789a64daea8cd2a9c8a Mon Sep 17 00:00:00 2001 From: Steffen Waldmann Date: Mon, 24 Nov 2025 12:58:50 +0100 Subject: [PATCH 55/91] Use comma-separated CSV files (#2229) --- guides/i18n.md | 8 ++++---- guides/localized-data.md | 22 +++++++++++----------- guides/using-services.md | 8 ++++---- 3 files changed, 19 insertions(+), 19 deletions(-) diff --git a/guides/i18n.md b/guides/i18n.md index b7f5562949..cdab641992 100644 --- a/guides/i18n.md +++ b/guides/i18n.md @@ -126,9 +126,9 @@ The format is as follows: With this CSV source: ```csv -key;en;de;zh_CN;... -Book;Book;Buch;... -Books;Books;Bücher;... +key,en,de,zh_CN,... +Book,Book,Buch,... +Books,Books,Bücher,... ... ``` @@ -233,7 +233,7 @@ In this example we removed `es_CO` and `es_MX` from the list, and added `pt_BR`. In CAP Java the preserved locales can be configured via the cds.locales.normalization.includeList [property](../java/developing-applications/properties#cds-locales-normalization). -::: warning *Note:* +::: warning *Note:* However this list is configured, ensure to have translations for the listed locales, as the fallback language will otherwise be `en`. ::: diff --git a/guides/localized-data.md b/guides/localized-data.md index 0537dabe48..1d80e34924 100644 --- a/guides/localized-data.md +++ b/guides/localized-data.md @@ -413,12 +413,12 @@ For example, _Books.csv_ can look as follows: ::: code-group ```csv [Books.csv] -ID;title;descr;author_ID;stock;price;currency_code;genre_ID -201;Wuthering Heights;Wuthering Heights, Emily Brontë's only novel ...;101;12;11.11;GBP;11 -207;Jane Eyre;Jane Eyre is a novel by English writer ...;107;11;12.34;GBP;11 -251;The Raven;The Raven is a narrative poem by ...;150;333;13.13;USD;16 -252;Eleonora;Eleonora is a short story by ...;150;555;14;USD;16 -271;Catweazle;Catweazle is a British fantasy ...;170;22;150;JPY;13 +ID,title,descr,author_ID,stock,price,currency_code,genre_ID +201,Wuthering Heights,"Wuthering Heights, Emily Brontë's only novel ...",101,12,11.11,GBP,11 +207,Jane Eyre,Jane Eyre is a novel by English writer ...,107,11,12.34,GBP,11 +251,The Raven,The Raven is a narrative poem by ...,150,333,13.13,USD,16 +252,Eleonora,Eleonora is a short story by ...,150,555,14,USD,16 +271,Catweazle,Catweazle is a British fantasy ...,170,22,150,JPY,13 ... ``` ::: @@ -427,11 +427,11 @@ This is the corresponding _Books_texts.csv_: ::: code-group ```csv [Books_texts.csv] -ID;locale;title;descr -201;de;Sturmhöhe;Sturmhöhe (Originaltitel: Wuthering Heights) ist der einzige Roman... -201;fr;Les Hauts de Hurlevent;Les Hauts de Hurlevent (titre original : Wuthering Heights)... -207;de;Jane Eyre;Jane Eyre. Eine Autobiographie (Originaltitel: Jane Eyre. An Autobiography)... -252;de;Eleonora;Eleonora ist eine Erzählung von Edgar Allan Poe. Sie wurde 1841... +ID,locale,title,descr +201,de,Sturmhöhe,Sturmhöhe (Originaltitel: Wuthering Heights) ist der einzige Roman... +201,fr,Les Hauts de Hurlevent,Les Hauts de Hurlevent (titre original : Wuthering Heights)... +207,de,Jane Eyre,Jane Eyre. Eine Autobiographie (Originaltitel: Jane Eyre. An Autobiography)... +252,de,Eleonora,Eleonora ist eine Erzählung von Edgar Allan Poe. Sie wurde 1841... ... ``` ::: diff --git a/guides/using-services.md b/guides/using-services.md index ee2b400716..d4cd4de100 100644 --- a/guides/using-services.md +++ b/guides/using-services.md @@ -257,10 +257,10 @@ The CSV file needs to be added to the _db/data_ folder. {.java} ::: code-group ```csv [API_BUSINESS_PARTNER-A_BusinessPartner.csv] -BusinessPartner;BusinessPartnerFullName;BusinessPartnerIsBlocked -1004155;Williams Electric Drives;false -1004161;Smith Batteries Ltd;false -1004100;Johnson Automotive Supplies;true +BusinessPartner,BusinessPartnerFullName,BusinessPartnerIsBlocked +1004155,Williams Electric Drives,false +1004161,Smith Batteries Ltd,false +1004100,Johnson Automotive Supplies,true ``` ::: From 830d173d63e7a0e3cfdad4bbf3e794b4ec2a909e Mon Sep 17 00:00:00 2001 From: Steffen Waldmann Date: Mon, 24 Nov 2025 12:59:38 +0100 Subject: [PATCH 56/91] Editing "Localized Data" guide (#2231) --- guides/localized-data.md | 38 ++++++++++++++++++++------------------ 1 file changed, 20 insertions(+), 18 deletions(-) diff --git a/guides/localized-data.md b/guides/localized-data.md index 1d80e34924..87161e9b46 100644 --- a/guides/localized-data.md +++ b/guides/localized-data.md @@ -80,9 +80,6 @@ entity localized.Books as select from Books {*, coalesce (localized.descr, descr) as descr }; ``` -::: warning Note: -In contrast to former versions, with CDS compiler v2 we don't add such entities to CSN anymore, but only on generated SQL DDL output. -::: ### Resolving localized texts via views @@ -124,7 +121,9 @@ entity OpenBookView as select from Books {*} Include the `localized` association: ```cds -entity ClosedBookView as select from Books { ID, title, descr, localized }; +entity ClosedBookView as select from Books { + ID, title, descr, localized +}; ``` @@ -266,9 +265,9 @@ using { Books } from './books'; service CatalogService { entity BooksList as projection on Books { ID, title, price }; entity BooksDetails as projection on Books; - entity BooksShort as projection on Books { + entity BooksShort as projection on Books { ID, price, - substr(title, 0, 10) as title : localized String(10), + substr(title, 0, 10) as title : localized String(10), }; } ``` @@ -285,15 +284,16 @@ entity localized.CatalogService.BooksList as entity localized.CatalogService.BooksDetails as SELECT from localized.Books; - + entity localized.CatalogService.BooksShort as SELECT from localized.Books { ID, price, substr(title, 0, 10) as title : localized String(10), }; ``` -::: warning Note: -Note that these `localized.` entities are not part of CSN and aren't exposed through OData. -They are only generated for SQL. +::: warning `localized` entities are only generated for SQL + +They are not part of the CSN or exposed via OData. + ::: ### Read Operations @@ -312,7 +312,9 @@ service CatalogService { In Node.js applications, for requests with an `$expand` query option on entities annotated with `@cds.localized: false`, the expanded properties are not translated. ```http -GET /BooksDetails?$expand=authors //> all fields from authors are non-localized defaults, if BooksDetails is annotated with `@cds.localized: false` +// all fields from authors are non-localized defaults if BooksDetails +// is annotated with `@cds.localized: false` +GET /BooksDetails?$expand=authors ``` ### Write Operations @@ -320,7 +322,7 @@ GET /BooksDetails?$expand=authors //> all fields from authors are non-localized Since the corresponding text table is linked through composition, you can use deep inserts or upserts to fill in language-specific texts. ```http -POST /Entity HTTP/1.1 +POST /Entity HTTP/1.1 Content-Type: application/json { @@ -333,7 +335,7 @@ Content-Type: application/json If you want to add a language-specific text to an existing entity, perform a `POST` request to the text table of the entity through navigation. ```http -POST /Entity()/texts HTTP/1.1 +POST /Entity()/texts HTTP/1.1 Content-Type: application/json { @@ -346,7 +348,7 @@ Content-Type: application/json To update the language-specific texts of an entity along with the default fallback text, you can perform a deep update as a `PUT` or `PATCH` request to the entity through navigation. ```http -PUT/PATCH /Entity() HTTP/1.1 +PUT/PATCH /Entity() HTTP/1.1 Content-Type: application/json { @@ -359,15 +361,15 @@ Content-Type: application/json To update a single language-specific text field, perform a `PUT` or a `PATCH` request to the entity's text field via navigation. ```http -PUT/PATCH /Entity()/texts(ID=,locale='')/ HTTP/1.1 +PUT/PATCH /Entity()/texts(ID=,locale='')/ HTTP/1.1 Content-Type: application/json { - {"name": "Ein neuer Name"} ] + {"name": "Ein neuer Name"} } ``` -::: warning *Note:* +::: warning Language codes need to follow BCP 47 Accepted language codes in the `locale` property need to follow the [BCP 47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt) standard but use __underscore__ (`_`) instead of __hyphen__ (`-`), for example `en_GB`. ::: @@ -376,7 +378,7 @@ Accepted language codes in the `locale` property need to follow the [BCP 47](htt To delete a locale's language-specific texts of an entity, perform a `DELETE` request to the entity's texts table through navigation. Specify the entity's key and the locale that you want to delete. ```http -DELETE /Entity()/texts(ID=,locale='') HTTP/1.1 +DELETE /Entity()/texts(ID=,locale='') HTTP/1.1 ``` ## Nested Localized Data From c928b7b42c3a4c75c48e56ee441197a26945cb33 Mon Sep 17 00:00:00 2001 From: Steffen Waldmann Date: Mon, 24 Nov 2025 13:11:06 +0100 Subject: [PATCH 57/91] Fix syntax in Localized Data sample --- guides/localized-data.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/guides/localized-data.md b/guides/localized-data.md index 87161e9b46..9f85a10432 100644 --- a/guides/localized-data.md +++ b/guides/localized-data.md @@ -365,7 +365,7 @@ PUT/PATCH /Entity()/texts(ID=,locale='')/ Date: Tue, 25 Nov 2025 13:24:56 +0100 Subject: [PATCH 58/91] chore(deps): update dependency cspell to v9.3.2 (#2202) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR contains the following updates: | Package | Change | Age | Confidence | |---|---|---|---| | [cspell](https://cspell.org/) ([source](https://redirect.github.com/streetsidesoftware/cspell/tree/HEAD/packages/cspell)) | [`9.3.0` -> `9.3.2`](https://renovatebot.com/diffs/npm/cspell/9.3.0/9.3.2) | [![age](https://developer.mend.io/api/mc/badges/age/npm/cspell/9.3.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/cspell/9.3.0/9.3.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
streetsidesoftware/cspell (cspell) ### [`v9.3.2`](https://redirect.github.com/streetsidesoftware/cspell/blob/HEAD/packages/cspell/CHANGELOG.md#v932-2025-11-15) [Compare Source](https://redirect.github.com/streetsidesoftware/cspell/compare/v9.3.1...v9.3.2) ##### Fixes
fix: Add Zig programming language dictionary (#​7998) ##### fix: Add Zig programming language dictionary ([#​7998](https://redirect.github.com/streetsidesoftware/cspell/pull/7998)) ***
fix: Search for TypeScript config files. (#​7997) ##### fix: Search for TypeScript config files. ([#​7997](https://redirect.github.com/streetsidesoftware/cspell/pull/7997)) TypeScript files were allowed, but would not be automatically found. ***
##### Dictionary Updates
fix: Workflow Bot -- Update Dictionaries (main) (#​8004) ##### fix: Workflow Bot -- Update Dictionaries (main) ([#​8004](https://redirect.github.com/streetsidesoftware/cspell/pull/8004)) ### [`v9.3.1`](https://redirect.github.com/streetsidesoftware/cspell/blob/HEAD/packages/cspell/CHANGELOG.md#v931-2025-11-12) [Compare Source](https://redirect.github.com/streetsidesoftware/cspell/compare/v9.3.0...v9.3.1) ##### Fixes
fix: Support Deno (#​7966) ##### fix: Support Deno ([#​7966](https://redirect.github.com/streetsidesoftware/cspell/pull/7966))
--- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/capire/docs). Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package-lock.json | 266 ++++++++++++++++++++++++---------------------- 1 file changed, 137 insertions(+), 129 deletions(-) diff --git a/package-lock.json b/package-lock.json index a7631514c0..53ce6a5a66 100644 --- a/package-lock.json +++ b/package-lock.json @@ -369,15 +369,15 @@ } }, "node_modules/@cspell/cspell-bundled-dicts": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/@cspell/cspell-bundled-dicts/-/cspell-bundled-dicts-9.3.0.tgz", - "integrity": "sha512-rf5SAdg1EmgCBIo/zFEAIjydlO+VtVLR6oUVeD4rIE7zIPrPdJb0OMUGsxfOH7uePyhcfIxPYTjneQla0e5Ljw==", + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/@cspell/cspell-bundled-dicts/-/cspell-bundled-dicts-9.3.2.tgz", + "integrity": "sha512-OmKzq/0FATHU671GKMzBrTyLdm25Wnziva7h4ylumVn1wnwWsXGef5bgXD7iuApqfqH9SzxsU0NtTB8m8vwEHQ==", "dev": true, "license": "MIT", "dependencies": { "@cspell/dict-ada": "^4.1.1", "@cspell/dict-al": "^1.1.1", - "@cspell/dict-aws": "^4.0.15", + "@cspell/dict-aws": "^4.0.16", "@cspell/dict-bash": "^4.2.2", "@cspell/dict-companies": "^3.2.7", "@cspell/dict-cpp": "^6.0.14", @@ -416,7 +416,7 @@ "@cspell/dict-markdown": "^2.0.12", "@cspell/dict-monkeyc": "^1.0.11", "@cspell/dict-node": "^5.0.8", - "@cspell/dict-npm": "^5.2.20", + "@cspell/dict-npm": "^5.2.22", "@cspell/dict-php": "^4.1.0", "@cspell/dict-powershell": "^5.0.15", "@cspell/dict-public-licenses": "^2.0.15", @@ -426,35 +426,36 @@ "@cspell/dict-rust": "^4.0.12", "@cspell/dict-scala": "^5.0.8", "@cspell/dict-shell": "^1.1.2", - "@cspell/dict-software-terms": "^5.1.11", + "@cspell/dict-software-terms": "^5.1.13", "@cspell/dict-sql": "^2.2.1", "@cspell/dict-svelte": "^1.0.7", "@cspell/dict-swift": "^2.0.6", "@cspell/dict-terraform": "^1.1.3", "@cspell/dict-typescript": "^3.2.3", - "@cspell/dict-vue": "^3.0.5" + "@cspell/dict-vue": "^3.0.5", + "@cspell/dict-zig": "^1.0.0" }, "engines": { "node": ">=20" } }, "node_modules/@cspell/cspell-json-reporter": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/@cspell/cspell-json-reporter/-/cspell-json-reporter-9.3.0.tgz", - "integrity": "sha512-bvpLNS73/SN3969ksipVSYDdMYsxYZqeBDkcA2yKJZ9eHRY/tHUbjTTIvyvlCLODzUiop2RFGrvDPcjyam/FoQ==", + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/@cspell/cspell-json-reporter/-/cspell-json-reporter-9.3.2.tgz", + "integrity": "sha512-YRgpeHN9uY8kUlIw9q+8zJ0tRTAJMbfBTGzCq9Puah09NeMWlRMFPUkXVrkdic6NA7etboZ+zEdoZwRO9EmhiA==", "dev": true, "license": "MIT", "dependencies": { - "@cspell/cspell-types": "9.3.0" + "@cspell/cspell-types": "9.3.2" }, "engines": { "node": ">=20" } }, "node_modules/@cspell/cspell-pipe": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/@cspell/cspell-pipe/-/cspell-pipe-9.3.0.tgz", - "integrity": "sha512-LEl2TYvXnGk/D+Vjq5DBsNQuLsmn3/2QV9dxteK5e323pJRcpEosq76elzsYpVLuB3s1hp2pFQhppWk69Gx2CQ==", + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/@cspell/cspell-pipe/-/cspell-pipe-9.3.2.tgz", + "integrity": "sha512-REF7ibG79WLEynIMUss/IRDCdYEb1nlE1rj/gt2CbPFzLa6t5MRwW2lajEvXS6/WgbMtsTVHAWi3ALqJzCwxng==", "dev": true, "license": "MIT", "engines": { @@ -462,9 +463,9 @@ } }, "node_modules/@cspell/cspell-resolver": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/@cspell/cspell-resolver/-/cspell-resolver-9.3.0.tgz", - "integrity": "sha512-AOIC6xV2XuEWKy/K/CUBHQ7caavDnjb2zflP25j7fGMWpS/GIGKLPjgGQUHFbgNSSy9UY2ZGV7MVCsnD7moW5Q==", + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/@cspell/cspell-resolver/-/cspell-resolver-9.3.2.tgz", + "integrity": "sha512-jLN2Aa/vxm8+IBvTd884SwPEfjxnDwIEPBT3hmqgLlKuUHQ3FMG27lsM4Ik9L2KWBXMgV/wGz4BaxfhKI41Ttw==", "dev": true, "license": "MIT", "dependencies": { @@ -475,9 +476,9 @@ } }, "node_modules/@cspell/cspell-service-bus": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/@cspell/cspell-service-bus/-/cspell-service-bus-9.3.0.tgz", - "integrity": "sha512-e9ZfG1VJ/kbzh2LBW/TJImEWcEUuBMYSDnIYbQCsclKAWyF3g8eLGxoX7xDbZ82USo4IU2tqYmrDvPcUD8CHxg==", + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/@cspell/cspell-service-bus/-/cspell-service-bus-9.3.2.tgz", + "integrity": "sha512-/rB8LazM0JzKL+AvZa5fEpLutmwy5QFMpzw8HJd+rDGkzb5r79hURWSRo84QArgaskUqA9XlOHSieDE9pt+WAA==", "dev": true, "license": "MIT", "engines": { @@ -485,9 +486,9 @@ } }, "node_modules/@cspell/cspell-types": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/@cspell/cspell-types/-/cspell-types-9.3.0.tgz", - "integrity": "sha512-WN3R4nqQ7BEgS8UEoPIwNBRuSFT/8GImqXmlx7EHmzBAhevWjF3IDF+OEtokRJ95qik6a4xqJJTJgi624UxDFg==", + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/@cspell/cspell-types/-/cspell-types-9.3.2.tgz", + "integrity": "sha512-l4H8bMAmdzCbXHO8y1JZiAKszrPEiuLFKWrbhCacHF0iP+PIc/yuQp7cO70m0p70vArRfih6kgGyHFaCy47CfA==", "dev": true, "license": "MIT", "engines": { @@ -509,9 +510,9 @@ "license": "MIT" }, "node_modules/@cspell/dict-aws": { - "version": "4.0.15", - "resolved": "https://registry.npmjs.org/@cspell/dict-aws/-/dict-aws-4.0.15.tgz", - "integrity": "sha512-aPY7VVR5Os4rz36EaqXBAEy14wR4Rqv+leCJ2Ug/Gd0IglJpM30LalF3e2eJChnjje3vWoEC0Rz3+e5gpZG+Kg==", + "version": "4.0.16", + "resolved": "https://registry.npmjs.org/@cspell/dict-aws/-/dict-aws-4.0.16.tgz", + "integrity": "sha512-a681zShZbtTo947NvTYGLer95ZDQw1ROKvIFydak1e0OlfFCsNdtcYTupn0nbbYs53c9AO7G2DU8AcNEAnwXPA==", "dev": true, "license": "MIT" }, @@ -568,9 +569,9 @@ "license": "MIT" }, "node_modules/@cspell/dict-data-science": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/@cspell/dict-data-science/-/dict-data-science-2.0.11.tgz", - "integrity": "sha512-Dt+83nVCcF+dQyvFSaZjCKt1H5KbsVJFtH2X7VUfmIzQu8xCnV1fUmkhBzGJ+NiFs99Oy9JA6I9EjeqExzXk7g==", + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/@cspell/dict-data-science/-/dict-data-science-2.0.12.tgz", + "integrity": "sha512-vI/mg6cI28IkFcpeINS7cm5M9HWemmXSTnxJiu3nmc4VAGx35SXIEyuLGBcsVzySvDablFYf4hsEpmg1XpVsUQ==", "dev": true, "license": "MIT" }, @@ -791,9 +792,9 @@ "license": "MIT" }, "node_modules/@cspell/dict-npm": { - "version": "5.2.20", - "resolved": "https://registry.npmjs.org/@cspell/dict-npm/-/dict-npm-5.2.20.tgz", - "integrity": "sha512-tJRv1qEdW3f8fxK/D2huoqkSvM6ogz55hAt9RTdB7tZy57wio9Tkj+xfi2DIeOlmf6e94c6pNPZIC/o5rclMhw==", + "version": "5.2.23", + "resolved": "https://registry.npmjs.org/@cspell/dict-npm/-/dict-npm-5.2.23.tgz", + "integrity": "sha512-cnlPGzhNkbXFLFURfjzwML2LjHMofqJkemR7lLo9Jwa9IptvzeTn4nOtJMSGfkxNrZPf/IvQ7rH5hamsUQLQ3A==", "dev": true, "license": "MIT" }, @@ -819,13 +820,13 @@ "license": "MIT" }, "node_modules/@cspell/dict-python": { - "version": "4.2.21", - "resolved": "https://registry.npmjs.org/@cspell/dict-python/-/dict-python-4.2.21.tgz", - "integrity": "sha512-M9OgwXWhpZqEZqKU2psB2DFsT8q5SwEahkQeIpNIRWIErjwG7I9yYhhfvPz6s5gMCMhhb3hqcPJTnmdgqGrQyg==", + "version": "4.2.22", + "resolved": "https://registry.npmjs.org/@cspell/dict-python/-/dict-python-4.2.22.tgz", + "integrity": "sha512-rgF7DuleVK2lkzlw33jjEfxS2a0CU5kwAhOqf5B6XkuaPbqZ/0g0LBCdwglAGccYu7sBuvxRS8Yubk+ytSAFTg==", "dev": true, "license": "MIT", "dependencies": { - "@cspell/dict-data-science": "^2.0.11" + "@cspell/dict-data-science": "^2.0.12" } }, "node_modules/@cspell/dict-r": { @@ -864,9 +865,9 @@ "license": "MIT" }, "node_modules/@cspell/dict-software-terms": { - "version": "5.1.11", - "resolved": "https://registry.npmjs.org/@cspell/dict-software-terms/-/dict-software-terms-5.1.11.tgz", - "integrity": "sha512-xwARdlp6o81BK7uNl4qR5CmLBXuc9xWyEeEwzeAw/8SkBdYheVQO6F1Fey2iqMRDT9LAb5Znbg83pJVpLjgBjg==", + "version": "5.1.14", + "resolved": "https://registry.npmjs.org/@cspell/dict-software-terms/-/dict-software-terms-5.1.14.tgz", + "integrity": "sha512-Eu9h090hxHJiqzVFS0WxOZbYXnmb7F1RFIUEg4Nru+D/78bXVDH4b8BiKGVFNRljaieNQRAHaryzdaKJRCH6ZA==", "dev": true, "license": "MIT" }, @@ -912,14 +913,21 @@ "dev": true, "license": "MIT" }, + "node_modules/@cspell/dict-zig": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@cspell/dict-zig/-/dict-zig-1.0.0.tgz", + "integrity": "sha512-XibBIxBlVosU06+M6uHWkFeT0/pW5WajDRYdXG2CgHnq85b0TI/Ks0FuBJykmsgi2CAD3Qtx8UHFEtl/DSFnAQ==", + "dev": true, + "license": "MIT" + }, "node_modules/@cspell/dynamic-import": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/@cspell/dynamic-import/-/dynamic-import-9.3.0.tgz", - "integrity": "sha512-c+coQC+bM1PuHX/Blg1mp2ODPZmMnWzXrZwX/JKpnY0uxcAjUrcmGjdjsV1/S/7ph9OJHvZL5KITCRBgFD1Kqg==", + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/@cspell/dynamic-import/-/dynamic-import-9.3.2.tgz", + "integrity": "sha512-au7FyuIHUNI2r9sO3pUBKVTeD/v7c9x/nPUStaAK1bG4rdKt4w+/jUY2IaldAraW5w29z528BboXbiV87SM1kw==", "dev": true, "license": "MIT", "dependencies": { - "@cspell/url": "9.3.0", + "@cspell/url": "9.3.2", "import-meta-resolve": "^4.2.0" }, "engines": { @@ -927,9 +935,9 @@ } }, "node_modules/@cspell/filetypes": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/@cspell/filetypes/-/filetypes-9.3.0.tgz", - "integrity": "sha512-pH413zKkMd5lh40HyLNgYfTacIryxsHDhxWShyxS7M+8W9MPl+tmzIHlSEvEVcKUUe3Qpowxo6b6Xkg7taRp/A==", + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/@cspell/filetypes/-/filetypes-9.3.2.tgz", + "integrity": "sha512-0bUxQlmJPRHZrRQD7adbc4lFizO8tGD/6+1cBgU3kV3+NVrpr12y4jU8twCSChhYibZyPr7bnvhkM3cQgb8RzA==", "dev": true, "license": "MIT", "engines": { @@ -937,9 +945,9 @@ } }, "node_modules/@cspell/strong-weak-map": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/@cspell/strong-weak-map/-/strong-weak-map-9.3.0.tgz", - "integrity": "sha512-s8/QwCPWvWRXZsAzUbWzv/cgL0xjo7p+5QveThFmD3vODX3IlrC+MfnLpEWQAyTQ7CqB5bRuBVAR2cU9gpzZTA==", + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/@cspell/strong-weak-map/-/strong-weak-map-9.3.2.tgz", + "integrity": "sha512-pFcmOTWCoFMRETb9PCkCmaiZiLb5i2qOZmGH/p/tFEH8kIYhMGfhaulnXwKwS+Ke6PKceQd2YL98bGmo8hL4aQ==", "dev": true, "license": "MIT", "engines": { @@ -947,9 +955,9 @@ } }, "node_modules/@cspell/url": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/@cspell/url/-/url-9.3.0.tgz", - "integrity": "sha512-EY4Niv1apHP9RN1mMRP/AHm6xr14fhK+PXnytang6SVwX+tbAEYwwlnFjoEDO6ygPsqs5BBiQ4N7TiSlfmXfmw==", + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/@cspell/url/-/url-9.3.2.tgz", + "integrity": "sha512-TobUlZl7Z7VehhNOMNAg1ABuGizieseftlG94OZJ934JptOhK8TC/1o2ldKrbDH50jyt6E7rPTMV2BW/vWuTzQ==", "dev": true, "license": "MIT", "engines": { @@ -3864,26 +3872,26 @@ } }, "node_modules/cspell": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/cspell/-/cspell-9.3.0.tgz", - "integrity": "sha512-YyXjOS3MAF6d0XggxHZtkyde6Yf0VgXkrFvR8C6jfxcnY0SJrJDKLiOppmm4ol+oWlvt1Dir1neGJW13xN+dUg==", + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/cspell/-/cspell-9.3.2.tgz", + "integrity": "sha512-3xFyVSTYrYa/QJzLfzsCRMkMXqOsytP8E26DuGrVMJQoLPFmbOXNNtnMu4wrtr17QVloxpvutW77U4vb2L/LDQ==", "dev": true, "license": "MIT", "dependencies": { - "@cspell/cspell-json-reporter": "9.3.0", - "@cspell/cspell-pipe": "9.3.0", - "@cspell/cspell-types": "9.3.0", - "@cspell/dynamic-import": "9.3.0", - "@cspell/url": "9.3.0", + "@cspell/cspell-json-reporter": "9.3.2", + "@cspell/cspell-pipe": "9.3.2", + "@cspell/cspell-types": "9.3.2", + "@cspell/dynamic-import": "9.3.2", + "@cspell/url": "9.3.2", "chalk": "^5.6.2", "chalk-template": "^1.1.2", "commander": "^14.0.2", - "cspell-config-lib": "9.3.0", - "cspell-dictionary": "9.3.0", - "cspell-gitignore": "9.3.0", - "cspell-glob": "9.3.0", - "cspell-io": "9.3.0", - "cspell-lib": "9.3.0", + "cspell-config-lib": "9.3.2", + "cspell-dictionary": "9.3.2", + "cspell-gitignore": "9.3.2", + "cspell-glob": "9.3.2", + "cspell-io": "9.3.2", + "cspell-lib": "9.3.2", "fast-json-stable-stringify": "^2.1.0", "flatted": "^3.3.3", "semver": "^7.7.3", @@ -3901,15 +3909,15 @@ } }, "node_modules/cspell-config-lib": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/cspell-config-lib/-/cspell-config-lib-9.3.0.tgz", - "integrity": "sha512-YyKMBwRIo8Sh3D9roHWWpW9KnQCkeWOoPJkcLEA3q+UldspkqpjQ8A8bUvigLgVg4dBQosiEUdda3MUZT79Lyg==", + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/cspell-config-lib/-/cspell-config-lib-9.3.2.tgz", + "integrity": "sha512-zXhmA4rqgWQRTVijI+g/mgiep76TvTO4d+P3CHwcqLG57BKVzoW+jkO4qDLC+Neh4b8+CcNWEIr3w16BfuEJAA==", "dev": true, "license": "MIT", "dependencies": { - "@cspell/cspell-types": "9.3.0", + "@cspell/cspell-types": "9.3.2", "comment-json": "^4.4.1", - "smol-toml": "^1.4.2", + "smol-toml": "^1.5.2", "yaml": "^2.8.1" }, "engines": { @@ -3917,31 +3925,31 @@ } }, "node_modules/cspell-dictionary": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/cspell-dictionary/-/cspell-dictionary-9.3.0.tgz", - "integrity": "sha512-+gS59D0ly/UfTDsjKavWCDTSukmQ3HO0Xy+t4+pwgkVOa8kXzhERoXxT0V3v71TJS+kFRHfsWeGekfaVB4n2ng==", + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/cspell-dictionary/-/cspell-dictionary-9.3.2.tgz", + "integrity": "sha512-E3YhOhZzZt1a+AEbFV2B3THCyZ576PDg0mDNUDrU1Y65SyIhf4DC6itfPoAb6R3FI/DI218RqWZg/FTT8lJ2gA==", "dev": true, "license": "MIT", "dependencies": { - "@cspell/cspell-pipe": "9.3.0", - "@cspell/cspell-types": "9.3.0", - "cspell-trie-lib": "9.3.0", - "fast-equals": "^5.3.2" + "@cspell/cspell-pipe": "9.3.2", + "@cspell/cspell-types": "9.3.2", + "cspell-trie-lib": "9.3.2", + "fast-equals": "^5.3.3" }, "engines": { "node": ">=20" } }, "node_modules/cspell-gitignore": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/cspell-gitignore/-/cspell-gitignore-9.3.0.tgz", - "integrity": "sha512-AdI8WLKGNtTni1P+fbepDBh6u7Mv22diwtqMQoasDPeafArmQHpTp9gc8FgNnQO9tQASB7ZMjIOnLFNvmML+nw==", + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/cspell-gitignore/-/cspell-gitignore-9.3.2.tgz", + "integrity": "sha512-G2bLR+Dfb9GX4Sdm75GfCCa9V/sQYkRbLckuCuVmJxvcDB0xfczAtb6TfAXIziF3oUI6cOB1g+PoNLWBelcK5w==", "dev": true, "license": "MIT", "dependencies": { - "@cspell/url": "9.3.0", - "cspell-glob": "9.3.0", - "cspell-io": "9.3.0" + "@cspell/url": "9.3.2", + "cspell-glob": "9.3.2", + "cspell-io": "9.3.2" }, "bin": { "cspell-gitignore": "bin.mjs" @@ -3951,13 +3959,13 @@ } }, "node_modules/cspell-glob": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/cspell-glob/-/cspell-glob-9.3.0.tgz", - "integrity": "sha512-Mp1T4Y3utyIB5dgQk+XksdmS97il8TfFI9byMUR6Mprml/I+QglXj38bHX/++DeApfFHr+5y5DgqxmRn3/wnKA==", + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/cspell-glob/-/cspell-glob-9.3.2.tgz", + "integrity": "sha512-TuSupENEKyOCupOUZ3vnPxaTOghxY/rD1JIkb8e5kjzRprYVilO/rYqEk/52iLwJVd+4Npe8fNhR3KhU7u/UUg==", "dev": true, "license": "MIT", "dependencies": { - "@cspell/url": "9.3.0", + "@cspell/url": "9.3.2", "picomatch": "^4.0.3" }, "engines": { @@ -3965,14 +3973,14 @@ } }, "node_modules/cspell-grammar": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/cspell-grammar/-/cspell-grammar-9.3.0.tgz", - "integrity": "sha512-X6VrCto78Xm72st+3YZ13qk5jw5sS9QOcS4x3KO41T90YoOMXbMsSH7HPaNrhqaa1rtEKk43kFQp33OLPvsI3Q==", + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/cspell-grammar/-/cspell-grammar-9.3.2.tgz", + "integrity": "sha512-ysonrFu9vJvF/derDlEjUfmvLeCfNOWPh00t6Yh093AKrJFoWQiyaS/5bEN/uB5/n1sa4k3ItnWvuTp3+YuZsA==", "dev": true, "license": "MIT", "dependencies": { - "@cspell/cspell-pipe": "9.3.0", - "@cspell/cspell-types": "9.3.0" + "@cspell/cspell-pipe": "9.3.2", + "@cspell/cspell-types": "9.3.2" }, "bin": { "cspell-grammar": "bin.mjs" @@ -3982,43 +3990,43 @@ } }, "node_modules/cspell-io": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/cspell-io/-/cspell-io-9.3.0.tgz", - "integrity": "sha512-39Gp7asqdsrLvZ9L3BUXYX5wE6gAuvxeklguB4hjz+7i7Jhz02CcjFXDd1VhIA6tJ4hRTHWtgqaoaFv6qQF/vg==", + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/cspell-io/-/cspell-io-9.3.2.tgz", + "integrity": "sha512-ahoULCp0j12TyXXmIcdO/7x65A/2mzUQO1IkOC65OXEbNT+evt0yswSO5Nr1F6kCHDuEKc46EZWwsYAzj78pMg==", "dev": true, "license": "MIT", "dependencies": { - "@cspell/cspell-service-bus": "9.3.0", - "@cspell/url": "9.3.0" + "@cspell/cspell-service-bus": "9.3.2", + "@cspell/url": "9.3.2" }, "engines": { "node": ">=20" } }, "node_modules/cspell-lib": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/cspell-lib/-/cspell-lib-9.3.0.tgz", - "integrity": "sha512-MM71PponJHWn/tt93hYBSvBVeyivjWjaiROfQ4UlUGw7TIwysAyywH3XNYUnydaHcbjWTk7W12JbEVa8sQaBIQ==", + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/cspell-lib/-/cspell-lib-9.3.2.tgz", + "integrity": "sha512-kdk11kib68zNANNICuOA8h4oA9kENQUAdeX/uvT4+7eHbHHV8WSgjXm4k4o/pRIbg164UJTX/XxKb/65ftn5jw==", "dev": true, "license": "MIT", "dependencies": { - "@cspell/cspell-bundled-dicts": "9.3.0", - "@cspell/cspell-pipe": "9.3.0", - "@cspell/cspell-resolver": "9.3.0", - "@cspell/cspell-types": "9.3.0", - "@cspell/dynamic-import": "9.3.0", - "@cspell/filetypes": "9.3.0", - "@cspell/strong-weak-map": "9.3.0", - "@cspell/url": "9.3.0", + "@cspell/cspell-bundled-dicts": "9.3.2", + "@cspell/cspell-pipe": "9.3.2", + "@cspell/cspell-resolver": "9.3.2", + "@cspell/cspell-types": "9.3.2", + "@cspell/dynamic-import": "9.3.2", + "@cspell/filetypes": "9.3.2", + "@cspell/strong-weak-map": "9.3.2", + "@cspell/url": "9.3.2", "clear-module": "^4.1.2", - "cspell-config-lib": "9.3.0", - "cspell-dictionary": "9.3.0", - "cspell-glob": "9.3.0", - "cspell-grammar": "9.3.0", - "cspell-io": "9.3.0", - "cspell-trie-lib": "9.3.0", + "cspell-config-lib": "9.3.2", + "cspell-dictionary": "9.3.2", + "cspell-glob": "9.3.2", + "cspell-grammar": "9.3.2", + "cspell-io": "9.3.2", + "cspell-trie-lib": "9.3.2", "env-paths": "^3.0.0", - "gensequence": "^7.0.0", + "gensequence": "^8.0.8", "import-fresh": "^3.3.1", "resolve-from": "^5.0.0", "vscode-languageserver-textdocument": "^1.0.12", @@ -4030,15 +4038,15 @@ } }, "node_modules/cspell-trie-lib": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/cspell-trie-lib/-/cspell-trie-lib-9.3.0.tgz", - "integrity": "sha512-/hLujE3Gp36hhgJChvp6C3uJdBo5hGOqtyal6HjNmn+K27GXRrrn1L+5RoKaDMgFao9Ks5ccca9NtjQTw1EcoA==", + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/cspell-trie-lib/-/cspell-trie-lib-9.3.2.tgz", + "integrity": "sha512-1Af7Mq9jIccFQyJl/ZCcqQbtJwuDqpQVkk8xfs/92x4OI6gW1iTVRMtsrh0RTw1HZoR8aQD7tRRCiLPf/D+UiQ==", "dev": true, "license": "MIT", "dependencies": { - "@cspell/cspell-pipe": "9.3.0", - "@cspell/cspell-types": "9.3.0", - "gensequence": "^7.0.0" + "@cspell/cspell-pipe": "9.3.2", + "@cspell/cspell-types": "9.3.2", + "gensequence": "^8.0.8" }, "engines": { "node": ">=20" @@ -4708,9 +4716,9 @@ "license": "MIT" }, "node_modules/fast-equals": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/fast-equals/-/fast-equals-5.3.2.tgz", - "integrity": "sha512-6rxyATwPCkaFIL3JLqw8qXqMpIZ942pTX/tbQFkRsDGblS8tNGtlUauA/+mt6RUfqn/4MoEr+WDkYoIQbibWuQ==", + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/fast-equals/-/fast-equals-5.3.3.tgz", + "integrity": "sha512-/boTcHZeIAQ2r/tL11voclBHDeP9WPxLt+tyAbVSyyXuUFyh0Tne7gJZTqGbxnvj79TjLdCXLOY7UIPhyG5MTw==", "dev": true, "license": "MIT", "engines": { @@ -4978,13 +4986,13 @@ } }, "node_modules/gensequence": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/gensequence/-/gensequence-7.0.0.tgz", - "integrity": "sha512-47Frx13aZh01afHJTB3zTtKIlFI6vWY+MYCN9Qpew6i52rfKjnhCF/l1YlC8UmEMvvntZZ6z4PiCcmyuedR2aQ==", + "version": "8.0.8", + "resolved": "https://registry.npmjs.org/gensequence/-/gensequence-8.0.8.tgz", + "integrity": "sha512-omMVniXEXpdx/vKxGnPRoO2394Otlze28TyxECbFVyoSpZ9H3EO7lemjcB12OpQJzRW4e5tt/dL1rOxry6aMHg==", "dev": true, "license": "MIT", "engines": { - "node": ">=18" + "node": ">=20" } }, "node_modules/get-intrinsic": { From cbfcc8a6e5096ae32c0d26f3d06d5a38b47706db Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 25 Nov 2025 13:25:19 +0100 Subject: [PATCH 59/91] chore(deps): update dependency sass to v1.94.2 (#2208) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR contains the following updates: | Package | Change | Age | Confidence | |---|---|---|---| | [sass](https://redirect.github.com/sass/dart-sass) | [`1.94.0` -> `1.94.2`](https://renovatebot.com/diffs/npm/sass/1.94.0/1.94.2) | [![age](https://developer.mend.io/api/mc/badges/age/npm/sass/1.94.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/sass/1.94.0/1.94.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
sass/dart-sass (sass) ### [`v1.94.2`](https://redirect.github.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1942) [Compare Source](https://redirect.github.com/sass/dart-sass/compare/1.94.1...1.94.2) ##### Command-Line Interface - Using `--fatal-deprecation ` no longer emits warnings about deprecations that are obsolete. ##### Dart API - `Deprecation.forVersion` now excludes obsolete deprecations from the set it returns. ##### JS API - Excludes obsolete deprecations from `fatalDeprecations` when a `Version` is passed. ##### Node.js Embedded Host - Fix a bug where a variable could be used before it was initialized during async compilation. ### [`v1.94.1`](https://redirect.github.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1941) [Compare Source](https://redirect.github.com/sass/dart-sass/compare/1.94.0...1.94.1) - No user-visible changes.
--- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/capire/docs). Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 53ce6a5a66..a5104a0b04 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7394,9 +7394,9 @@ "peer": true }, "node_modules/sass": { - "version": "1.94.0", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.94.0.tgz", - "integrity": "sha512-Dqh7SiYcaFtdv5Wvku6QgS5IGPm281L+ZtVD1U2FJa7Q0EFRlq8Z3sjYtz6gYObsYThUOz9ArwFqPZx+1azILQ==", + "version": "1.94.2", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.94.2.tgz", + "integrity": "sha512-N+7WK20/wOr7CzA2snJcUSSNTCzeCGUTFY3OgeQP3mZ1aj9NMQ0mSTXwlrnd89j33zzQJGqIN52GIOmYrfq46A==", "dev": true, "license": "MIT", "dependencies": { From 948f6053c23fd7b86c20688101aa2fff5ddef6d1 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 25 Nov 2025 13:25:44 +0100 Subject: [PATCH 60/91] chore(deps): update eslint (#2209) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR contains the following updates: | Package | Change | Age | Confidence | |---|---|---|---| | [@typescript-eslint/parser](https://typescript-eslint.io/packages/parser) ([source](https://redirect.github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser)) | [`8.46.4` -> `8.48.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2fparser/8.46.4/8.48.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@typescript-eslint%2fparser/8.48.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@typescript-eslint%2fparser/8.46.4/8.48.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [eslint-plugin-vue](https://eslint.vuejs.org) ([source](https://redirect.github.com/vuejs/eslint-plugin-vue)) | [`10.5.1` -> `10.6.0`](https://renovatebot.com/diffs/npm/eslint-plugin-vue/10.5.1/10.6.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/eslint-plugin-vue/10.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/eslint-plugin-vue/10.5.1/10.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
typescript-eslint/typescript-eslint (@​typescript-eslint/parser) ### [`v8.48.0`](https://redirect.github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#8480-2025-11-24) [Compare Source](https://redirect.github.com/typescript-eslint/typescript-eslint/compare/v8.47.0...v8.48.0) This was a version bump only for parser to align it with other projects, there were no code changes. You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website. ### [`v8.47.0`](https://redirect.github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#8470-2025-11-17) [Compare Source](https://redirect.github.com/typescript-eslint/typescript-eslint/compare/v8.46.4...v8.47.0) This was a version bump only for parser to align it with other projects, there were no code changes. You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website.
vuejs/eslint-plugin-vue (eslint-plugin-vue) ### [`v10.6.0`](https://redirect.github.com/vuejs/eslint-plugin-vue/blob/HEAD/CHANGELOG.md#1060) [Compare Source](https://redirect.github.com/vuejs/eslint-plugin-vue/compare/v10.5.1...v10.6.0) ##### Minor Changes - Updated [`vue/no-import-compiler-macros`](https://eslint.vuejs.org/rules/no-import-compiler-macros.html) to clarify that macros are not allowed outside `