Build toolBuild tooltypeRuns at build time. Nothing of it ships in the deployed application.See every one →What this type is →by a community orgby a community orgoriginPublished by a community organisation, so it outlives any one maintainer.See every one →

ui5-tooling-modules

A set of UI5 tooling extensions that load and convert plain npm packages into UI5 AMD-like modules, so the UI5 module loader can consume them.

UI5 tooling extensions to load and convert node modules as UI5 AMD-like modules

Facts

Latestv3.41.2ReleasedLast pushLicenceApache-2.0

Where it sits

Lives in
Provides
Build and dev-server toolingUI5Build and dev-server toolingcapabilityServing an app locally and building it for deployment — proxying a backend, transpiling, bundling, and shaping the result for whatever will host it.

Who is behind it

UI5 CommunityUI5 CommunityOrganisationMaintains this
In the atlas: maintains 69
@ui5-community
maintainerAdrian BobevPersonContributes to this
In the atlas: contributes to 10
@adrian-bobev
Attila BorosPersonContributes to this
In the atlas: contributes to 6
@attila-boros
Benjamin ReimPersonContributes to this
In the atlas: contributes to 9
@BenReim
Christian GeorgiPersonContributes to this
In the atlas: maintains 1, contributes to 53
@chgeo
Frank WeigelPersonContributes to this
In the atlas: contributes to 10
@codeworrior
David SooterPersonContributes to this
In the atlas: contributes to 9
@d-sooter
Yavor IvanovPersonContributes to this
In the atlas: contributes to 17
@d3xter666
Austin DevinePersonContributes to this
In the atlas: maintains 7, contributes to 25
@devinea
Dimitar FenerskiPersonContributes to this
In the atlas: contributes to 23
@dfenerski
Dominik FeiningerPersonContributes to this
In the atlas: contributes to 11
@dominikfeininger
58 contributors

What it declares

Every artifact

Type
Build tool
Origin
By a community org
Runtime
Node.js

As a build tool

Distributed through
npm

Connections2

Install

npm add ui5-tooling-modules

Derived from the package name. No recipe recorded; the README has the configuration.

Learn more1

Readings
  1. How to Use NPM Modules Like crypto-js in SAPUI5 Using UI5 Tooling ModulesDakshKumarSingh, SAP Community
What changed
  1. v3.0.0

    Support for UI5 Tooling V2 is removed in this release.

    Makes stale:

    A setup that registers this extension in a project built with UI5 Tooling V2.

README

quoted from ui5-community/ui5-ecosystem-showcase under Apache-2.0, read
ui5-community/ui5-ecosystem-showcase/packages/ui5-tooling-modules/README.mdOn GitHub

UI5 CLI Extensions for NPM Package Consumption

👋 This is an open‑source, community‑driven project, developed and actively monitored by members of the UI5 community. You are welcome to use it, report issues, contribute enhancements, and support others in the community.

The UI5 CLI extensions include a custom middleware and a custom task which allow to use NPM package names for AMD-like dependencies, e.g.:

# Install a dev dependency to Chart.js (https://www.chartjs.org/)
npm install chart.js
// use Chart.js as a AMD-like dependency
sap.ui.define([
  "chart.js"
], function(chartjs) {
  [...]
  alert(chartjs.version);
  [...]
})

Once the UI5 application is finally built, the Chart.js dependency will be copied into the dist/resources folder with the proper namespace. In case of Chart.js above, there is no namespace and thus the location will be dist/resources/chart.js.js.

Prerequisites

⚠️ UI5 CLI Compatibility All releases of this UI5 CLI extension using the major version 3 require UI5 CLI V3. Any previous releases below major version 3 (if available) also support older versions of the UI5 CLI. But the usage of the latest UI5 CLI is strongly recommended!

Install

npm install ui5-tooling-modules --save-dev

If you want the ui5-tooling-modules to add it's configuration to the UI5 YAML files, just add the command line argument -rte or --register-tooling-extension:

# Register in default file (ui5.yaml if it exists)
npm install ui5-tooling-modules --save-dev -rte

# Register in specific YAML files
npm install ui5-tooling-modules --save-dev -rte ui5.yaml,ui5-workspace.yaml

# Register in custom YAML files
npm install ui5-tooling-modules --save-dev -rte my-ui5.yaml,custom-workspace.yaml

When using -rte without specifying files, the extension will automatically register itself in ui5.yaml if it exists in the project directory.

When specifying file names (comma-separated), the extension will only register in those specific files.

Configuration options (in $yourapp/ui5.yaml)

The following configuration options are relevant for the task and the middleware:

  • debug: boolean|string Enables debug logging (defaults to false), by setting value to "verbose" the extension will log even more detailed  

  • skipCache: boolean For development scenarios, the module cache can be disabled by setting this option to true. Normally the cache is invalidated automatically whenever any of the following change: the ui5-tooling-modules version itself, any of its source files, the resolved configuration (e.g. minify, inject, pluginOptions), the project's package.json/lockfile, or any file in the bundle's transitive module graph. This option just forces the regeneration always (defaults to false)  

  • persistentCache: boolean experimental feature With this option, the bundle information will be persistent and will be available again after the restart of the development server or for the next execution of your build task. The bundle information is stored in the working directory in the folder .ui5-tooling-modules folder. It's recommended to put this folder into .gitignore. On load, persisted entries are validated against the recorded transitive module graph (path + size + mtime) so a fresh checkout or CI run cannot silently reuse a stale bundle. (defaults to false)  

  • keepDynamicImports: boolean|String[] experimental feature An arrays of NPM package names for which the dynamic imports with a generic target module (e.g. import(anyUrl)) will not be converted into a require based polyfill. If the value is a boolean, it activates/deactivates the feature for all modules (by default it is active!). This experimental feature is useful in scenarios loading ES modules dynamically from generic URLs. All dynamic imports resolving a concrete module (e.g. import("jspdf")) will be converted into chunks and loaded with a require call.  

  • skipTransform: boolean|String[] experimental feature Array of glob patterns to verify whether the module transformation should be skipped for the modules which are matching the glob pattern. If the value is a boolean then the transformation can be skipped in general by setting the value to true. The configuration can be incorporated from the customConfiguration of a dependency using that middleware, e.g. a library can provide its customConfiguration for the application project like this (and can reuse the configuration internally via YAML anchors):

    specVersion: "3.0"
    metadata:
      name: com.myorg.mylib
    type: library
    customConfiguration:
      ui5-tooling-modules: &cfgModules
        skipTransform:
          - "@luigi-project/container/dist/anypath/**"
    builder:
      customTasks:
        - name: ui5-tooling-modules-task
          afterTask: replaceVersion
          configuration:
            <<: *cfgModules

     

  • inject: Map<String, String|String[]> experimental feature A map of Globals which are injected as imports to an NPM package to handle cases in which functions need to be poly- or ponyfilled. The configuration is aligned with definition of the Globals in the @rollup/plugin-inject:

    configuration:
      inject:
        # import setImmediate from 'set-immediate-shim'
        setImmediate: set-immediate-shim
        # import { Promise } from 'es6-promise'
        Promise:
          - es6-promise
          - Promise
        # import { Promise as P } from 'es6-promise'
        P:
          - es6-promise
          - Promise
        # import $ from 'jquery'
        $: jquery
        # import * as fs from 'fs'
        fs:
          - 'fs'
          - '*'

     

  • legacyDependencyResolution: boolean Re-enables the legacy dependency resolution of the UI5 CLI extension which allows to use entry points from devDependencies of the project. By default, only the dependencies maintained in the projects' package.json and the transitive dependencies are considered for the entry points and all other entry points are ignored. (available since new minor version 3.7.0 which introduces a new dependency resolution for dependencies only)  

  • additionalDependencies: string[] List of additional dependency names to include into the bundling. By default all dependencies and their transitive dependencies are considered. In some cases it is useful to also include devDependencies, e.g. when re-packaging a thirdparty package. If you want to exclude this dependency from being a transitive dependency then you can put it into the devDependencies and list it in this configuration option (but keep in mind that this may exclude the dependency from some check tools!)  

  • entryPoints: string[] experimental feature List of entry point modules to include into the bundling. By default the entry point modules are discovered from the sources (*.ts, *.tsx, *.js, *.jsx, *.xml)  

  • minify: boolean experimental feature Flag to indicate that the generated code should be minified (in case of excluding thirdparty resources from minification in general, this option can be used to minify just the generated code)  

  • sourcemap: boolean experimental feature Flag to indicate that the sourcemap generation should be enabled. By default the option is diabled. Possible values are true, false, "inline", and hidden.  

The following configuration options are relevant for the task and the middleware which allow you to directly configure rollup plugins which is used as follows:

  configuration:
    pluginOptions:   # map of plugin options
      webcomponents: # the name of the rollup plugin
        skip: true   # configuration

The available plugin configuration options are:

  • pluginOptions.webcomponents.skip: boolean Flag to skip the transformation of Web Components to UI5 Controls a.k.a. Seamless Web Components support. This allows to directly require the Web Components modules from NPM packages and use them as UI5 Controls. The NPM packages providing Web Components must include a Custom Elements Manifest declared in the customElements field in the package.json. (defaults to false)  

  • pluginOptions.webcomponents.force: boolean Flag to force the transformation of Web Components to UI5 Controls a.k.a. Seamless Web Components support. In some cases, in which the framework version cannot be part of the ui5.yaml, you can force the transformation. (defaults to true)  

  • pluginOptions.webcomponents.scoping: boolean Flag to disable the Custom Elements Scoping of UI5 Web Components. This allows to load multiple versions of UI5 Web Components into a single application without conflicts. This feature is enabled by default and can be disabled if needed. (defaults to true)  

  • pluginOptions.webcomponents.namespace: boolean|string Defines the relative namespace for the Web Components modules (defaults to "gen"). If disabled, using the boolean value false, the Web Components modules are put into the namespace specified by addToNamespace. This is also relevant due to the JSDoc generation to allow a proper exclusion of the nested 3rd party namespace which could cause issues during the JSDoc build. The Web Components modules in the gen namespace are safe to be processed by the JSDoc generator to enable the generation of the API docu for the Web Components modules.  

  • pluginOptions.webcomponents.enrichBusyIndicator: boolean experimental flag Flag to include the BusyIndicator support from into the generated Web Components package module. (defaults to false)  

  • pluginOptions.webcomponents.includeAssets: boolean experimental flag Flag to include all assets into the thirdparty folder: such as all themes and languages. Although they will be lazily loaded the generation process will slow down and you will have many additional files. All dynamic imports will reside inside the _dynamics folder within the thirdparty folder. (defaults to false)  

  • pluginOptions.webcomponents.skipJSDoc: boolean experimental flag Flag to enable/disable the generation of the JSDoc for the UI5 control wrappers. (defaults to true until the feature is fully implemented, in future false)  

  • pluginOptions.webcomponents.skipDtsGeneration: boolean experimental flag Flag to enable/disable the generation of the *.d.ts files for the UI5 control wrappers, enabling basic TypeScript support. (defaults to true until the feature is fully implemented, in future false)  

The following configuration options are just relevant for the task:

  • prependPathMappings: boolean Prepends the path mappings for the UI5 loader to the Component.js which allows to run the Component using 3rd party modules in e.g. Fiori launchpad environments (defaults to false)  

  • addToNamespace: boolean|string Puts 3rd party modules into the namespace of the Component to make them Component-local. All used 3rd party modules will be moved by default into the sub-namespace thirdparty of the Component namespace at build time. If you use a string as value of addToNamespace you can define a custom namespace, e.g. my/namespace/for/libs which will be nested in the Components' namespace. With that option you can run your application using 3rd party modules in a Fiori launchpad environment. In some cases (wrong dependency rewrite, wish to keep 3rd party modules in the resources path, ...) it might be necessary to disable this option. (defaults to true, disables prependPathMappings when set to true)  

    ⚠️ While this works great for any non-UI5 3rd party module, there are limitations for the consumption of UI5 modules from custom control 3rd party modules (NPM packages). The UI5 module names (used for Object.extend(...), aggregation types, ...) are not rewritten and this may cause issues. UI5 assumes that the used module path (slash syntax) is matching the module name (dot syntax). This can lead to issues for Object.isA(...) checks, Renderer lookups (when not inlined or referenced by module), or for any other API which derives the module name from the module path or vice versa. If you encounter such issues you may consider to disable the option and instruct the loader via sap.ui.loader.config({ paths: ... }) to load the resources properly.

  • removeScopePrefix: boolean Removes the scope prefix @ from the namespace/path of the 3rd party module when adding it to the namespace with the addToNamespace option. For Web Components packages, the same transformation is also applied to the generated UI5 qualified names (e.g. Object.extend("...") calls) so module paths and class names stay consistent. The alias removeScopePreceder is deprecated but still accepted.  

  • replaceDashes: boolean Replaces dashes (-) with underscores (_) in the namespace/path of the 3rd party module when adding it to the namespace with the addToNamespace option. For Web Components packages, the same transformation is also applied to the generated UI5 qualified names so module paths and class names stay consistent (e.g. a package named webc-package produces webc_package.MyControl instead of webc-package.MyControl). Can be used standalone or is implied when sanitizeNpmPackageName is set.  

  • sanitizeNpmPackageName: boolean Master flag that enables both removeScopePrefix and replaceDashes at once: removes the leading @ scope prefix and converts all - characters to _ in module paths and generated UI5 qualified names. This is necessary to support JSDoc generation for Web Components properly.  

  • providedDependencies: String[] An array of NPM package names which will be available in the development server via the middleware but will be ignored for the build process via the task. Provided dependencies are considered as being provided by the application runtime rather than it must be shipped with the current project. Provided dependencies will ignore any of the configurations above.  

  • includeAssets: Map<String, String[]> experimental feature A map of NPM package names to list of glob patterns which defines the assets to be included. The list of glob patterns can be omitted in case of copying all resources of the NPM package.  

The following configuration options are just relevant for the middleware:

  • useRelativeModulePaths: boolean experimental flag Usually, the middleware converts the module paths to absolute modules paths relative to the application project. In some special cases, in which the application doesn't register its namespace in the start page, it is better to use relative module paths for the local development (e.g. the UI5 testsuite application serving many test pages for different controls). For library projects this option is always turned on as for library projects they are not served in the root context of the server, they are also served via the resources + namespace URL.  

  • watch: boolean|String[] experimental flag For development scenarios, the server is listening to changes of the source files of the project and its dependencies and triggers the generation of the bundle if the used NPM packages have been changed (defaults to true) - additionally, you can pass a list of folders or files to watch for changes for special cases  

Usage

  1. Define the dependency in $yourapp/package.json:
"devDependencies": {
    // ...
    "ui5-tooling-modules": "*"
    // ...
}
  1. Configure it in $yourapp/ui5.yaml:

The configuration for the custom task:

builder:
  customTasks:
    - name: ui5-tooling-modules-task
      afterTask: replaceVersion

The configuration for the custom middleware:

server:
  customMiddleware:
    - name: ui5-tooling-modules-middleware
      afterMiddleware: compression

⚠️ In case your application is using a proxy such fiori-tools-proxy, the proxy must run after ui5-tooling-modules-middleware middleware. Otherwise proxy will try to serve the resources for your installed npm package instead of ui5-tooling-modules-middleware. You can achieve this by setting afterMiddleware: ui5-tooling-modules-middleware in fiori-tools-proxy middleware.


🔥 TIP 🔥

YAML anchors are a great feature to avoid redundancies in .yaml files. You can share the configuration of the task and the middleware in the following way:

ui5.yaml

customConfiguration:
  ui5-tooling-modules: &cfgModules
    debug: true
    keepDynamicImports:
      - "@luigi-project/container"
[...]
server:
  customMiddleware:
    - name: ui5-tooling-modules-middleware
      afterMiddleware: compression
      configuration:
        <<: *cfgModules
[...]
builder:
  customTasks:
    - name: ui5-tooling-modules-task
      afterTask: replaceVersion
      configuration:
        <<: *cfgModules
        addToNamespace: true

With this approach you can ensure that you have a consistent configuration across your task and middleware.


How it works

The custom middleware is listening to incoming requests and checks those requests to match npm packages. E.g. a dependency to chart.js will cause a request to resource/chart.js.js. The middleware now derives the module name which is "chart.js" and uses require.resolve("chart.js") to lookup the npm package for it. If an npm package exists, the middleware is using rollup to create a custom AMD bundle for the npm package which uses sap.ui.define instead of define.

The custom task is scanning all AMD dependencies of all modules and tries to resolve the module names. If a module has been found a custom bundle will be created in the proper namespace of the module, e.g. @apollo/client/core will create a custom bundle at dist/resources/@apollo/client/core.js.

Web Components support

Besides plain NPM packages, the ui5-tooling-modules also has dedicated support for Web Components a.k.a. Seamless Web Components support. A package is recognized as a Web Components package when it ships a Custom Elements Manifest — either referenced via the customElements field in its package.json, or found at the conventional dist/custom-elements.json (or dist/custom-elements-internal.json) location. Based on that manifest, the tooling generates the glue code so the Web Components can be consumed like regular UI5 controls.

There are three different cases which are handled automatically depending on the nature of the package and its components:

1. UI5 Web Components

Packages whose components extend UI5Element from @ui5/webcomponents-base (detected because the package is @ui5/webcomponents-base or lists it in its dependencies), e.g. @ui5/webcomponents. For these, the tooling runs the full pipeline:

  • a package module is generated (in the gen namespace by default, see pluginOptions.webcomponents.namespace) which registers the library, applies the Custom Elements Scoping, and pulls in the base package
  • a UI5 control wrapper is generated per custom element so it can be used like a native UI5 control (incl. properties, aggregations, events, and — when enabled — JSDoc and *.d.ts files)
  • the base package (@ui5/webcomponents-base) is imported ahead of the component so scoping and shared features are initialized before any component is defined
2. Non-UI5 Web Components (with a package)

Packages that ship a Custom Elements Manifest but whose components do not extend UI5Element, e.g. @luigi-project/container. UI5 control wrappers are still generated for every custom element so they can be used as UI5 controls, but the UI5-specific package-chunk emission, scoping, and base-package import are skipped — those components neither need nor understand the @ui5/webcomponents-base runtime. Importing the package (e.g. @luigi-project/container) exposes the generated wrapper classes, and importing an individual component module (e.g. @luigi-project/container/LuigiContainer) resolves through its UI5 wrapper.

3. Native Web Components (load the component itself, no package)

This is the case where a Web Component module is imported directly and there is no package glue to load — the module simply is the Web Component and it only needs to register itself. This covers custom elements that do not extend UI5Element and that are imported as standalone modules rather than through their package entry point.

For such native Web Components the tooling neither prepends an import of the package nor of @ui5/webcomponents-base — the generated entry point loads only the Web Component module itself. Since the component does not rely on scoping or any other feature provided by a UI5 Web Components package, there is nothing else to bundle: the component defines its own custom element (customElements.define(...)) when its module is evaluated. A sap.ui.define re-export stub is still emitted for the imported module so that a direct import (e.g. an application importing a single component module from a Web Components package) resolves through the generated UI5 wrapper.

💡 All three cases are detected automatically from the package metadata and the component's superclass chain — no additional configuration is required. Use the pluginOptions.webcomponents.* options (see above) to fine-tune the behavior (e.g. skip, scoping, namespace, includeAssets), and pluginOptions.webcomponents.force: true to enable the transformation when the framework version cannot be derived from the ui5.yaml.

How to obtain support

Please use the GitHub bug tracking system to post questions, bug reports or to create pull requests.

Contributing

Any type of contribution (code contributions, pull requests, issues) to this showcase will be equally appreciated.

License

This work is licensed under Apache 2.0.

Built with care (and a lot of caffeine). If this helped you build, test, or ship, the next coffee — or drink — is on you when you bump into a contributor.

Apache-2.0, read

History

Latest

v3.41.2

Fixes 1

Notes
Patch Changes
  • #1473 e0a104d Thanks @petermuessig! - fix(ui5-tooling-modules): prevent substitute collision when bare package name resolves directly to a component

    For Web Component packages whose package.json exports["."] (or main/module) points directly at a single component file (e.g. @ui5/webcomponents-geomap), importing the bare package name caused a collision: the substitute mechanism claimed the package-level module slot (@ui5/webcomponents-geomap.js) before the UI5 library descriptor could be written there, resulting in an empty/missing library descriptor and a confusing substitute warning.

    lookupWebComponentsClass now short-circuits when source === npmPackage (bare package name, no sub-path), returning undefined so the package-level resolver handles the slot correctly. An actionable error is logged telling the consumer which explicit sub-path to use instead.

  1. v3.41.1

    Fixes 1

    Notes
    Patch Changes
    • #1468 ec56483 Thanks @petermuessig! - fix(ui5-tooling-modules): restore rewriting of slashed qualified names in Web Component wrappers

      When replaceDashes/removeScopePrefix/sanitizeNpmPackageName is active, the generator now emits sanitized slashed qualified names (e.g. ui5/webcomponents_fiori). The post-processing rewrite loop in util.js was only searching for the raw npm package name (@ui5/webcomponents-fiori) in slashed positions, so designtime paths and @alias/@type module: JSDoc comments were no longer prefixed with the project namespace.

      Adds a slashed-sanitized search pass (guarded against the no-sanitization default so output is byte-identical when sanitization flags are off) ordered before the raw-name pass to prevent double-prefixing.

  2. v3.41.0

    Features 1

    Notes
    Minor Changes
    • #1466 fd8e7ff Thanks @petermuessig! - feat: add replaceDashes option and consistently apply name-sanitization to generated UI5 qualified names

      Introduces a new standalone replaceDashes boolean option (task-only) that replaces dashes with underscores in module paths when using addToNamespace. The sanitizeNpmPackageName master flag now explicitly enables both removeScopePrefix and replaceDashes.

      Both flags are now forwarded into the Web Components plugin so the WebComponentRegistry applies the same transformations to the generated UI5 qualified names (.extend("...") calls) as rewriteDep applies to module paths — keeping class names and file paths in sync (e.g. webc-package.MyControl → webc_package.MyControl).

      The deprecated alias removeScopePreceder for removeScopePrefix continues to be accepted.

  3. v3.40.0

    Features 1, Fixes 1

    Notes
    Minor Changes
    • #1462 c2bba4a Thanks @akudev! - feat(ui5-tooling-modules): replace @typescript-eslint/typescript-estree with oxc-parser

      TypeScript 7 ships without a programmatic API, which breaks @typescript-eslint/typescript-estree (and its transitive ts-api-utils dependency) at load time. Since ui5-tooling-modules only uses the parser for syntactic AST generation — no type checking or TypeScript program creation — this replaces it with oxc-parser, a fast Rust-based ESTree-compatible parser that handles JS, TS, JSX and TSX natively without any dependency on the typescript package.

      This removes the implicit typescript <6.1.0 peer dependency constraint, allowing consumers to use any TypeScript version including TypeScript 7.

    Patch Changes
    • #1464 22b68a7 Thanks @petermuessig! - fix(ui5-tooling-modules): restore partial-AST dependency scanning after oxc-parser migration

      oxc-parser always performs error recovery and returns a (possibly partial) program even when errors are present — matching the allowInvalidAST: true behaviour of the replaced @typescript-eslint/typescript-estree. An early return on errors.length > 0 introduced during the migration caused files with minor parse issues to be silently skipped entirely instead of having their dependencies extracted from the recovered AST.

      Also removes two dead AST mutations (argument.raw / elDep.raw) in the isA rewrite path of task.js that used the already-mutated value as a map key (yielding "undefined") and were never read back since AST-based code generation was replaced by regex substitution.

  4. v3.39.0

    Features 1

    Notes
    Minor Changes
    • #1460 4e8aac3 Thanks @Thodd! - feat(ui5-tooling-modules): support _ui5mapping hint on custom element members

      A CEM producer can now attach a _ui5mapping object to a field member. The object is merged over the mapping that WebComponentRegistry computes for the generated UI5 property, allowing a package to refine the mapping — e.g. force a type: "none" mapping, set an explicit to, or declare a syncOn native event that syncs the live DOM value back into the control. A plain "property" string mapping is normalized to object form before merging.

  5. v3.38.4

    Fixes 1

    Notes
    Patch Changes
  6. v3.38.3

    Fixes 1

    Notes
    Patch Changes
  7. v3.38.2

    Fixes 1

    Notes
    Patch Changes
    • #1433 ef24543 Thanks @H4ze! - Use meaningful variable names in generated UI5Control wrappers

      Replace generic WebComponentBaseClass with the actual base class name (e.g. WebComponent, HTMLElementBase) and WrapperClass with the actual UI5 class simple name (e.g. Button, LuigiContainer) in generated AMD wrapper files. Applied to both the Rollup plugin and the CLI code path.

  8. v3.38.1

    Fixes 1

    Notes
    Patch Changes
    • #1427 0d0762e Thanks @H4ze! - fix(ui5-tooling-modules): keep metadata property keys quoted in generated control wrappers

      The create-webc-controls CLI now formats the generated sources with prettier's quoteProps: "preserve", so metadata property names that are reserved words (e.g. HTML's class) stay quoted. Previously prettier's default as-needed emitted them unquoted which, although valid ES5+, was rejected by stricter validators (e.g. the OpenUI5 test setup).

  9. v3.38.0

    Features 1

    Notes
    Minor Changes
    • #1424 a8a1113 Thanks @Thodd! - feat(ui5-tooling-modules): add create-webc-controls CLI to generate UI5 control wrappers from a custom-elements.json

      Adds a standalone, dependency-invocable CLI (create-webc-controls) and a programmatic generateControls() API that process a custom elements manifest via the WebComponentRegistry and serialize the UI5 package glue plus one control wrapper per described class into an output folder. The generated UI5 namespace can be remapped independently from the npm package name (ui5Namespace) and a leading module path segment can be stripped (stripModulePrefix, e.g. dist), which enables generating wrappers for native HTML element packages such as @ui5/html under a target namespace like sap.ui.core.html.elements.

  10. v3.37.9

    Fixes 1

    Notes
    Patch Changes
    • #1418 93b881a Thanks @petermuessig! - fix(webcomponents): avoid applying method-wrapping mixins twice in a wrapper inheritance chain

      MessageMixin and LabelEnablement install method wrappers (destroy, setLabelFor, exit, setRequired, ...) by capturing the previous method into a shared prototype slot that the wrapper resolves via this at call time. Emitting them on both a class and its superclass (e.g. DateRangePicker extends DatePicker, MultiInput extends Input) made the wrapper capture the ancestor's already-wrapped method and call itself — an infinite recursion (RangeError: Maximum call stack size exceeded) the first time that method runs, e.g. on destroy() during view re-instantiation or when routing away. These mixins are now emitted only on the topmost ancestor that introduces them; subclasses inherit the wrapped methods. EnabledPropagator is intentionally left unchanged — it captures via a per-wrapper closure, so nested application is safe.

  11. v3.37.8

    Fixes 1

    Notes
    Patch Changes
    • #1412 6d989b3 Thanks @petermuessig! - Fix recognition of native (non-UI5) Web Components whose components extend HTMLElement directly instead of UI5Element (regression since 3.36.0, #1410).
      • Guard the superclass lookup in WebComponentRegistry#connectSuperclass against an undefined superclassLookupName (?.startsWith), which previously crashed with Cannot read properties of undefined (reading 'startsWith') for web components without a resolvable superclass.
      • In rollup-plugin-webcomponents, treat a custom element without a UI5 superclass as a native Web Component: load only the component module itself instead of prepending an import of the package or of @ui5/webcomponents-base (which such components neither need nor understand — no scoping or package runtime is required). The generated UI5 control wrapper imports the WebComponent base class accordingly and skips the JSDoc superclass serialization when the superclass metadata is missing.
      • Add a webc-package showcase (a plain HTMLElement-based CustomAlertButton with a Custom Elements Manifest) plus a regression test and snapshot, and consume it from the ui5-tsapp showcase.
  12. v3.37.7

    Fixes 1

    Notes
    Patch Changes
    • #1406 535ec0f Thanks @petermuessig! - Sync defaultValue serialization between rollup-plugin-webcomponents and the Handlebars json helper so the generated UI5 metadata is identical regardless of code path.
      • In rollup-plugin-webcomponents, pass a replacer to JSON.stringify that mirrors the Handlebars helper: drop undefined/"undefined" defaults, keep "" as-is, and JSON.parse everything else so booleans, numbers, objects, and quoted strings come out as proper JSON values (e.g. true instead of "true", "Button" instead of '"Button"').
      • Drop non-parseable values with a warning instead of emitting invalid JSON.
      • Added cross-reference comments on both sides to keep the two implementations in sync.
  13. v3.37.6

    Fixes 1

    Notes
    Patch Changes
    • #1404 f3244a2 Thanks @petermuessig! - Fix JSDoc generation for enum types and defaultValue handling in the generated UI5 metadata.
      • Use the derived UI5 class name (instead of the raw enum name) in the @ui5-module-override directive emitted by JSDocSerializer, so the override matches the generated module.
      • Emit moduleType: module:<slashed-qualified-name> for enum-typed properties so the downstream JSDoc build/validation can resolve enum references.
      • Track _ui5QualifiedNameSlashes and _derivedUi5ClassName on enum definitions when ingesting the custom-elements metadata.
      • Drop the ad-hoc defaultValue cast and the string-escape stripping; pass the raw propDef.default through so numeric, boolean, and object defaults survive code generation.
      • Special-case defaultValue in the Handlebars json helper to inject literal values without quoting, and to omit the property when the default is "undefined".
  14. v3.37.5

    Fixes 1

    Notes
    Patch Changes
    • #1401 55f9a53 Thanks @petermuessig! - Restore emission of the replacement module for "module"-typed entry chunks in rollup-plugin-webcomponents.js. c61afbd6 introduced a re-export stub at the original module id so that consumers importing a Web Component module directly (rather than via its package) still resolve through the generated UI5 wrapper. #1310 later added the "module" type to resolveId/load to prepend the @ui5/webcomponents-base import for such entries, but in doing so changed the generateBundle guard from if (type) to if (type && type !== "module") — silently dropping the replacement stub and breaking direct imports of Web Component modules again. The guard is restored and the "module" branch now emits the same sap.ui.define([...]) re-export the other types do.
  15. v3.37.4

    Fixes 2

    Notes
    Patch Changes
    • #1400 848bc70 Thanks @petermuessig! - Detect custom Web Components via a new WebComponentRegistryHelper.isCustomElement(classDef) predicate that walks the full superclass chain (skipping the UI5Element base class itself, which is paradoxically flagged as a custom element in the metadata). Replaces an inlined check in rollup-plugin-webcomponents.js whose hand-rolled superclass walk only looked at the direct superclass and could loop on a const-bound class reference. When a class is recognized as a custom element only via inheritance, a warning is now logged so the upstream custom-elements.json can be fixed to flag the subclass directly.

    • #1398 b4153fa Thanks @petermuessig! - Guard the complex-type lookup in WebComponentRegistry#parseComplexType against type references that have no module. WebComponentRegistryHelper.deriveCacheKey returns undefined for such references, which previously caused the cross-package lookup and "global import" fallback to misfire (e.g. logging Reference package '…' for complex type '…' not found and producing unusable cache entries). When typeInfoRef.module is missing, skip the complex-type resolution entirely and fall through to the any fallback.

  16. v3.37.3

    Fixes 1

    Notes
    Patch Changes
    • #1386 f96206f Thanks @petermuessig! - fix(ui5-tooling-modules): keep Node.js 20 support by holding ignore-walk at ^8.0.0

      ignore-walk@9 is a Node-engines-only bump (no API changes) that raises the required Node.js version to ^22.22.2 || ^24.15.0 || >=26.0.0. Since the only usage site is unchanged between v8 and v9, downgrade to ^8.0.0 so the package keeps working on Node.js 20 (^20.17.0 || >=22.9.0). See DEPENDENCIES.md for the rationale and the conditions under which this hold-back can be lifted.

  17. v3.37.2

    Fixes 1

    Notes
    Patch Changes
    • #1384 81eb56c Thanks @petermuessig! - fix(ui5-tooling-modules): align @implements JSDoc with the interfaces metadata declaration in generated WebComponent wrappers

      The generated wrappers (dist/gen/.../<Component>-dbg.js) emitted an @implements JSDoc that did not match the interfaces metadata declaration it was meant to describe. The interfaces declaration was already correct (e.g. ....dist.Button.IButton — the interface as a sibling of its host class module), but the JSDoc was hand-built from ${this.namespace}.${interfaceDef.name} and dropped the dist/<Class> segment entirely.

      The JSDoc emission now reuses the precomputed _ui5QualifiedNameSlashes so it is built from the same source of truth as the metadata, producing the proper named-export module shape (slashes in the module path, dot before the named export, e.g. module:.../dist/Button.IButton). JSDoc and metadata are now in lockstep by construction.

  18. v3.37.1

    Fixes 1

    Notes
    Patch Changes
    • #1373 3c544b7 Thanks @petermuessig! - Harden rewriteDep path-segment stripping to defeat crafted inputs like ....// that previously left a residual ../. Addresses CodeQL alert js/incomplete-multi-character-sanitization (#268).
  19. v3.37.0

    Features 1, Fixes 2

    Notes
    Minor Changes
    • #1370 dd71c42 Thanks @petermuessig! - Replace node-fetch / cross-fetch / isomorphic-fetch (and any of their subpath imports) with a virtual rollup shim that re-exports globalThis.fetch, Headers, Request, Response, Blob, File, FormData, plus inert AbortError / FetchError / isRedirect stubs. The shim is hooked into the rollup chain before commonjs/polyfill resolution so the Node-only sub-graph (fetch-blob, fs.promises, node:net, …) never enters the browser bundle. Fixes the "isIP" is not exported by "polyfill-node.net.js" error that node-fetch@3 introduced.
    Patch Changes
    • #1370 dd71c42 Thanks @petermuessig! - Bump minimatch from v7 to v10. v9 dropped the default export, so the five require("minimatch") sites were switched to the named export const { minimatch } = require("minimatch"). The runtime call shape minimatch(path, pattern) is unchanged. minimatch 8 raised the Node floor to 20+, which already matches the workspace engines (Node 22 in CI).

    • #1370 dd71c42 Thanks @petermuessig! - Augment the bundled node:util polyfill with TextEncoder / TextDecoder exports out of the box (previously consumers had to drop a 720-line _polyfill-overrides_/util.js copy of the upstream polyfill into every app). Augmentations are registered via a POLYFILL_AUGMENTATIONS map keyed by Node built-in name; entries are appended verbatim to the upstream polyfill source as the bundler loads it, and tree-shaking strips appended exports that nothing imports. Per-project _polyfill-overrides_/ directories remain available for app-specific overrides that should not become global defaults.

    All notable changes to this project will be documented in this file. See Conventional Commits for commit guidelines.

  20. v3.36.1

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: rework bundle cache invalidation (#1365) (b8578cd)
  21. v3.36.0

    Features 1

    Notes
    Features
    • ui5-tooling-modules: allow deeper nested web component classes of the same name (#1318) (485131b)
  22. v3.35.2

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: version dependent interfaces for webc (#1333) (0a72767)
  23. v3.35.1

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: resolve XML namespaces defined inline on elements (#1337) (871a34e)
  24. v3.35.0

    Features 1

    Notes
    Features
  25. v3.34.6

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: make prettier a direct dependency (#1317) (0ab47e1)
  26. v3.34.5

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: robust parsing and handling of webc metadata (#1316) (8a5cd40)
  27. v3.34.4

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: properly lookup package.json for workspaces (#1314) (d7ab7a8)
  28. v3.34.3

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: import base package for all entry modules (#1310) (1ca62f1)
  29. v3.34.2

    Notes

    Note: Version bump only for package ui5-tooling-modules

  30. v3.34.1

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: proper rewrite of JSDoc and extend syntax (#1305) (c4d467a)
  31. v3.34.0

    Features 1

    Notes
    Features
  32. v3.33.8

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: include also non-documented properties in wrappers (#1299) (bd63306)
  33. v3.33.7

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: no scoping for non UI5Elements (#1298) (81febf4), closes #1297
  34. v3.33.6

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: force include assets (#1292) (7a18296)
  35. v3.33.5

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: sanitize trailing whitespaces and windows line feeds (#1291) (20c665a)
  36. v3.33.4

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: correct handling of association types (#1290) (e54c089)
  37. v3.33.3

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: safely rewrite dependencies and module references (#1289) (994a578)
  38. v3.33.2

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: properly rewrite dependencies (#1288) (e2b9091)
  39. v3.33.1

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: proper named export of enums, correct re-export (#1286) (2f22526)
  40. v3.33.0

    Features 1

    Notes
    Features
    • ui5-tooling-modules: support additional tags for jsdoc (#1285) (66d4538)
  41. v3.32.3

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: avoid width/height property for base classes (#1284) (24df790)
  42. v3.32.2

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: noop locale data loader (#1283) (74c2bdb)
  43. v3.32.1

    Fixes 2

    Notes
    Bug Fixes
    • ui5-tooling-modules: ignore duplicated cldr data for web components (#1281) (846a640)
    • ui5-tooling-modules: support library prop in ui5 metadata (#1282) (bb641a5)
  44. v3.32.0

    Features 1, Fixes 2

    Notes
    Bug Fixes
    • ui5-tooling-modules: properly rewrite "module:" jsdoc tags (#1280) (3cffce9)
    • ui5-tooling-modules: support for isA(string|string[]) rewrite (#1279) (55fccf2)
    Features
    • ui5-tooling-modules: make JSDoc visibility configurable (#1278) (7720c3f)
  45. v3.31.1

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: escape regexes for dependencies (#1277) (d5656f7)
  46. v3.31.0

    Features 1, Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: change defaults for prettier (#1276) (b6457fa)
    Features
    • ui5-tooling-modules: support declarative entry point modules (#1275) (f6f0d8b)
  47. v3.30.9

    Fixes 3

    Notes
    Bug Fixes
    • ui5-tooling-modules: ensure default text for enum values in jsdoc (#1273) (0fde298)
    • ui5-tooling-modules: improve handling for missing superclass (#1272) (9da86b1)
    • ui5-tooling-modules: rewrite jsdoc (#1274) (ddd0c90)
  48. v3.30.8

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: do not rename the webc tag (#1270) (3fb8d81)
  49. v3.30.7

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: proper handling of -package modules for non scoped webc pkgs (#1269) (53e30ea)
  50. v3.30.6

    Notes

    Note: Version bump only for package ui5-tooling-modules

  51. v3.30.5

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: only use stellvertreter for bundled resources (#1264) (4882c65)
  52. v3.30.4

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: support package modules for non-scope packages (#1262) (aa8a2d4)
  53. v3.30.3

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: tooltip property handling (#1256) (66d3e81)
  54. v3.30.2

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: references to webc-base/UI5Element now point to core.WebComponent (#1252) (5e67119)
  55. v3.30.1

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: support npm packages with .js ext (#1254) (9805b48), closes #1251
  56. v3.30.0

    Features 1, Fixes 2

    Notes
    Bug Fixes
    • ui5-tooling-modules: aggregation typing is fixed when union type is defined for custom elements (#1243) (f5ba033)
    • ui5-tooling-modules: fully exclude JSDocSerializer if skip-config is set (#1249) (806fe27)
    Features
    • ui5-tooling-modules: support event mapping (#1247) (225acbb)
  57. v3.29.1

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: only convert CSSSizes to px values for numbers (#1246) (2942a1f)
  58. v3.29.0

    Features 1

    Notes
    Features
  59. v3.28.1

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: ensure require webc classes for base classes (#1239) (dbc51a1)
  60. v3.28.0

    Features 2, Fixes 1

    Notes
    Bug Fixes
    Features
    • make tooling extension self-registering (#1236) (8a14c92)
    • ui5-tooling-modules: Add typescript support for control wrappers (#1223) (08c5260)
  61. v3.27.7

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: ensure customdata support for newer ui5 releases + scan perfopt (#1234) (c5c2cac)
  62. v3.27.6

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: align custom data logic with core impl (#1230) (7458f28)
  63. v3.27.5

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: only use substitution modules for js modules (#1228) (e655c3d)
  64. v3.27.4

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: webc to forward custom data to root shadow domref (#1225) (1dfd20b)
  65. v3.27.3

    Fixes 2

    Notes
    Bug Fixes
  66. v3.27.2

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: do not convert dots to slashes for isA rewrite (#1219) (aabdc99), closes #1218
  67. v3.27.1

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: properly move webc modules in gen folder (#1214) (b84301f)
  68. v3.27.0

    Features 1

    Notes
    Features
    • ui5-tooling-modules: move webc entry modules into gen folder (#1213) (92ae6f3)
  69. v3.26.0

    Features 1

    Notes
    Features
    • ui5-tooling-modules: jsdoc generation support for seamless web components (#1210) (9379843)
  70. v3.25.1

    Fixes 2

    Notes
    Bug Fixes
    • ui5-tooling-modules: adds option to skip JSDoc generation (#1206) (3469249)
    • ui5-tooling-modules: skip JSDoc generation by default until feature works (#1207) (13b8b39)
  71. v3.25.0

    Features 1, Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: fixed precendence of module resolution via package.json (#1204) (1ea7557), closes #1196
    Features
    • ui5-tooling-modules: first version of serializer for JSDoc in control wrappers (#1171) (fc6a038)
  72. v3.24.17

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-module: ensure exports for mods using exports.default (#1203) (50740c5)
  73. v3.24.16

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: support UI5 testsuite scenario (#1202) (ee5c50a)
  74. v3.24.15

    Fixes 2

    Notes
    Bug Fixes
    • ui5-tooling-modules: keep comments for xml and sourcemaps for js (#1201) (1958f37)
    • ui5-tooling-modules: properly consider additionalDependencies (#1199) (94daeee)
  75. v3.24.14

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: support primitive array types for webc (#1198) (dceae64)
  76. v3.24.13

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: support special settings for ui5-shellbar (7c9e5d6)
  77. v3.24.12

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: avoid undefined issues in dep lookup (#1197) (f053c9f)
  78. v3.24.11

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: ensure forward default export in cjs use cases (#1195) (27c8dd9)
  79. v3.24.10

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: support webc package inclusion on windows (separator chars) (#1189) (7208e4c)
  80. v3.24.9

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: use the correct chunk file as dependency (#1187) (1d083a6)
  81. v3.24.8

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: support including scripts from library projects (#1186) (c750b7a)
  82. v3.24.7

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: support re-export of main package modules for webc packages (c61afbd)
  83. v3.24.6

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: special handling of substitutes for webc (#1183) (487423a)
  84. v3.24.5

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: rewrite deps in case of middleware (#1182) (100d8e6)
  85. v3.24.4

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: watch transitive deps changes (#1179) (8158ca9)
  86. v3.24.3

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: ensure to rewrite deps when addToNamespace (ff6a002)
  87. v3.24.2

    Fixes 2

    Notes
    Bug Fixes
    • ui5-tooling-modules: ensure full rebuild after change of modules (#1177) (4c2400b)
    • ui5-tooling-modules: support watching of additional files/folders (#1176) (294d757)
  88. v3.24.1

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: support cdn scenario with latest changes (#1175) (8ad68bd)
  89. v3.24.0

    Features 1

    Notes
    Features
    • ui5-tooling-modules: support for sourcemaps (#1174) (7fbfce4)
  90. v3.23.2

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: introduce generation context for proper change handling (ec23fb2)
  91. v3.23.1

    Fixes 2

    Notes
    Bug Fixes
    • ui5-tooling-modules: fix error for generation of webc packages without enums (#1173) (22a428b)
    • ui5-tooling-modules: improvements for handlebars templates (76d37ea)
  92. v3.23.0

    Features 1

    Notes
    Features
    • ui5-tooling-modules: major rework of module generation (incl. webc) (#1172) (779ba26)
  93. v3.22.1

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: avoid issues with modified id in import-meta rollup plugin (#1170) (21cd701)
  94. v3.22.0

    Features 1

    Notes
    Features
    • ui5-tooling-modules: de-support AMD modules to ensure copyright headers (#1167) (83cd60b), closes #1163
  95. v3.21.0

    Features 1

    Notes
    Features
  96. v3.20.6

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: improved detection of relevant package.json and cwd (#1161) (ed1dad8)
  97. v3.20.5

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: get location of package.json from environment variable if present (#1158) (9188bf0)
  98. v3.20.4

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: get location of package.json from environment variable if present (#1157) (8f27e2e)
  99. v3.20.3

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: ensure consistent scoping suffix (#1153) (373264c)
  100. v3.20.2

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: ensure rewrites of deps only for require/define APIs (#1147) (cf48106), closes #1146
  101. v3.20.1

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: ignore scoping for non-UI5Elements (#1140) (d383f71)
  102. v3.20.0

    Features 1

    Notes
    Features
    • ui5-tooling-modules: support conditions for module resolution (#1139) (ab89a62)
  103. v3.19.1

    Fixes 3

    Notes
    Bug Fixes
    • ui5-tooling-modules: get rid of external module error in tests (49ea178)
    • ui5-tooling-modules: inherited properties are not accidentally overwritten by subclass anymore (#1136) (a71be3f)
    • ui5-tooling-modules: monkey patch mapValueState for older versions of UI5 (#1137) (d0abfbf)
  104. v3.19.0

    Features 1

    Notes
    Features
    • ui5-tooling-modules: adds basic support for valueStates (#1125) (8f37d3c)
  105. v3.18.8

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: also consider to rewrite entry point modules (#1131) (d9b1546)
  106. v3.18.7

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: do not load metadata from npm packages twice (#1126) (2199f93)
  107. v3.18.6

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: cross package superclass detection for WebC (#1124) (78597c6)
  108. v3.18.5

    Fixes 2

    Notes
    Bug Fixes
    • ui5-tooling-modules: apply sap/ui/core/EnabledPropagator mixin (#1122) (774a209)
    • ui5-tooling-modules: ensure scoping suffix is set before define of modules (#1123) (db10bd3)
  109. v3.18.4

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: debounce file change events (#1121) (ff725b3)
  110. v3.18.3

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: restrict the fs watching to relevant source files only (#1120) (a92532e)
  111. v3.18.2

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: taming chokidar once more (#1119) (2757648)
  112. v3.18.1

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: upgrade to chokidar 4.x (#1118) (75043e6)
  113. v3.18.0

    Features 1, Fixes 2

    Notes
    Bug Fixes
    • ui5-tooling-modules: include LabelEnablement to list of external deps (#1116) (4ca258c)
    • update dependencies (#1114) (d7672f2)
    Features
    • ui5-tooling-modules: support special UI5 settings for web components (#1108) (d0c7cde)
  114. v3.17.0

    Features 1

    Notes
    Features
    • ui5-tooling-modules: support including Assets for Web Components (#1112) (15c3420)
  115. v3.16.6

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: ensure module resolution across linked projects (#1110) (42e09f9)
  116. v3.16.5

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: also consider optionalDependencies (#1105) (4463058)
  117. v3.16.4

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: advanced dependency detection (#1104) (8011cab)
  118. v3.16.3

    Fixes 2

    Notes
    Bug Fixes
    • ui5-tooling-modules: named aggregations can also be marked as default aggregation (#1096) (49db54e)
    • ui5-tooling-modules: properly support keepDynamicImports (#1101) (94b9762)
  119. v3.16.2

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: merge additionalDependencies custom config (#1095) (9b24d7b)
  120. v3.16.1

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: support 'as default' exports in modules (#1092) (db647f4)
  121. v3.16.0

    Features 1

    Notes
    Features
    • ui5-tooling-modules: scoping and import.meta support for webc (#1089) (8c434ec)
  122. v3.15.1

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: support for additionalDependencies (repackaging) (#1088) (a49712b)
  123. v3.15.0

    Features 1

    Notes
    Features
    • ui5-tooling-modules: new module resolution (#1087) (2e6c50c)
  124. v3.14.1

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: further performance improvements (#1086) (83a2709)
  125. v3.14.0

    Features 1

    Notes
    Features
    • ui5-tooling-modules: support webc scoping and enablement (#1083) (87dfc9f)
  126. v3.13.1

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: windows support and performance improvements (#1085) (170b462)
  127. v3.13.0

    Features 2

    Notes
    Features
    • ui5-tooling-modules: do not consider webc npm packages as libraries (#1080) (2643a13)
    • ui5-tooling-modules: seamless webcomponents part 2 - readonly & methods (#1081) (f610e6f)
  128. v3.12.0

    Features 1

    Notes
    Features
    • ui5-tooling-modules: addToNamespace=true is the default now (#1075) (997fa6a)
  129. v3.11.0

    Features 1

    Notes
    Features
    • enhanced v4 compat + update dependencies (#1070) (2d7ed16)
  130. v3.10.2

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: properly resolve local dependencies (#1069) (3606ea5), closes #1068
  131. v3.10.1

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: include hypenate into external module detection (#1065) (2c24aec)
  132. v3.10.0

    Features 1

    Notes
    Features
    • ui5-tooling-modules: seamless web components support phase 1 (#1051) (f2cc93e)
  133. v3.9.1

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: perf-opt for module type detection (#1060) (ce17e87)
  134. v3.9.0

    Features 1, Fixes 1

    Notes
    Bug Fixes
    • decouple tooling extensions from UI5 tooling version (#1058) (6694c59), closes #1054
    Features
    • ui5-tooling-modules: performance opt + persistent bundle info cache (#1059) (b02e050), closes #1052
  135. v3.8.1

    Notes

    Note: Version bump only for package ui5-tooling-modules

  136. v3.8.0

    Features 2, Fixes 2

    Notes
    Bug Fixes
    • ui5-tooling-modules: only consider js, cjs or mjs files as bundle entry points (#1040) (87ec01e)
    • ui5-tooling-modules: perf-opt to avoid bundling without changes (#1042) (65e30aa)
    Features
    • ui5-tooling-modules: improved dependency resolution (#1039) (b3695cb), closes #1032
    • ui5-tooling-modules: support instructions ?url, ?inline in modules (#1041) (71677eb)
  137. v3.7.0

    Features 1

    Notes
    Features
    • ui5-tooling-modules: entry point modules must be project dependencies (#1026) (d81b770)
  138. v3.6.2

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: usage of estree-walker for modern ES support (#1020) (77a6059)
  139. v3.6.1

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: skip transpile of SystemJS modules (#1013) (199750e)
  140. v3.6.0

    Features 2

    Notes
    Features
    • ui5-tooling-modules: improved handling of chunks (#1009) (8f35651), closes #915
    • ui5-tooling-modules: support alternative thirdparty namespace (#1010) (eb7556f)
  141. v3.5.6

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: do not handle ts files as jsx when parsing AST (#1003) (395da08)
  142. v3.5.5

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: improvement of node_modules lookup logic (#1001) (e3bc1f6)
  143. v3.5.4

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: support dynamic imports (#998) (c6c0459)
  144. v3.5.3

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: avoid file extension for unique modules (#997) (3931692)
  145. v3.5.2

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: keep default export for compat with interopRequireDefault (#996) (879282b)
  146. v3.5.1

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: ignore non-existing files in getResource (#995) (1089355)
  147. v3.5.0

    Features 1

    Notes
    Features
    • ui5-tooling-modules: support ESM and TS for dependency scan (#991) (011c8a6)
  148. v3.4.6

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: fix undefined error in middleware (2e7674c)
  149. v3.4.5

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: ignore unkown modules for bundling (#985) (fe201be), closes #977
  150. v3.4.4

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: make import fix more robust (#973) (13a4037)
  151. v3.4.3

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: ensure proper handling of aggregations for WebCs (#968) (9cd1273)
  152. v3.4.2

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: support relative paths for chunks also on W… (#965) (f373bbb)
  153. v3.4.1

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: ensure proper handling of 3rd party resources (#961) (06b81f3)
  154. v3.4.0

    Features 1

    Notes
    Features
    • ui5-tooling-modules: support minification of generated code (#953) (4513a36)
  155. v3.3.5

    Notes

    Note: Version bump only for package ui5-tooling-modules

  156. v3.3.4

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: scan modules also in dependencies (#942) (b5d5289)
  157. v3.3.3

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: support for dynamic modules during development (#940) (f1fc84f)
  158. v3.3.2

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: add support to inject imports for Globals (#939) (d4657f8)
  159. v3.3.1

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: experimental native UI5 WebC support (#937) (087ac24)
  160. v3.3.0

    Features 1

    Notes
    Features
    • ui5-tooling-modules: introduce bundle generation (#936) (81588f1)
  161. v3.2.7

    Notes

    Note: Version bump only for package ui5-tooling-modules

  162. v3.2.6

    Fixes 1

    Notes
    Bug Fixes
  163. v3.2.5

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: chunks are stored in module name folder (#922) (c2ad65d), closes #915
  164. v3.2.4

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: keep non-text content alive using middleware (#907) (433fa62), closes #904
  165. v3.2.3

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: copy resources as stream to not kill encoding (#904) (e4b63a5), closes #902
  166. v3.2.2

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: keep sourcemaps when rewriting module urls (#887) (d3a17ff)
  167. v3.2.1

    Notes

    Note: Version bump only for package ui5-tooling-modules

  168. v3.2.0

    Features 1

    Notes
    Features
    • ui5-tooling-modules: consider dependency paths for module resolution (#877) (ff54f4f)
  169. v3.1.0

    Features 1, Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: listResources requires cwd (#876) (0c94495)
    Features
    • ui5-middleware-cap: wrap @sap/cds/bin/serve command (#869) (541e6e6)
  170. v3.0.10

    Notes

    Note: Version bump only for package ui5-tooling-modules

  171. v3.0.9

    Fixes 2

    Notes
    Bug Fixes
    • ui5-tooling-modules: make module resolution cwd aware (#852) (90a1e17)
    • ui5-tooling-module: support this context in modules (#858) (678f3bd)
  172. v3.0.8

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: support repackaging of es modules (#848) (f8d5ea5)
  173. v3.0.7

    Notes

    Note: Version bump only for package ui5-tooling-modules

  174. v3.0.6

    Fixes 1

    Notes
    Bug Fixes
    • consistent request path handling of all middlewares (#833) (11ad435), closes #817
  175. v3.0.5

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: proper error messages (#812) (e822697)
  176. v3.0.4

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: consider skipTransform for rewrite of deps (#799) (be67457)
  177. v3.0.3

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: support to skip transformation of modules (#795) (75f628e)
  178. v3.0.2

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: activate keepDynamicImports by default (#794) (7f2ea27)
  179. v3.0.1

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: allow to skip convert of dynamic imports (#792) (c27500b)
  180. v3.0.0dated in the atlas

    Breaking 1, Features 2, Fixes 1

    Notes
    Bug Fixes
    Features
    BREAKING CHANGES
    • The support for UI5 Tooling V2 has been removed
  181. v0.9.13

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: re-enable chunks for middleware (#767) (aaea4b0)
  182. v0.9.12

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-transpile: transpile at startup + caching (#757) (6c7946d)
  183. v0.9.11

    Fixes 1

    Notes
    Bug Fixes
  184. v0.9.10

    Fixes 1

    Notes
    Bug Fixes
  185. v0.9.9

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: avoid warnings for unknown directives (#740) (2a118e0)
  186. v0.9.8

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: more robust bundling chain (#738) (41fbb9f)
  187. v0.9.7

    Notes

    Note: Version bump only for package ui5-tooling-modules

  188. v0.9.6

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: fallback mode to retry bundling with cjs modules (#729) (c33549b), closes #726
  189. v0.9.5

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: ensure __esModule marker being exported (#728) (8f8afd3), closes #726
  190. v0.9.4

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: include ignore-walk as dependency (#725) (a8764b5)
  191. v0.9.3

    Fixes 1

    Notes
    Bug Fixes
  192. v0.9.2

    Notes

    Note: Version bump only for package ui5-tooling-modules

  193. v0.9.1

    Notes

    Note: Version bump only for package ui5-tooling-modules

  194. v0.9.0

    Features 1

    Notes
    Features
    • ui5-tooling-modules: include assets of npm packages (#721) (ce048eb), closes #590
  195. v0.8.0

    Features 1

    Notes
    Features
    • ui5-tooling-module: support chunks for module bundles (#716) (9aad0ea)
  196. v0.7.13

    Fixes 2

    Notes
    Bug Fixes
    • ui5-tooling-modules: allow to define provided dependencies (#698) (b3dbbac)
    • update of project depedencies (#704) (2f94887)
  197. v0.7.12

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: support modern JS using escodegen fork (#697) (e3668ef)
  198. v0.7.11

    Fixes 2

    Notes
    Bug Fixes
    • implement determineRequiredDependencies for all tasks (#692) (d27b55e)
    • improvements of projects for tooling 3.0 (#696) (6bd880f)
  199. v0.7.10

    Notes

    Note: Version bump only for package ui5-tooling-modules

  200. v0.7.9

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: remove scope preceder from path (#686) (1323cb2)
  201. v0.7.8

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: make amd bundling more robust for side effects (#679) (1d0e586)
  202. v0.7.7

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: node-like module resolution (#677) (51b942a)
  203. v0.7.6

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: hide warnings (04f7efb)
  204. v0.7.5

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: rollback to old node-resolve (e1b418f)
  205. v0.7.4

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: ignore relative paths (#676) (259aac7)
  206. v0.7.3

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: revert to node-resolve v13 due to bundling issues (#674) (747b7dd), closes #673
  207. v0.7.2

    Notes

    Note: Version bump only for package ui5-tooling-modules

  208. v0.7.1

    Notes

    Note: Version bump only for package ui5-tooling-modules

  209. v0.7.0

    Breaking 26, Features 1, Other 2

    Notes
    Features
    • ui5-tooling-modules: support namespacing of modules (#614) (877f718)
    BREAKING CHANGES
    • new package manager

    • refactor: updated tests to pass with pnpm

    • refactor: iasync still failing

    • feat(ui5-tooling-modules): support pnpm / node_modules symlinks

    • fix(ui5-app): make Karma work with pnpm

    • chore(ui5-app): remove uiveri5 from sample

    • chore(ui5-app): add updated wdio.conf

    • fix: make prettier and eslint work with pnpm

    • fix: fix cf_dest tests

    restructured tests and added node_modules as symlink

    • fix(ui5-app): adding eslint for wdio and mocha

    • chore(ui5-middleware-cfdestination): cleanup

    • feat(ui5-tooling-modules): add bundling support for AMD

    • chore(ui5-tooling-modules): cleanup

    • new package manager

    • refactor: updated tests to pass with pnpm

    • refactor: iasync still failing

    • feat(ui5-tooling-modules): support pnpm / node_modules symlinks

    • fix(ui5-app): make Karma work with pnpm

    • chore(ui5-app): remove uiveri5 from sample

    • chore(ui5-app): add updated wdio.conf

    • fix: make prettier and eslint work with pnpm

    • fix: fix cf_dest tests

    restructured tests and added node_modules as symlink

    • fix(ui5-app): adding eslint for wdio and mocha

    • chore(ui5-middleware-cfdestination): cleanup

    • feat(ui5-tooling-modules): add bundling support for AMD

    • chore(ui5-tooling-modules): cleanup

  210. v0.6.0

    Features 1

    Notes
    Features
    • ui5-tooling-modules: support app-local bundle defs (#632) (9375433)
  211. v0.5.1

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: properly consider browser, module, main fallback+ (#631) (63b606e)
  212. v0.5.0

    Features 1, Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: move nodePolyFills back to front (#630) (1a2a39f)
    Features
    • ui5-tooling-modules: fix AMD bundling and filter Node built-ins (#627) (0ad6e6e), closes #623
  213. v0.4.0

    Breaking 26, Features 1, Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: avoid stackoverflow for html tags in xmlviews (#625) (41bcf09), closes #622
    Features
    BREAKING CHANGES
    • new package manager

    • refactor: updated tests to pass with pnpm

    • refactor: iasync still failing

    • feat(ui5-tooling-modules): support pnpm / node_modules symlinks

    • fix(ui5-app): make Karma work with pnpm

    • chore(ui5-app): remove uiveri5 from sample

    • chore(ui5-app): add updated wdio.conf

    • fix: make prettier and eslint work with pnpm

    • fix: fix cf_dest tests

    restructured tests and added node_modules as symlink

    • fix(ui5-app): adding eslint for wdio and mocha

    • chore(ui5-middleware-cfdestination): cleanup

    • feat(ui5-tooling-modules): add bundling support for AMD

    • chore(ui5-tooling-modules): cleanup

    • chore: fix code style

    • fix(ui5-task-flatten-library): support files without extensions

    • refactor: updated tests to pass with pnpm

    • feat(ui5-tooling-modules): support pnpm / node_modules symlinks

    • fix: make prettier and eslint work with pnpm

    • fix: update actions, lerna, vscode for pnpm

    • chore: only run test on tooling extensions

    • chore: use sequential tests for ava

    • chore: add @ui5/cli dev dependency for ava tests

    • chore: enable support for local act GH action tests

    • chore: add docu for local GitHub action execution

    • chore: docu cleanup

    • chore: re-add ncu scripts

    Co-authored-by: Peter Muessig peter.muessig@sap.com

  214. v0.3.3

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: add support for pnpm/symlinks and AMD (#618) (69922ca)
  215. v0.3.2

    Notes

    Note: Version bump only for package ui5-tooling-modules

  216. v0.3.1

    Notes

    Note: Version bump only for package ui5-tooling-modules

  217. v0.3.0

    Features 1, Fixes 2, Other 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: fix espree issues, add prettier (#603) (b9f0f58)
    • ui5-tooling-modules: try/catch require.resolve for modules (#604) (264f43b)
    Features
    • ui5-tooling-modules: allow to prepend path mappings for Component (#605) (71e8ac6)
    Reverts
    • Revert "chore: add metadata to package.json for all packages for ui5-community website (#600)" (#601) (b6037d4), closes #600 #601
  218. v0.2.7

    Notes

    Note: Version bump only for package ui5-tooling-modules

  219. v0.2.6

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: add node polyfills later (#597) (58b8dcd)
  220. v0.2.5

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: usage of replaceAll produces error while building (#591) (f07c0a5)
  221. v0.2.4

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: ignore module parsing errors (6154519)
  222. v0.2.3

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: ignore #text nodes in XMLViews (e884428)
  223. v0.2.2

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: ensure to export "exports" not default for cjs (5c39eae), closes #589
  224. v0.2.1

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: skip css and simulate process.env (#585) (e6f246c)
  225. v0.2.0

    Features 1

    Notes
    Features
    • ui5-tooling-modules: extended UI5 modules support (#583) (fe2c8a7), closes #578
  226. v0.1.3

    Notes

    Note: Version bump only for package ui5-tooling-modules

  227. v0.1.2

    Fixes 2

    Notes
    Bug Fixes
    • build task error message (#559) (a488791)
    • ui5-tooling-modules: include json, polyfill node.js modules (9054961), closes #564
  228. v0.1.1

    Fixes 1

    Notes
    Bug Fixes
    • ui5-tooling-modules: added missing dependency to @ui5/fs (4c26fdc)
  229. v0.1.0

    Features 1

    Notes
    Features
    • ui5-tooling-modules: new extensions to consume npm packages (a8706cc)
11,927downloads per week, npm
Weekly downloads for ui5-tooling-modules26 complete calendar weeks from 2026-04-20 to 2026-10-18; the latest total is 11927.20 Apr – 26 Apr: 28,55927 Apr – 3 May: 24,3054 May – 10 May: 29,59511 May – 17 May: 27,11918 May – 24 May: 27,30725 May – 31 May: 24,2041 Jun – 7 Jun: 20,0758 Jun – 14 Jun: 26,64515 Jun – 21 Jun: 24,15822 Jun – 28 Jun: 25,94629 Jun – 5 Jul: 23,8276 Jul – 12 Jul: 19,99313 Jul – 19 Jul: 22,04920 Jul – 26 Jul: 24,78527 Jul – 2 Aug: 22,1863 Aug – 9 Aug: 25,68810 Aug – 16 Aug: 21,75017 Aug – 23 Aug: 31,45224 Aug – 30 Aug: 27,55031 Aug – 6 Sept: 20,9737 Sept – 13 Sept: 17,71914 Sept – 20 Sept: 23,02621 Sept – 27 Sept: 25,72428 Sept – 4 Oct: 28,4045 Oct – 11 Oct: 23,40212 Oct – 18 Oct: 11,927
Build and dev-server tooling
  1. UI5 ToolsVS Code extension to serve, proxy, build and deploy UI5 projects
  2. ui5-middleware-route-proxyUI5 server middleware proxying route prefixes to a backend
  3. ui5-task-cachebuster-indexingUI5 builder task preparing build output for the cachebuster
  4. ui5-task-transpile-genUI5 builder task transpiling ES6 to ES5 with Babel
  5. ui5-middleware-odata-recorderUI5 middleware recording OData traffic as mock server datasets
  6. ui5-plugin-loaderUI5 Tooling v4 extension that registers other extensions
  7. ui5-deployerUI5 Tooling module deploying Fiori/UI5 apps to SAP systems
  8. ui5-task-dts-generatorUI5 builder task generating d.ts type declarations
  9. ui5-task-minifierUI5 builder task minifying HTML, CSS and JSON files
  10. ui5-middleware-oidcUI5 dev server middleware adding an OpenID Connect login
  11. generator-ui5-library-af-deployYeoman generator for Application Frontend config in UI5 libraries
  12. ui5-middleware-destinationUI5 Tooling middleware proxying destinations and neo-app.json routes
  13. ui5-task-check-eocpUI5 build task warning when the app's UI5 version reaches EOCP
  14. @ui5/cliUI5 Tooling command line for project setup, dev server and build
  15. ui5-task-btp-manifestUI5 Tooling task writing the service name into the importer manifest
  16. ui5-middleware-approuterUI5 CLI middleware proxying the dev server through @sap/approuter
  17. ui5-middleware-capUI5 CLI middleware running a CDS server inside the UI5 dev server
  18. ui5-middleware-hmrExperimental UI5 middleware for hot module replacement
  19. ui5-middleware-iasyncUI5 middleware syncing interactions across browsers over websocket
  20. ui5-middleware-indexUI5 middleware serving a chosen welcome page at the root path
  21. ui5-middleware-livereloadLive reload middleware for the UI5 dev server
  22. ui5-middleware-oneloginUI5 middleware logging in with Playwright and reusing the session
  23. ui5-middleware-serveframeworkUI5 middleware serving a locally built UI5 framework
  24. ui5-middleware-servestaticUI5 middleware serving static resources from a path or npm package
  25. ui5-middleware-simpleproxyDev-server middleware proxying requests to a backend system
  26. ui5-middleware-ui5UI5 middleware including one UI5 application in another
  27. ui5-middleware-webjarsUI5 middleware serving static resources from JAR files (WebJars)
  28. ui5-middleware-websocketWebSocket support for Express-based dev servers such as UI5's
  29. ui5-task-cachebusterUI5 builder task cachebusting standalone UI5 applications
  30. ui5-task-copyrightUI5 builder task appending copyright headers to source files
  31. ui5-task-flatten-libraryUI5 builder task flattening library output for SAP NetWeaver
  32. ui5-task-i18ncheckUI5 builder task checking XML views for missing i18n texts
  33. ui5-task-minify-xmlUI5 builder task minifying XML views and fragments
  34. ui5-task-pwa-enablerUI5 builder task turning a UI5 app into a progressive web app
  35. ui5-task-zipperBuild task packaging the UI5 build result as a zip archive
  36. ui5-tooling-lessUI5 CLI extension compiling Less files into CSS
  37. ui5-tooling-stringreplaceUI5 CLI extension for string replacement during the build
  38. ui5-tooling-transpileUI5 CLI extension transpiling code during the UI5 build
  39. @ui5/loggerInternal logger of the UI5 CLI
  40. @ui5/middleware-code-coverageUI5 CLI middleware for Istanbul code coverage
  41. @ui5/tooling-webcDeprecated UI5 Tooling extensions for UI5 Web Components wrappers

Details

Sources4
bestofui5discovered herechecked
npm registry, ui5-tooling-modulesversion, releases, installschecked
github.com/https://github.com/ui5-community/ui5-ecosystem-showcase.gittree, pushes, contributors, CIchecked
packages/ui5-tooling-modules/README.mdquoted, and what the entry declareschecked

Sources are graph entities: the same page may back several entries, and an unreachable source flags every row that rests on it.

Compatibility and provenance
runtimesnode
latestv3.41.2
first release
releases and cadence230, ~6d median
discovered viabestofui5
first seen in the atlas
ecosystem and domainui5, developer-experience
Flavors1
Web Components
“This allows to load multiple versions of UI5 Web Components into a single application without conflicts.” — ui5-community/ui5-ecosystem-showcase — README (packages/ui5-tooling-modules)checked
Contributors58
History in the atlas1
  1. First seen.
For your agent
Ref
artifact:ui5-community-ui5-tooling-modules
JSON
/artifacts/ui5-community-ui5-tooling-modules.json
MCP
Connecting an agent