{"id":32127939,"url":"https://github.com/carlosorozco88/ui5-tools","last_synced_at":"2026-05-28T13:00:54.432Z","repository":{"id":37603417,"uuid":"261802442","full_name":"CarlosOrozco88/ui5-tools","owner":"CarlosOrozco88","description":"UI5 Tools for vscode","archived":false,"fork":false,"pushed_at":"2025-10-17T15:44:30.000Z","size":2702,"stargazers_count":17,"open_issues_count":0,"forks_count":1,"subscribers_count":4,"default_branch":"main","last_synced_at":"2026-05-14T20:42:26.913Z","etag":null,"topics":["on-premise","openui5","sapui5","ui5","vscode-extension"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/CarlosOrozco88.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":"FUNDING.yml","license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"CarlosOrozco88"}},"created_at":"2020-05-06T15:31:48.000Z","updated_at":"2026-03-05T10:20:29.000Z","dependencies_parsed_at":"2023-11-16T16:49:26.642Z","dependency_job_id":"8babf91c-5980-42b2-9963-c618b48ae870","html_url":"https://github.com/CarlosOrozco88/ui5-tools","commit_stats":null,"previous_names":[],"tags_count":84,"template":false,"template_full_name":null,"purl":"pkg:github/CarlosOrozco88/ui5-tools","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CarlosOrozco88%2Fui5-tools","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CarlosOrozco88%2Fui5-tools/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CarlosOrozco88%2Fui5-tools/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CarlosOrozco88%2Fui5-tools/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CarlosOrozco88","download_url":"https://codeload.github.com/CarlosOrozco88/ui5-tools/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CarlosOrozco88%2Fui5-tools/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33609237,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-28T02:00:06.440Z","response_time":99,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["on-premise","openui5","sapui5","ui5","vscode-extension"],"created_at":"2025-10-21T00:42:27.933Z","updated_at":"2026-05-28T13:00:54.390Z","avatar_url":"https://github.com/CarlosOrozco88.png","language":"TypeScript","funding_links":["https://github.com/sponsors/CarlosOrozco88"],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n\u003cimg src=\"static/images/logo_blue.png\" width=\"100\" /\u003e\n\u003ch1 align=\"center\"\u003eui5-tools Extension\u003c/h1\u003e\n\u003c/p\u003e\n\nVSCode extension for ui5 developers. This extension is not intended to replace ui5 cli, its main objective is to provide a fast and global workspace configuration to work with multi root workspaces and projects deployed to on premise systems (Gateway).\n\n## Examples\n\n\u003e You can find examples of vscode workspace configuration in [this repository](https://github.com/CarlosOrozco88/ui5-tools-examples).\n\n## Features\n\n---\n\n### ui5-tools\n\n- **Automatic less builder**. Looks for `styles.less` and `PROJECTFOLDER.less`\n- **Automatic themes builder**. Build `library.source.less` themes\n- **Configurator** commands for odata proxy, resources proxy and replace strings\n\n#### Server\n\n- **Handles AppCachebuster** in localhost (by default only in PROD mode). Only use this feature to test your cachebuster behaviour with no deployment needed.\n- Configurable **proxy** to one o multiple **odata service** (Gateway, Other, None). Command `alt+c alt+o`\n- Supports `.env` file for odata service authentication. Example of `.env` file:\n\n```json\nUI5TOOLS_ODATA_USER=\nUI5TOOLS_ODATA_PASSWORD=\nUI5TOOLS_ODATA_USER_2=\nUI5TOOLS_ODATA_PASSWORD_2=\nUI5TOOLS_ODATA_USER_N=\nUI5TOOLS_ODATA_PASSWORD_N=\n```\n\n- Configurable **proxy** to **resources** (Gateway, CDN SAPUI5, CDN OpenUI5, Local Runtime, None). Command `alt+c alt+u`\n- Configurable UI5 version (when using gateway proxy, extension will detect sapui5 version automatically)\n- **Live reload browser**, css and images hot reload\n- **Typescript** support (ESM)\n- **Built in localhost home** page server, with apps launchpad, readme.md, docs (md files), links, server info...\n- **Built in launchpad** for resources: Gateway, CDN SAPUI5 and Runtime. Configurable with file `fioriSandboxConfig.json`\n- Server uses **folder hierarchy**. For product apps and Z apps, is possible to emulate gateway bsp paths\n- Start server in **development mode** `alt+s alt+s` or **production mode** `alt+s alt+p` (launches `appFolder/libraryFolder` or `distFolder` folder of each project)\n- Multiple comands: start `alt+s alt+s`, restart `alt+s alt+r`... (check commands secction)\n\n#### Builder\n\n- **Component-preload.js**, checking configured ui5 version for correct build. Build your project by doing right click in project folder or `alt+b alt+b` and select project\n- **Dbg** files creation\n- **Typescript** support (ESM)\n- **Build less** files (looks for `styles.css`, `PROJECTFOLDERNAME.less` or library.source.less)\n- **Uglify** files\n- **Replace strings**\n- Build one project `alt+b alt+b` or all apps `alt+b alt+a` in one command\n- Building preload (Component-preload and library-preload) process uses [openui5-preload](https://github.com/r-murphy/openui5-preload)\n- Building theme (library.source.less) process uses [less-openui5](https://github.com/SAP/less-openui5)\n- Building styles (styles.less and PROJECTFOLDER.less) process uses [less](https://github.com/less/less.js)\n\n#### Deployer\n\n- **Gateway deploy**, process includes build process. Deploy your project doing right click in project folder or `alt+d alt+d` and select project\n- **ui5-tools.json** file located at project folder, with deployment configuration: [ui5-tools.json example](https://github.com/CarlosOrozco88/ui5-tools-examples/blob/main/single-project/ui5-tools.json)\n- **Create, update and save** last order in ui5-tools.json file (configurable)\n- **Autoprefix** BSP name in order text while creation (optional)\n- Supports `.env` file for gateway authentication.\n\n```json\nUI5TOOLS_DEPLOY_USER=\nUI5TOOLS_DEPLOY_PASSWORD=\n```\n\n- Deploy process uses [ui5-nwabap-deployer-core\n  ](https://github.com/pfefferf/ui5-nwabap-deployer/blob/master/packages/ui5-nwabap-deployer-core), so the extension uses the same configuration in file ui5-tools.json (property deployer.options)\n\n#### Importer\n\n- **Import BSP** directly from Gateway systems `alt+i alt+i`\n- Supports `.env` file for gateway authentication.\n\n```json\nUI5TOOLS_IMPORT_USER=\nUI5TOOLS_IMPORT_PASSWORD=\n```\n\n### String replacer\n\n- **Default replace patterns** `\u003c% TIMESTAMP %\u003e`, `\u003c% ISODATE %\u003e`, `\u003c% DMY %\u003e`, `\u003c% YMD %\u003e`, `\u003c% MYD %\u003e`\n- **Create custom replacements** like `\u003c% CUSTOMKEY %\u003e` in workspace environment (configurable with command `alt+c alt+r`)\n- **Computed values** `COMPUTED_DATE_TIMESTAMP`, `COMPUTED_DATE_ISO`, `COMPUTED_DATE_DMY`, `COMPUTED_DATE_YMD`, `COMPUTED_DATE_MYD` and the special value `COMPUTED_DATE_FORMATTED`\n- **Suports custom computed date format**, replacements using dayjs during the build process:\n\n```json\n\"ui5-tools.builder.replaceKeysValues\": [\n  {\n    \"key\": \"DATE_FORMATED_EXAMPLE\",\n    \"value\": \"COMPUTED_DATE_FORMAT\",\n    \"param\": \"DD/MM/YYYY HH:mm:SS\"\n  }\n]\n```\n\n## Settings\n\n---\n\n#### General Settings\n\n- `ui5-tools.appFolder`: Transpiled folder for applications (js) | default: `webapp`\n- `ui5-tools.libraryFolder`: Transpiled folder for libraries (js) | default: `src`\n- `ui5-tools.distFolder`: Destination folder in your project (final build) | default: `dist`\n- `ui5-tools.ui5Version`: UI5 library version for CDN proxy in server and build correct preload files: `1.71.63`\n- `ui5-tools.verbose`: Log al messages `false`\n\n#### Server Settings\n\n- `ui5-tools.server.name`: Server name | default: `UI5 Server`\n- `ui5-tools.server.port`: Set custom port of UI5 Server | default: `3000`\n- `ui5-tools.server.startOnLaunch`: Start server at launch vscode | default: `false`\n- `ui5-tools.server.openBrowser`: Open browser al launch server | default: `true`\n- `ui5-tools.server.watch`: Activate live reload | default: `true`\n- `ui5-tools.server.timeout`: Server timeout (ms), 0 for disable timeout | default: `60000`\n- `ui5-tools.server.watchExtensions`: Extensions to listen for live reload | default: `css,js,json,xml,html,properties`\n- `ui5-tools.server.protocol`: Should use http or https. HTTPS requires `cert/server.pem` and `cert/server.key` | default: `http`\n- `ui5-tools.server.odataProxy`: Proxy all odata calls to a server | default: `None`\n- `ui5-tools.server.odataUri`: Your odata server uri url (example: `http://srvaspgwd.com:8080/`). odataProxy `Other` accepts multiple uris (example: `http://srvaspgwd.com:8080/, http://srvaspgwd.com:8080/`)\n- `ui5-tools.server.odataSecure`: Verify odataProxy SSL Certs | default: `false`\n- `ui5-tools.server.odataMountPath`: The mountpath for 'Other' odataProxy. Accepts multiple paths, respecting the same order that odataUri for odataProxy type `Other` | default: `/odata`\n- `ui5-tools.server.resourcesProxy`: Proxy all odata calls to a Gateway, CDN or Local Runtime (proxy all url begining with /resources) | default: `CDN SAPUI5`\n- `ui5-tools.server.resourcesUri`: Your resources server url (example: http://srvaspgwd.com:8080/)\n- `ui5-tools.server.proxyDestinations`: Your own list of destinations | default: `[]`\n- `ui5-tools.server.resourcesSecure`: Verify resourcesProxy SSL Certs | default: `false`\n- `ui5-tools.server.cacheBuster`: Activate cacheBuster in server mode: | Default: `None`\n\n#### Builder Settings\n\n- `ui5-tools.builder.debugSources`: Create debug js files when building | default: `true`\n- `ui5-tools.builder.uglifyPreload`: Uglify Component-preload.js when building. If uglifySources is activated, this flag is redundant | default: `false`\n- `ui5-tools.builder.uglifySources`: Uglify Component-preload.js and all js files when building | default: `true`\n- `ui5-tools.builder.uglifySourcesExclude`: Exclude uri for uglify, generate a RelativePattern to exclude, can be n separated by comma | default: ``\n- `ui5-tools.builder.preloadSrc`: Array with all patterns to include/exclude in Component-preload.js | default: `\"**/*.js\", \"**/*.fragment.html\", \"**/*.fragment.json\", \"**/*.fragment.xml\", \"**/*.view.html\", \"**/*.view.json\", \"**/*.view.xml\", \"**/*.properties\", \"!**/*-dbg.js\"`\n- `ui5-tools.builder.buildLess`: Auto build less files into css when saving changes | default: `true`\n- `ui5-tools.builder.replaceStrings`: Replace strings when building | default: `true`\n- `ui5-tools.builder.replaceExtensions`: File extensions to look for keys to replace | default: `xml,js,json,properties`\n- `ui5-tools.builder.replaceKeysValues`: Key/Value pair list. Replace \u003c% key %\u003e with 'value' while building the project | default:\n  `[ { \"key\": \"TIMESTAMP\", \"value\": \"COMPUTED_DATE_TIMESTAMP\" }, { \"key\": \"ISODATE\", \"value\": \"COMPUTED_DATE_ISO\" }, { \"key\": \"DMY\", \"value\": \"COMPUTED_DATE_DMY\" }, { \"key\": \"YMD\", \"value\": \"COMPUTED_DATE_YMD\" }, { \"key\": \"MYD\", \"value\": \"COMPUTED_DATE_MYD\" } ]`\n\n#### Deployer Settings\n\n- `ui5-tools.deployer.autoSaveOrder`: Saves de transport number in ui5-tools.json file | default: `true`\n- `ui5-tools.deployer.autoPrefixBSP`: Auto prefix BSP name in all transport texts while creation | default: `false`\n- `ui5-tools.deployer.rejectUnauthorized`: Reject deployments in servers with misconfigured certificates\n\n#### Importer Settings\n\n- `ui5-tools.importer.uri`: Source gateway system to import BSPs | default: ``\n\n## Commands\n\n---\n\n#### General Commands\n\n- `ui5-tools.general.refreshProjects`: Search for UI5 projects | Shortcut: `alt+g alt+r`\n- `ui5-tools.general.showOutput`: Open the extension output | Shortcut: `alt+g alt+o`\n\n#### Server Commands\n\n- `ui5-tools.server.startDevelopment`: Start server in development mode (appFolder/libraryFolder) | Shortcut: `alt+s alt+s`\n- `ui5-tools.server.startProduction`: Start server in production mode (distFolder) | Shortcut: `alt+s alt+p`\n- `ui5-tools.server.startBuildProduction`: Build workspace and start server in production mode | Shortcut: `alt+s alt+b`\n- `ui5-tools.server.stop`: Stop server | Shortcut: `alt+s alt+x`\n- `ui5-tools.server.restart`: Restart server | Shortcut: `alt+s alt+r`\n- `ui5-tools.server.toggle`: Toggle server | Shortcut: `alt+s alt+t`\n\n#### Builder Commands\n\n- `ui5-tools.builder.build`: Build ui5 project | Shortcut: `alt+b alt+b`\n- `ui5-tools.builder.buildAll`: Build workspace | Shortcut: `alt+b alt+a`\n\n#### Deployer Commands\n\n- `ui5-tools.deployer.deploy`: Build and deploy project | Shortcut: `alt+d alt+d`\n- `ui5-tools.deployer.deployOnly`: Deploy project | Shortcut: `alt+d alt+o`\n- `ui5-tools.deployer.deployMultiple`: Build and deploy multiple projects | Shortcut: `alt+m alt+m`\n\n#### Importer Commands\n\n- `ui5-tools.importer.import`: Import BSP from Gateway system | Shortcut: `alt+i alt+i`\n\n#### Configurator Commands\n\n- `ui5-tools.configurator.odataProvider`: Configure odata provider | Shortcut: `alt+c alt+o`\n- `ui5-tools.configurator.ui5Provider`: Configure ui5 provider | Shortcut: `alt+c alt+u`\n- `ui5-tools.configurator.replaceStrings`: Configure replace strings | Shortcut: `alt+c alt+r`\n- `ui5-tools.configurator.uninstallRuntime`: Uninstall SAPUI5 Runtime | Shortcut: `alt+c alt+d`\n\n## Menus\n\n---\n\n- `ui5-tools.menu.builder.build`: Build option in project folder menu (right click)\n- `ui5-tools.menu.deployer.deploy`: Build and deploy option in project folder menu (right click)\n- `ui5-tools.menu.deployer.deployOnly`: Deploy option in project folder menu (right click)\n\n## Contributors\n\n\u003ctable\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\n        \u003ca href=\"https://github.com/CarlosOrozco88\"\u003e\n          \u003cimg src=\"https://avatars.githubusercontent.com/u/11719827?v=4\u0026s=100\" width=\"100px\" alt=\"Carlos Orozco Jiménez\"\u003e\n          \u003cbr /\u003e\n          \u003csub\u003e\u003cb\u003eCarlos Orozco Jiménez\u003c/b\u003e\u003c/sub\u003e\n        \u003c/a\u003e\n      \u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\n        \u003ca href=\"https://github.com/dperezbr\"\u003e\n          \u003cimg src=\"https://avatars.githubusercontent.com/u/33299683?v=4\u0026s=100\" width=\"100px\" alt=\"David Perez Bris\"\u003e\n          \u003cbr /\u003e\n          \u003csub\u003e\u003cb\u003eDavid Perez Bris\u003c/b\u003e\u003c/sub\u003e\n        \u003c/a\u003e\n      \u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\n        \u003ca href=\"https://github.com/sergio-gracia\"\u003e\n          \u003cimg src=\"https://avatars.githubusercontent.com/u/9425120?v=4\u0026s=100\" width=\"100px\" alt=\"Sergio Gracia Diaz\"\u003e\n          \u003cbr /\u003e\n          \u003csub\u003e\u003cb\u003eSergio Gracia Diaz\u003c/b\u003e\u003c/sub\u003e\n        \u003c/a\u003e\n      \u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\n        \u003ca href=\"https://github.com/Santi517\"\u003e\n          \u003cimg src=\"https://avatars.githubusercontent.com/u/145746607?v=4\u0026s=100\" width=\"100px\" alt=\"Santiago de Arriba Cortijo\"\u003e\n          \u003cbr /\u003e\n          \u003csub\u003e\u003cb\u003eSantiago de Arriba Cortijo\u003c/b\u003e\u003c/sub\u003e\n        \u003c/a\u003e\n      \u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\n        \u003ca href=\"https://github.com/jeremies\"\u003e\n          \u003cimg src=\"https://avatars.githubusercontent.com/u/18210819?v=4\u0026s=100\" width=\"100px\" alt=\"Joaquim Monserrat Companys\"\u003e\n          \u003cbr /\u003e\n          \u003csub\u003e\u003cb\u003eJoaquim Monserrat Companys\u003c/b\u003e\u003c/sub\u003e\n        \u003c/a\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\n## Credits\n\n---\n\n- Preload javascript builder: [openui5-preload](https://github.com/r-murphy/openui5-preload) - [Ryan Murphy](https://github.com/r-murphy)\n- Deployer: [ui5-nwabap-deployer-core](https://github.com/pfefferf/ui5-nwabap-deployer/blob/master/packages/ui5-nwabap-deployer-core) - [Florian Pfeffer](https://github.com/pfefferf)\n- Less library builder: [less-openui5](https://github.com/SAP/less-openui5) - [SAP](https://github.com/SAP)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcarlosorozco88%2Fui5-tools","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcarlosorozco88%2Fui5-tools","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcarlosorozco88%2Fui5-tools/lists"}