+
diff --git a/README_AUTHORS.md b/CONTRIBUTING.md
similarity index 58%
rename from README_AUTHORS.md
rename to CONTRIBUTING.md
index 358e63836..8dca92657 100644
--- a/README_AUTHORS.md
+++ b/CONTRIBUTING.md
@@ -1,6 +1,40 @@
-# Documentation for Tutorial Authors
+# Contributing to OpenUI5 Sample App
-# General
+In general the contributing guidelines of OpenUI5 also apply to this project. They can be found here:
+https://github.com/UI5/openui5/blob/main/CONTRIBUTING.md
+
+Some parts might not be relevant for this project (e.g. the browser-specific requirements like jQuery, CSS and accessibility in the "Contribution Content Guidelines") and the contribution process is easier (pull requests will be merged directly on GitHub).
+
+## Requirements
+
+Running the content of this repository locally (as opposed to following the tutorial steps) requires a [Node.js](https://nodejs.org/) version >= `20.11.0` to be installed.
+
+## Download and Installation
+
+> This section describes how to run the content of the repository locally and is *not* required for following the tutorial. For following the tutorial, simply start with Step 1 in the list of steps above. From there, you can also download and run the result of each step locally.
+
+The project is set up as monorepo. All steps are located inside the `steps` folder and labelled with their step number. The monorepo uses `npm` workspaces to manage all steps together. But you can also run `npm` inside each individual step.
+
+To set up the monorepo you first need to install all depenedencies:
+
+```sh
+npm install
+```
+
+To run any step, just execute one of the scripts from `package.json` via npm, e.g.:
+
+```sh
+# Option 1: use workspace command to start the step
+npm start -w ui5.walkthrough.step01
+
+# Option 2: change to the folder of the step and start it
+cd steps/01
+npm start
+```
+
+## Documentation for Tutorial Authors
+
+### General
The setup of this project allows maintaining *one* tutorial text that covers both JavaScript and TypeScript with minimal overhead and without duplication of content.
@@ -11,12 +45,12 @@ Main features of the two-language support are:
2. Two adjacent code sections in different languages are automatically converted to a tab container which allows switching between languages.
3. File extensions writen as `.?s` appear automatically as `.js` or `.ts` depending on the current language.
-## Limitations
+### Limitations
The feature 3. above does not work inside code blocks (yet).
-## Running the preview/dev server
+### Running the preview/dev server
To immediately preview the markdown document you are writing *including* the two-language magic, simply run
@@ -35,11 +69,11 @@ npm start
A browser window will automatically open (on port 3000 or the next free port) and automatically reload on every saved change.
-## Writing *one* document which covers both JavaScript and TypeScript without duplication
+### Writing *one* document which covers both JavaScript and TypeScript without duplication
The following features help providing language-specific content without duplication of other content.
-### 1. Language-specific Blocks of Content
+#### 1. Language-specific Blocks of Content
When a certain part of the tutorial content (can be explanation and/or code) is only relevant for *one* of the languages (JavaScript *or* TypeScript), then enclose it within the following tags. The CSS class decides for which language it is meant!
@@ -61,7 +95,7 @@ JavaScript-only:
The `markdown="1"` part is required for markdown parsing within HTML and the `` is helpful for readers of the raw markdown view, so please use the tag structure as-is, with your actual content in between.
-#### Resulting Appearance in markdown view (not in the final page)
+##### Resulting Appearance in markdown view (not in the final page)This section is relevant for TypeScript only
...here comes the TS-only text...
@@ -72,7 +106,7 @@ The `markdown="1"` part is required for markdown parsing within HTML and the `
-### 2. Switchable code blocks in both languages
+#### 2. Switchable code blocks in both languages
When a piece of code should be displayed in either JS or TS, whatever is current, then simply create two adjacent markdown-fenced code blocks. They are automatically recognized as language-specific alternatives.
@@ -91,7 +125,7 @@ Example:
> Some places where this occurs may not be properly recognized, so make sure to test it.
-#### Resulting Appearance in markdown view (here in markdown you still see BOTH and no tab container; the magic only happens in the dev server and in GitHub Pages)
+##### Resulting Appearance in markdown view (here in markdown you still see BOTH and no tab container; the magic only happens in the dev server and in GitHub Pages)
```js
const i = 0;
@@ -101,7 +135,7 @@ const i = 0;
const i: number = 0;
```
-### 3. File Extensions (`.js/.ts`)
+#### 3. File Extensions (`.js/.ts`)
When the text or a section heading mentions the name of a file that will be JavaScript or TypeScript, depending on the language, then use the file extension `.\?s`. It will automatically be switched to the current language.
@@ -110,11 +144,11 @@ Example:
In this step you create the file `Example.controller.\?s`.
```
-#### Resulting Appearance in markdown view (here the extension is not replaced, the replacement only happens in the dev server and in GitHub Pages)
+##### Resulting Appearance in markdown view (here the extension is not replaced, the replacement only happens in the dev server and in GitHub Pages)
In this step you create the file `Example.controller.?s`.
-## Converting the JS Code to TypeScript
+### Converting the JS Code to TypeScript
TODO: tool support for this functionality does not exist yet. It can, however, already be done manually.
@@ -137,5 +171,7 @@ sap.ui.define(["./BaseController"], function (__BaseController) {
Remove the function definition and the line calling the function. Rename the dependency in the `sap.ui.define` call from `__BaseController` to `BaseController`.
+## Contributing with AI-generated code
+As artificial intelligence evolves, AI-generated code is becoming valuable for many software projects, including open-source initiatives. While we recognize the potential benefits of incorporating AI-generated content into our open-source projects there are certain requirements that need to be reflected and adhered to when making contributions.
-### TODO: Some more similar things, unless we do it in the transpiler
+Please see our [guideline for AI-generated code contributions to SAP Open Source Software Projects](https://github.com/SAP/.github/blob/main/CONTRIBUTING_USING_GENAI.md) for these requirements.
diff --git a/README.md b/README.md
index 1eba22cab..eea04b0c5 100644
--- a/README.md
+++ b/README.md
@@ -1,22 +1,6 @@
-
-
[](https://api.reuse.software/info/github.com/SAP-samples/ui5-typescript-walkthrough)
-# OpenUI5 Walkthrough
+# UI5 Tutorials
In this tutorial we'll introduce you to all major development paradigms of OpenUI5. This section is relevant for TypeScript onlyWe'll also demonstrate the use of TypeScript with OpenUI5 and highlight the specific characteristics of this approach.
@@ -24,90 +8,11 @@ In this tutorial we'll introduce you to all major development paradigms of OpenU
We first introduce you to the basic development paradigms like *Model-View-Controller* and establish a best-practice structure of our application. We'll do this along the classic example of βHello Worldβ and start a new app from scratch. Next, we'll introduce the fundamental data binding concepts of OpenUI5 and extend our app to show a list of invoices. We'll continue to add more functionality by adding navigation, extending controls, and making our app responsive. We'll also have look at the testing features and the built-in support tools of OpenUI5.
-### Preview
-
-
-
-> π‘ **Tip:**
-> You don't have to do all tutorial steps sequentially, you can also jump directly to any step you want. Just download the code from the previous step and make sure that the application runs as intended.
->
-> You can view the samples for all steps here in this repository.
->
-> For more information, read the [Getting Started](#getting-started) section below.
-
-### Steps
-
-The tutorial consists of the following steps. To start, just open the first link - you`ll be guided from there.
-
-- **[Step 1: Hello World!](steps/01/README.md "As you know OpenUI5 is all about HTML5. Letβs get started with building a first "Hello World" with only HTML.")** ([π Live Preview](https://sap-samples.github.io/ui5-typescript-walkthrough/build/01/index.html) \| [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-01.zip) [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-01-js.zip) )
-- **[Step 2: Bootstrap](steps/02/README.md "Before we can do something with OpenUI5, we need to load and initialize it. This process of loading and initializing OpenUI5 is called bootstrapping. Once this bootstrapping is finished, we simply display an alert.")** ([π Live Preview](https://sap-samples.github.io/ui5-typescript-walkthrough/build/02/index-cdn.html) \| [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-02.zip) [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-02-js.zip) )
-- **[Step 3: Controls](steps/03/README.md "Now it is time to build our first little UI by replacing the "Hello World" text in the HTML body by the OpenUI5 control sap/m/Text. In the beginning, we will use the JavaScript control interface to set up the UI, the control instance is then placed into the HTML body. ")** ([π Live Preview](https://sap-samples.github.io/ui5-typescript-walkthrough/build/03/index-cdn.html) \| [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-03.zip) [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-03-js.zip) )
-- **[Step 4: XML Views](steps/04/README.md "Putting all our UI into the index.ts file will very soon result in a messy setup, and there is quite a bit of work ahead of us. So letβs do a first modularization by putting the sap/m/Text control into a dedicated view.")** ([π Live Preview](https://sap-samples.github.io/ui5-typescript-walkthrough/build/04/index-cdn.html) \| [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-04.zip) [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-04-js.zip) )
-- **[Step 5: Controllers](steps/05/README.md "In this step, we replace the text with a button and show the "Hello World" message when the button is pressed. The handling of the button's press event is implemented in the controller of the view.")** ([π Live Preview](https://sap-samples.github.io/ui5-typescript-walkthrough/build/05/index-cdn.html) \| [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-05.zip) [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-05-js.zip) )
-- **[Step 6: Modules](steps/06/README.md "In OpenUI5, resources are often referred to as modules. In this step, we replace the alert from the last exercise with a proper Message Toast from the sap.m library.")** ([π Live Preview](https://sap-samples.github.io/ui5-typescript-walkthrough/build/06/index-cdn.html) \| [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-06.zip) [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-06-js.zip) )
-- **[Step 7: JSON Model](steps/07/README.md "Now that we have set up the view and controller, itβs about time to think about the M in MVC.")** ([π Live Preview](https://sap-samples.github.io/ui5-typescript-walkthrough/build/07/index-cdn.html) \| [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-07.zip) [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-07-js.zip) )
-- **[Step 8: Translatable Texts](steps/08/README.md "In this step we move the texts of our UI to a separate resource file.")** ([π Live Preview](https://sap-samples.github.io/ui5-typescript-walkthrough/build/08/index-cdn.html) \| [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-08.zip) [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-08-js.zip) )
-- **[Step 9: Component Configuration](steps/09/README.md "After we have introduced all three parts of the Model-View-Controller /(MVC/) concept, we now come to another important structural aspect of OpenUI5. ")** ([π Live Preview](https://sap-samples.github.io/ui5-typescript-walkthrough/build/09/index-cdn.html) \| [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-09.zip) [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-09-js.zip))
-- **[Step 10: Descriptor for Applications](steps/10/README.md "All application-specific configuration settings will now further be put in a separate descriptor file called manifest.json. This clearly separates the application coding from the configuration settings and makes our app even more flexible. For example, all SAP Fiori applications are realized as components and come with a descriptor file in order to be hosted in the SAP Fiori launchpad.")** ([π Live Preview](https://sap-samples.github.io/ui5-typescript-walkthrough/build/10/index-cdn.html) \| [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-10.zip) [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-10-js.zip) )
-- **[Step 11: Pages and Panels](steps/11/README.md "After all the work on the app structure itβs time to improve the look of our app. We will use two controls from the sap.m library to add a bit more "bling" to our UI. You will also learn about control aggregations in this step.")** ([π Live Preview](https://sap-samples.github.io/ui5-typescript-walkthrough/build/11/index-cdn.html) \| [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-11.zip) [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-11-js.zip) )
-- **[Step 12: Shell Control as Container](steps/12/README.md "Now we use a shell control as container for our app and use it as our new root element. The shell takes care of visual adaptation of the application to the deviceβs screen size by introducing a so-called letterbox on desktop screens.")** ([π Live Preview](https://sap-samples.github.io/ui5-typescript-walkthrough/build/12/index-cdn.html) \| [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-12.zip) [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-12-js.zip) )
-- **[Step 13: Margins and Paddings](steps/13/README.md "Our app content is still glued to the corners of the letterbox. To fine-tune our layout, we can add margins and paddings to the controls that we added in the previous step. ")** ([π Live Preview](https://sap-samples.github.io/ui5-typescript-walkthrough/build/13/index-cdn.html) \| [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-13.zip) [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-13-js.zip) )
-- **[Step 14: Custom CSS and Theme Colors](steps/14/README.md "Sometimes we need to define some more fine-granular layouts and this is when we can use the flexibility of CSS by adding custom style classes to controls and style them as we like. ")** ([π Live Preview](https://sap-samples.github.io/ui5-typescript-walkthrough/build/14/index-cdn.html) \| [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-14.zip) [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-14-js.zip))
-- **[Step 15: Nested Views](steps/15/README.md "Our panel content is getting more and more complex and now it is time to move the panel content to a separate view. With that approach, the application structure is much easier to understand, and the individual parts of the app can be reused.")** ([π Live Preview](https://sap-samples.github.io/ui5-typescript-walkthrough/build/15/index-cdn.html) \| [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-15.zip) [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-15-js.zip))
-- **[Step 16: Dialogs and Fragments](steps/16/README.md "In this step, we will take a closer look at another element which can be used to assemble views: the fragment. ")** ([π Live Preview](https://sap-samples.github.io/ui5-typescript-walkthrough/build/16/index-cdn.html) \| [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-16.zip) [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-16-js.zip))
-- **[Step 17: Fragment Callbacks](steps/17/README.md "Now that we have integrated the dialog, it's time to add some user interaction. The user will definitely want to close the dialog again at some point, so we add a button to close the dialog and assign an event handler.")** ([π Live Preview](https://sap-samples.github.io/ui5-typescript-walkthrough/build/17/index-cdn.html) \| [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-17.zip) [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-17-js.zip))
-- **[Step 18: Icons](steps/18/README.md "Our dialog is still pretty much empty. Since OpenUI5 is shipped with a large icon font that contains more than 500 icons, we will add an icon to greet our users when the dialog is opened.")** ([π Live Preview](https://sap-samples.github.io/ui5-typescript-walkthrough/build/18/index-cdn.html) \| [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-18.zip) [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-18-js.zip))
-- **[Step 19: Aggregation Binding](steps/19/README.md "Now that we have established a good structure for our app, it's time to add some more functionality. We start exploring more features of data binding by adding some invoice data in JSON format that we display in a list below the panel.")** ([π Live Preview](https://sap-samples.github.io/ui5-typescript-walkthrough/build/19/index-cdn.html) \| [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-19.zip) [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-19-js.zip))
-- **[Step 20: Data Types](steps/20/README.md "The list of invoices is already looking nice, but what is an invoice without a price assigned? Typically prices are stored in a technical format and with a /'./' delimiter in the data model. For example, our invoice for pineapples has the calculated price 87.2 without a currency. We are going to use the OpenUI5 data types to format the price properly, with a locale-dependent decimal separator and two digits after the separator.")** ([π Live Preview](https://sap-samples.github.io/ui5-typescript-walkthrough/build/20/index-cdn.html) \| [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-20.zip) [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-20-js.zip) )
-- **[Step 21: Expression Binding](steps/21/README.md "Sometimes the predefined types of OpenUI5 are not flexible enough and you want to do a simple calculation or formatting in the view - that is where expressions are really helpful. We use them to format our price according to the current number in the data model.")** ([π Live Preview](https://sap-samples.github.io/ui5-typescript-walkthrough/build/21/index-cdn.html) \| [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-21.zip) [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-21-js.zip))
-- **[Step 22: Custom Formatters](steps/22/README.md "If we want to do a more complex logic for formatting properties of our data model, we can also write a custom formatting function. We will now add a localized status with a custom formatter, because the status in our data model is in a rather technical format.")** ([π Live Preview](https://sap-samples.github.io/ui5-typescript-walkthrough/build/22/index-cdn.html) \| [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-22.zip) [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-22-js.zip))
-- **[Step 23: Filtering](steps/23/README.md "In this step, we add a search field for our product list and define a filter that represents the search term. When searching, the list is automatically updated to show only the items that match the search term.")** ([π Live Preview](https://sap-samples.github.io/ui5-typescript-walkthrough/build/23/index-cdn.html) \| [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-23.zip) [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-23-js.zip))
-- **[Step 24: Sorting and Grouping](steps/24/README.md "To make our list of invoices even more user-friendly, we sort it alphabetically instead of just showing the order from the data model. Additionally, we introduce groups and add the company that ships the products so that the data is easier to consume.")** ([π Live Preview](https://sap-samples.github.io/ui5-typescript-walkthrough/build/24/index-cdn.html) \| [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-24.zip) [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-24-js.zip))
-- **[Step 25: Remote OData Service](steps/25/README.md "So far we have worked with local JSON data, but now we will access a real OData service to visualize remote data.")** (π Live Preview *unfeasible* \| [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-25.zip) [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-25-js.zip))
-- **[Step 26: Mock Server Configuration](steps/26/README.md "We just ran our app against a real service, but for developing and testing our app we do not want to rely on the availability of the βrealβ service or put additional load on the system where the data service is located.")** ([π Live Preview](https://sap-samples.github.io/ui5-typescript-walkthrough/build/26/test/mockServer-cdn.html) \| [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-26.zip) [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-26-js.zip))
-- **[Step 27: Unit Test with QUnit](steps/27/README.md "Now that we have a test folder in the app, we can start to increase our test coverage. ")** ([π Live Preview](https://sap-samples.github.io/ui5-typescript-walkthrough/build/27/test/Test.cdn.qunit.html?testsuite=test-resources/ui5/walkthrough/testsuite.cdn.qunit&test=unit/unitTests) \| [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-27.zip) [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-27-js.zip))
-- **[Step 28: Integration Test with OPA](steps/28/README.md "If we want to test interaction patterns or more visual features of our app, we can also write an integration test. ")** ([π Live Preview](https://sap-samples.github.io/ui5-typescript-walkthrough/build/28/test/Test.cdn.qunit.html?testsuite=test-resources/ui5/walkthrough/testsuite.cdn.qunit&test=integration/opaTests) \| [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-28.zip) [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-28-js.zip))
-- **[Step 29: Debugging Tools](steps/29/README.md "Even though we have added a basic test coverage in the previous steps, it seems like we accidentally broke our app, because it does not display prices to our invoices anymore. We need to debug the issue and fix it before someone finds out.")** (*code remains unchanged from the previous step*)
-- **[Step 30: Routing and Navigation](steps/30/README.md "So far, we have put all app content on one single page. As we add more and more features, we want to split the content and put it on separate pages.")** ([π Live Preview](https://sap-samples.github.io/ui5-typescript-walkthrough/build/30/test/mockServer-cdn.html) \| [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-30.zip) [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-30-js.zip))
-- **[Step 31: Routing with Parameters](steps/31/README.md "We can now navigate between the overview and the detail page, but the actual item that we selected in the overview is not displayed on the detail page yet. A typical use case for our app is to show additional information for the selected item on the detail page. ")** ([π Live Preview](https://sap-samples.github.io/ui5-typescript-walkthrough/build/31/test/mockServer-cdn.html) \| [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-31.zip) [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-31-js.zip))
-- **[Step 32: Routing Back and History](steps/32/README.md "Now we can navigate to our detail page and display an invoice, but we cannot go back to the overview page yet. We'll add a back button to the detail page and implement a function that shows our overview page again.")** ([π Live Preview](https://sap-samples.github.io/ui5-typescript-walkthrough/build/32/test/mockServer-cdn.html) \| [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-32.zip) [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-32-js.zip))
-- **[Step 33: Custom Controls](steps/33/README.md "In this step, we are going to extend the functionality of OpenUI5 with a custom control. We want to rate the product shown on the detail page, so we create a composition of multiple standard controls using the OpenUI5 extension mechanism and add some glue code to make them work nicely together. This way, we can reuse the control across the app and keep all related functionality in one module.")** ([π Live Preview](https://sap-samples.github.io/ui5-typescript-walkthrough/build/33/test/mockServer-cdn.html) \| [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-33.zip) [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-33-js.zip))
-- **[Step 34: Responsiveness](steps/34/README.md "In this step, we improve the responsiveness of our app. OpenUI5 applications can be run on phone, tablet, and desktop devices and we can configure the application to make best use of the screen estate for each scenario. Fortunately, OpenUI5 controls like the sap.m.Table already deliver a lot of features that we can use.")** ([π Live Preview](https://sap-samples.github.io/ui5-typescript-walkthrough/build/34/test/mockServer-cdn.html) \| [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-34.zip) [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-34-js.zip))
-- **[Step 35: Device Adaptation](steps/35/README.md "We now configure the visibility and properties of controls based on the device that we run the application on. By making use of the sap.ui.Device API and defining a device model we will make the app look great on many devices.")** ([π Live Preview](https://sap-samples.github.io/ui5-typescript-walkthrough/build/35/test/mockServer-cdn.html) \| [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-35.zip) [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-35-js.zip))
-- **[Step 36: Content Density](steps/36/README.md "In this step of our Walkthrough tutorial, we adjust the content density based on the userβs device. OpenUI5 contains different content densities allowing you to display larger controls for touch-enabled devices and a smaller, more compact design for devices that are operated by mouse. In our app, we will detect the device and adjust the density accordingly.")** ([π Live Preview](https://sap-samples.github.io/ui5-typescript-walkthrough/build/36/test/mockServer-cdn.html) \| [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-36.zip) [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-36-js.zip))
-- **[Step 37: Accessibility](steps/37/README.md "In this step we're going to improve the accessibility of our app.")** ([π Live Preview](https://sap-samples.github.io/ui5-typescript-walkthrough/build/37/test/mockServer-cdn.html) \| [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-37.zip) [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-37-js.zip))
-- **[Step 38: Build Your Application](steps/38/README.md "In this step we're going to build our application and consume the speed of a built OpenUI5 application.")** ( [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-38.zip) [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-38-js.zip))
-
-## Requirements
-
-Running the content of this repository locally (as opposed to following the tutorial steps) requires a [Node.js](https://nodejs.org/) version >= `20.11.0` to be installed.
-
-## Download and Installation
-
-> This section describes how to run the content of the repository locally and is *not* required for following the tutorial. For following the tutorial, simply start with Step 1 in the list of steps above. From there, you can also download and run the result of each step locally.
-
-The project is set up as monorepo. All steps are located inside the `steps` folder and labelled with their step number. The monorepo uses `npm` workspaces to manage all steps together. But you can also run `npm` inside each individual step.
-
-To set up the monorepo you first need to install all depenedencies:
-
-```sh
-npm install
-```
-
-To run any step, just execute one of the scripts from `package.json` via npm, e.g.:
-
-```sh
-# Option 1: use workspace command to start the step
-npm start -w ui5.walkthrough.step01
-
-# Option 2: change to the folder of the step and start it
-cd steps/01
-npm start
-```
-
-## Known Issues
+## Tutorials
-No known issues.
+This repository contains following tutorials:
+- [Quickstart](./packages/quickstart/)
+- [Walkthrough](./packages/walkthrough/)
## How to obtain support
diff --git a/REUSE.toml b/REUSE.toml
index 3c40793d8..422641208 100644
--- a/REUSE.toml
+++ b/REUSE.toml
@@ -1,11 +1,11 @@
version = 1
SPDX-PackageName = "ui5-typescript-walkthrough"
SPDX-PackageSupplier = "ospo@sap.com"
-SPDX-PackageDownloadLocation = ""
+SPDX-PackageDownloadLocation = ""
SPDX-PackageComment = "The code in this project may include calls to APIs (\"API Calls\") of\n SAP or third-party products or services developed outside of this project\n (\"External Products\").\n \"APIs\" means application programming interfaces, as well as their respective\n specifications and implementing code that allows software to communicate with\n other software.\n API Calls to External Products are not licensed under the open source license\n that governs this project. The use of such API Calls and related External\n Products are subject to applicable additional agreements with the relevant\n provider of the External Products. In no event shall the open source license\n that governs this project grant any rights in or to any External Products,or\n alter, expand or supersede any terms of the applicable additional agreements.\n If you have a valid license agreement with SAP for the use of a particular SAP\n External Product, then you may make use of any API Calls included in this\n project's code for that SAP External Product, subject to the terms of such\n license agreement. If you do not have a valid license agreement for the use of\n a particular SAP External Product, then you may only make use of any API Calls\n in this project for that SAP External Product for your internal, non-productive\n and non-commercial test and evaluation of such API Calls. Nothing herein grants\n you any rights to use or access any SAP External Product, or provide any third\n parties the right to use of access any SAP External Product, through API Calls."
[[annotations]]
path = "**"
precedence = "aggregate"
-SPDX-FileCopyrightText = "2023 SAP SE or an SAP affiliate company and ui5-typescript-walkthrough contributors"
+SPDX-FileCopyrightText = "2026 SAP SE or an SAP affiliate company and UI5 TypeScript Walkthrough contributors"
SPDX-License-Identifier = "Apache-2.0"
diff --git a/assets/loio240ef5357d7f4d36955092cdaf1884a2_LowRes.png b/assets/loio240ef5357d7f4d36955092cdaf1884a2_LowRes.png
new file mode 100644
index 000000000..59ff5ab36
Binary files /dev/null and b/assets/loio240ef5357d7f4d36955092cdaf1884a2_LowRes.png differ
diff --git a/assets/loio79e1157d948c488c9717ef840fa9b396_LowRes.png b/assets/loio79e1157d948c488c9717ef840fa9b396_LowRes.png
new file mode 100644
index 000000000..f443a0f11
Binary files /dev/null and b/assets/loio79e1157d948c488c9717ef840fa9b396_LowRes.png differ
diff --git a/assets/loio9c157e9764b846fea7de519d141c33ac_LowRes.png b/assets/loio9c157e9764b846fea7de519d141c33ac_LowRes.png
new file mode 100644
index 000000000..9d6e99e63
Binary files /dev/null and b/assets/loio9c157e9764b846fea7de519d141c33ac_LowRes.png differ
diff --git a/package-lock.json b/package-lock.json
index 7e9d459df..ac8085252 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,11 +1,15 @@
{
- "name": "ui5-typescript-walkthrough",
+ "name": "@ui5/tutorials",
+ "version": "0.0.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
+ "name": "@ui5/tutorials",
+ "version": "0.0.0",
+ "license": "Apache-2.0",
"workspaces": [
- "steps/*"
+ "packages/*/steps/*"
],
"devDependencies": {
"@highlightjs/cdn-assets": "^11.11.1",
@@ -25,9 +29,9 @@
}
},
"node_modules/@75lb/deep-merge": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/@75lb/deep-merge/-/deep-merge-1.1.2.tgz",
- "integrity": "sha512-08K9ou5VNbheZFxM5tDWoqjA3ImC50DiuuJ2tj1yEPRfkp8lLLg6XAaJ4On+a0yAXor/8ay5gHnAIshRM44Kpw==",
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/@75lb/deep-merge/-/deep-merge-1.1.3.tgz",
+ "integrity": "sha512-XhE6kVFVmX0oyynUI7k70s2fj1cUch/ipSM5SzI+NRFu3IwDZ2T/sNjY1DPO8lAaY3W0tZ2MITeAvPLhm7sdVQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -36,6 +40,14 @@
},
"engines": {
"node": ">=12.17"
+ },
+ "peerDependencies": {
+ "@75lb/nature": "latest"
+ },
+ "peerDependenciesMeta": {
+ "@75lb/nature": {
+ "optional": true
+ }
}
},
"node_modules/@adobe/css-tools": {
@@ -272,9 +284,9 @@
}
},
"node_modules/@babel/helper-define-polyfill-provider": {
- "version": "0.6.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.7.tgz",
- "integrity": "sha512-6Fqi8MtQ/PweQ9xvux65emkLQ83uB+qAVtfHkC9UodyHMIZdxNI01HjLCLUtybElp2KY2XNE0nOgyP1E1vXw9w==",
+ "version": "0.6.8",
+ "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.8.tgz",
+ "integrity": "sha512-47UwBLPpQi1NoWzLuHNjRoHlYXMwIJoBf7MFou6viC/sIHWYygpvr0B6IAyh5sBdA2nr2LPIRww8lfaUVQINBA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -488,23 +500,23 @@
}
},
"node_modules/@babel/helpers": {
- "version": "7.28.6",
- "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.6.tgz",
- "integrity": "sha512-xOBvwq86HHdB7WUDTfKfT/Vuxh7gElQ+Sfti2Cy6yIWNW05P8iUslOVcZ4/sKbE+/jQaukQAdz/gf3724kYdqw==",
+ "version": "7.29.2",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.29.2.tgz",
+ "integrity": "sha512-HoGuUs4sCZNezVEKdVcwqmZN8GoHirLUcLaYVNBK2J0DadGtdcqgr3BCbvH8+XUo4NGjNl3VOtSjEKNzqfFgKw==",
"dev": true,
"license": "MIT",
"dependencies": {
"@babel/template": "^7.28.6",
- "@babel/types": "^7.28.6"
+ "@babel/types": "^7.29.0"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/parser": {
- "version": "7.29.0",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.0.tgz",
- "integrity": "sha512-IyDgFV5GeDUVX4YdF/3CPULtVGSXXMLh1xVIgdCgxApktqnQV0r7/8Nqthg+8YLGaAtdyIlo2qIdZrbCv4+7ww==",
+ "version": "7.29.2",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.2.tgz",
+ "integrity": "sha512-4GgRzy/+fsBa72/RZVJmGKPmZu9Byn8o4MoLpmNe1m8ZfYnz5emHLQz3U4gLud6Zwl0RZIcgiLD7Uq7ySFuDLA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -1572,9 +1584,9 @@
}
},
"node_modules/@babel/preset-env": {
- "version": "7.29.0",
- "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.29.0.tgz",
- "integrity": "sha512-fNEdfc0yi16lt6IZo2Qxk3knHVdfMYX33czNb4v8yWhemoBhibCpQK/uYHtSKIiO+p/zd3+8fYVXhQdOVV608w==",
+ "version": "7.29.2",
+ "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.29.2.tgz",
+ "integrity": "sha512-DYD23veRYGvBFhcTY1iUvJnDNpuqNd/BzBwCvzOTKUnJjKg5kpUBh3/u9585Agdkgj+QuygG7jLfOPWMa2KVNw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -1791,31 +1803,6 @@
"node": ">=12.0.0"
}
},
- "node_modules/@isaacs/balanced-match": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/@isaacs/balanced-match/-/balanced-match-4.0.1.tgz",
- "integrity": "sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "engines": {
- "node": "20 || >=22"
- }
- },
- "node_modules/@isaacs/brace-expansion": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/@isaacs/brace-expansion/-/brace-expansion-5.0.0.tgz",
- "integrity": "sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "@isaacs/balanced-match": "^4.0.1"
- },
- "engines": {
- "node": "20 || >=22"
- }
- },
"node_modules/@isaacs/cliui": {
"version": "8.0.2",
"resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
@@ -1911,14 +1898,14 @@
}
},
"node_modules/@jsdoc/salty": {
- "version": "0.2.9",
- "resolved": "https://registry.npmjs.org/@jsdoc/salty/-/salty-0.2.9.tgz",
- "integrity": "sha512-yYxMVH7Dqw6nO0d5NIV8OQWnitU8k6vXH8NtgqAfIa/IUqRMxRv/NUJJ08VEKbAakwxlgBl5PJdrU0dMPStsnw==",
+ "version": "0.2.12",
+ "resolved": "https://registry.npmjs.org/@jsdoc/salty/-/salty-0.2.12.tgz",
+ "integrity": "sha512-TuB0x50EoAvEX/UEWITd8Mkn3WhiTjSvbTMCLj0BhsQEl5iUzjXdA0bETEVpTk+5TGTLR6QktI9H4hLviVeaAQ==",
"dev": true,
"license": "Apache-2.0",
"peer": true,
"dependencies": {
- "lodash": "^4.17.21"
+ "lodash": "^4.18.1"
},
"engines": {
"node": ">=v12.0.0"
@@ -2118,14 +2105,14 @@
}
},
"node_modules/@npmcli/git/node_modules/isexe": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz",
- "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==",
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.5.tgz",
+ "integrity": "sha512-6B3tLtFqtQS4ekarvLVMZ+X+VlvQekbe4taUkf/rhVO3d/h0M2rfARm/pXLcPEsjjMsFgrFgSrhQIxcSVrBz8w==",
"dev": true,
- "license": "ISC",
+ "license": "BlueOak-1.0.0",
"peer": true,
"engines": {
- "node": ">=16"
+ "node": ">=18"
}
},
"node_modules/@npmcli/git/node_modules/which": {
@@ -2237,14 +2224,14 @@
}
},
"node_modules/@npmcli/promise-spawn/node_modules/isexe": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz",
- "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==",
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.5.tgz",
+ "integrity": "sha512-6B3tLtFqtQS4ekarvLVMZ+X+VlvQekbe4taUkf/rhVO3d/h0M2rfARm/pXLcPEsjjMsFgrFgSrhQIxcSVrBz8w==",
"dev": true,
- "license": "ISC",
+ "license": "BlueOak-1.0.0",
"peer": true,
"engines": {
- "node": ">=16"
+ "node": ">=18"
}
},
"node_modules/@npmcli/promise-spawn/node_modules/which": {
@@ -2295,14 +2282,14 @@
}
},
"node_modules/@npmcli/run-script/node_modules/isexe": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz",
- "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==",
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.5.tgz",
+ "integrity": "sha512-6B3tLtFqtQS4ekarvLVMZ+X+VlvQekbe4taUkf/rhVO3d/h0M2rfARm/pXLcPEsjjMsFgrFgSrhQIxcSVrBz8w==",
"dev": true,
- "license": "ISC",
+ "license": "BlueOak-1.0.0",
"peer": true,
"engines": {
- "node": ">=16"
+ "node": ">=18"
}
},
"node_modules/@npmcli/run-script/node_modules/which": {
@@ -2352,9 +2339,9 @@
}
},
"node_modules/@octokit/endpoint": {
- "version": "11.0.2",
- "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-11.0.2.tgz",
- "integrity": "sha512-4zCpzP1fWc7QlqunZ5bSEjxc6yLAlRTnDwKtgXfcI/FxxGoqedDG8V2+xJ60bV2kODqcGB+nATdtap/XYq2NZQ==",
+ "version": "11.0.3",
+ "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-11.0.3.tgz",
+ "integrity": "sha512-FWFlNxghg4HrXkD3ifYbS/IdL/mDHjh9QcsNyhQjN8dplUoZbejsdpmuqdA76nxj2xoWPs7p8uX2SNr9rYu0Ag==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -2433,16 +2420,17 @@
}
},
"node_modules/@octokit/request": {
- "version": "10.0.7",
- "resolved": "https://registry.npmjs.org/@octokit/request/-/request-10.0.7.tgz",
- "integrity": "sha512-v93h0i1yu4idj8qFPZwjehoJx4j3Ntn+JhXsdJrG9pYaX6j/XRz2RmasMUHtNgQD39nrv/VwTWSqK0RNXR8upA==",
+ "version": "10.0.8",
+ "resolved": "https://registry.npmjs.org/@octokit/request/-/request-10.0.8.tgz",
+ "integrity": "sha512-SJZNwY9pur9Agf7l87ywFi14W+Hd9Jg6Ifivsd33+/bGUQIjNujdFiXII2/qSlN2ybqUHfp5xpekMEjIBTjlSw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@octokit/endpoint": "^11.0.2",
+ "@octokit/endpoint": "^11.0.3",
"@octokit/request-error": "^7.0.2",
"@octokit/types": "^16.0.0",
"fast-content-type-parse": "^3.0.0",
+ "json-with-bigint": "^3.5.3",
"universal-user-agent": "^7.0.2"
},
"engines": {
@@ -2586,9 +2574,9 @@
}
},
"node_modules/@sindresorhus/merge-streams": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-2.3.0.tgz",
- "integrity": "sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-4.0.0.tgz",
+ "integrity": "sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==",
"dev": true,
"license": "MIT",
"peer": true,
@@ -2663,9 +2651,9 @@
}
},
"node_modules/@types/jquery": {
- "version": "3.5.33",
- "resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-3.5.33.tgz",
- "integrity": "sha512-SeyVJXlCZpEki5F0ghuYe+L+PprQta6nRZqhONt9F13dWBtR/ftoaIbdRQ7cis7womE+X2LKhsDdDtkkDhJS6g==",
+ "version": "3.5.34",
+ "resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-3.5.34.tgz",
+ "integrity": "sha512-3m3939S3erqmTLJANS/uy0B6V7BorKx7RorcGZVjZ62dF5PAGbKEDZK1CuLtKombJkFA2T1jl8LAIIs7IV6gBQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -2701,13 +2689,13 @@
"peer": true
},
"node_modules/@types/node": {
- "version": "25.0.9",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-25.0.9.tgz",
- "integrity": "sha512-/rpCXHlCWeqClNBwUhDcusJxXYDjZTyE8v5oTO7WbL8eij2nKhUeU89/6xgjU7N4/Vh3He0BtyhJdQbDyhiXAw==",
+ "version": "25.5.2",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-25.5.2.tgz",
+ "integrity": "sha512-tO4ZIRKNC+MDWV4qKVZe3Ql/woTnmHDr5JD8UI5hn2pwBrHEwOEMZK7WlNb5RKB6EoJ02gwmQS9OrjuFnZYdpg==",
"dev": true,
"license": "MIT",
"dependencies": {
- "undici-types": "~7.16.0"
+ "undici-types": "~7.18.0"
}
},
"node_modules/@types/normalize-package-data": {
@@ -2719,9 +2707,9 @@
"peer": true
},
"node_modules/@types/openui5": {
- "version": "1.143.0",
- "resolved": "https://registry.npmjs.org/@types/openui5/-/openui5-1.143.0.tgz",
- "integrity": "sha512-lsQVKgcMRGe0Xd1zR8bRj8ahsR4fSNpXraHAwBi+VbSISkMIoC92Nt0qIoG03K2XZKX4mL8bjkVR+GR5XfasrQ==",
+ "version": "1.145.0",
+ "resolved": "https://registry.npmjs.org/@types/openui5/-/openui5-1.145.0.tgz",
+ "integrity": "sha512-SYE0fL5KWKmzmAS0HA8CFZ31fFgWpwqCOS2AtayZou1N/5bCtPfxq9csCm2oPLvv4rl9b0FfBLyJjZ6wzG7AXw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -2743,27 +2731,37 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/@types/ws": {
+ "version": "8.18.1",
+ "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.18.1.tgz",
+ "integrity": "sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
"node_modules/@ui5/builder": {
- "version": "4.1.3",
- "resolved": "https://registry.npmjs.org/@ui5/builder/-/builder-4.1.3.tgz",
- "integrity": "sha512-ScwlLZ/xyFjFOVpK1t3KfXq2i6N5iVuHW1ymWMPLdU7Qu8JFLkIWFWaLN9+rUE0pTGtewFzST+Zhk9cS0GfeRg==",
+ "version": "4.1.5",
+ "resolved": "https://registry.npmjs.org/@ui5/builder/-/builder-4.1.5.tgz",
+ "integrity": "sha512-eDd1mICbgL7fcK6MgpinG/cXDrkjTigaKSAmC/PlV+1RJKCN7fIpjSfW8HiRYvbAh81/HNUIo1FZ0JS+0gilTA==",
"dev": true,
"license": "Apache-2.0",
"peer": true,
"dependencies": {
"@jridgewell/sourcemap-codec": "^1.5.5",
- "@ui5/fs": "^4.0.3",
+ "@ui5/fs": "^4.0.5",
"@ui5/logger": "^4.0.2",
"cheerio": "1.0.0",
- "escape-unicode": "^0.2.0",
+ "escape-unicode": "^0.3.0",
"escope": "^4.0.0",
"espree": "^10.4.0",
"graceful-fs": "^4.2.11",
"jsdoc": "^4.0.5",
"less-openui5": "^0.11.6",
"pretty-data": "^0.40.0",
- "semver": "^7.7.3",
- "terser": "^5.44.1",
+ "semver": "^7.7.4",
+ "terser": "^5.46.1",
"workerpool": "^9.3.4",
"xml2js": "^0.6.2"
},
@@ -9448,9 +9446,9 @@
"license": "BSD"
},
"node_modules/@ui5/fs": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/@ui5/fs/-/fs-4.0.3.tgz",
- "integrity": "sha512-GVgAaSQlGQOrUXT4xLFW7H492XjeoKNr4AG+2i2jjjzXuEXcHFvvCjS5ANLxiAtZwQslfSUcsn4RUA9J2pEO0w==",
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/@ui5/fs/-/fs-4.0.5.tgz",
+ "integrity": "sha512-P2pkzHig7neVpElvEaaG5WG/NR/IVz08PDxiizycdQUXG1rqSaGxlww7CV5lUA3YFFBu2bYTh3CJ7ayTu9RYVg==",
"dev": true,
"license": "Apache-2.0",
"peer": true,
@@ -9458,10 +9456,10 @@
"@ui5/logger": "^4.0.2",
"clone": "^2.1.2",
"escape-string-regexp": "^5.0.0",
- "globby": "^14.1.0",
+ "globby": "^16.1.0",
"graceful-fs": "^4.2.11",
"micromatch": "^4.0.8",
- "minimatch": "^10.0.3",
+ "minimatch": "^10.2.0",
"pretty-hrtime": "^1.0.3",
"random-int": "^3.1.0"
},
@@ -9470,18 +9468,43 @@
"npm": ">= 8"
}
},
+ "node_modules/@ui5/fs/node_modules/balanced-match": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz",
+ "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "engines": {
+ "node": "18 || 20 || >=22"
+ }
+ },
+ "node_modules/@ui5/fs/node_modules/brace-expansion": {
+ "version": "5.0.5",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.5.tgz",
+ "integrity": "sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "balanced-match": "^4.0.2"
+ },
+ "engines": {
+ "node": "18 || 20 || >=22"
+ }
+ },
"node_modules/@ui5/fs/node_modules/minimatch": {
- "version": "10.1.1",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.1.1.tgz",
- "integrity": "sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ==",
+ "version": "10.2.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz",
+ "integrity": "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==",
"dev": true,
"license": "BlueOak-1.0.0",
"peer": true,
"dependencies": {
- "@isaacs/brace-expansion": "^5.0.0"
+ "brace-expansion": "^5.0.5"
},
"engines": {
- "node": "20 || >=22"
+ "node": "18 || 20 || >=22"
},
"funding": {
"url": "https://github.com/sponsors/isaacs"
@@ -9519,18 +9542,18 @@
}
},
"node_modules/@ui5/project": {
- "version": "4.0.9",
- "resolved": "https://registry.npmjs.org/@ui5/project/-/project-4.0.9.tgz",
- "integrity": "sha512-H/dp1kBWPNGnvwbr5s/B+v/orv8Y/fFN/99RpGNZm9GYDpX+vmuZJueIRDA1s5MAmXjkudfYdCkrm86CifThrg==",
+ "version": "4.0.15",
+ "resolved": "https://registry.npmjs.org/@ui5/project/-/project-4.0.15.tgz",
+ "integrity": "sha512-Fo1g1t15NCLb9xKxVVJ4jD7BTGimk2CoE+4nMTg0NEA9DGv0UUWkfVygnNnmur1NJg4HV4sqK/mKO1yszFpCAQ==",
"dev": true,
"license": "Apache-2.0",
"peer": true,
"dependencies": {
"@npmcli/config": "^9.0.0",
- "@ui5/fs": "^4.0.3",
+ "@ui5/fs": "^4.0.5",
"@ui5/logger": "^4.0.2",
- "ajv": "^6.12.6",
- "ajv-errors": "^1.0.1",
+ "ajv": "^8.18.0",
+ "ajv-errors": "^3.0.0",
"chalk": "^5.6.2",
"escape-string-regexp": "^5.0.0",
"globby": "^14.1.0",
@@ -9539,12 +9562,12 @@
"lockfile": "^1.0.4",
"make-fetch-happen": "^14.0.3",
"node-stream-zip": "^1.15.0",
- "pacote": "^19.0.1",
+ "pacote": "^19.0.2",
"pretty-hrtime": "^1.0.3",
"read-package-up": "^11.0.0",
"read-pkg": "^9.0.1",
"resolve": "^1.22.11",
- "semver": "^7.7.3",
+ "semver": "^7.7.4",
"xml2js": "^0.6.2",
"yesno": "^0.4.0"
},
@@ -9553,7 +9576,7 @@
"npm": ">= 8"
},
"peerDependencies": {
- "@ui5/builder": "^4.1.3"
+ "@ui5/builder": "^4.1.5"
},
"peerDependenciesMeta": {
"@ui5/builder": {
@@ -9561,6 +9584,20 @@
}
}
},
+ "node_modules/@ui5/project/node_modules/@sindresorhus/merge-streams": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-2.3.0.tgz",
+ "integrity": "sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/@ui5/project/node_modules/chalk": {
"version": "5.6.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz",
@@ -9575,6 +9612,42 @@
"url": "https://github.com/chalk/chalk?sponsor=1"
}
},
+ "node_modules/@ui5/project/node_modules/globby": {
+ "version": "14.1.0",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-14.1.0.tgz",
+ "integrity": "sha512-0Ia46fDOaT7k4og1PDW4YbodWWr3scS2vAr2lTbsplOt2WkKp0vQbkI9wKis/T5LV/dqPjO3bpS/z6GTJB82LA==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@sindresorhus/merge-streams": "^2.1.0",
+ "fast-glob": "^3.3.3",
+ "ignore": "^7.0.3",
+ "path-type": "^6.0.0",
+ "slash": "^5.1.0",
+ "unicorn-magic": "^0.3.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@ui5/project/node_modules/unicorn-magic": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.3.0.tgz",
+ "integrity": "sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/@ui5/ts-interface-generator": {
"version": "0.10.5",
"resolved": "https://registry.npmjs.org/@ui5/ts-interface-generator/-/ts-interface-generator-0.10.5.tgz",
@@ -9731,9 +9804,9 @@
}
},
"node_modules/acorn": {
- "version": "8.15.0",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz",
- "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==",
+ "version": "8.16.0",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz",
+ "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==",
"dev": true,
"license": "MIT",
"peer": true,
@@ -9794,17 +9867,17 @@
"license": "MIT"
},
"node_modules/ajv": {
- "version": "6.12.6",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
- "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "version": "8.18.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz",
+ "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==",
"dev": true,
"license": "MIT",
"peer": true,
"dependencies": {
- "fast-deep-equal": "^3.1.1",
- "fast-json-stable-stringify": "^2.0.0",
- "json-schema-traverse": "^0.4.1",
- "uri-js": "^4.2.2"
+ "fast-deep-equal": "^3.1.3",
+ "fast-uri": "^3.0.1",
+ "json-schema-traverse": "^1.0.0",
+ "require-from-string": "^2.0.2"
},
"funding": {
"type": "github",
@@ -9812,14 +9885,14 @@
}
},
"node_modules/ajv-errors": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz",
- "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-3.0.0.tgz",
+ "integrity": "sha512-V3wD15YHfHz6y0KdhYFjyy9vWtEVALT9UrxfN3zqlI6dMioHnJrqOYfyPKol3oqrnCM9uwkcdCwkJ0WUcbLMTQ==",
"dev": true,
"license": "MIT",
"peer": true,
"peerDependencies": {
- "ajv": ">=5.0.0"
+ "ajv": "^8.0.1"
}
},
"node_modules/anchor-js": {
@@ -9939,9 +10012,9 @@
"license": "Python-2.0"
},
"node_modules/array-back": {
- "version": "6.2.2",
- "resolved": "https://registry.npmjs.org/array-back/-/array-back-6.2.2.tgz",
- "integrity": "sha512-gUAZ7HPyb4SJczXAMUXMGAvI976JoK3qEx9v1FTmeYuJj0IBiaKttG1ydtGKdkfqWkIkouke7nG8ufGy77+Cvw==",
+ "version": "6.2.3",
+ "resolved": "https://registry.npmjs.org/array-back/-/array-back-6.2.3.tgz",
+ "integrity": "sha512-SGDvmg6QTYiTxCBkYVmThcoa67uLl35pyzRHdpCGBOcqFy6BtwnphoFPk7LhJshD+Yk1Kt35WGWeZPTgwR4Fhw==",
"dev": true,
"license": "MIT",
"engines": {
@@ -9999,9 +10072,9 @@
}
},
"node_modules/b4a": {
- "version": "1.7.3",
- "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.7.3.tgz",
- "integrity": "sha512-5Q2mfq2WfGuFp3uS//0s6baOJLMoVduPYVeNmDYxu5OUA1/cBfvr2RIS7vi62LdNj/urk1hfmj867I3qt6uZ7Q==",
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.8.0.tgz",
+ "integrity": "sha512-qRuSmNSkGQaHwNbM7J78Wwy+ghLEYF1zNrSeMxj4Kgw6y33O3mXcQ6Ie9fRvfU/YnxWkOchPXbaLb73TkIsfdg==",
"dev": true,
"license": "Apache-2.0",
"peerDependencies": {
@@ -10014,14 +10087,14 @@
}
},
"node_modules/babel-plugin-polyfill-corejs2": {
- "version": "0.4.16",
- "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.16.tgz",
- "integrity": "sha512-xaVwwSfebXf0ooE11BJovZYKhFjIvQo7TsyVpETuIeH2JHv0k/T6Y5j22pPTvqYqmpkxdlPAJlyJ0tfOJAoMxw==",
+ "version": "0.4.17",
+ "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.17.tgz",
+ "integrity": "sha512-aTyf30K/rqAsNwN76zYrdtx8obu0E4KoUME29B1xj+B3WxgvWkp943vYQ+z8Mv3lw9xHXMHpvSPOBxzAkIa94w==",
"dev": true,
"license": "MIT",
"dependencies": {
"@babel/compat-data": "^7.28.6",
- "@babel/helper-define-polyfill-provider": "^0.6.7",
+ "@babel/helper-define-polyfill-provider": "^0.6.8",
"semver": "^6.3.1"
},
"peerDependencies": {
@@ -10039,13 +10112,13 @@
}
},
"node_modules/babel-plugin-polyfill-corejs3": {
- "version": "0.14.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.14.1.tgz",
- "integrity": "sha512-ENp89vM9Pw4kv/koBb5N2f9bDZsR0hpf3BdPMOg/pkS3pwO4dzNnQZVXtBbeyAadgm865DmQG2jMMLqmZXvuCw==",
+ "version": "0.14.2",
+ "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.14.2.tgz",
+ "integrity": "sha512-coWpDLJ410R781Npmn/SIBZEsAetR4xVi0SxLMXPaMO4lSf1MwnkGYMtkFxew0Dn8B3/CpbpYxN0JCgg8mn67g==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@babel/helper-define-polyfill-provider": "^0.6.7",
+ "@babel/helper-define-polyfill-provider": "^0.6.8",
"core-js-compat": "^3.48.0"
},
"peerDependencies": {
@@ -10053,13 +10126,13 @@
}
},
"node_modules/babel-plugin-polyfill-regenerator": {
- "version": "0.6.7",
- "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.7.tgz",
- "integrity": "sha512-OTYbUlSwXhNgr4g6efMZgsO8//jA61P7ZbRX3iTT53VON8l+WQS8IAUEVo4a4cWknrg2W8Cj4gQhRYNCJ8GkAA==",
+ "version": "0.6.8",
+ "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.8.tgz",
+ "integrity": "sha512-M762rNHfSF1EV3SLtnCJXFoQbbIIz0OyRwnCmV0KPC7qosSfCO0QLTSuJX3ayAebubhE6oYBAYPrBA5ljowaZg==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@babel/helper-define-polyfill-provider": "^0.6.7"
+ "@babel/helper-define-polyfill-provider": "^0.6.8"
},
"peerDependencies": {
"@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
@@ -10130,6 +10203,88 @@
}
}
},
+ "node_modules/bare-fs": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-4.6.0.tgz",
+ "integrity": "sha512-2YkS7NuiJceSEbyEOdSNLE9tsGd+f4+f7C+Nik/MCk27SYdwIMPT/yRKvg++FZhQXgk0KWJKJyXX9RhVV0RGqA==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "bare-events": "^2.5.4",
+ "bare-path": "^3.0.0",
+ "bare-stream": "^2.6.4",
+ "bare-url": "^2.2.2",
+ "fast-fifo": "^1.3.2"
+ },
+ "engines": {
+ "bare": ">=1.16.0"
+ },
+ "peerDependencies": {
+ "bare-buffer": "*"
+ },
+ "peerDependenciesMeta": {
+ "bare-buffer": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/bare-os": {
+ "version": "3.8.7",
+ "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-3.8.7.tgz",
+ "integrity": "sha512-G4Gr1UsGeEy2qtDTZwL7JFLo2wapUarz7iTMcYcMFdS89AIQuBoyjgXZz0Utv7uHs3xA9LckhVbeBi8lEQrC+w==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "bare": ">=1.14.0"
+ }
+ },
+ "node_modules/bare-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/bare-path/-/bare-path-3.0.0.tgz",
+ "integrity": "sha512-tyfW2cQcB5NN8Saijrhqn0Zh7AnFNsnczRcuWODH0eYAXBsJ5gVxAUuNr7tsHSC6IZ77cA0SitzT+s47kot8Mw==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "bare-os": "^3.0.1"
+ }
+ },
+ "node_modules/bare-stream": {
+ "version": "2.12.0",
+ "resolved": "https://registry.npmjs.org/bare-stream/-/bare-stream-2.12.0.tgz",
+ "integrity": "sha512-w28i8lkBgREV3rPXGbgK+BO66q+ZpKqRWrZLiCdmmUlLPrQ45CzkvRhN+7lnv00Gpi2zy5naRxnUFAxCECDm9g==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "streamx": "^2.25.0",
+ "teex": "^1.0.1"
+ },
+ "peerDependencies": {
+ "bare-abort-controller": "*",
+ "bare-buffer": "*",
+ "bare-events": "*"
+ },
+ "peerDependenciesMeta": {
+ "bare-abort-controller": {
+ "optional": true
+ },
+ "bare-buffer": {
+ "optional": true
+ },
+ "bare-events": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/bare-url": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/bare-url/-/bare-url-2.4.0.tgz",
+ "integrity": "sha512-NSTU5WN+fy/L0DDenfE8SXQna4voXuW0FHM7wH8i3/q9khUSchfPbPezO4zSFMnDGIf9YE+mt/RWhZgNRKRIXA==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "bare-path": "^3.0.0"
+ }
+ },
"node_modules/base64-js": {
"version": "1.5.1",
"resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
@@ -10162,13 +10317,16 @@
}
},
"node_modules/baseline-browser-mapping": {
- "version": "2.9.15",
- "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.9.15.tgz",
- "integrity": "sha512-kX8h7K2srmDyYnXRIppo4AH/wYgzWVCs+eKr3RusRSQ5PvRYoEFmR/I0PbdTjKFAoKqp5+kbxnNTFO9jOfSVJg==",
+ "version": "2.10.16",
+ "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.16.tgz",
+ "integrity": "sha512-Lyf3aK28zpsD1yQMiiHD4RvVb6UdMoo8xzG2XzFIfR9luPzOpcBlAsT/qfB1XWS1bxWT+UtE4WmQgsp297FYOA==",
"dev": true,
"license": "Apache-2.0",
"bin": {
- "baseline-browser-mapping": "dist/cli.js"
+ "baseline-browser-mapping": "dist/cli.cjs"
+ },
+ "engines": {
+ "node": ">=6.0.0"
}
},
"node_modules/basic-auth": {
@@ -10301,9 +10459,9 @@
"peer": true
},
"node_modules/brace-expansion": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
- "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.3.tgz",
+ "integrity": "sha512-MCV/fYJEbqx68aE58kv2cA/kiky1G8vux3OR6/jbS+jIMe/6fJWa0DTzJU7dqijOWYwHi1t29FlfYI9uytqlpA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -10398,9 +10556,9 @@
}
},
"node_modules/browserslist": {
- "version": "4.28.1",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.1.tgz",
- "integrity": "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==",
+ "version": "4.28.2",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.2.tgz",
+ "integrity": "sha512-48xSriZYYg+8qXna9kwqjIVzuQxi+KYWp2+5nCYnYKPTr0LvD89Jqk2Or5ogxz0NUMfIjhh2lIUX/LyX9B4oIg==",
"dev": true,
"funding": [
{
@@ -10418,11 +10576,11 @@
],
"license": "MIT",
"dependencies": {
- "baseline-browser-mapping": "^2.9.0",
- "caniuse-lite": "^1.0.30001759",
- "electron-to-chromium": "^1.5.263",
- "node-releases": "^2.0.27",
- "update-browserslist-db": "^1.2.0"
+ "baseline-browser-mapping": "^2.10.12",
+ "caniuse-lite": "^1.0.30001782",
+ "electron-to-chromium": "^1.5.328",
+ "node-releases": "^2.0.36",
+ "update-browserslist-db": "^1.2.3"
},
"bin": {
"browserslist": "cli.js"
@@ -10613,9 +10771,9 @@
}
},
"node_modules/caniuse-lite": {
- "version": "1.0.30001765",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001765.tgz",
- "integrity": "sha512-LWcNtSyZrakjECqmpP4qdg0MMGdN368D7X8XvvAqOcqMv0RxnlqVKZl2V6/mBR68oYMxOZPLw/gO7DuisMHUvQ==",
+ "version": "1.0.30001786",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001786.tgz",
+ "integrity": "sha512-4oxTZEvqmLLrERwxO76yfKM7acZo310U+v4kqexI2TL1DkkUEMT8UijrxxcnVdxR3qkVf5awGRX+4Z6aPHVKrA==",
"dev": true,
"funding": [
{
@@ -10763,9 +10921,9 @@
}
},
"node_modules/ci-info": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.3.1.tgz",
- "integrity": "sha512-Wdy2Igu8OcBpI2pZePZ5oWjPC38tmDVx5WKUXKwlLYkA0ozo85sLsLvkBbBn/sZaSCMFOGZJ14fvW9t5/d7kdA==",
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.4.0.tgz",
+ "integrity": "sha512-77PSwercCZU2Fc4sX94eF8k8Pxte6JAwL4/ICZLFjJLqegs7kCuAsqqj/70NQF6TvDpgFjkubQB2FW2ZZddvQg==",
"dev": true,
"funding": [
{
@@ -11040,16 +11198,16 @@
}
},
"node_modules/command-line-args": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-6.0.1.tgz",
- "integrity": "sha512-Jr3eByUjqyK0qd8W0SGFW1nZwqCaNCtbXjRo2cRJC1OYxWl3MZ5t1US3jq+cO4sPavqgw4l9BMGX0CBe+trepg==",
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-6.0.2.tgz",
+ "integrity": "sha512-AIjYVxrV9X752LmPDLbVYv8aMCuHPSLZJXEo2qo/xJfv+NYhaZ4sMSF01rM+gHPaMgvPM0l5D/F+Qx+i2WfSmQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "array-back": "^6.2.2",
+ "array-back": "^6.2.3",
"find-replace": "^5.0.2",
"lodash.camelcase": "^4.3.0",
- "typical": "^7.2.0"
+ "typical": "^7.3.0"
},
"engines": {
"node": ">=12.20"
@@ -11064,16 +11222,16 @@
}
},
"node_modules/command-line-usage": {
- "version": "7.0.3",
- "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-7.0.3.tgz",
- "integrity": "sha512-PqMLy5+YGwhMh1wS04mVG44oqDsgyLRSKJBdOo1bnYhMKBW65gZF1dRp2OZRhiTjgUHljy99qkO7bsctLaw35Q==",
+ "version": "7.0.4",
+ "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-7.0.4.tgz",
+ "integrity": "sha512-85UdvzTNx/+s5CkSgBm/0hzP80RFHAa7PsfeADE5ezZF3uHz3/Tqj9gIKGT9PTtpycc3Ua64T0oVulGfKxzfqg==",
"dev": true,
"license": "MIT",
"dependencies": {
"array-back": "^6.2.2",
"chalk-template": "^0.4.0",
- "table-layout": "^4.1.0",
- "typical": "^7.1.1"
+ "table-layout": "^4.1.1",
+ "typical": "^7.3.0"
},
"engines": {
"node": ">=12.20.0"
@@ -11303,9 +11461,9 @@
"license": "MIT"
},
"node_modules/core-js-compat": {
- "version": "3.48.0",
- "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.48.0.tgz",
- "integrity": "sha512-OM4cAF3D6VtH/WkLtWvyNC56EZVXsZdU3iqaMG2B4WvYrlqU831pc4UtG5yp0sE9z8Y02wVN7PjW5Zf9Gt0f1Q==",
+ "version": "3.49.0",
+ "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.49.0.tgz",
+ "integrity": "sha512-VQXt1jr9cBz03b331DFDCCP90b3fanciLkgiOoy8SBHy06gNf+vQ1A3WFLqG7I8TipYIKeYK9wxd0tUrvHcOZA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -11324,9 +11482,9 @@
"license": "MIT"
},
"node_modules/cors": {
- "version": "2.8.5",
- "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz",
- "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==",
+ "version": "2.8.6",
+ "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.6.tgz",
+ "integrity": "sha512-tJtZBBHA6vjIAaF6EnIaq6laBBP9aq/Y3ouVJjEfoHbRBcHBAHYcMh/w8LDrk2PvIMMq8gmopa5D4V8RmbrxGw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -11335,7 +11493,11 @@
},
"engines": {
"node": ">= 0.10"
- }
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/express"
+ }
},
"node_modules/crc-32": {
"version": "1.2.2",
@@ -11605,9 +11767,9 @@
}
},
"node_modules/dotenv": {
- "version": "17.3.1",
- "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-17.3.1.tgz",
- "integrity": "sha512-IO8C/dzEb6O3F9/twg6ZLXz164a2fhTnEWb95H23Dm4OuN+92NmEAlTrupP9VW6Jm3sO26tQlqyvyi4CsnY9GA==",
+ "version": "17.4.1",
+ "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-17.4.1.tgz",
+ "integrity": "sha512-k8DaKGP6r1G30Lx8V4+pCsLzKr8vLmV2paqEj1Y55GdAgJuIqpRp5FfajGF8KtwMxCz9qJc6wUIJnm053d/WCw==",
"dev": true,
"license": "BSD-2-Clause",
"engines": {
@@ -11671,9 +11833,9 @@
"license": "MIT"
},
"node_modules/electron-to-chromium": {
- "version": "1.5.267",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.267.tgz",
- "integrity": "sha512-0Drusm6MVRXSOJpGbaSVgcQsuB4hEkMpHXaVstcPmhu5LIedxs1xNK/nIxmQIU/RPC0+1/o0AVZfBTkTNJOdUw==",
+ "version": "1.5.332",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.332.tgz",
+ "integrity": "sha512-7OOtytmh/rINMLwaFTbcMVvYXO3AUm029X0LcyfYk0B557RlPkdpTpnH9+htMlfu5dKwOmT0+Zs2Aw+lnn6TeQ==",
"dev": true,
"license": "ISC"
},
@@ -11694,6 +11856,18 @@
"node": ">= 0.8"
}
},
+ "node_modules/encoding": {
+ "version": "0.1.13",
+ "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz",
+ "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "peer": true,
+ "dependencies": {
+ "iconv-lite": "^0.6.2"
+ }
+ },
"node_modules/encoding-sniffer": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/encoding-sniffer/-/encoding-sniffer-0.2.1.tgz",
@@ -11723,15 +11897,31 @@
"node": ">=0.10.0"
}
},
+ "node_modules/encoding/node_modules/iconv-lite": {
+ "version": "0.6.3",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
+ "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "peer": true,
+ "dependencies": {
+ "safer-buffer": ">= 2.1.2 < 3.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/engine.io": {
- "version": "6.6.5",
- "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.6.5.tgz",
- "integrity": "sha512-2RZdgEbXmp5+dVbRm0P7HQUImZpICccJy7rN7Tv+SFa55pH+lxnuw6/K1ZxxBfHoYpSkHLAO92oa8O4SwFXA2A==",
+ "version": "6.6.6",
+ "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.6.6.tgz",
+ "integrity": "sha512-U2SN0w3OpjFRVlrc17E6TMDmH58Xl9rai1MblNjAdwWp07Kk+llmzX0hjDpQdrDGzwmvOtgM5yI+meYX6iZ2xA==",
"dev": true,
"license": "MIT",
"dependencies": {
"@types/cors": "^2.8.12",
"@types/node": ">=10.0.0",
+ "@types/ws": "^8.5.12",
"accepts": "~1.3.4",
"base64id": "2.0.0",
"cookie": "~0.7.2",
@@ -11979,15 +12169,22 @@
}
},
"node_modules/escape-unicode": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/escape-unicode/-/escape-unicode-0.2.0.tgz",
- "integrity": "sha512-7jMQuKb8nm0h/9HYLfu4NCLFwoUsd5XO6OZ1z86PbKcMf8zDK1m7nFR0iA2CCShq4TSValaLIveE8T1UBxgALQ==",
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/escape-unicode/-/escape-unicode-0.3.0.tgz",
+ "integrity": "sha512-4Lr9Prysw8FBwpW8dURr4T3/VRU4RYlhayLgy34zavplBG9bUsTtaCuM7Lw3szWTuidQvkZ2a1qJxG3e5+o99w==",
"dev": true,
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://github.com/sponsors/neocotic"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/neocotic"
+ }
+ ],
"license": "MIT",
- "peer": true,
- "engines": {
- "node": ">=8"
- }
+ "peer": true
},
"node_modules/escope": {
"version": "4.0.0",
@@ -12349,12 +12546,22 @@
"node": ">=8.6.0"
}
},
- "node_modules/fast-json-stable-stringify": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
- "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
+ "node_modules/fast-uri": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.0.tgz",
+ "integrity": "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==",
"dev": true,
- "license": "MIT",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/fastify"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/fastify"
+ }
+ ],
+ "license": "BSD-3-Clause",
"peer": true
},
"node_modules/fastq": {
@@ -12618,21 +12825,6 @@
"node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
},
- "node_modules/fsevents": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
- "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
- "dev": true,
- "hasInstallScript": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
- }
- },
"node_modules/function-bind": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
@@ -12674,9 +12866,9 @@
}
},
"node_modules/get-east-asian-width": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.4.0.tgz",
- "integrity": "sha512-QZjmEOC+IT1uk6Rx0sX22V6uHWVwbdbxf1faPqJ1QhLdGgsRGCZoyaQBm/piRdJy/D2um6hM1UP7ZEeQ4EkP+Q==",
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.5.0.tgz",
+ "integrity": "sha512-CQ+bEO+Tva/qlmw24dCejulK5pMzVnUOFOijVogd3KQs07HnRIgp8TGipvCCRT06xeYEbpbgwaCxglFyiuIcmA==",
"dev": true,
"license": "MIT",
"engines": {
@@ -12742,6 +12934,7 @@
"version": "10.5.0",
"resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz",
"integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==",
+ "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me",
"dev": true,
"license": "ISC",
"dependencies": {
@@ -12773,22 +12966,22 @@
}
},
"node_modules/globby": {
- "version": "14.1.0",
- "resolved": "https://registry.npmjs.org/globby/-/globby-14.1.0.tgz",
- "integrity": "sha512-0Ia46fDOaT7k4og1PDW4YbodWWr3scS2vAr2lTbsplOt2WkKp0vQbkI9wKis/T5LV/dqPjO3bpS/z6GTJB82LA==",
+ "version": "16.2.0",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-16.2.0.tgz",
+ "integrity": "sha512-QrJia2qDf5BB/V6HYlDTs0I0lBahyjLzpGQg3KT7FnCdTonAyPy2RtY802m2k4ALx6Dp752f82WsOczEVr3l6Q==",
"dev": true,
"license": "MIT",
"peer": true,
"dependencies": {
- "@sindresorhus/merge-streams": "^2.1.0",
+ "@sindresorhus/merge-streams": "^4.0.0",
"fast-glob": "^3.3.3",
- "ignore": "^7.0.3",
- "path-type": "^6.0.0",
+ "ignore": "^7.0.5",
+ "is-path-inside": "^4.0.0",
"slash": "^5.1.0",
- "unicorn-magic": "^0.3.0"
+ "unicorn-magic": "^0.4.0"
},
"engines": {
- "node": ">=18"
+ "node": ">=20"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
@@ -13253,9 +13446,9 @@
}
},
"node_modules/immutable": {
- "version": "3.8.2",
- "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.8.2.tgz",
- "integrity": "sha512-15gZoQ38eYjEjxkorfbcgBKBL6R7T459OuK+CpcWt7O3KF4uPCx2tD0uFETlUDIyo+1789crbMhTvQBSR5yBMg==",
+ "version": "3.8.3",
+ "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.8.3.tgz",
+ "integrity": "sha512-AUY/VyX0E5XlibOmWt10uabJzam1zlYjwiEgQSDc5+UIkFNaF9WM0JxXKaNMGf+F/ffUF+7kRKXM9A7C0xXqMg==",
"dev": true,
"license": "MIT",
"engines": {
@@ -13454,6 +13647,20 @@
"lodash.isfinite": "^3.3.2"
}
},
+ "node_modules/is-path-inside": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-4.0.0.tgz",
+ "integrity": "sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/is-plain-object": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz",
@@ -13662,9 +13869,9 @@
}
},
"node_modules/json-schema-traverse": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
- "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
+ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
"dev": true,
"license": "MIT",
"peer": true
@@ -13676,6 +13883,13 @@
"dev": true,
"license": "ISC"
},
+ "node_modules/json-with-bigint": {
+ "version": "3.5.8",
+ "resolved": "https://registry.npmjs.org/json-with-bigint/-/json-with-bigint-3.5.8.tgz",
+ "integrity": "sha512-eq/4KP6K34kwa7TcFdtvnftvHCD9KvHOGGICWwMFc4dOOKF5t4iYqnfLK8otCRCRv06FXOzGGyqE8h8ElMvvdw==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/json5": {
"version": "2.2.3",
"resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
@@ -13730,7 +13944,6 @@
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/keygrip/-/keygrip-1.1.0.tgz",
"integrity": "sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==",
- "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -13752,9 +13965,9 @@
}
},
"node_modules/koa": {
- "version": "2.16.3",
- "resolved": "https://registry.npmjs.org/koa/-/koa-2.16.3.tgz",
- "integrity": "sha512-zPPuIt+ku1iCpFBRwseMcPYQ1cJL8l60rSmKeOuGfOXyE6YnTBmf2aEFNL2HQGrD0cPcLO/t+v9RTgC+fwEh/g==",
+ "version": "2.16.4",
+ "resolved": "https://registry.npmjs.org/koa/-/koa-2.16.4.tgz",
+ "integrity": "sha512-3An0GCLDSR34tsCO4H8Tef8Pp2ngtaZDAZnsWJYelqXUK5wyiHvGItgK/xcSkmHLSTn1Jcho1mRQs2ehRzvKKw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -13856,58 +14069,22 @@
"license": "MIT"
},
"node_modules/koa-compress": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/koa-compress/-/koa-compress-5.1.1.tgz",
- "integrity": "sha512-UgMIN7ZoEP2DuoSQmD6CYvFSLt0NReGlc2qSY4bO4Oq0L56OiD9pDG41Kj/zFmVY/A3Wvmn4BqKcfq5H30LGIg==",
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/koa-compress/-/koa-compress-5.2.1.tgz",
+ "integrity": "sha512-k8VJMZI7vvSq1/G/t6Jggeg4h7fec1NJxcYaDWC4/1PK6mJFPs0OYqj44vx/soUcDVEJR7ysR5cc6pszKpnzXA==",
"dev": true,
"license": "MIT",
"dependencies": {
"bytes": "^3.1.2",
"compressible": "^2.0.18",
- "http-errors": "^1.8.1",
- "koa-is-json": "^1.0.0"
+ "http-errors": "^2.0.1",
+ "koa-is-json": "^1.0.0",
+ "negotiator": "^1.0.0"
},
"engines": {
"node": ">= 12"
}
},
- "node_modules/koa-compress/node_modules/depd": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
- "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/koa-compress/node_modules/http-errors": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz",
- "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "depd": "~1.1.2",
- "inherits": "2.0.4",
- "setprototypeof": "1.2.0",
- "statuses": ">= 1.5.0 < 2",
- "toidentifier": "1.0.1"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/koa-compress/node_modules/statuses": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
- "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 0.6"
- }
- },
"node_modules/koa-conditional-get": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/koa-conditional-get/-/koa-conditional-get-2.0.0.tgz",
@@ -14478,9 +14655,9 @@
"peer": true
},
"node_modules/lodash": {
- "version": "4.17.21",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
- "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
+ "version": "4.18.1",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.18.1.tgz",
+ "integrity": "sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==",
"dev": true,
"license": "MIT"
},
@@ -14823,9 +15000,9 @@
}
},
"node_modules/markdown-it": {
- "version": "14.1.0",
- "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz",
- "integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==",
+ "version": "14.1.1",
+ "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.1.tgz",
+ "integrity": "sha512-BuU2qnTti9YKgK5N+IeMubp14ZUKUUw7yeJbkjtosvHiP0AZ5c8IAgEMk79D0eC8F23r4Ac/q8cAIFdm2FtyoA==",
"dev": true,
"license": "MIT",
"peer": true,
@@ -14983,13 +15160,13 @@
}
},
"node_modules/minimatch": {
- "version": "9.0.5",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
- "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
+ "version": "9.0.9",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz",
+ "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==",
"dev": true,
"license": "ISC",
"dependencies": {
- "brace-expansion": "^2.0.1"
+ "brace-expansion": "^2.0.2"
},
"engines": {
"node": ">=16 || 14 >=14.17"
@@ -15009,11 +15186,11 @@
}
},
"node_modules/minipass": {
- "version": "7.1.2",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
- "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
+ "version": "7.1.3",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz",
+ "integrity": "sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==",
"dev": true,
- "license": "ISC",
+ "license": "BlueOak-1.0.0",
"engines": {
"node": ">=16 || 14 >=14.17"
}
@@ -15052,11 +15229,11 @@
}
},
"node_modules/minipass-flush": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz",
- "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==",
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.7.tgz",
+ "integrity": "sha512-TbqTz9cUwWyHS2Dy89P3ocAGUGxKjjLuR9z8w4WUTGAVgEj17/4nhgo2Du56i0Fm3Pm30g4iA8Lcqctc76jCzA==",
"dev": true,
- "license": "ISC",
+ "license": "BlueOak-1.0.0",
"peer": true,
"dependencies": {
"minipass": "^3.0.0"
@@ -15296,14 +15473,14 @@
}
},
"node_modules/node-gyp/node_modules/isexe": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz",
- "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==",
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.5.tgz",
+ "integrity": "sha512-6B3tLtFqtQS4ekarvLVMZ+X+VlvQekbe4taUkf/rhVO3d/h0M2rfARm/pXLcPEsjjMsFgrFgSrhQIxcSVrBz8w==",
"dev": true,
- "license": "ISC",
+ "license": "BlueOak-1.0.0",
"peer": true,
"engines": {
- "node": ">=16"
+ "node": ">=18"
}
},
"node_modules/node-gyp/node_modules/which": {
@@ -15324,9 +15501,9 @@
}
},
"node_modules/node-releases": {
- "version": "2.0.27",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.27.tgz",
- "integrity": "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==",
+ "version": "2.0.37",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.37.tgz",
+ "integrity": "sha512-1h5gKZCF+pO/o3Iqt5Jp7wc9rH3eJJ0+nh/CIoiRwjRxde/hAHyLPXYN4V3CqKAbiZPSeJFSWHmJsbkicta0Eg==",
"dev": true,
"license": "MIT"
},
@@ -15708,9 +15885,9 @@
"license": "BlueOak-1.0.0"
},
"node_modules/pacote": {
- "version": "19.0.1",
- "resolved": "https://registry.npmjs.org/pacote/-/pacote-19.0.1.tgz",
- "integrity": "sha512-zIpxWAsr/BvhrkSruspG8aqCQUUrWtpwx0GjiRZQhEM/pZXrigA32ElN3vTcCPUDOFmHr6SFxwYrvVUs5NTEUg==",
+ "version": "19.0.2",
+ "resolved": "https://registry.npmjs.org/pacote/-/pacote-19.0.2.tgz",
+ "integrity": "sha512-iNInrWMS+PzYbaef5EW/mU8OiCPxGuTmYn6ht5ImeXd5TZIVY4+dDmIrbpB6v0MKG/KIMMvj2UD7eKU9GbTGHA==",
"dev": true,
"license": "ISC",
"peer": true,
@@ -15731,7 +15908,7 @@
"promise-retry": "^2.0.1",
"sigstore": "^3.0.0",
"ssri": "^12.0.0",
- "tar": "^6.1.11"
+ "tar": "^7.5.10"
},
"bin": {
"pacote": "bin/index.js"
@@ -15740,113 +15917,6 @@
"node": "^18.17.0 || >=20.5.0"
}
},
- "node_modules/pacote/node_modules/chownr": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz",
- "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==",
- "dev": true,
- "license": "ISC",
- "peer": true,
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/pacote/node_modules/minizlib": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz",
- "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "minipass": "^3.0.0",
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/pacote/node_modules/minizlib/node_modules/minipass": {
- "version": "3.3.6",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
- "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
- "dev": true,
- "license": "ISC",
- "peer": true,
- "dependencies": {
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/pacote/node_modules/tar": {
- "version": "6.2.1",
- "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz",
- "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==",
- "deprecated": "Old versions of tar are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exhorbitant rates) by contacting i@izs.me",
- "dev": true,
- "license": "ISC",
- "peer": true,
- "dependencies": {
- "chownr": "^2.0.0",
- "fs-minipass": "^2.0.0",
- "minipass": "^5.0.0",
- "minizlib": "^2.1.1",
- "mkdirp": "^1.0.3",
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/pacote/node_modules/tar/node_modules/fs-minipass": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz",
- "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==",
- "dev": true,
- "license": "ISC",
- "peer": true,
- "dependencies": {
- "minipass": "^3.0.0"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/pacote/node_modules/tar/node_modules/fs-minipass/node_modules/minipass": {
- "version": "3.3.6",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
- "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
- "dev": true,
- "license": "ISC",
- "peer": true,
- "dependencies": {
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/pacote/node_modules/tar/node_modules/minipass": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz",
- "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==",
- "dev": true,
- "license": "ISC",
- "peer": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/pacote/node_modules/yallist": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
- "dev": true,
- "license": "ISC",
- "peer": true
- },
"node_modules/parse-json": {
"version": "8.3.0",
"resolved": "https://registry.npmjs.org/parse-json/-/parse-json-8.3.0.tgz",
@@ -15988,9 +16058,9 @@
}
},
"node_modules/path-to-regexp": {
- "version": "8.3.0",
- "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.3.0.tgz",
- "integrity": "sha512-7jdwVIRtsP8MYpdXSwOS0YdD0Du+qOoF/AEPIt88PcCFrZCzx41oxku1jD88hZBwbNUIEfpqvuhjFaMAqMTWnA==",
+ "version": "8.4.2",
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.4.2.tgz",
+ "integrity": "sha512-qRcuIdP69NPm4qbACK+aDogI5CBDMi1jKe0ry5rSQJz8JVLsC7jV8XpiJjGRLLol3N+R5ihGYcrPLTno6pAdBA==",
"dev": true,
"license": "MIT",
"funding": {
@@ -16020,9 +16090,9 @@
"license": "ISC"
},
"node_modules/picomatch": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
- "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz",
+ "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==",
"dev": true,
"license": "MIT",
"engines": {
@@ -16185,17 +16255,6 @@
"node": ">=10"
}
},
- "node_modules/punycode": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
- "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "engines": {
- "node": ">=6"
- }
- },
"node_modules/punycode.js": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz",
@@ -16217,9 +16276,9 @@
}
},
"node_modules/qs": {
- "version": "6.14.1",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.1.tgz",
- "integrity": "sha512-4EK3+xJl8Ts67nLYNwqw/dsFVnCf+qR7RgXSK9jEEm9unao3njwMDdmsdvoKBKHzxd7tCYz5e5M+SnMjdtXGQQ==",
+ "version": "6.15.0",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.15.0.tgz",
+ "integrity": "sha512-mAZTtNCeetKMH+pSjrb76NAM8V9a05I9aBZOHztWy/UqcJdQYNsf59vrRKWnojAT9Y+GbIvoTBC++CPHqpDBhQ==",
"dev": true,
"license": "BSD-3-Clause",
"dependencies": {
@@ -16388,9 +16447,9 @@
}
},
"node_modules/readdir-glob/node_modules/minimatch": {
- "version": "5.1.6",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
- "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
+ "version": "5.1.9",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.9.tgz",
+ "integrity": "sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw==",
"dev": true,
"license": "ISC",
"dependencies": {
@@ -16476,9 +16535,9 @@
"license": "MIT"
},
"node_modules/regjsparser": {
- "version": "0.13.0",
- "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.13.0.tgz",
- "integrity": "sha512-NZQZdC5wOE/H3UT28fVGL+ikOZcEzfMGk/c3iN9UGxzWHMa1op7274oyiUVrAG4B2EuFhus8SvkaYnhvW92p9Q==",
+ "version": "0.13.1",
+ "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.13.1.tgz",
+ "integrity": "sha512-dLsljMd9sqwRkby8zhO1gSg3PnJIBFid8f4CQj/sXx+7cKx+E7u0PKhZ+U4wmhx7EfmtvnA318oVaIkAB1lRJw==",
"dev": true,
"license": "BSD-2-Clause",
"dependencies": {
@@ -16498,6 +16557,17 @@
"node": ">=0.10.0"
}
},
+ "node_modules/require-from-string": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
+ "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/require-main-filename": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
@@ -16622,9 +16692,9 @@
}
},
"node_modules/resp-modifier/node_modules/brace-expansion": {
- "version": "1.1.12",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
- "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
+ "version": "1.1.13",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.13.tgz",
+ "integrity": "sha512-9ZLprWS6EENmhEOpjCYW2c8VkmOvckIJZfkr7rBW6dObmfgJ/L1GpSYW5Hpo9lDz4D1+n0Ckz8rU7FwHDQiG/w==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -16633,9 +16703,9 @@
}
},
"node_modules/resp-modifier/node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz",
+ "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==",
"dev": true,
"license": "ISC",
"dependencies": {
@@ -16797,9 +16867,9 @@
"license": "MIT"
},
"node_modules/sax": {
- "version": "1.4.4",
- "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.4.tgz",
- "integrity": "sha512-1n3r/tGXO6b6VXMdFT54SHzT9ytu9yr7TaELowdYpMqY/Ao7EnlQGmAQ1+RatX7Tkkdm6hONI2owqNx2aZj5Sw==",
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/sax/-/sax-1.6.0.tgz",
+ "integrity": "sha512-6R3J5M4AcbtLUdZmRv2SygeVaM7IhrLXu9BmnOGmmACak8fiUtOsYNWUS4uK7upbmHIBbLBeFeI//477BKLBzA==",
"dev": true,
"license": "BlueOak-1.0.0",
"peer": true,
@@ -16808,9 +16878,9 @@
}
},
"node_modules/semver": {
- "version": "7.7.3",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
- "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
+ "version": "7.7.4",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz",
+ "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==",
"dev": true,
"license": "ISC",
"peer": true,
@@ -16854,22 +16924,26 @@
"license": "MIT"
},
"node_modules/serve-index": {
- "version": "1.9.1",
- "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz",
- "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==",
+ "version": "1.9.2",
+ "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.2.tgz",
+ "integrity": "sha512-KDj11HScOaLmrPxl70KYNW1PksP4Nb/CLL2yvC+Qd2kHMPEEpfc4Re2e4FOay+bC/+XQl/7zAcWON3JVo5v3KQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "accepts": "~1.3.4",
+ "accepts": "~1.3.8",
"batch": "0.6.1",
"debug": "2.6.9",
"escape-html": "~1.0.3",
- "http-errors": "~1.6.2",
- "mime-types": "~2.1.17",
- "parseurl": "~1.3.2"
+ "http-errors": "~1.8.0",
+ "mime-types": "~2.1.35",
+ "parseurl": "~1.3.3"
},
"engines": {
"node": ">= 0.8.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/express"
}
},
"node_modules/serve-index-75lb": {
@@ -17013,28 +17087,22 @@
}
},
"node_modules/serve-index/node_modules/http-errors": {
- "version": "1.6.3",
- "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz",
- "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==",
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz",
+ "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==",
"dev": true,
"license": "MIT",
"dependencies": {
"depd": "~1.1.2",
- "inherits": "2.0.3",
- "setprototypeof": "1.1.0",
- "statuses": ">= 1.4.0 < 2"
+ "inherits": "2.0.4",
+ "setprototypeof": "1.2.0",
+ "statuses": ">= 1.5.0 < 2",
+ "toidentifier": "1.0.1"
},
"engines": {
"node": ">= 0.6"
}
},
- "node_modules/serve-index/node_modules/inherits": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
- "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==",
- "dev": true,
- "license": "ISC"
- },
"node_modules/serve-index/node_modules/mime-db": {
"version": "1.52.0",
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
@@ -17068,13 +17136,6 @@
"node": ">= 0.6"
}
},
- "node_modules/serve-index/node_modules/setprototypeof": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz",
- "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==",
- "dev": true,
- "license": "ISC"
- },
"node_modules/serve-index/node_modules/statuses": {
"version": "1.5.0",
"resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
@@ -17591,9 +17652,9 @@
"license": "MIT"
},
"node_modules/socket.io-parser": {
- "version": "4.2.5",
- "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.5.tgz",
- "integrity": "sha512-bPMmpy/5WWKHea5Y/jYAP6k74A+hvmRCQaJuJB6I/ML5JZq/KfNieUVo/3Mh7SAqn7TyFdIo6wqYHInG1MU1bQ==",
+ "version": "4.2.6",
+ "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.6.tgz",
+ "integrity": "sha512-asJqbVBDsBCJx0pTqw3WfesSY0iRX+2xzWEWzrpcH7L6fLzrhyF8WPI8UaeM4YCuDfpwA/cgsdugMsmtz8EJeg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -17826,9 +17887,9 @@
}
},
"node_modules/spdx-license-ids": {
- "version": "3.0.22",
- "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.22.tgz",
- "integrity": "sha512-4PRT4nh1EImPbt2jASOKHX7PB7I+e4IWNLvkKFDxNhJlfjbYlleYQh285Z/3mPTHSAK/AvdMmw5BNNuYH8ShgQ==",
+ "version": "3.0.23",
+ "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.23.tgz",
+ "integrity": "sha512-CWLcCCH7VLu13TgOH+r8p1O/Znwhqv/dbb6lqWy67G+pT1kHmeD/+V36AVb/vq8QMIQwVShJ6Ssl5FPh0fuSdw==",
"dev": true,
"license": "CC0-1.0",
"peer": true
@@ -18038,9 +18099,9 @@
}
},
"node_modules/streamx": {
- "version": "2.23.0",
- "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.23.0.tgz",
- "integrity": "sha512-kn+e44esVfn2Fa/O0CPFcex27fjIL6MkVae0Mm6q+E6f0hWv578YCERbv+4m02cjxvDsPKLnmxral/rR6lBMAg==",
+ "version": "2.25.0",
+ "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.25.0.tgz",
+ "integrity": "sha512-0nQuG6jf1w+wddNEEXCF4nTg3LtufWINB5eFEN+5TNZW7KWJp6x87+JFL43vaAUPyCfH1wID+mNVyW6OHtFamg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -18124,13 +18185,13 @@
}
},
"node_modules/strip-ansi": {
- "version": "7.1.2",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz",
- "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==",
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz",
+ "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==",
"dev": true,
"license": "MIT",
"dependencies": {
- "ansi-regex": "^6.0.1"
+ "ansi-regex": "^6.2.2"
},
"engines": {
"node": ">=12"
@@ -18218,9 +18279,9 @@
}
},
"node_modules/tar": {
- "version": "7.5.3",
- "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.3.tgz",
- "integrity": "sha512-ENg5JUHUm2rDD7IvKNFGzyElLXNjachNLp6RaGf4+JOgxXHkqA+gq81ZAMCUmtMtqBsoU62lcp6S27g1LCYGGQ==",
+ "version": "7.5.13",
+ "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.13.tgz",
+ "integrity": "sha512-tOG/7GyXpFevhXVh8jOPJrmtRpOTsYqUIkVdVooZYJS/z8WhfQUX8RJILmeuJNinGAMSu1veBr4asSHFt5/hng==",
"dev": true,
"license": "BlueOak-1.0.0",
"peer": true,
@@ -18236,21 +18297,32 @@
}
},
"node_modules/tar-stream": {
- "version": "3.1.7",
- "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz",
- "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==",
+ "version": "3.1.8",
+ "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.8.tgz",
+ "integrity": "sha512-U6QpVRyCGHva435KoNWy9PRoi2IFYCgtEhq9nmrPPpbRacPs9IH4aJ3gbrFC8dPcXvdSZ4XXfXT5Fshbp2MtlQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"b4a": "^1.6.4",
+ "bare-fs": "^4.5.5",
"fast-fifo": "^1.2.0",
"streamx": "^2.15.0"
}
},
+ "node_modules/teex": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/teex/-/teex-1.0.1.tgz",
+ "integrity": "sha512-eYE6iEI62Ni1H8oIa7KlDU6uQBtqr4Eajni3wX7rpfXD8ysFx8z0+dri+KWEPWpBsxXfxu58x/0jvTVT1ekOSg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "streamx": "^2.12.5"
+ }
+ },
"node_modules/terser": {
- "version": "5.46.0",
- "resolved": "https://registry.npmjs.org/terser/-/terser-5.46.0.tgz",
- "integrity": "sha512-jTwoImyr/QbOWFFso3YoU3ik0jBBDJ6JTOQiy/J2YxVJdZCc+5u7skhNwiOR3FQIygFqVUPHl7qbbxtjW2K3Qg==",
+ "version": "5.46.1",
+ "resolved": "https://registry.npmjs.org/terser/-/terser-5.46.1.tgz",
+ "integrity": "sha512-vzCjQO/rgUuK9sf8VJZvjqiqiHFaZLnOiimmUuOKODxWL8mm/xua7viT7aqX7dgPY60otQjUotzFMmCB4VdmqQ==",
"dev": true,
"license": "BSD-2-Clause",
"peer": true,
@@ -18276,9 +18348,9 @@
"peer": true
},
"node_modules/text-decoder": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.3.tgz",
- "integrity": "sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA==",
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.7.tgz",
+ "integrity": "sha512-vlLytXkeP4xvEq2otHeJfSQIRyWxo/oZGEbXrtEEF9Hnmrdly59sUbzZ/QgyWuLYHctCHxFF4tRQZNQ9k60ExQ==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
@@ -18330,9 +18402,9 @@
}
},
"node_modules/tinyglobby/node_modules/picomatch": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz",
- "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz",
+ "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==",
"dev": true,
"license": "MIT",
"peer": true,
@@ -18699,13 +18771,13 @@
}
},
"node_modules/ui5-middleware-simpleproxy/node_modules/minimatch": {
- "version": "7.4.6",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.6.tgz",
- "integrity": "sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==",
+ "version": "7.4.9",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.9.tgz",
+ "integrity": "sha512-Brg/fp/iAVDOQoHxkuN5bEYhyQlZhxddI78yWsCbeEwTHXQjlNLtiJDUsp1GIptVqMI7/gkJMz4vVAc01mpoBw==",
"dev": true,
"license": "ISC",
"dependencies": {
- "brace-expansion": "^2.0.1"
+ "brace-expansion": "^2.0.2"
},
"engines": {
"node": ">=10"
@@ -18755,170 +18827,182 @@
"dev": true,
"license": "Apache-2.0"
},
+ "node_modules/ui5.quickstart.step01": {
+ "resolved": "packages/quickstart/steps/01",
+ "link": true
+ },
+ "node_modules/ui5.quickstart.step02": {
+ "resolved": "packages/quickstart/steps/02",
+ "link": true
+ },
+ "node_modules/ui5.quickstart.step03": {
+ "resolved": "packages/quickstart/steps/03",
+ "link": true
+ },
"node_modules/ui5.walkthrough.step01": {
- "resolved": "steps/01",
+ "resolved": "packages/walkthrough/steps/01",
"link": true
},
"node_modules/ui5.walkthrough.step02": {
- "resolved": "steps/02",
+ "resolved": "packages/walkthrough/steps/02",
"link": true
},
"node_modules/ui5.walkthrough.step03": {
- "resolved": "steps/03",
+ "resolved": "packages/walkthrough/steps/03",
"link": true
},
"node_modules/ui5.walkthrough.step04": {
- "resolved": "steps/04",
+ "resolved": "packages/walkthrough/steps/04",
"link": true
},
"node_modules/ui5.walkthrough.step05": {
- "resolved": "steps/05",
+ "resolved": "packages/walkthrough/steps/05",
"link": true
},
"node_modules/ui5.walkthrough.step06": {
- "resolved": "steps/06",
+ "resolved": "packages/walkthrough/steps/06",
"link": true
},
"node_modules/ui5.walkthrough.step07": {
- "resolved": "steps/07",
+ "resolved": "packages/walkthrough/steps/07",
"link": true
},
"node_modules/ui5.walkthrough.step08": {
- "resolved": "steps/08",
+ "resolved": "packages/walkthrough/steps/08",
"link": true
},
"node_modules/ui5.walkthrough.step09": {
- "resolved": "steps/09",
+ "resolved": "packages/walkthrough/steps/09",
"link": true
},
"node_modules/ui5.walkthrough.step10": {
- "resolved": "steps/10",
+ "resolved": "packages/walkthrough/steps/10",
"link": true
},
"node_modules/ui5.walkthrough.step11": {
- "resolved": "steps/11",
+ "resolved": "packages/walkthrough/steps/11",
"link": true
},
"node_modules/ui5.walkthrough.step12": {
- "resolved": "steps/12",
+ "resolved": "packages/walkthrough/steps/12",
"link": true
},
"node_modules/ui5.walkthrough.step13": {
- "resolved": "steps/13",
+ "resolved": "packages/walkthrough/steps/13",
"link": true
},
"node_modules/ui5.walkthrough.step14": {
- "resolved": "steps/14",
+ "resolved": "packages/walkthrough/steps/14",
"link": true
},
"node_modules/ui5.walkthrough.step15": {
- "resolved": "steps/15",
+ "resolved": "packages/walkthrough/steps/15",
"link": true
},
"node_modules/ui5.walkthrough.step16": {
- "resolved": "steps/16",
+ "resolved": "packages/walkthrough/steps/16",
"link": true
},
"node_modules/ui5.walkthrough.step17": {
- "resolved": "steps/17",
+ "resolved": "packages/walkthrough/steps/17",
"link": true
},
"node_modules/ui5.walkthrough.step18": {
- "resolved": "steps/18",
+ "resolved": "packages/walkthrough/steps/18",
"link": true
},
"node_modules/ui5.walkthrough.step19": {
- "resolved": "steps/19",
+ "resolved": "packages/walkthrough/steps/19",
"link": true
},
"node_modules/ui5.walkthrough.step20": {
- "resolved": "steps/20",
+ "resolved": "packages/walkthrough/steps/20",
"link": true
},
"node_modules/ui5.walkthrough.step21": {
- "resolved": "steps/21",
+ "resolved": "packages/walkthrough/steps/21",
"link": true
},
"node_modules/ui5.walkthrough.step22": {
- "resolved": "steps/22",
+ "resolved": "packages/walkthrough/steps/22",
"link": true
},
"node_modules/ui5.walkthrough.step23": {
- "resolved": "steps/23",
+ "resolved": "packages/walkthrough/steps/23",
"link": true
},
"node_modules/ui5.walkthrough.step24": {
- "resolved": "steps/24",
+ "resolved": "packages/walkthrough/steps/24",
"link": true
},
"node_modules/ui5.walkthrough.step25": {
- "resolved": "steps/25",
+ "resolved": "packages/walkthrough/steps/25",
"link": true
},
"node_modules/ui5.walkthrough.step26": {
- "resolved": "steps/26",
+ "resolved": "packages/walkthrough/steps/26",
"link": true
},
"node_modules/ui5.walkthrough.step27": {
- "resolved": "steps/27",
+ "resolved": "packages/walkthrough/steps/27",
"link": true
},
"node_modules/ui5.walkthrough.step28": {
- "resolved": "steps/28",
+ "resolved": "packages/walkthrough/steps/28",
"link": true
},
"node_modules/ui5.walkthrough.step29": {
- "resolved": "steps/29",
+ "resolved": "packages/walkthrough/steps/29",
"link": true
},
"node_modules/ui5.walkthrough.step30": {
- "resolved": "steps/30",
+ "resolved": "packages/walkthrough/steps/30",
"link": true
},
"node_modules/ui5.walkthrough.step31": {
- "resolved": "steps/31",
+ "resolved": "packages/walkthrough/steps/31",
"link": true
},
"node_modules/ui5.walkthrough.step32": {
- "resolved": "steps/32",
+ "resolved": "packages/walkthrough/steps/32",
"link": true
},
"node_modules/ui5.walkthrough.step33": {
- "resolved": "steps/33",
+ "resolved": "packages/walkthrough/steps/33",
"link": true
},
"node_modules/ui5.walkthrough.step34": {
- "resolved": "steps/34",
+ "resolved": "packages/walkthrough/steps/34",
"link": true
},
"node_modules/ui5.walkthrough.step35": {
- "resolved": "steps/35",
+ "resolved": "packages/walkthrough/steps/35",
"link": true
},
"node_modules/ui5.walkthrough.step36": {
- "resolved": "steps/36",
+ "resolved": "packages/walkthrough/steps/36",
"link": true
},
"node_modules/ui5.walkthrough.step37": {
- "resolved": "steps/37",
+ "resolved": "packages/walkthrough/steps/37",
"link": true
},
"node_modules/ui5.walkthrough.step38": {
- "resolved": "steps/38",
+ "resolved": "packages/walkthrough/steps/38",
"link": true
},
"node_modules/underscore": {
- "version": "1.13.7",
- "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.7.tgz",
- "integrity": "sha512-GMXzWtsc57XAtguZgaQViUOzs0KTkk8ojr3/xAxXLITqf/3EMwxC0inyETfDFjH/Krbhuep0HNbbjI9i/q3F3g==",
+ "version": "1.13.8",
+ "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.8.tgz",
+ "integrity": "sha512-DXtD3ZtEQzc7M8m4cXotyHR+FAS18C64asBYY5vqZexfYryNNnDc02W4hKg3rdQuqOYas1jkseX0+nZXjTXnvQ==",
"dev": true,
"license": "MIT",
"peer": true
},
"node_modules/undici": {
- "version": "6.23.0",
- "resolved": "https://registry.npmjs.org/undici/-/undici-6.23.0.tgz",
- "integrity": "sha512-VfQPToRA5FZs/qJxLIinmU59u0r7LXqoJkCzinq3ckNJp3vKEh7jTWN589YQ5+aoAC/TGRLyJLCPKcLQbM8r9g==",
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/undici/-/undici-6.24.1.tgz",
+ "integrity": "sha512-sC+b0tB1whOCzbtlx20fx3WgCXwkW627p4EA9uM+/tNNPkSS+eSEld6pAs9nDv7WbY1UUljBMYPtu9BCOrCWKA==",
"dev": true,
"license": "MIT",
"peer": true,
@@ -18927,9 +19011,9 @@
}
},
"node_modules/undici-types": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz",
- "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==",
+ "version": "7.18.2",
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.18.2.tgz",
+ "integrity": "sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==",
"dev": true,
"license": "MIT"
},
@@ -18978,14 +19062,14 @@
}
},
"node_modules/unicorn-magic": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.3.0.tgz",
- "integrity": "sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==",
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.4.0.tgz",
+ "integrity": "sha512-wH590V9VNgYH9g3lH9wWjTrUoKsjLF6sGLjhR4sH1LWpLmCOH0Zf7PukhDA8BiS7KHe4oPNkcTHqYkj7SOGUOw==",
"dev": true,
"license": "MIT",
"peer": true,
"engines": {
- "node": ">=18"
+ "node": ">=20"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
@@ -19077,17 +19161,6 @@
"browserslist": ">= 4.21.0"
}
},
- "node_modules/uri-js": {
- "version": "4.4.1",
- "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
- "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
- "dev": true,
- "license": "BSD-2-Clause",
- "peer": true,
- "dependencies": {
- "punycode": "^2.1.0"
- }
- },
"node_modules/util-deprecate": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
@@ -19139,13 +19212,21 @@
}
},
"node_modules/walk-back": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/walk-back/-/walk-back-5.1.1.tgz",
- "integrity": "sha512-e/FRLDVdZQWFrAzU6Hdvpm7D7m2ina833gIKLptQykRK49mmCYHLHq7UqjPDbxbKLZkTkW1rFqbengdE3sLfdw==",
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/walk-back/-/walk-back-5.1.2.tgz",
+ "integrity": "sha512-uCgzIY1U7fyXvJm+mesY0xjf2HXu7mtTnptONwVQ11ur1JhMrUyQJn2fDje1CGFQDnTFTo1Slr1vRuvUS9PYoQ==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=12.17"
+ },
+ "peerDependencies": {
+ "@75lb/nature": "latest"
+ },
+ "peerDependenciesMeta": {
+ "@75lb/nature": {
+ "optional": true
+ }
}
},
"node_modules/walk-up-path": {
@@ -19557,14 +19638,50 @@
"node": ">= 14"
}
},
- "steps/01": {
+ "packages/quickstart/steps/01": {
+ "name": "ui5.quickstart.step01",
+ "version": "1.0.0",
+ "devDependencies": {
+ "@types/openui5": "^1.145.0",
+ "@ui5/cli": "^4",
+ "typescript": "^5.9.3",
+ "ui5-middleware-livereload": "^3.3.0",
+ "ui5-middleware-serveframework": "^3.8.0",
+ "ui5-tooling-transpile": "^3.11.0"
+ }
+ },
+ "packages/quickstart/steps/02": {
+ "name": "ui5.quickstart.step02",
+ "version": "1.0.0",
+ "devDependencies": {
+ "@types/openui5": "^1.145.0",
+ "@ui5/cli": "^4",
+ "typescript": "^5.9.3",
+ "ui5-middleware-livereload": "^3.3.0",
+ "ui5-middleware-serveframework": "^3.8.0",
+ "ui5-tooling-transpile": "^3.11.0"
+ }
+ },
+ "packages/quickstart/steps/03": {
+ "name": "ui5.quickstart.step03",
+ "version": "1.0.0",
+ "devDependencies": {
+ "@types/openui5": "^1.145.0",
+ "@ui5/cli": "^4",
+ "typescript": "^5.9.3",
+ "ui5-middleware-livereload": "^3.3.0",
+ "ui5-middleware-serveframework": "^3.8.0",
+ "ui5-tooling-transpile": "^3.11.0"
+ }
+ },
+ "packages/walkthrough/steps/01": {
"name": "ui5.walkthrough.step01",
"version": "1.0.0",
"devDependencies": {
"@ui5/cli": "^4.0.51"
}
},
- "steps/02": {
+ "packages/walkthrough/steps/02": {
"name": "ui5.walkthrough.step02",
"version": "1.0.0",
"devDependencies": {
@@ -19575,11 +19692,11 @@
"ui5-tooling-transpile": "^3.11.0"
}
},
- "steps/03": {
+ "packages/walkthrough/steps/03": {
"name": "ui5.walkthrough.step03",
"version": "1.0.0",
"devDependencies": {
- "@types/openui5": "^1.142.0",
+ "@types/openui5": "^1.145.0",
"@ui5/cli": "^4.0.51",
"typescript": "^5.9.3",
"ui5-middleware-livereload": "^3.3.0",
@@ -19587,11 +19704,11 @@
"ui5-tooling-transpile": "^3.11.0"
}
},
- "steps/04": {
+ "packages/walkthrough/steps/04": {
"name": "ui5.walkthrough.step04",
"version": "1.0.0",
"devDependencies": {
- "@types/openui5": "^1.142.0",
+ "@types/openui5": "^1.145.0",
"@ui5/cli": "^4.0.51",
"typescript": "^5.9.3",
"ui5-middleware-livereload": "^3.3.0",
@@ -19599,11 +19716,11 @@
"ui5-tooling-transpile": "^3.11.0"
}
},
- "steps/05": {
+ "packages/walkthrough/steps/05": {
"name": "ui5.walkthrough.step05",
"version": "1.0.0",
"devDependencies": {
- "@types/openui5": "^1.142.0",
+ "@types/openui5": "^1.145.0",
"@ui5/cli": "^4.0.51",
"typescript": "^5.9.3",
"ui5-middleware-livereload": "^3.3.0",
@@ -19611,11 +19728,11 @@
"ui5-tooling-transpile": "^3.11.0"
}
},
- "steps/06": {
+ "packages/walkthrough/steps/06": {
"name": "ui5.walkthrough.step06",
"version": "1.0.0",
"devDependencies": {
- "@types/openui5": "^1.142.0",
+ "@types/openui5": "^1.145.0",
"@ui5/cli": "^4.0.51",
"typescript": "^5.9.3",
"ui5-middleware-livereload": "^3.3.0",
@@ -19623,11 +19740,11 @@
"ui5-tooling-transpile": "^3.11.0"
}
},
- "steps/07": {
+ "packages/walkthrough/steps/07": {
"name": "ui5.walkthrough.step07",
"version": "1.0.0",
"devDependencies": {
- "@types/openui5": "^1.142.0",
+ "@types/openui5": "^1.145.0",
"@ui5/cli": "^4.0.51",
"typescript": "^5.9.3",
"ui5-middleware-livereload": "^3.3.0",
@@ -19635,11 +19752,11 @@
"ui5-tooling-transpile": "^3.11.0"
}
},
- "steps/08": {
+ "packages/walkthrough/steps/08": {
"name": "ui5.walkthrough.step08",
"version": "1.0.0",
"devDependencies": {
- "@types/openui5": "^1.142.0",
+ "@types/openui5": "^1.145.0",
"@ui5/cli": "^4.0.51",
"typescript": "^5.9.3",
"ui5-middleware-livereload": "^3.3.0",
@@ -19647,11 +19764,11 @@
"ui5-tooling-transpile": "^3.11.0"
}
},
- "steps/09": {
+ "packages/walkthrough/steps/09": {
"name": "ui5.walkthrough.step09",
"version": "1.0.0",
"devDependencies": {
- "@types/openui5": "^1.142.0",
+ "@types/openui5": "^1.145.0",
"@ui5/cli": "^4.0.51",
"typescript": "^5.9.3",
"ui5-middleware-livereload": "^3.3.0",
@@ -19659,11 +19776,11 @@
"ui5-tooling-transpile": "^3.11.0"
}
},
- "steps/10": {
+ "packages/walkthrough/steps/10": {
"name": "ui5.walkthrough.step10",
"version": "1.0.0",
"devDependencies": {
- "@types/openui5": "^1.142.0",
+ "@types/openui5": "^1.145.0",
"@ui5/cli": "^4.0.51",
"typescript": "^5.9.3",
"ui5-middleware-livereload": "^3.3.0",
@@ -19671,11 +19788,11 @@
"ui5-tooling-transpile": "^3.11.0"
}
},
- "steps/11": {
+ "packages/walkthrough/steps/11": {
"name": "ui5.walkthrough.step11",
"version": "1.0.0",
"devDependencies": {
- "@types/openui5": "^1.142.0",
+ "@types/openui5": "^1.145.0",
"@ui5/cli": "^4.0.51",
"typescript": "^5.9.3",
"ui5-middleware-livereload": "^3.3.0",
@@ -19683,11 +19800,11 @@
"ui5-tooling-transpile": "^3.11.0"
}
},
- "steps/12": {
+ "packages/walkthrough/steps/12": {
"name": "ui5.walkthrough.step12",
"version": "1.0.0",
"devDependencies": {
- "@types/openui5": "^1.142.0",
+ "@types/openui5": "^1.145.0",
"@ui5/cli": "^4.0.51",
"typescript": "^5.9.3",
"ui5-middleware-livereload": "^3.3.0",
@@ -19695,11 +19812,11 @@
"ui5-tooling-transpile": "^3.11.0"
}
},
- "steps/13": {
+ "packages/walkthrough/steps/13": {
"name": "ui5.walkthrough.step13",
"version": "1.0.0",
"devDependencies": {
- "@types/openui5": "^1.142.0",
+ "@types/openui5": "^1.145.0",
"@ui5/cli": "^4.0.51",
"typescript": "^5.9.3",
"ui5-middleware-livereload": "^3.3.0",
@@ -19707,11 +19824,11 @@
"ui5-tooling-transpile": "^3.11.0"
}
},
- "steps/14": {
+ "packages/walkthrough/steps/14": {
"name": "ui5.walkthrough.step14",
"version": "1.0.0",
"devDependencies": {
- "@types/openui5": "^1.142.0",
+ "@types/openui5": "^1.145.0",
"@ui5/cli": "^4.0.51",
"typescript": "^5.9.3",
"ui5-middleware-livereload": "^3.3.0",
@@ -19719,11 +19836,11 @@
"ui5-tooling-transpile": "^3.11.0"
}
},
- "steps/15": {
+ "packages/walkthrough/steps/15": {
"name": "ui5.walkthrough.step15",
"version": "1.0.0",
"devDependencies": {
- "@types/openui5": "^1.142.0",
+ "@types/openui5": "^1.145.0",
"@ui5/cli": "^4.0.51",
"typescript": "^5.9.3",
"ui5-middleware-livereload": "^3.3.0",
@@ -19731,11 +19848,11 @@
"ui5-tooling-transpile": "^3.11.0"
}
},
- "steps/16": {
+ "packages/walkthrough/steps/16": {
"name": "ui5.walkthrough.step16",
"version": "1.0.0",
"devDependencies": {
- "@types/openui5": "^1.142.0",
+ "@types/openui5": "^1.145.0",
"@ui5/cli": "^4.0.51",
"typescript": "^5.9.3",
"ui5-middleware-livereload": "^3.3.0",
@@ -19743,11 +19860,11 @@
"ui5-tooling-transpile": "^3.11.0"
}
},
- "steps/17": {
+ "packages/walkthrough/steps/17": {
"name": "ui5.walkthrough.step17",
"version": "1.0.0",
"devDependencies": {
- "@types/openui5": "^1.142.0",
+ "@types/openui5": "^1.145.0",
"@ui5/cli": "^4.0.51",
"typescript": "^5.9.3",
"ui5-middleware-livereload": "^3.3.0",
@@ -19755,11 +19872,11 @@
"ui5-tooling-transpile": "^3.11.0"
}
},
- "steps/18": {
+ "packages/walkthrough/steps/18": {
"name": "ui5.walkthrough.step18",
"version": "1.0.0",
"devDependencies": {
- "@types/openui5": "^1.142.0",
+ "@types/openui5": "^1.145.0",
"@ui5/cli": "^4.0.51",
"typescript": "^5.9.3",
"ui5-middleware-livereload": "^3.3.0",
@@ -19767,11 +19884,11 @@
"ui5-tooling-transpile": "^3.11.0"
}
},
- "steps/19": {
+ "packages/walkthrough/steps/19": {
"name": "ui5.walkthrough.step19",
"version": "1.0.0",
"devDependencies": {
- "@types/openui5": "^1.142.0",
+ "@types/openui5": "^1.145.0",
"@ui5/cli": "^4.0.51",
"typescript": "^5.9.3",
"ui5-middleware-livereload": "^3.3.0",
@@ -19779,11 +19896,11 @@
"ui5-tooling-transpile": "^3.11.0"
}
},
- "steps/20": {
+ "packages/walkthrough/steps/20": {
"name": "ui5.walkthrough.step20",
"version": "1.0.0",
"devDependencies": {
- "@types/openui5": "^1.142.0",
+ "@types/openui5": "^1.145.0",
"@ui5/cli": "^4.0.51",
"typescript": "^5.9.3",
"ui5-middleware-livereload": "^3.3.0",
@@ -19791,11 +19908,11 @@
"ui5-tooling-transpile": "^3.11.0"
}
},
- "steps/21": {
+ "packages/walkthrough/steps/21": {
"name": "ui5.walkthrough.step21",
"version": "1.0.0",
"devDependencies": {
- "@types/openui5": "^1.142.0",
+ "@types/openui5": "^1.145.0",
"@ui5/cli": "^4.0.51",
"typescript": "^5.9.3",
"ui5-middleware-livereload": "^3.3.0",
@@ -19803,11 +19920,11 @@
"ui5-tooling-transpile": "^3.11.0"
}
},
- "steps/22": {
+ "packages/walkthrough/steps/22": {
"name": "ui5.walkthrough.step22",
"version": "1.0.0",
"devDependencies": {
- "@types/openui5": "^1.142.0",
+ "@types/openui5": "^1.145.0",
"@ui5/cli": "^4.0.51",
"typescript": "^5.9.3",
"ui5-middleware-livereload": "^3.3.0",
@@ -19815,11 +19932,11 @@
"ui5-tooling-transpile": "^3.11.0"
}
},
- "steps/23": {
+ "packages/walkthrough/steps/23": {
"name": "ui5.walkthrough.step23",
"version": "1.0.0",
"devDependencies": {
- "@types/openui5": "^1.142.0",
+ "@types/openui5": "^1.145.0",
"@ui5/cli": "^4.0.51",
"typescript": "^5.9.3",
"ui5-middleware-livereload": "^3.3.0",
@@ -19827,11 +19944,11 @@
"ui5-tooling-transpile": "^3.11.0"
}
},
- "steps/24": {
+ "packages/walkthrough/steps/24": {
"name": "ui5.walkthrough.step24",
"version": "1.0.0",
"devDependencies": {
- "@types/openui5": "^1.142.0",
+ "@types/openui5": "^1.145.0",
"@ui5/cli": "^4.0.51",
"typescript": "^5.9.3",
"ui5-middleware-livereload": "^3.3.0",
@@ -19839,11 +19956,11 @@
"ui5-tooling-transpile": "^3.11.0"
}
},
- "steps/25": {
+ "packages/walkthrough/steps/25": {
"name": "ui5.walkthrough.step25",
"version": "1.0.0",
"devDependencies": {
- "@types/openui5": "^1.142.0",
+ "@types/openui5": "^1.145.0",
"@ui5/cli": "^4.0.51",
"typescript": "^5.9.3",
"ui5-middleware-livereload": "^3.3.0",
@@ -19852,11 +19969,11 @@
"ui5-tooling-transpile": "^3.11.0"
}
},
- "steps/26": {
+ "packages/walkthrough/steps/26": {
"name": "ui5.walkthrough.step26",
"version": "1.0.0",
"devDependencies": {
- "@types/openui5": "^1.142.0",
+ "@types/openui5": "^1.145.0",
"@ui5/cli": "^4.0.51",
"typescript": "^5.9.3",
"ui5-middleware-livereload": "^3.3.0",
@@ -19865,11 +19982,11 @@
"ui5-tooling-transpile": "^3.11.0"
}
},
- "steps/27": {
+ "packages/walkthrough/steps/27": {
"name": "ui5.walkthrough.step27",
"version": "1.0.0",
"devDependencies": {
- "@types/openui5": "^1.142.0",
+ "@types/openui5": "^1.145.0",
"@ui5/cli": "^4.0.51",
"typescript": "^5.9.3",
"ui5-middleware-livereload": "^3.3.0",
@@ -19878,11 +19995,11 @@
"ui5-tooling-transpile": "^3.11.0"
}
},
- "steps/28": {
+ "packages/walkthrough/steps/28": {
"name": "ui5.walkthrough.step28",
"version": "1.0.0",
"devDependencies": {
- "@types/openui5": "^1.142.0",
+ "@types/openui5": "^1.145.0",
"@ui5/cli": "^4.0.51",
"typescript": "^5.9.3",
"ui5-middleware-livereload": "^3.3.0",
@@ -19891,11 +20008,11 @@
"ui5-tooling-transpile": "^3.11.0"
}
},
- "steps/29": {
+ "packages/walkthrough/steps/29": {
"name": "ui5.walkthrough.step29",
"version": "1.0.0",
"devDependencies": {
- "@types/openui5": "^1.142.0",
+ "@types/openui5": "^1.145.0",
"@ui5/cli": "^4.0.51",
"typescript": "^5.9.3",
"ui5-middleware-livereload": "^3.3.0",
@@ -19904,11 +20021,11 @@
"ui5-tooling-transpile": "^3.11.0"
}
},
- "steps/30": {
+ "packages/walkthrough/steps/30": {
"name": "ui5.walkthrough.step30",
"version": "1.0.0",
"devDependencies": {
- "@types/openui5": "^1.142.0",
+ "@types/openui5": "^1.145.0",
"@ui5/cli": "^4.0.51",
"typescript": "^5.9.3",
"ui5-middleware-livereload": "^3.3.0",
@@ -19917,11 +20034,11 @@
"ui5-tooling-transpile": "^3.11.0"
}
},
- "steps/31": {
+ "packages/walkthrough/steps/31": {
"name": "ui5.walkthrough.step31",
"version": "1.0.0",
"devDependencies": {
- "@types/openui5": "^1.142.0",
+ "@types/openui5": "^1.145.0",
"@ui5/cli": "^4.0.51",
"typescript": "^5.9.3",
"ui5-middleware-livereload": "^3.3.0",
@@ -19930,11 +20047,11 @@
"ui5-tooling-transpile": "^3.11.0"
}
},
- "steps/32": {
+ "packages/walkthrough/steps/32": {
"name": "ui5.walkthrough.step32",
"version": "1.0.0",
"devDependencies": {
- "@types/openui5": "^1.142.0",
+ "@types/openui5": "^1.145.0",
"@ui5/cli": "^4.0.51",
"typescript": "^5.9.3",
"ui5-middleware-livereload": "^3.3.0",
@@ -19943,11 +20060,11 @@
"ui5-tooling-transpile": "^3.11.0"
}
},
- "steps/33": {
+ "packages/walkthrough/steps/33": {
"name": "ui5.walkthrough.step33",
"version": "1.0.0",
"devDependencies": {
- "@types/openui5": "^1.142.0",
+ "@types/openui5": "^1.145.0",
"@ui5/cli": "^4.0.51",
"@ui5/ts-interface-generator": "^0.10.5",
"typescript": "^5.9.3",
@@ -19957,11 +20074,11 @@
"ui5-tooling-transpile": "^3.11.0"
}
},
- "steps/34": {
+ "packages/walkthrough/steps/34": {
"name": "ui5.walkthrough.step34",
"version": "1.0.0",
"devDependencies": {
- "@types/openui5": "^1.142.0",
+ "@types/openui5": "^1.145.0",
"@ui5/cli": "^4.0.51",
"@ui5/ts-interface-generator": "^0.10.5",
"typescript": "^5.9.3",
@@ -19971,11 +20088,11 @@
"ui5-tooling-transpile": "^3.11.0"
}
},
- "steps/35": {
+ "packages/walkthrough/steps/35": {
"name": "ui5.walkthrough.step35",
"version": "1.0.0",
"devDependencies": {
- "@types/openui5": "^1.142.0",
+ "@types/openui5": "^1.145.0",
"@ui5/cli": "^4.0.51",
"@ui5/ts-interface-generator": "^0.10.5",
"typescript": "^5.9.3",
@@ -19985,11 +20102,11 @@
"ui5-tooling-transpile": "^3.11.0"
}
},
- "steps/36": {
+ "packages/walkthrough/steps/36": {
"name": "ui5.walkthrough.step36",
"version": "1.0.0",
"devDependencies": {
- "@types/openui5": "^1.142.0",
+ "@types/openui5": "^1.145.0",
"@ui5/cli": "^4.0.51",
"@ui5/ts-interface-generator": "^0.10.5",
"typescript": "^5.9.3",
@@ -19999,11 +20116,11 @@
"ui5-tooling-transpile": "^3.11.0"
}
},
- "steps/37": {
+ "packages/walkthrough/steps/37": {
"name": "ui5.walkthrough.step37",
"version": "1.0.0",
"devDependencies": {
- "@types/openui5": "^1.142.0",
+ "@types/openui5": "^1.145.0",
"@ui5/cli": "^4.0.51",
"@ui5/ts-interface-generator": "^0.10.5",
"typescript": "^5.9.3",
@@ -20013,11 +20130,11 @@
"ui5-tooling-transpile": "^3.11.0"
}
},
- "steps/38": {
+ "packages/walkthrough/steps/38": {
"name": "ui5.walkthrough.step38",
"version": "1.0.0",
"devDependencies": {
- "@types/openui5": "^1.142.0",
+ "@types/openui5": "^1.145.0",
"@ui5/cli": "^4.0.51",
"@ui5/ts-interface-generator": "^0.10.5",
"local-web-server": "^5.4.0",
diff --git a/package.json b/package.json
index 89c314382..1cc1baf5f 100644
--- a/package.json
+++ b/package.json
@@ -1,10 +1,30 @@
{
- "description": "OpenUI5 TypeScript Walkthrough",
- "author": "SAP SE",
+ "name": "@ui5/tutorials",
"private": true,
+ "version": "0.0.0",
+ "description": "A repository offering tutorials for UI5.",
+ "author": {
+ "name": "SAP SE",
+ "email": "openui5@sap.com",
+ "url": "https://www.sap.com"
+ },
+ "keywords": [
+ "openui5",
+ "sapui5",
+ "ui5",
+ "build",
+ "development",
+ "tutorial"
+ ],
+ "license": "Apache-2.0",
+ "repository": {
+ "type": "git",
+ "url": "git@github.com:SAP-samples/ui5-typescript-walkthrough.git"
+ },
"scripts": {
"build": "node tools/builder",
- "start": "node tools/dev-server"
+ "start": "node tools/dev-server",
+ "download-assets": "node tools/utils/download-assets"
},
"devDependencies": {
"@highlightjs/cdn-assets": "^11.11.1",
@@ -23,6 +43,6 @@
"showdown-highlight": "^3.1.0"
},
"workspaces": [
- "steps/*"
+ "packages/*/steps/*"
]
}
diff --git a/packages/quickstart/README.md b/packages/quickstart/README.md
new file mode 100644
index 000000000..9b75e21f0
--- /dev/null
+++ b/packages/quickstart/README.md
@@ -0,0 +1,29 @@
+# OpenUI5 Quickstart
+
+In this tutorial we'll introduce you to all major development paradigms of OpenUI5. This section is relevant for TypeScript onlyWe'll also demonstrate the use of TypeScript with OpenUI5 and highlight the specific characteristics of this approach.
+
+## Description
+
+We first introduce you to the basic development paradigms like *Model-View-Controller* and establish a best-practice structure of our application. We'll do this along the classic example of βHello Worldβ and start a new app from scratch. Next, we'll introduce the fundamental data binding concepts of OpenUI5 and extend our app to show a list of invoices. We'll continue to add more functionality by adding navigation, extending controls, and making our app responsive. We'll also have look at the testing features and the built-in support tools of OpenUI5.
+
+### Preview
+
+
+
+> π‘ **Tip:**
+> You don't have to do all tutorial steps sequentially, you can also jump directly to any step you want. Just download the code from the previous step and make sure that the application runs as intended.
+>
+> You can view the samples for all steps here in this repository.
+>
+
+### Steps
+
+The tutorial consists of the following steps. To start, just open the first link - you`ll be guided from there.
+
+- **[Step 1: Ready...](steps/01/README.md "Let's get you ready for your journey! We bootstrap OpenUI5 in an HTML page and implement a simple "Hello World" example.")** ([π Live Preview](https://sap-samples.github.io/ui5-typescript-walkthrough/quickstart/build/01/index.html) \| [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/quickstart/quickstart-step-01.zip) [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/quickstart/quickstart-step-01-js.zip) )
+- **[Step 2: Steady...](steps/02/README.md "Now we extend our minimalist HTML page to a basic app with a view and a controller.")** ([π Live Preview](https://sap-samples.github.io/ui5-typescript-walkthrough/quickstart/build/02/index-cdn.html) \| [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/quickstart/quickstart-step-02.zip) [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/quickstart/quickstart-step-02-js.zip) )
+- **[Step 3: Go!](steps/03/README.md "Now it is time to build our first little UI by replacing the "Hello World" text in the HTML body by the OpenUI5 control sap/m/Text. In the beginning, we will use the JavaScript control interface to set up the UI, the control instance is then placed into the HTML body. ")** ([π Live Preview](https://sap-samples.github.io/ui5-typescript-walkthrough/quickstart/build/03/index-cdn.html) \| [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/quickstart/quickstart-step-03.zip) [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/quickstart/quickstart-step-03-js.zip) )
+
+## License
+
+Copyright (c) 2025 SAP SE or an SAP affiliate company. All rights reserved. This project is licensed under the Apache Software License, version 2.0 except as noted otherwise in the [LICENSE](../../LICENSE) file.
diff --git a/packages/quickstart/steps/01/Component.ts b/packages/quickstart/steps/01/Component.ts
new file mode 100644
index 000000000..4491b5ce6
--- /dev/null
+++ b/packages/quickstart/steps/01/Component.ts
@@ -0,0 +1,10 @@
+import UIComponent from "sap/ui/core/UIComponent";
+
+/**
+ * @namespace sap.m.tutorial.quickstart.01
+ */
+export default class Component extends UIComponent {
+ static readonly metadata = {
+ manifest: "json"
+ };
+}
diff --git a/packages/quickstart/steps/01/README.md b/packages/quickstart/steps/01/README.md
new file mode 100644
index 000000000..ea8ef5c08
--- /dev/null
+++ b/packages/quickstart/steps/01/README.md
@@ -0,0 +1,384 @@
+## Step 1: Ready...
+
+Let's get you ready for your journey! We bootstrap OpenUI5 in an HTML page and implement a simple "Hello World" example.
+
+
+
+***
+
+### Preview
+
+
+
+
+*The browser shows a "Ready" button that triggers a "Hello World" message*
+
+You can access the live preview by clicking on this link: [π Live Preview of Step 1](https://sap-samples.github.io/ui5-typescript-walkthrough/quickstart/build/01/index.html).
+
+***
+
+### Coding
+
+
+
+You can download the solution for this step here: [π₯ Download step 1](https://sap-samples.github.io/ui5-typescript-walkthrough/quickstart-step-01.zip).
+
+
+
+
+
+You can download the solution for this step here: [π₯ Download step 1](https://sap-samples.github.io/ui5-typescript-walkthrough/quickstart-step-01-js.zip).
+
+
+***
+
+
+### App root folder \(New\)
+
+Create a folder on your local machine which will contain all the sources of the app we're going to build. We'll refer to this folder as the "app root folder".
+
+### webapp \(New\)
+
+Create a new folder named `webapp` in the app root folder. It will contain all the sources that become available in the browser later. We'll refer to this folder as the "webapp folder".
+
+***
+
+### webapp/index.html \(New\)
+
+In our webapp folder, we create a new HTML file named `index.html` and copy the following content to it:
+
+```html
+
+
+
+
+ Quickstart Tutorial
+
+
+
+
+```
+
+With the `script` tag, we load and initialize OpenUI5 with typical bootstrap parameters. We define, for example, a theme, control libraries, as well as performance and compatibility flags.
+- The bootstrap property `resource-roots` defines the namespace for all resources of the app. This way, we can easily reference additional files that we are about to create in this step.
+- The `index` module that we load with the `onInit` parameter will hold the application logic.
+- The `body` tag is defined with the `sapUiBody` class and the `content` ID. This is where we will add the content of the app in the next steps.
+
+***
+
+### webapp/index.?s \(New\)
+
+In your `webapp` folder, create a new file `index.js` that will be called as soon as OpenUI5 is loaded and initialized. We load two UI controls - a button and a message toast - and place the button in the element with the `content` ID. The button is defined with a `text` property and a callback attached to its `press` event.
+
+```ts
+import Button from "sap/m/Button";
+import MessageToast from "sap/m/MessageToast";
+
+new Button({
+ text: "Ready...",
+ press() {
+ MessageToast.show("Hello World!");
+ }
+}).placeAt("content");
+
+```
+```js
+sap.ui.define([
+ "sap/m/Button",
+ "sap/m/MessageToast"
+], (Button, MessageToast) => {
+ "use strict";
+
+ new Button({
+ text: "Ready...",
+ press() {
+ MessageToast.show("Hello World!");
+ }
+ }).placeAt("content");
+});
+```
+
+***
+
+### webapp/manifest.json \(New\)
+
+Create a new file named `manifest.json` in the webapp folder; it's also known as the "app descriptor". All application-specific configuration options which we'll introduce in this tutorial will be added to this file. Enter the following content:
+
+```json
+{
+ "_version": "1.60.0",
+ "sap.app": {
+ "id": "ui5.quickstart"
+ }
+}
+```
+
+> π **Note:**
+> In this tutorial step, we focus on adding the absolute minimum configuration to the app descriptor file. In certain development environments you might encounter validation errors due to missing settings. However, for the purposes of this tutorial you can safely ignore these errors. In [Step 10: Descriptor for Applications](../10/README.md) we'll examine the purpose of the file in detail and configure some further options.
+
+***
+
+### Development Environment
+
+The following steps are tailored for using this project with [UI5 CLI](https://ui5.github.io/cli/stable/pages/CLI/#local-vs-global-installation).
+
+***
+
+#### package.json \(New\)
+
+Create a new file called `package.json` which will enable you to execute commands and consume packages from the[npm registry](https://www.npmjs.com/) via the npm command line interface.
+
+Enter the following content:
+
+```json
+{
+ "name": "ui5.quickstart",
+ "version": "1.0.0",
+ "description": "The UI5 quickstart tutorial",
+ "scripts": {
+ "start": "ui5 serve -o index.html"
+ }
+}
+
+```
+
+
+
+#### TypeScript Setup
+
+To work with TypeScript, we must install it in our project. To do this, we execute the following command in the terminal:
+
+
+```sh
+npm install typescript --save-dev
+```
+
+By running this command, npm will download the TypeScript package from the npm registry and install it in our project's "node_modules" directory. It will also add an entry for TypeScript in the "devDependencies" section of our package.json file, so that other developers working on the project can easily install the same version of TypeScript.
+
+
+##### tsconfig.json \(New\)
+
+As a next step, we need to create the file `tsconfig.json` in the app root directory to indicate that this folder is the root of a TypeScript project. This file specifies various compiler options and project settings that affect how TypeScript code is compiled into JavaScript.
+
+We specify the compiler options as follow:
+
+
+```json
+{
+ "compilerOptions": {
+ "target": "es2023",
+ "module": "es2022",
+ "moduleResolution": "node",
+ "skipLibCheck": true,
+ "allowJs": true,
+ "strict": true,
+ "strictPropertyInitialization": false,
+ "rootDir": "webapp",
+ "baseUrl": "./",
+ "paths": {
+ "ui5/quickstart/*": ["webapp/*"]
+ }
+ },
+ "include": ["webapp/**/*"]
+}
+```
+
+
+
+Let's go through the compiler options specified in the file:
+
+- `"target": "es2022"`: The `target` parameter sets the JavaScript language level that the TypeScript code should be compiled down to. We set it to ES2022, which means the generated JavaScript code will be compatible with ECMAScript 2022.
+
+- `"module": "es2022"`: The `module` parameter specifies the module code generation for the compiled JavaScript. We configured it to ES2022, which means the generated JavaScript will use ECMAScript modules.
+
+- `"moduleResolution": "node"`: The `moduleResolution` parameter specifies how module dependencies should be resolved. We set it to "node", which means the compiler will use Node.js-style module resolution.
+
+- `"skipLibCheck": true`: When the `skipLibCheck` parameter is set to `true`, it tells the compiler to skip type checking of declaration files (`.d.ts` files) that are part of external libraries. This can improve compilation speed.
+
+- `"allowJs": true`: The `allwJs` parameter allows JavaScript files to be included in the TypeScript project. This option enables TypeScript to compile JavaScript code along with TypeScript code.
+
+- `"strict": true`: When set to "true" the `strict` parameter enables a wide range of type checking behavior that results in more type-safe programs. It includes settings like `noImplicitAny`, `noImplicitThis`, `alwaysStrict` and others.
+
+- `"strictPropertyInitialization": false`: The `strictPropertyInitialization` parameter is a specific type of strict check that ensures that each instance property of a class gets initialized in the constructor body, or by a property initializer. By setting this to false, it disables strict checking of uninitialized class properties. This means that class properties can be left uninitialized or assigned the value `undefined` without causing a compiler error.
+
+- `"rootDir": "webapp"`: The `rootDir` paraemter specifies the root directory of the TypeScript source files. The compiler will consider this directory as the starting point for resolving file paths. We set it to our `webapp` folder.
+
+- `"baseUrl": "./"`: The `baseUrl` parameter is used to resolve non-relative module names. We specified that non-relative module names are resolved relative to the location of the `tsconfig.json` file.
+
+- `"paths": { "ui5/quickstart/*": ["webapp/*"] }`: The `path` paramter specifies path mappings for module resolution. It allows you to define custom module paths that map to specific directories or files. In this case, it maps the module path `ui5/quickstart/*`
+
+***
+
+
+
+### UI5 CLI
+
+Next, we install the UI5 CLI and add it as development dependency to our project. For this, we open a terminal in the app root folder and execute the following command:
+
+```sh
+npm install --save-dev @ui5/cli
+```
+
+Finally, we initialize the UI5 CLI configuration for our project by executing the following command on the app root folder:
+
+```sh
+ui5 init
+```
+
+This will generate a `ui5.yaml` file in the app root directory, which is essential for using UI5 CLI with our project.
+
+
+To use OpenUI5, execute the following command:
+
+```sh
+ui5 use OpenUI5
+```
+
+To use install the required UI5 libraries, execute the following command:
+
+```sh
+ui5 add sap.m sap.tnt sap.ui.core sap.ui.layout themelib_sap_horizon`
+```
+
+Let's enhance our tooling setup once again by installing some custom middleware for the ui5-server. This will help us handle our development project more efficiently.
+
+We open a terminal and navigate to the root folder of our app. Then, we execute the following command:
+
+
+
+```sh
+npm install ui5-middleware-livereload ui5-middleware-serveframework ui5-tooling-transpile --save-dev
+```
+
+
+
+
+```sh
+npm install ui5-middleware-livereload ui5-middleware-serveframework --save-dev
+```
+
+
+When you run the command, npm will download the specified packages from the npm registry and store them in a folder called `node_modules` within your project directory. The `--save-dev` flag instructs npm to save these packages as development dependencies in the `devDependencies` section of the `package.json` file. Development dependencies are packages that are only needed during development and not in production. By separating them from production dependencies, we can keep our project clean and ensure that only the required packages are included when deploying the application.
+
+Let's break down what each package does:
+
+- `ui5-middleware-livereload` is a middleware plugin for the UI5 CLI that enables live reloading of your application in the browser. Live-reloading means that whenever you make changes to your code, the browser automatically refreshes and displays the updated version without requiring manual refreshes (e.g. upon *Save*).
+
+- `ui5-middleware-serveframework` is another middleware plugin for the UI5 CLI that provides a web server to serve your OpenUI5 project during development. It allows you to easily serve the necessary OpenUI5 libraries and resources required by your application from your development environment.
+
+
+
+- `ui5-tooling-transpile` is a plugin for the UI5 CLI that transpiles modern JavaScript (ES6+) and TypeScript into a compatible version for OpenUI5. OpenUI5 is based on older versions of JavaScript, so this plugin allows you to take advantage of the latest language features and syntax while ensuring that your code remains compatible with OpenUI5.
+
+
+
+#### ui5.yaml
+
+Next, we have to configure the tooling extension we installed from npm to our UI5 CLI setup, so we can use them in our project. To hook a custom task into a certain build phase of a project, it needs to reference another task that will get executed before or after it. The same applies for a custom middleware:
+
+
+- For the `ui5-tooling-transpile-task` we specify that this should happen after the`replaceVersion` task.
+
+
+
+- All our custom middleware extensions will be called after the `compression` middleware.
+
+> π **Important:**
+> Middleware configurations are applied in the order in which they are defined.
+
+
+
+```yaml
+framework:
+ name: OpenUI5
+ version: "1.145.1"
+ libraries:
+ - name: sap.m
+ - name: sap.tnt
+ - name: sap.ui.core
+ - name: sap.ui.layout
+ - name: themelib_sap_horizon
+builder:
+ customTasks:
+ - name: ui5-tooling-transpile-task
+ afterTask: replaceVersion
+server:
+ customMiddleware:
+ - name: ui5-tooling-transpile-middleware
+ afterMiddleware: compression
+ - name: ui5-middleware-serveframework
+ afterMiddleware: compression
+ - name: ui5-middleware-livereload
+ afterMiddleware: compression
+```
+Now you can benefit from live reload on changes, built framework resources at development time, and make use of TypeScript in OpenUI5.
+
+
+
+
+
+```yaml
+framework:
+ name: OpenUI5
+ version: "1.145.1"
+ libraries:
+ - name: sap.ui.core
+ - name: themelib_sap_horizon
+builder:
+server:
+ customMiddleware:
+ - name: ui5-middleware-serveframework
+ afterMiddleware: compression
+ - name: ui5-middleware-livereload
+ afterMiddleware: compression
+```
+Now you can benefit from live reload on changes and built framework resources at development time.
+
+
+
+
+> π **Note:**
+> During its initial run, the `ui5-middleware-serveframework` middleware will build the framework, which can take a while. In all following steps, the build will not happen again and the framework is served from the built resources.
+
+
+
+To start the web server and to open a new browser window hosting your newly created `index.html`, execute the following command:
+
+```sh
+npm start
+```
+
+***
+
+### Conventions
+
+- The `index.html` file is located in the `webapp` folder.
+
+
+
+***
+
+**Next:** [Step 2: Steady...](../02/README.md "Before we can do something with UI5, we need to laod and initialize it. This process of loading and initializing UI5 is called bootstrapping. Once this bootstrapping is finished, we simply display an alert.")
+
+***
+
+**Related Information**
+
+[Descriptor for Applications, Components, and Libraries \(manifest.json\)](https://sdk.openui5.org/topic/be0cf40f61184b358b5faedaec98b2da.html "The descriptor for applications, components, and libraries (in short: app descriptor) is inspired by the WebApplication Manifest concept introduced by the W3C. The descriptor provides a central, machine-readable, and easy-to-access location for storing metadata associated with an application, an application component, or a library.")
+
+[ui5-manifest](https://github.com/SAP/ui5-manifest/tree/main)
+
+[Development Environment](https://sdk.openui5.org/topic/7bb04e05f9484e1b95b38a2e48ecef4f.html "This part of the documentation introduces you to some common and recommended use cases for the installation, configuration, and setup of OpenUI5 development environments.")
+
+[App Development](https://sdk.openui5.org/topic/b1fbe1a22f8d4a5bbb601591e27b68d1 "There are several ways to develop OpenUI5 applications. Select the one that meets the requirements of your projects and your expectations best.")
+
+[UI5 CLI: Getting Started](https://ui5.github.io/cli/stable/pages/GettingStarted/)
diff --git a/packages/quickstart/steps/01/package.json b/packages/quickstart/steps/01/package.json
new file mode 100644
index 000000000..121d0b477
--- /dev/null
+++ b/packages/quickstart/steps/01/package.json
@@ -0,0 +1,18 @@
+{
+ "name": "ui5.quickstart.step01",
+ "private": true,
+ "version": "1.0.0",
+ "author": "SAP SE",
+ "description": "UI5 Demo App - Quickstart Tutorial",
+ "scripts": {
+ "start": "ui5 serve -o index.html"
+ },
+ "devDependencies": {
+ "@types/openui5": "^1.145.0",
+ "@ui5/cli": "^4",
+ "typescript": "^5.9.3",
+ "ui5-middleware-livereload": "^3.3.0",
+ "ui5-middleware-serveframework": "^3.8.0",
+ "ui5-tooling-transpile": "^3.11.0"
+ }
+}
diff --git a/packages/quickstart/steps/01/tsconfig.json b/packages/quickstart/steps/01/tsconfig.json
new file mode 100644
index 000000000..7bfb38f1f
--- /dev/null
+++ b/packages/quickstart/steps/01/tsconfig.json
@@ -0,0 +1,21 @@
+{
+ "compilerOptions": {
+ "target": "es2023",
+ "module": "es2022",
+ "moduleResolution": "node",
+ "skipLibCheck": true,
+ "allowJs": true,
+ "strict": true,
+ "strictPropertyInitialization": false,
+ "rootDir": "webapp",
+ "baseUrl": "./",
+ "paths": {
+ "ui5/quickstart/*": [
+ "webapp/*"
+ ]
+ }
+ },
+ "include": [
+ "webapp/**/*"
+ ]
+}
diff --git a/packages/quickstart/steps/01/ui5.yaml b/packages/quickstart/steps/01/ui5.yaml
new file mode 100644
index 000000000..8c94b8480
--- /dev/null
+++ b/packages/quickstart/steps/01/ui5.yaml
@@ -0,0 +1,25 @@
+specVersion: "4.0"
+metadata:
+ name: quickstart-tutorial
+type: application
+framework:
+ name: OpenUI5
+ version: "1.145.1"
+ libraries:
+ - name: sap.m
+ - name: sap.tnt
+ - name: sap.ui.layout
+ - name: sap.ui.core
+ - name: themelib_sap_horizon
+builder:
+ customTasks:
+ - name: ui5-tooling-transpile-task
+ afterTask: replaceVersion
+server:
+ customMiddleware:
+ - name: ui5-tooling-transpile-middleware
+ afterMiddleware: compression
+ - name: ui5-middleware-serveframework
+ afterMiddleware: compression
+ - name: ui5-middleware-livereload
+ afterMiddleware: compression
diff --git a/packages/quickstart/steps/01/webapp/index.html b/packages/quickstart/steps/01/webapp/index.html
new file mode 100644
index 000000000..b5e19abc9
--- /dev/null
+++ b/packages/quickstart/steps/01/webapp/index.html
@@ -0,0 +1,18 @@
+
+
+
+
+ Quickstart Tutorial
+
+
+
+
\ No newline at end of file
diff --git a/packages/quickstart/steps/01/webapp/index.ts b/packages/quickstart/steps/01/webapp/index.ts
new file mode 100644
index 000000000..957dd02d6
--- /dev/null
+++ b/packages/quickstart/steps/01/webapp/index.ts
@@ -0,0 +1,9 @@
+import Button from "sap/m/Button";
+import MessageToast from "sap/m/MessageToast";
+
+new Button({
+ text: "Ready...",
+ press() {
+ MessageToast.show("Hello World!");
+ }
+}).placeAt("content");
diff --git a/packages/quickstart/steps/01/webapp/manifest.json b/packages/quickstart/steps/01/webapp/manifest.json
new file mode 100644
index 000000000..bc55cb8e8
--- /dev/null
+++ b/packages/quickstart/steps/01/webapp/manifest.json
@@ -0,0 +1,11 @@
+{
+ "_version": "1.60.0",
+ "sap.app": {
+ "id": "ui5.quickstart",
+ "type": "application",
+ "title": "OpenUI5 Quickstart",
+ "applicationVersion": {
+ "version": "1.0.0"
+ }
+ }
+}
diff --git a/packages/quickstart/steps/02/Component.ts b/packages/quickstart/steps/02/Component.ts
new file mode 100644
index 000000000..ee77bacf3
--- /dev/null
+++ b/packages/quickstart/steps/02/Component.ts
@@ -0,0 +1,10 @@
+import UIComponent from "sap/ui/core/UIComponent";
+
+/**
+ * @namespace sap.m.tutorial.quickstart.02
+ */
+export default class Component extends UIComponent {
+ static readonly metadata = {
+ manifest: "json"
+ };
+}
diff --git a/packages/quickstart/steps/02/README.md b/packages/quickstart/steps/02/README.md
new file mode 100644
index 000000000..17ea9e9b7
--- /dev/null
+++ b/packages/quickstart/steps/02/README.md
@@ -0,0 +1,128 @@
+## Step 2: Steady...
+
+Now we extend our minimalist HTML page to a basic app with a view and a controller.
+
+
+
+***
+
+### Preview
+
+
+
+
+*The browser shows a Steady button in an app*
+
+You can access the live preview by clicking on this link: [π Live Preview of Step 2](https://sap-samples.github.io/ui5-typescript-walkthrough/quickstart/build/02/index.html).
+
+***
+
+### Coding
+
+
+
+You can download the solution for this step here: [π₯ Download step 2](https://sap-samples.github.io/ui5-typescript-walkthrough/quickstart-step-02.zip).
+
+
+
+
+
+You can download the solution for this step here: [π₯ Download step 2](https://sap-samples.github.io/ui5-typescript-walkthrough/quickstart-step-02-js.zip).
+
+
+***
+
+
+### webapp/index.?s
+
+Now we replace most of the code in this file: We remove the inline button from the previous step, and introduce a proper XML view to separate the presentation from the controller logic. We prefix the view name `ui5.quickstart.App` with our newly defined namespace. The view is loaded asynchronously.
+
+Similar to the step before, the view is placed in the element with the `content` ID after it has finished loading.
+
+```ts
+import XMLView from "sap/ui/core/mvc/XMLView";
+
+XMLView.create({
+ viewName: "ui5.quickstart.App"
+}).then((oView) => oView.placeAt("content"));
+```
+```js
+sap.ui.define([
+ "sap/ui/core/mvc/XMLView"
+], (XMLView) => {
+ "use strict";
+
+ XMLView.create({
+ viewName: "ui5.quickstart.App"
+ }).then((oView) => oView.placeAt("content"));
+});
+```
+
+### webapp/App.view.xml \(New\)
+
+The presentation logic is now defined declaratively in an XML view. UI controls are located in libraries that we define in the `View` tag. In our case, we use the bread-and-butter controls from `sap.m`. The new controls in the view are an `App` and a `Page`. They define a Web app with a header bar and a title.
+
+The button from the previous examples now also defines a `type` and a `class` attribute. This improves the layout of our button and makes it stand out more.
+
+We outsource the controller logic to an app controller. The `.onPress` event now references a function in the controller.
+
+```xml
+
+
+
+
+
+
+
+```
+
+### webapp/App.controller.js \(New\)
+
+In our controller, we load the `Controller` base class and extend it to define the behavior of our app. We also add the event handler for our button. The `MessageToast` is also loaded as a dependency. When the button is pressed, we now display a "Hello App" message.
+
+```ts
+import Controller from "sap/ui/core/mvc/Controller";
+import MessageToast from "sap/m/MessageToast";
+
+export default class App extends Controller {
+ onPress(): void {
+ MessageToast.show("Hello App!");
+ }
+}
+```
+```js
+sap.ui.define([
+ "sap/ui/core/mvc/Controller",
+ "sap/m/MessageToast"
+], (Controller, MessageToast) => {
+ "use strict";
+
+ return Controller.extend("ui5.quickstart.App", {
+ onPress() {
+ MessageToast.show("Hello App!");
+ }
+ });
+
+});
+```
+
+You can see a title bar and a blue button that reacts to your input. Congratulations, you have created our very first app.
+
+
+**Next:** [Step 3: Go!](../03/README.md "Before we can do something with UI5, we need to laod and initialize it. This process of loading and initializing UI5 is called bootstrapping. Once this bootstrapping is finished, we simply display an alert.")
+
+***
+
+**Related Information**
+
+[XML View](https://sdk.openui5.org/#/topic/1409791afe4747319a3b23a1e2fc7064 "The XML view type is defined in an XML file, with a file name ending in .view.xml. The file name and the folder structure together specify the name of the view that equals the OpenUI5 module name.")
+
+[Controller](https://sdk.openui5.org/#/topic/121b8e6337d147af9819129e428f1f75 "A controller contains methods that define how models and views interact.")
diff --git a/packages/quickstart/steps/02/package.json b/packages/quickstart/steps/02/package.json
new file mode 100644
index 000000000..046d9276a
--- /dev/null
+++ b/packages/quickstart/steps/02/package.json
@@ -0,0 +1,18 @@
+{
+ "name": "ui5.quickstart.step02",
+ "private": true,
+ "version": "1.0.0",
+ "author": "SAP SE",
+ "description": "UI5 Demo App - Quickstart Tutorial",
+ "scripts": {
+ "start": "ui5 serve -o index.html"
+ },
+ "devDependencies": {
+ "@types/openui5": "^1.145.0",
+ "@ui5/cli": "^4",
+ "typescript": "^5.9.3",
+ "ui5-middleware-livereload": "^3.3.0",
+ "ui5-middleware-serveframework": "^3.8.0",
+ "ui5-tooling-transpile": "^3.11.0"
+ }
+}
diff --git a/packages/quickstart/steps/02/tsconfig.json b/packages/quickstart/steps/02/tsconfig.json
new file mode 100644
index 000000000..edd641848
--- /dev/null
+++ b/packages/quickstart/steps/02/tsconfig.json
@@ -0,0 +1,17 @@
+{
+ "compilerOptions": {
+ "target": "es2023",
+ "module": "es2022",
+ "moduleResolution": "node",
+ "skipLibCheck": true,
+ "allowJs": true,
+ "strict": true,
+ "strictPropertyInitialization": false,
+ "rootDir": "webapp",
+ "baseUrl": "./",
+ "paths": {
+ "ui5/quickstart/*": ["webapp/*"]
+ }
+ },
+ "include": ["webapp/**/*"]
+}
diff --git a/packages/quickstart/steps/02/ui5.yaml b/packages/quickstart/steps/02/ui5.yaml
new file mode 100644
index 000000000..8c94b8480
--- /dev/null
+++ b/packages/quickstart/steps/02/ui5.yaml
@@ -0,0 +1,25 @@
+specVersion: "4.0"
+metadata:
+ name: quickstart-tutorial
+type: application
+framework:
+ name: OpenUI5
+ version: "1.145.1"
+ libraries:
+ - name: sap.m
+ - name: sap.tnt
+ - name: sap.ui.layout
+ - name: sap.ui.core
+ - name: themelib_sap_horizon
+builder:
+ customTasks:
+ - name: ui5-tooling-transpile-task
+ afterTask: replaceVersion
+server:
+ customMiddleware:
+ - name: ui5-tooling-transpile-middleware
+ afterMiddleware: compression
+ - name: ui5-middleware-serveframework
+ afterMiddleware: compression
+ - name: ui5-middleware-livereload
+ afterMiddleware: compression
diff --git a/packages/quickstart/steps/02/webapp/App.controller.ts b/packages/quickstart/steps/02/webapp/App.controller.ts
new file mode 100644
index 000000000..d595a07e4
--- /dev/null
+++ b/packages/quickstart/steps/02/webapp/App.controller.ts
@@ -0,0 +1,11 @@
+import Controller from "sap/ui/core/mvc/Controller";
+import MessageToast from "sap/m/MessageToast";
+
+/**
+ * @namespace ui5.quickstart
+ */
+export default class App extends Controller {
+ onPress(): void {
+ MessageToast.show("Hello App!");
+ }
+}
diff --git a/packages/quickstart/steps/02/webapp/App.view.xml b/packages/quickstart/steps/02/webapp/App.view.xml
new file mode 100644
index 000000000..c977e2ed8
--- /dev/null
+++ b/packages/quickstart/steps/02/webapp/App.view.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/packages/quickstart/steps/02/webapp/index.html b/packages/quickstart/steps/02/webapp/index.html
new file mode 100644
index 000000000..b5e19abc9
--- /dev/null
+++ b/packages/quickstart/steps/02/webapp/index.html
@@ -0,0 +1,18 @@
+
+
+
+
+ Quickstart Tutorial
+
+
+
+
\ No newline at end of file
diff --git a/packages/quickstart/steps/02/webapp/index.ts b/packages/quickstart/steps/02/webapp/index.ts
new file mode 100644
index 000000000..2c58de3bb
--- /dev/null
+++ b/packages/quickstart/steps/02/webapp/index.ts
@@ -0,0 +1,5 @@
+import XMLView from "sap/ui/core/mvc/XMLView";
+
+XMLView.create({
+ viewName: "ui5.quickstart.App"
+}).then((oView) => oView.placeAt("content"));
diff --git a/packages/quickstart/steps/02/webapp/manifest.json b/packages/quickstart/steps/02/webapp/manifest.json
new file mode 100644
index 000000000..bc55cb8e8
--- /dev/null
+++ b/packages/quickstart/steps/02/webapp/manifest.json
@@ -0,0 +1,11 @@
+{
+ "_version": "1.60.0",
+ "sap.app": {
+ "id": "ui5.quickstart",
+ "type": "application",
+ "title": "OpenUI5 Quickstart",
+ "applicationVersion": {
+ "version": "1.0.0"
+ }
+ }
+}
diff --git a/packages/quickstart/steps/03/Component.ts b/packages/quickstart/steps/03/Component.ts
new file mode 100644
index 000000000..2312bfe37
--- /dev/null
+++ b/packages/quickstart/steps/03/Component.ts
@@ -0,0 +1,10 @@
+import UIComponent from "sap/ui/core/UIComponent";
+
+/**
+ * @namespace sap.m.tutorial.quickstart.03
+ */
+export default class Component extends UIComponent {
+ static readonly metadata = {
+ manifest: "json"
+ };
+}
diff --git a/packages/quickstart/steps/03/README.md b/packages/quickstart/steps/03/README.md
new file mode 100644
index 000000000..22033159e
--- /dev/null
+++ b/packages/quickstart/steps/03/README.md
@@ -0,0 +1,220 @@
+## Step 3: Go!
+
+Finally, we add a second page to our app showcasing some of the key OpenUI5 concepts.
+
+
+
+***
+
+### Preview
+
+
+
+
+*The second page shows plenty of UI controls and concepts to explore*
+
+You can access the live preview by clicking on this link: [π Live Preview of Step 3](https://sap-samples.github.io/ui5-typescript-walkthrough/quickstart/build/03/index.html).
+
+***
+
+### Coding
+
+
+
+You can download the solution for this step here: [π₯ Download step 3](https://sap-samples.github.io/ui5-typescript-walkthrough/quickstart-step-03.zip).
+
+
+
+
+
+You can download the solution for this step here: [π₯ Download step 3](https://sap-samples.github.io/ui5-typescript-walkthrough/quickstart-step-03-js.zip).
+
+
+***
+
+
+### webapp/index.html
+
+Let's spice up our app by adding some more UI controls. We add two more libraries in the bootstrap tag: `sap.ui.layout` and `sap.tnt`.
+
+```html
+
+
+
+
+ Quickstart Tutorial
+
+
+
+
+```
+
+> π‘ **Tip:**
+> To browse all available controls and libraries, see the [Samples](https://sdk.openui5.org/#/controls).
+
+### webapp/App.view.xml
+
+We also define the two new libraries in the `View` tag and give them a meaningful prefix. To the `App` control, we will assign an ID so that the controller can easily identify it The button now receives an icon and triggers our navigation to page two. Therefore, we change the text to "Go!".
+
+Copy the second `Page` control with all its content into the view. It is defined with the `intro` ID and a new title. It contains several new UI controls like a `BlockLayout`, an `Icon`, and a `Panel`.
+
+We use essential OpenUI5 concepts like navigation, data binding, and user interaction to define a nice playground on the second page of our app.
+
+Don't worry too much about the details, we will explain them in the next tutorials.
+
+```xml
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+
+### webapp/App.controller.js
+
+The `onPress` function now also triggers the navigation to the `intro` page. We fetch the `app` control by its ID and instruct it to navigate by calling the `to` method.
+
+The `onInit` method is a lifecycle hook that is called automatically when the controller is initialized. It defines a simple JSON model with some texts located at the `features` key.
+
+We display these texts on the second page using data binding. The `InfoLabel` tag from our view is a template that is repeated as many times as we have entries in our model.
+
+Finally, we make the Panel in the lower part of the view interactive by attaching an `onChange` event to the switch defined there. OpenUI5 comes with a large set of feature-rich controls that you can combine as you need.
+
+```ts
+import Controller from "sap/ui/core/mvc/Controller";
+import MessageToast from "sap/m/MessageToast";
+import JSONModel from "sap/ui/model/json/JSONModel";
+import App from "sap/m/App";
+import HorizontalLayout from "sap/ui/layout/HorizontalLayout";
+import { Switch$ChangeEvent } from "sap/m/Switch";
+
+export default class AppController extends Controller {
+ onPress(): void {
+ MessageToast.show("Hello UI5!");
+ (this.byId("app") as App).to(this.byId("intro") as App);
+ }
+
+ onInit(): void {
+ this.getView()!.setModel(new JSONModel({
+ features: [
+ "Enterprise-Ready Web Toolkit",
+ "Powerful Development Concepts",
+ "Feature-Rich UI Controls",
+ "Consistent User Experience",
+ "Free and Open Source",
+ "Responsive Across Browsers and Devices"
+ ]
+ }));
+ }
+
+ onChange(oEvent: Switch$ChangeEvent): void {
+ const bState = oEvent.getParameter("state");
+ (this.byId("ready") as HorizontalLayout).setVisible(bState);
+ }
+}
+
+```
+```js
+sap.ui.define([
+ "sap/ui/core/mvc/Controller",
+ "sap/m/MessageToast",
+ "sap/ui/model/json/JSONModel"
+], (Controller, MessageToast, JSONModel) => {
+ "use strict";
+
+ return Controller.extend("ui5.quickstart.App", {
+ onPress() {
+ MessageToast.show("Hello UI5!");
+ this.byId("app").to(this.byId("intro"));
+ },
+
+ onInit() {
+ this.getView().setModel(new JSONModel({
+ features: [
+ "Enterprise-Ready Web Toolkit",
+ "Powerful Development Concepts",
+ "Feature-Rich UI Controls",
+ "Consistent User Experience",
+ "Free and Open Source",
+ "Responsive Across Browsers and Devices"
+ ]
+ })
+ );
+ },
+
+ onChange(oEvent) {
+ const bState = oEvent.getParameter("state");
+ this.byId("ready").setVisible(bState);
+ }
+ });
+
+});
+```
+
+You now have a little playground in your app that you can modify and extend as you wish. We intentionally did not go into all the details. If you want to know more, just continue with the Walkthrough tutorial.
+
+Have fun with OpenUI5!
+
+***
+
+**Related Information**
+
+[Working with Controls](https://sdk.openui5.org/#/topic/91f0a22d6f4d1014b6dd926db0e91070 "Controls are used to define the appearance and behavior of screen areas.")
+
+[Data Binding](https://sdk.openui5.org/#/topic/68b9644a253741e8a4b9e4279a35c247 "You use data binding to bind UI elements to data sources to keep the data in sync and allow data editing on the UI.")
+
+[Routing and Navigation](https://sdk.openui5.org/#/topic/3d18f20bd2294228acb6910d8e8a5fb5 "OpenUI5 offers hash-based navigation, which allows you to build single-page apps where the navigation is done by changing the hash. In this way the browser does not have to reload the page; instead there is a callback to which the app and especially the affected view can react. A hash string is parsed and matched against patterns which will then inform the handlers.")
diff --git a/packages/quickstart/steps/03/package.json b/packages/quickstart/steps/03/package.json
new file mode 100644
index 000000000..a4a72837e
--- /dev/null
+++ b/packages/quickstart/steps/03/package.json
@@ -0,0 +1,18 @@
+{
+ "name": "ui5.quickstart.step03",
+ "private": true,
+ "version": "1.0.0",
+ "author": "SAP SE",
+ "description": "UI5 Demo App - Quickstart Tutorial",
+ "scripts": {
+ "start": "ui5 serve -o index.html"
+ },
+ "devDependencies": {
+ "@types/openui5": "^1.145.0",
+ "@ui5/cli": "^4",
+ "typescript": "^5.9.3",
+ "ui5-middleware-livereload": "^3.3.0",
+ "ui5-middleware-serveframework": "^3.8.0",
+ "ui5-tooling-transpile": "^3.11.0"
+ }
+}
diff --git a/packages/quickstart/steps/03/tsconfig.json b/packages/quickstart/steps/03/tsconfig.json
new file mode 100644
index 000000000..edd641848
--- /dev/null
+++ b/packages/quickstart/steps/03/tsconfig.json
@@ -0,0 +1,17 @@
+{
+ "compilerOptions": {
+ "target": "es2023",
+ "module": "es2022",
+ "moduleResolution": "node",
+ "skipLibCheck": true,
+ "allowJs": true,
+ "strict": true,
+ "strictPropertyInitialization": false,
+ "rootDir": "webapp",
+ "baseUrl": "./",
+ "paths": {
+ "ui5/quickstart/*": ["webapp/*"]
+ }
+ },
+ "include": ["webapp/**/*"]
+}
diff --git a/packages/quickstart/steps/03/ui5.yaml b/packages/quickstart/steps/03/ui5.yaml
new file mode 100644
index 000000000..8c94b8480
--- /dev/null
+++ b/packages/quickstart/steps/03/ui5.yaml
@@ -0,0 +1,25 @@
+specVersion: "4.0"
+metadata:
+ name: quickstart-tutorial
+type: application
+framework:
+ name: OpenUI5
+ version: "1.145.1"
+ libraries:
+ - name: sap.m
+ - name: sap.tnt
+ - name: sap.ui.layout
+ - name: sap.ui.core
+ - name: themelib_sap_horizon
+builder:
+ customTasks:
+ - name: ui5-tooling-transpile-task
+ afterTask: replaceVersion
+server:
+ customMiddleware:
+ - name: ui5-tooling-transpile-middleware
+ afterMiddleware: compression
+ - name: ui5-middleware-serveframework
+ afterMiddleware: compression
+ - name: ui5-middleware-livereload
+ afterMiddleware: compression
diff --git a/packages/quickstart/steps/03/webapp/App.controller.ts b/packages/quickstart/steps/03/webapp/App.controller.ts
new file mode 100644
index 000000000..0cc3cd46d
--- /dev/null
+++ b/packages/quickstart/steps/03/webapp/App.controller.ts
@@ -0,0 +1,34 @@
+import Controller from "sap/ui/core/mvc/Controller";
+import MessageToast from "sap/m/MessageToast";
+import JSONModel from "sap/ui/model/json/JSONModel";
+import App from "sap/m/App";
+import HorizontalLayout from "sap/ui/layout/HorizontalLayout";
+import { Switch$ChangeEvent } from "sap/m/Switch";
+
+/**
+ * @namespace ui5.quickstart
+ */
+export default class AppController extends Controller {
+ onPress(): void {
+ MessageToast.show("Hello UI5!");
+ (this.byId("app") as App).to(this.byId("intro") as App);
+ }
+
+ onInit(): void {
+ this.getView()!.setModel(new JSONModel({
+ features: [
+ "Enterprise-Ready Web Toolkit",
+ "Powerful Development Concepts",
+ "Feature-Rich UI Controls",
+ "Consistent User Experience",
+ "Free and Open Source",
+ "Responsive Across Browsers and Devices"
+ ]
+ }));
+ }
+
+ onChange(oEvent: Switch$ChangeEvent): void {
+ const bState = oEvent.getParameter("state");
+ (this.byId("ready") as HorizontalLayout).setVisible(bState);
+ }
+}
diff --git a/packages/quickstart/steps/03/webapp/App.view.xml b/packages/quickstart/steps/03/webapp/App.view.xml
new file mode 100644
index 000000000..fba9707f4
--- /dev/null
+++ b/packages/quickstart/steps/03/webapp/App.view.xml
@@ -0,0 +1,48 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/packages/quickstart/steps/03/webapp/index.html b/packages/quickstart/steps/03/webapp/index.html
new file mode 100644
index 000000000..930dc632d
--- /dev/null
+++ b/packages/quickstart/steps/03/webapp/index.html
@@ -0,0 +1,18 @@
+
+
+
+
+ Quickstart Tutorial
+
+
+
+
\ No newline at end of file
diff --git a/packages/quickstart/steps/03/webapp/index.ts b/packages/quickstart/steps/03/webapp/index.ts
new file mode 100644
index 000000000..2c58de3bb
--- /dev/null
+++ b/packages/quickstart/steps/03/webapp/index.ts
@@ -0,0 +1,5 @@
+import XMLView from "sap/ui/core/mvc/XMLView";
+
+XMLView.create({
+ viewName: "ui5.quickstart.App"
+}).then((oView) => oView.placeAt("content"));
diff --git a/packages/quickstart/steps/03/webapp/manifest.json b/packages/quickstart/steps/03/webapp/manifest.json
new file mode 100644
index 000000000..bc55cb8e8
--- /dev/null
+++ b/packages/quickstart/steps/03/webapp/manifest.json
@@ -0,0 +1,11 @@
+{
+ "_version": "1.60.0",
+ "sap.app": {
+ "id": "ui5.quickstart",
+ "type": "application",
+ "title": "OpenUI5 Quickstart",
+ "applicationVersion": {
+ "version": "1.0.0"
+ }
+ }
+}
diff --git a/packages/walkthrough/README.md b/packages/walkthrough/README.md
new file mode 100644
index 000000000..b7fab2158
--- /dev/null
+++ b/packages/walkthrough/README.md
@@ -0,0 +1,64 @@
+# OpenUI5 Walkthrough
+
+In this tutorial we'll introduce you to all major development paradigms of OpenUI5. This section is relevant for TypeScript onlyWe'll also demonstrate the use of TypeScript with OpenUI5 and highlight the specific characteristics of this approach.
+
+## Description
+
+We first introduce you to the basic development paradigms like *Model-View-Controller* and establish a best-practice structure of our application. We'll do this along the classic example of βHello Worldβ and start a new app from scratch. Next, we'll introduce the fundamental data binding concepts of OpenUI5 and extend our app to show a list of invoices. We'll continue to add more functionality by adding navigation, extending controls, and making our app responsive. We'll also have look at the testing features and the built-in support tools of OpenUI5.
+
+### Preview
+
+
+
+> π‘ **Tip:**
+> You don't have to do all tutorial steps sequentially, you can also jump directly to any step you want. Just download the code from the previous step and make sure that the application runs as intended.
+>
+> You can view the samples for all steps here in this repository.
+>
+
+### Steps
+
+The tutorial consists of the following steps. To start, just open the first link - you`ll be guided from there.
+
+- **[Step 1: Hello World!](steps/01/README.md "As you know OpenUI5 is all about HTML5. Letβs get started with building a first "Hello World" with only HTML.")** ([π Live Preview](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/build/01/index.html) \| [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-01.zip) [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-01-js.zip) )
+- **[Step 2: Bootstrap](steps/02/README.md "Before we can do something with OpenUI5, we need to load and initialize it. This process of loading and initializing OpenUI5 is called bootstrapping. Once this bootstrapping is finished, we simply display an alert.")** ([π Live Preview](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/build/02/index-cdn.html) \| [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-02.zip) [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-02-js.zip) )
+- **[Step 3: Controls](steps/03/README.md "Now it is time to build our first little UI by replacing the "Hello World" text in the HTML body by the OpenUI5 control sap/m/Text. In the beginning, we will use the JavaScript control interface to set up the UI, the control instance is then placed into the HTML body. ")** ([π Live Preview](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/build/03/index-cdn.html) \| [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-03.zip) [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-03-js.zip) )
+- **[Step 4: XML Views](steps/04/README.md "Putting all our UI into the index.ts file will very soon result in a messy setup, and there is quite a bit of work ahead of us. So letβs do a first modularization by putting the sap/m/Text control into a dedicated view.")** ([π Live Preview](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/build/04/index-cdn.html) \| [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-04.zip) [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-04-js.zip) )
+- **[Step 5: Controllers](steps/05/README.md "In this step, we replace the text with a button and show the "Hello World" message when the button is pressed. The handling of the button's press event is implemented in the controller of the view.")** ([π Live Preview](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/build/05/index-cdn.html) \| [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-05.zip) [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-05-js.zip) )
+- **[Step 6: Modules](steps/06/README.md "In OpenUI5, resources are often referred to as modules. In this step, we replace the alert from the last exercise with a proper Message Toast from the sap.m library.")** ([π Live Preview](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/build/06/index-cdn.html) \| [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-06.zip) [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-06-js.zip) )
+- **[Step 7: JSON Model](steps/07/README.md "Now that we have set up the view and controller, itβs about time to think about the M in MVC.")** ([π Live Preview](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/build/07/index-cdn.html) \| [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-07.zip) [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-07-js.zip) )
+- **[Step 8: Translatable Texts](steps/08/README.md "In this step we move the texts of our UI to a separate resource file.")** ([π Live Preview](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/build/08/index-cdn.html) \| [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-08.zip) [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-08-js.zip) )
+- **[Step 9: Component Configuration](steps/09/README.md "After we have introduced all three parts of the Model-View-Controller /(MVC/) concept, we now come to another important structural aspect of OpenUI5. ")** ([π Live Preview](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/build/09/index-cdn.html) \| [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-09.zip) [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-09-js.zip))
+- **[Step 10: Descriptor for Applications](steps/10/README.md "All application-specific configuration settings will now further be put in a separate descriptor file called manifest.json. This clearly separates the application coding from the configuration settings and makes our app even more flexible. For example, all SAP Fiori applications are realized as components and come with a descriptor file in order to be hosted in the SAP Fiori launchpad.")** ([π Live Preview](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/build/10/index-cdn.html) \| [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-10.zip) [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-10-js.zip) )
+- **[Step 11: Pages and Panels](steps/11/README.md "After all the work on the app structure itβs time to improve the look of our app. We will use two controls from the sap.m library to add a bit more "bling" to our UI. You will also learn about control aggregations in this step.")** ([π Live Preview](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/build/11/index-cdn.html) \| [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-11.zip) [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-11-js.zip) )
+- **[Step 12: Shell Control as Container](steps/12/README.md "Now we use a shell control as container for our app and use it as our new root element. The shell takes care of visual adaptation of the application to the deviceβs screen size by introducing a so-called letterbox on desktop screens.")** ([π Live Preview](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/build/12/index-cdn.html) \| [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-12.zip) [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-12-js.zip) )
+- **[Step 13: Margins and Paddings](steps/13/README.md "Our app content is still glued to the corners of the letterbox. To fine-tune our layout, we can add margins and paddings to the controls that we added in the previous step. ")** ([π Live Preview](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/build/13/index-cdn.html) \| [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-13.zip) [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-13-js.zip) )
+- **[Step 14: Custom CSS and Theme Colors](steps/14/README.md "Sometimes we need to define some more fine-granular layouts and this is when we can use the flexibility of CSS by adding custom style classes to controls and style them as we like. ")** ([π Live Preview](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/build/14/index-cdn.html) \| [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-14.zip) [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-14-js.zip))
+- **[Step 15: Nested Views](steps/15/README.md "Our panel content is getting more and more complex and now it is time to move the panel content to a separate view. With that approach, the application structure is much easier to understand, and the individual parts of the app can be reused.")** ([π Live Preview](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/build/15/index-cdn.html) \| [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-15.zip) [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-15-js.zip))
+- **[Step 16: Dialogs and Fragments](steps/16/README.md "In this step, we will take a closer look at another element which can be used to assemble views: the fragment. ")** ([π Live Preview](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/build/16/index-cdn.html) \| [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-16.zip) [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-16-js.zip))
+- **[Step 17: Fragment Callbacks](steps/17/README.md "Now that we have integrated the dialog, it's time to add some user interaction. The user will definitely want to close the dialog again at some point, so we add a button to close the dialog and assign an event handler.")** ([π Live Preview](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/build/17/index-cdn.html) \| [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-17.zip) [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-17-js.zip))
+- **[Step 18: Icons](steps/18/README.md "Our dialog is still pretty much empty. Since OpenUI5 is shipped with a large icon font that contains more than 500 icons, we will add an icon to greet our users when the dialog is opened.")** ([π Live Preview](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/build/18/index-cdn.html) \| [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-18.zip) [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-18-js.zip))
+- **[Step 19: Aggregation Binding](steps/19/README.md "Now that we have established a good structure for our app, it's time to add some more functionality. We start exploring more features of data binding by adding some invoice data in JSON format that we display in a list below the panel.")** ([π Live Preview](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/build/19/index-cdn.html) \| [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-19.zip) [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-19-js.zip))
+- **[Step 20: Data Types](steps/20/README.md "The list of invoices is already looking nice, but what is an invoice without a price assigned? Typically prices are stored in a technical format and with a /'./' delimiter in the data model. For example, our invoice for pineapples has the calculated price 87.2 without a currency. We are going to use the OpenUI5 data types to format the price properly, with a locale-dependent decimal separator and two digits after the separator.")** ([π Live Preview](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/build/20/index-cdn.html) \| [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-20.zip) [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-20-js.zip) )
+- **[Step 21: Expression Binding](steps/21/README.md "Sometimes the predefined types of OpenUI5 are not flexible enough and you want to do a simple calculation or formatting in the view - that is where expressions are really helpful. We use them to format our price according to the current number in the data model.")** ([π Live Preview](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/build/21/index-cdn.html) \| [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-21.zip) [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-21-js.zip))
+- **[Step 22: Custom Formatters](steps/22/README.md "If we want to do a more complex logic for formatting properties of our data model, we can also write a custom formatting function. We will now add a localized status with a custom formatter, because the status in our data model is in a rather technical format.")** ([π Live Preview](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/build/22/index-cdn.html) \| [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-22.zip) [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-22-js.zip))
+- **[Step 23: Filtering](steps/23/README.md "In this step, we add a search field for our product list and define a filter that represents the search term. When searching, the list is automatically updated to show only the items that match the search term.")** ([π Live Preview](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/build/23/index-cdn.html) \| [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-23.zip) [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-23-js.zip))
+- **[Step 24: Sorting and Grouping](steps/24/README.md "To make our list of invoices even more user-friendly, we sort it alphabetically instead of just showing the order from the data model. Additionally, we introduce groups and add the company that ships the products so that the data is easier to consume.")** ([π Live Preview](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/build/24/index-cdn.html) \| [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-24.zip) [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-24-js.zip))
+- **[Step 25: Remote OData Service](steps/25/README.md "So far we have worked with local JSON data, but now we will access a real OData service to visualize remote data.")** (π Live Preview *unfeasible* \| [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-25.zip) [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-25-js.zip))
+- **[Step 26: Mock Server Configuration](steps/26/README.md "We just ran our app against a real service, but for developing and testing our app we do not want to rely on the availability of the βrealβ service or put additional load on the system where the data service is located.")** ([π Live Preview](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/build/26/test/mockServer-cdn.html) \| [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-26.zip) [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-26-js.zip))
+- **[Step 27: Unit Test with QUnit](steps/27/README.md "Now that we have a test folder in the app, we can start to increase our test coverage. ")** ([π Live Preview](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/build/27/test/Test.cdn.qunit.html?testsuite=test-resources/ui5/walkthrough/testsuite.cdn.qunit&test=unit/unitTests) \| [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-27.zip) [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-27-js.zip))
+- **[Step 28: Integration Test with OPA](steps/28/README.md "If we want to test interaction patterns or more visual features of our app, we can also write an integration test. ")** ([π Live Preview](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/build/28/test/Test.cdn.qunit.html?testsuite=test-resources/ui5/walkthrough/testsuite.cdn.qunit&test=integration/opaTests) \| [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-28.zip) [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-28-js.zip))
+- **[Step 29: Debugging Tools](steps/29/README.md "Even though we have added a basic test coverage in the previous steps, it seems like we accidentally broke our app, because it does not display prices to our invoices anymore. We need to debug the issue and fix it before someone finds out.")** (*code remains unchanged from the previous step*)
+- **[Step 30: Routing and Navigation](steps/30/README.md "So far, we have put all app content on one single page. As we add more and more features, we want to split the content and put it on separate pages.")** ([π Live Preview](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/build/30/test/mockServer-cdn.html) \| [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-30.zip) [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-30-js.zip))
+- **[Step 31: Routing with Parameters](steps/31/README.md "We can now navigate between the overview and the detail page, but the actual item that we selected in the overview is not displayed on the detail page yet. A typical use case for our app is to show additional information for the selected item on the detail page. ")** ([π Live Preview](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/build/31/test/mockServer-cdn.html) \| [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-31.zip) [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-31-js.zip))
+- **[Step 32: Routing Back and History](steps/32/README.md "Now we can navigate to our detail page and display an invoice, but we cannot go back to the overview page yet. We'll add a back button to the detail page and implement a function that shows our overview page again.")** ([π Live Preview](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/build/32/test/mockServer-cdn.html) \| [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-32.zip) [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-32-js.zip))
+- **[Step 33: Custom Controls](steps/33/README.md "In this step, we are going to extend the functionality of OpenUI5 with a custom control. We want to rate the product shown on the detail page, so we create a composition of multiple standard controls using the OpenUI5 extension mechanism and add some glue code to make them work nicely together. This way, we can reuse the control across the app and keep all related functionality in one module.")** ([π Live Preview](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/build/33/test/mockServer-cdn.html) \| [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-33.zip) [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-33-js.zip))
+- **[Step 34: Responsiveness](steps/34/README.md "In this step, we improve the responsiveness of our app. OpenUI5 applications can be run on phone, tablet, and desktop devices and we can configure the application to make best use of the screen estate for each scenario. Fortunately, OpenUI5 controls like the sap.m.Table already deliver a lot of features that we can use.")** ([π Live Preview](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/build/34/test/mockServer-cdn.html) \| [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-34.zip) [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-34-js.zip))
+- **[Step 35: Device Adaptation](steps/35/README.md "We now configure the visibility and properties of controls based on the device that we run the application on. By making use of the sap.ui.Device API and defining a device model we will make the app look great on many devices.")** ([π Live Preview](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/build/35/test/mockServer-cdn.html) \| [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-35.zip) [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-35-js.zip))
+- **[Step 36: Content Density](steps/36/README.md "In this step of our Walkthrough tutorial, we adjust the content density based on the userβs device. OpenUI5 contains different content densities allowing you to display larger controls for touch-enabled devices and a smaller, more compact design for devices that are operated by mouse. In our app, we will detect the device and adjust the density accordingly.")** ([π Live Preview](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/build/36/test/mockServer-cdn.html) \| [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-36.zip) [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-36-js.zip))
+- **[Step 37: Accessibility](steps/37/README.md "In this step we're going to improve the accessibility of our app.")** ([π Live Preview](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/build/37/test/mockServer-cdn.html) \| [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-37.zip) [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-37-js.zip))
+- **[Step 38: Build Your Application](steps/38/README.md "In this step we're going to build our application and consume the speed of a built OpenUI5 application.")** ( [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-38.zip) [π₯ Download Solution](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-38-js.zip))
+
+## License
+
+Copyright (c) 2025 SAP SE or an SAP affiliate company. All rights reserved. This project is licensed under the Apache Software License, version 2.0 except as noted otherwise in the [LICENSE](../../LICENSE) file.
diff --git a/steps/01/README.md b/packages/walkthrough/steps/01/README.md
similarity index 98%
rename from steps/01/README.md
rename to packages/walkthrough/steps/01/README.md
index 221999b35..c247df94e 100644
--- a/steps/01/README.md
+++ b/packages/walkthrough/steps/01/README.md
@@ -13,7 +13,7 @@ As you know, OpenUI5 is all about HTML5. Let's get started with building a first
*The browser shows the text "Hello World"*
-You can access the live preview by clicking on this link: [π Live Preview of Step 1](https://sap-samples.github.io/ui5-typescript-walkthrough/build/01/index.html).
+You can access the live preview by clicking on this link: [π Live Preview of Step 1](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/build/01/index.html).
***
@@ -21,13 +21,13 @@ You can access the live preview by clicking on this link: [π Live Preview of
-You can download the solution for this step here: [π₯ Download step 1](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-01.zip).
+You can download the solution for this step here: [π₯ Download step 1](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-01.zip).
-You can download the solution for this step here: [π₯ Download step 1](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-01-js.zip).
+You can download the solution for this step here: [π₯ Download step 1](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-01-js.zip).
***
diff --git a/steps/01/assets/loio1dd456361379431aab7e5bcdaaeff00f_LowRes.png b/packages/walkthrough/steps/01/assets/loio1dd456361379431aab7e5bcdaaeff00f_LowRes.png
similarity index 100%
rename from steps/01/assets/loio1dd456361379431aab7e5bcdaaeff00f_LowRes.png
rename to packages/walkthrough/steps/01/assets/loio1dd456361379431aab7e5bcdaaeff00f_LowRes.png
diff --git a/steps/01/package.json b/packages/walkthrough/steps/01/package.json
similarity index 100%
rename from steps/01/package.json
rename to packages/walkthrough/steps/01/package.json
diff --git a/steps/01/ui5.yaml b/packages/walkthrough/steps/01/ui5.yaml
similarity index 100%
rename from steps/01/ui5.yaml
rename to packages/walkthrough/steps/01/ui5.yaml
diff --git a/steps/01/webapp/index.html b/packages/walkthrough/steps/01/webapp/index.html
similarity index 100%
rename from steps/01/webapp/index.html
rename to packages/walkthrough/steps/01/webapp/index.html
diff --git a/steps/01/webapp/manifest.json b/packages/walkthrough/steps/01/webapp/manifest.json
similarity index 100%
rename from steps/01/webapp/manifest.json
rename to packages/walkthrough/steps/01/webapp/manifest.json
diff --git a/steps/02/README.md b/packages/walkthrough/steps/02/README.md
similarity index 98%
rename from steps/02/README.md
rename to packages/walkthrough/steps/02/README.md
index 798601b60..80375fb76 100644
--- a/steps/02/README.md
+++ b/packages/walkthrough/steps/02/README.md
@@ -13,20 +13,20 @@ Before we can do something with OpenUI5, we need to load and initialize it. This
*An alert "UI5 is ready" is displayed*
-You can access the live preview by clicking on this link: [π Live Preview of Step 2](https://sap-samples.github.io/ui5-typescript-walkthrough/build/02/index-cdn.html).
+You can access the live preview by clicking on this link: [π Live Preview of Step 2](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/build/02/index-cdn.html).
***
### Coding
-You can download the solution for this step here: [π₯ Download step 2](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-02.zip).
+You can download the solution for this step here: [π₯ Download step 2](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-02.zip).
-You can download the solution for this step here: [π₯ Download step 2](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-02-js.zip).
+You can download the solution for this step here: [π₯ Download step 2](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-02-js.zip).
***
@@ -227,7 +227,7 @@ Next, we have to configure the tooling extension we installed from npm to our U
```yaml
framework:
name: OpenUI5
- version: "1.136.7"
+ version: "1.145.1"
libraries:
- name: sap.ui.core
- name: themelib_sap_horizon
@@ -253,7 +253,7 @@ Now you can benefit from live reload on changes, built framework resources at de
```yaml
framework:
name: OpenUI5
- version: "1.136.7"
+ version: "1.145.1"
libraries:
- name: sap.ui.core
- name: themelib_sap_horizon
diff --git a/steps/02/assets/loio0f6b6b9dc46a474da9287c382c8d3456_LowRes.png b/packages/walkthrough/steps/02/assets/loio0f6b6b9dc46a474da9287c382c8d3456_LowRes.png
similarity index 100%
rename from steps/02/assets/loio0f6b6b9dc46a474da9287c382c8d3456_LowRes.png
rename to packages/walkthrough/steps/02/assets/loio0f6b6b9dc46a474da9287c382c8d3456_LowRes.png
diff --git a/steps/02/package.json b/packages/walkthrough/steps/02/package.json
similarity index 100%
rename from steps/02/package.json
rename to packages/walkthrough/steps/02/package.json
diff --git a/steps/02/tsconfig.json b/packages/walkthrough/steps/02/tsconfig.json
similarity index 100%
rename from steps/02/tsconfig.json
rename to packages/walkthrough/steps/02/tsconfig.json
diff --git a/steps/02/ui5.yaml b/packages/walkthrough/steps/02/ui5.yaml
similarity index 96%
rename from steps/02/ui5.yaml
rename to packages/walkthrough/steps/02/ui5.yaml
index 561b8d3e1..05c7ad444 100644
--- a/steps/02/ui5.yaml
+++ b/packages/walkthrough/steps/02/ui5.yaml
@@ -4,7 +4,7 @@ metadata:
type: application
framework:
name: OpenUI5
- version: "1.136.7"
+ version: "1.145.1"
libraries:
- name: sap.ui.core
- name: themelib_sap_horizon
diff --git a/steps/02/webapp/index-cdn.html b/packages/walkthrough/steps/02/webapp/index-cdn.html
similarity index 100%
rename from steps/02/webapp/index-cdn.html
rename to packages/walkthrough/steps/02/webapp/index-cdn.html
diff --git a/steps/02/webapp/index.html b/packages/walkthrough/steps/02/webapp/index.html
similarity index 100%
rename from steps/02/webapp/index.html
rename to packages/walkthrough/steps/02/webapp/index.html
diff --git a/steps/02/webapp/index.ts b/packages/walkthrough/steps/02/webapp/index.ts
similarity index 100%
rename from steps/02/webapp/index.ts
rename to packages/walkthrough/steps/02/webapp/index.ts
diff --git a/steps/02/webapp/manifest.json b/packages/walkthrough/steps/02/webapp/manifest.json
similarity index 100%
rename from steps/02/webapp/manifest.json
rename to packages/walkthrough/steps/02/webapp/manifest.json
diff --git a/steps/03/README.md b/packages/walkthrough/steps/03/README.md
similarity index 97%
rename from steps/03/README.md
rename to packages/walkthrough/steps/03/README.md
index 48f98d773..53f4828b6 100644
--- a/steps/03/README.md
+++ b/packages/walkthrough/steps/03/README.md
@@ -13,19 +13,19 @@ Now it is time to build our first little UI by replacing the βHello Worldβ t
*The "Hello World" text is now displayed by an OpenUI5 control*
-You can access the live preview by clicking on this link: [π Live Preview of Step 3](https://sap-samples.github.io/ui5-typescript-walkthrough/build/03/index-cdn.html).
+You can access the live preview by clicking on this link: [π Live Preview of Step 3](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/build/03/index-cdn.html).
***
### Coding
-You can download the solution for this step here: [π₯ Download step 3](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-03.zip).
+You can download the solution for this step here: [π₯ Download step 3](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-03.zip).
-You can download the solution for this step here: [π₯ Download step 3](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-03-js.zip).
+You can download the solution for this step here: [π₯ Download step 3](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-03-js.zip).
***
@@ -172,4 +172,4 @@ ui5 add sap.m
[Best Practices for Loading Modules](https://sdk.openui5.org/topic/00737d6c1b864dc3ab72ef56611491c4 "This section provides best practices for OpenUI5 module loading patterns.")
-
\ No newline at end of file
+
diff --git a/steps/03/assets/loio30a42d381b9e4388bf7fdc0b941e5381_LowRes.png b/packages/walkthrough/steps/03/assets/loio30a42d381b9e4388bf7fdc0b941e5381_LowRes.png
similarity index 100%
rename from steps/03/assets/loio30a42d381b9e4388bf7fdc0b941e5381_LowRes.png
rename to packages/walkthrough/steps/03/assets/loio30a42d381b9e4388bf7fdc0b941e5381_LowRes.png
diff --git a/steps/03/package.json b/packages/walkthrough/steps/03/package.json
similarity index 92%
rename from steps/03/package.json
rename to packages/walkthrough/steps/03/package.json
index 12b631fe8..97dbbb183 100644
--- a/steps/03/package.json
+++ b/packages/walkthrough/steps/03/package.json
@@ -8,7 +8,7 @@
"start": "ui5 serve -o index.html"
},
"devDependencies": {
- "@types/openui5": "^1.142.0",
+ "@types/openui5": "^1.145.0",
"@ui5/cli": "^4.0.51",
"typescript": "^5.9.3",
"ui5-middleware-livereload": "^3.3.0",
diff --git a/steps/03/tsconfig.json b/packages/walkthrough/steps/03/tsconfig.json
similarity index 100%
rename from steps/03/tsconfig.json
rename to packages/walkthrough/steps/03/tsconfig.json
diff --git a/steps/06/ui5.yaml b/packages/walkthrough/steps/03/ui5.yaml
similarity index 96%
rename from steps/06/ui5.yaml
rename to packages/walkthrough/steps/03/ui5.yaml
index 06cb1107d..dfa185033 100644
--- a/steps/06/ui5.yaml
+++ b/packages/walkthrough/steps/03/ui5.yaml
@@ -4,7 +4,7 @@ metadata:
type: application
framework:
name: OpenUI5
- version: "1.136.7"
+ version: "1.145.1"
libraries:
- name: sap.m
- name: sap.ui.core
diff --git a/steps/03/webapp/index-cdn.html b/packages/walkthrough/steps/03/webapp/index-cdn.html
similarity index 100%
rename from steps/03/webapp/index-cdn.html
rename to packages/walkthrough/steps/03/webapp/index-cdn.html
diff --git a/steps/03/webapp/index.html b/packages/walkthrough/steps/03/webapp/index.html
similarity index 100%
rename from steps/03/webapp/index.html
rename to packages/walkthrough/steps/03/webapp/index.html
diff --git a/steps/03/webapp/index.ts b/packages/walkthrough/steps/03/webapp/index.ts
similarity index 100%
rename from steps/03/webapp/index.ts
rename to packages/walkthrough/steps/03/webapp/index.ts
diff --git a/steps/03/webapp/manifest.json b/packages/walkthrough/steps/03/webapp/manifest.json
similarity index 100%
rename from steps/03/webapp/manifest.json
rename to packages/walkthrough/steps/03/webapp/manifest.json
diff --git a/steps/04/README.md b/packages/walkthrough/steps/04/README.md
similarity index 97%
rename from steps/04/README.md
rename to packages/walkthrough/steps/04/README.md
index 2bf873f63..6596ee055 100644
--- a/steps/04/README.md
+++ b/packages/walkthrough/steps/04/README.md
@@ -14,7 +14,7 @@ When working with OpenUI5, we recommend the use of XML views, as this produces t
*The "Hello World" text is now displayed by an OpenUI5 control \(No visual changes to last step\)*
-You can access the live preview by clicking on this link: [π Live Preview of Step 4](https://sap-samples.github.io/ui5-typescript-walkthrough/build/04/index-cdn.html).
+You can access the live preview by clicking on this link: [π Live Preview of Step 4](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/build/04/index-cdn.html).
***
@@ -22,13 +22,13 @@ You can access the live preview by clicking on this link: [π Live Preview of
-You can download the solution for this step here: [π₯ Download step 4](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-04.zip).
+You can download the solution for this step here: [π₯ Download step 4](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-04.zip).
-You can download the solution for this step here: [π₯ Download step 4](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-04-js.zip).
+You can download the solution for this step here: [π₯ Download step 4](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-04-js.zip).
***
diff --git a/steps/04/assets/loio05f6775a39d3409ea673f4acc3812142_LowRes.png b/packages/walkthrough/steps/04/assets/loio05f6775a39d3409ea673f4acc3812142_LowRes.png
similarity index 100%
rename from steps/04/assets/loio05f6775a39d3409ea673f4acc3812142_LowRes.png
rename to packages/walkthrough/steps/04/assets/loio05f6775a39d3409ea673f4acc3812142_LowRes.png
diff --git a/steps/04/package.json b/packages/walkthrough/steps/04/package.json
similarity index 92%
rename from steps/04/package.json
rename to packages/walkthrough/steps/04/package.json
index 0250f7ef2..749cf9a99 100644
--- a/steps/04/package.json
+++ b/packages/walkthrough/steps/04/package.json
@@ -8,7 +8,7 @@
"start": "ui5 serve -o index.html"
},
"devDependencies": {
- "@types/openui5": "^1.142.0",
+ "@types/openui5": "^1.145.0",
"@ui5/cli": "^4.0.51",
"typescript": "^5.9.3",
"ui5-middleware-livereload": "^3.3.0",
diff --git a/steps/04/tsconfig.json b/packages/walkthrough/steps/04/tsconfig.json
similarity index 100%
rename from steps/04/tsconfig.json
rename to packages/walkthrough/steps/04/tsconfig.json
diff --git a/steps/03/ui5.yaml b/packages/walkthrough/steps/04/ui5.yaml
similarity index 96%
rename from steps/03/ui5.yaml
rename to packages/walkthrough/steps/04/ui5.yaml
index 06cb1107d..dfa185033 100644
--- a/steps/03/ui5.yaml
+++ b/packages/walkthrough/steps/04/ui5.yaml
@@ -4,7 +4,7 @@ metadata:
type: application
framework:
name: OpenUI5
- version: "1.136.7"
+ version: "1.145.1"
libraries:
- name: sap.m
- name: sap.ui.core
diff --git a/steps/04/webapp/index-cdn.html b/packages/walkthrough/steps/04/webapp/index-cdn.html
similarity index 100%
rename from steps/04/webapp/index-cdn.html
rename to packages/walkthrough/steps/04/webapp/index-cdn.html
diff --git a/steps/04/webapp/index.html b/packages/walkthrough/steps/04/webapp/index.html
similarity index 100%
rename from steps/04/webapp/index.html
rename to packages/walkthrough/steps/04/webapp/index.html
diff --git a/steps/04/webapp/index.ts b/packages/walkthrough/steps/04/webapp/index.ts
similarity index 100%
rename from steps/04/webapp/index.ts
rename to packages/walkthrough/steps/04/webapp/index.ts
diff --git a/steps/04/webapp/manifest.json b/packages/walkthrough/steps/04/webapp/manifest.json
similarity index 100%
rename from steps/04/webapp/manifest.json
rename to packages/walkthrough/steps/04/webapp/manifest.json
diff --git a/steps/04/webapp/view/App.view.xml b/packages/walkthrough/steps/04/webapp/view/App.view.xml
similarity index 100%
rename from steps/04/webapp/view/App.view.xml
rename to packages/walkthrough/steps/04/webapp/view/App.view.xml
diff --git a/steps/05/README.md b/packages/walkthrough/steps/05/README.md
similarity index 97%
rename from steps/05/README.md
rename to packages/walkthrough/steps/05/README.md
index 8f2e1503d..d005c4419 100644
--- a/steps/05/README.md
+++ b/packages/walkthrough/steps/05/README.md
@@ -13,7 +13,7 @@ In this step, we replace the text with a button and show the βHello Worldβ m
*A Say Hello button is added*
-You can access the live preview by clicking on this link: [π Live Preview of Step 5](https://sap-samples.github.io/ui5-typescript-walkthrough/build/05/index-cdn.html).
+You can access the live preview by clicking on this link: [π Live Preview of Step 5](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/build/05/index-cdn.html).
***
@@ -21,13 +21,13 @@ You can access the live preview by clicking on this link: [π Live Preview of
-You can download the solution for this step here: [π₯ Download step 5](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-05.zip).
+You can download the solution for this step here: [π₯ Download step 5](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-05.zip).
-You can download the solution for this step here: [π₯ download step 5](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-05-js.zip).
+You can download the solution for this step here: [π₯ download step 5](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-05-js.zip).
***
diff --git a/steps/05/assets/loiocedfdf89b30643ddbfcab1fe50bfa892_LowRes.png b/packages/walkthrough/steps/05/assets/loiocedfdf89b30643ddbfcab1fe50bfa892_LowRes.png
similarity index 100%
rename from steps/05/assets/loiocedfdf89b30643ddbfcab1fe50bfa892_LowRes.png
rename to packages/walkthrough/steps/05/assets/loiocedfdf89b30643ddbfcab1fe50bfa892_LowRes.png
diff --git a/steps/05/package.json b/packages/walkthrough/steps/05/package.json
similarity index 92%
rename from steps/05/package.json
rename to packages/walkthrough/steps/05/package.json
index 834eebf69..dadef0cc3 100644
--- a/steps/05/package.json
+++ b/packages/walkthrough/steps/05/package.json
@@ -8,7 +8,7 @@
"start": "ui5 serve -o index.html"
},
"devDependencies": {
- "@types/openui5": "^1.142.0",
+ "@types/openui5": "^1.145.0",
"@ui5/cli": "^4.0.51",
"typescript": "^5.9.3",
"ui5-middleware-livereload": "^3.3.0",
diff --git a/steps/05/tsconfig.json b/packages/walkthrough/steps/05/tsconfig.json
similarity index 100%
rename from steps/05/tsconfig.json
rename to packages/walkthrough/steps/05/tsconfig.json
diff --git a/steps/04/ui5.yaml b/packages/walkthrough/steps/05/ui5.yaml
similarity index 96%
rename from steps/04/ui5.yaml
rename to packages/walkthrough/steps/05/ui5.yaml
index 06cb1107d..dfa185033 100644
--- a/steps/04/ui5.yaml
+++ b/packages/walkthrough/steps/05/ui5.yaml
@@ -4,7 +4,7 @@ metadata:
type: application
framework:
name: OpenUI5
- version: "1.136.7"
+ version: "1.145.1"
libraries:
- name: sap.m
- name: sap.ui.core
diff --git a/steps/05/webapp/controller/App.controller.ts b/packages/walkthrough/steps/05/webapp/controller/App.controller.ts
similarity index 100%
rename from steps/05/webapp/controller/App.controller.ts
rename to packages/walkthrough/steps/05/webapp/controller/App.controller.ts
diff --git a/steps/05/webapp/index-cdn.html b/packages/walkthrough/steps/05/webapp/index-cdn.html
similarity index 100%
rename from steps/05/webapp/index-cdn.html
rename to packages/walkthrough/steps/05/webapp/index-cdn.html
diff --git a/steps/05/webapp/index.html b/packages/walkthrough/steps/05/webapp/index.html
similarity index 100%
rename from steps/05/webapp/index.html
rename to packages/walkthrough/steps/05/webapp/index.html
diff --git a/steps/05/webapp/index.ts b/packages/walkthrough/steps/05/webapp/index.ts
similarity index 100%
rename from steps/05/webapp/index.ts
rename to packages/walkthrough/steps/05/webapp/index.ts
diff --git a/steps/05/webapp/manifest.json b/packages/walkthrough/steps/05/webapp/manifest.json
similarity index 100%
rename from steps/05/webapp/manifest.json
rename to packages/walkthrough/steps/05/webapp/manifest.json
diff --git a/steps/05/webapp/view/App.view.xml b/packages/walkthrough/steps/05/webapp/view/App.view.xml
similarity index 100%
rename from steps/05/webapp/view/App.view.xml
rename to packages/walkthrough/steps/05/webapp/view/App.view.xml
diff --git a/steps/06/README.md b/packages/walkthrough/steps/06/README.md
similarity index 94%
rename from steps/06/README.md
rename to packages/walkthrough/steps/06/README.md
index 1ba8344d5..caa0e6c0d 100644
--- a/steps/06/README.md
+++ b/packages/walkthrough/steps/06/README.md
@@ -12,7 +12,7 @@ In OpenUI5, resources are often referred to as modules. In this step, we replace
*A message toast displays the "Hello World" message*
-You can access the live preview by clicking on this link: [π Live Preview of Step 6](https://sap-samples.github.io/ui5-typescript-walkthrough/build/06/index-cdn.html).
+You can access the live preview by clicking on this link: [π Live Preview of Step 6](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/build/06/index-cdn.html).
***
@@ -20,13 +20,13 @@ You can access the live preview by clicking on this link: [π Live Preview of
-You can download the solution for this step here: [π₯ Download step 6](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-06.zip).
+You can download the solution for this step here: [π₯ Download step 6](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-06.zip).
-You can download the solution for this step here: [π₯ Download step 6](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-06-js.zip).
+You can download the solution for this step here: [π₯ Download step 6](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-06-js.zip).
***
diff --git a/steps/06/assets/loio2f629a95211f49afa367b60d233fb390_LowRes.png b/packages/walkthrough/steps/06/assets/loio2f629a95211f49afa367b60d233fb390_LowRes.png
similarity index 100%
rename from steps/06/assets/loio2f629a95211f49afa367b60d233fb390_LowRes.png
rename to packages/walkthrough/steps/06/assets/loio2f629a95211f49afa367b60d233fb390_LowRes.png
diff --git a/steps/06/package.json b/packages/walkthrough/steps/06/package.json
similarity index 92%
rename from steps/06/package.json
rename to packages/walkthrough/steps/06/package.json
index c790d0119..87a231472 100644
--- a/steps/06/package.json
+++ b/packages/walkthrough/steps/06/package.json
@@ -8,7 +8,7 @@
"start": "ui5 serve -o index.html"
},
"devDependencies": {
- "@types/openui5": "^1.142.0",
+ "@types/openui5": "^1.145.0",
"@ui5/cli": "^4.0.51",
"typescript": "^5.9.3",
"ui5-middleware-livereload": "^3.3.0",
diff --git a/steps/06/tsconfig.json b/packages/walkthrough/steps/06/tsconfig.json
similarity index 100%
rename from steps/06/tsconfig.json
rename to packages/walkthrough/steps/06/tsconfig.json
diff --git a/steps/05/ui5.yaml b/packages/walkthrough/steps/06/ui5.yaml
similarity index 96%
rename from steps/05/ui5.yaml
rename to packages/walkthrough/steps/06/ui5.yaml
index 06cb1107d..dfa185033 100644
--- a/steps/05/ui5.yaml
+++ b/packages/walkthrough/steps/06/ui5.yaml
@@ -4,7 +4,7 @@ metadata:
type: application
framework:
name: OpenUI5
- version: "1.136.7"
+ version: "1.145.1"
libraries:
- name: sap.m
- name: sap.ui.core
diff --git a/steps/06/webapp/controller/App.controller.ts b/packages/walkthrough/steps/06/webapp/controller/App.controller.ts
similarity index 100%
rename from steps/06/webapp/controller/App.controller.ts
rename to packages/walkthrough/steps/06/webapp/controller/App.controller.ts
diff --git a/steps/06/webapp/index-cdn.html b/packages/walkthrough/steps/06/webapp/index-cdn.html
similarity index 100%
rename from steps/06/webapp/index-cdn.html
rename to packages/walkthrough/steps/06/webapp/index-cdn.html
diff --git a/steps/06/webapp/index.html b/packages/walkthrough/steps/06/webapp/index.html
similarity index 100%
rename from steps/06/webapp/index.html
rename to packages/walkthrough/steps/06/webapp/index.html
diff --git a/steps/06/webapp/index.ts b/packages/walkthrough/steps/06/webapp/index.ts
similarity index 100%
rename from steps/06/webapp/index.ts
rename to packages/walkthrough/steps/06/webapp/index.ts
diff --git a/steps/06/webapp/manifest.json b/packages/walkthrough/steps/06/webapp/manifest.json
similarity index 100%
rename from steps/06/webapp/manifest.json
rename to packages/walkthrough/steps/06/webapp/manifest.json
diff --git a/steps/06/webapp/view/App.view.xml b/packages/walkthrough/steps/06/webapp/view/App.view.xml
similarity index 100%
rename from steps/06/webapp/view/App.view.xml
rename to packages/walkthrough/steps/06/webapp/view/App.view.xml
diff --git a/steps/07/README.md b/packages/walkthrough/steps/07/README.md
similarity index 98%
rename from steps/07/README.md
rename to packages/walkthrough/steps/07/README.md
index d832f4791..3ca34d574 100644
--- a/steps/07/README.md
+++ b/packages/walkthrough/steps/07/README.md
@@ -14,7 +14,7 @@ We'll create a view model in our controller, add an input field to our app, bind
*An input field and a description displaying the value of the input field*
-You can access the live preview by clicking on this link: [π Live Preview of Step 7](https://sap-samples.github.io/ui5-typescript-walkthrough/build/07/index-cdn.html).
+You can access the live preview by clicking on this link: [π Live Preview of Step 7](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/build/07/index-cdn.html).
***
@@ -22,13 +22,13 @@ You can access the live preview by clicking on this link: [π Live Preview of
-You can download the solution for this step here: [π₯ Download step 7](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-07.zip).
+You can download the solution for this step here: [π₯ Download step 7](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-07.zip).
-You can download the solution for this step here: [π₯ Download step 7](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-07-js.zip).
+You can download the solution for this step here: [π₯ Download step 7](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-07-js.zip).
***
diff --git a/steps/07/assets/loioafc105517a644407bd90662e3d94ea01_LowRes.png b/packages/walkthrough/steps/07/assets/loioafc105517a644407bd90662e3d94ea01_LowRes.png
similarity index 100%
rename from steps/07/assets/loioafc105517a644407bd90662e3d94ea01_LowRes.png
rename to packages/walkthrough/steps/07/assets/loioafc105517a644407bd90662e3d94ea01_LowRes.png
diff --git a/steps/07/package.json b/packages/walkthrough/steps/07/package.json
similarity index 92%
rename from steps/07/package.json
rename to packages/walkthrough/steps/07/package.json
index 6efba05ec..32022e6cb 100644
--- a/steps/07/package.json
+++ b/packages/walkthrough/steps/07/package.json
@@ -8,7 +8,7 @@
"start": "ui5 serve -o index.html"
},
"devDependencies": {
- "@types/openui5": "^1.142.0",
+ "@types/openui5": "^1.145.0",
"@ui5/cli": "^4.0.51",
"typescript": "^5.9.3",
"ui5-middleware-livereload": "^3.3.0",
diff --git a/steps/07/tsconfig.json b/packages/walkthrough/steps/07/tsconfig.json
similarity index 100%
rename from steps/07/tsconfig.json
rename to packages/walkthrough/steps/07/tsconfig.json
diff --git a/packages/walkthrough/steps/07/ui5.yaml b/packages/walkthrough/steps/07/ui5.yaml
new file mode 100644
index 000000000..dfa185033
--- /dev/null
+++ b/packages/walkthrough/steps/07/ui5.yaml
@@ -0,0 +1,23 @@
+specVersion: '3.0'
+metadata:
+ name: "ui5.walkthrough"
+type: application
+framework:
+ name: OpenUI5
+ version: "1.145.1"
+ libraries:
+ - name: sap.m
+ - name: sap.ui.core
+ - name: themelib_sap_horizon
+builder:
+ customTasks:
+ - name: ui5-tooling-transpile-task
+ afterTask: replaceVersion
+server:
+ customMiddleware:
+ - name: ui5-tooling-transpile-middleware
+ afterMiddleware: compression
+ - name: ui5-middleware-serveframework
+ afterMiddleware: compression
+ - name: ui5-middleware-livereload
+ afterMiddleware: compression
diff --git a/steps/07/webapp/controller/App.controller.ts b/packages/walkthrough/steps/07/webapp/controller/App.controller.ts
similarity index 100%
rename from steps/07/webapp/controller/App.controller.ts
rename to packages/walkthrough/steps/07/webapp/controller/App.controller.ts
diff --git a/steps/07/webapp/index-cdn.html b/packages/walkthrough/steps/07/webapp/index-cdn.html
similarity index 100%
rename from steps/07/webapp/index-cdn.html
rename to packages/walkthrough/steps/07/webapp/index-cdn.html
diff --git a/steps/07/webapp/index.html b/packages/walkthrough/steps/07/webapp/index.html
similarity index 100%
rename from steps/07/webapp/index.html
rename to packages/walkthrough/steps/07/webapp/index.html
diff --git a/steps/07/webapp/index.ts b/packages/walkthrough/steps/07/webapp/index.ts
similarity index 100%
rename from steps/07/webapp/index.ts
rename to packages/walkthrough/steps/07/webapp/index.ts
diff --git a/steps/07/webapp/manifest.json b/packages/walkthrough/steps/07/webapp/manifest.json
similarity index 100%
rename from steps/07/webapp/manifest.json
rename to packages/walkthrough/steps/07/webapp/manifest.json
diff --git a/steps/07/webapp/view/App.view.xml b/packages/walkthrough/steps/07/webapp/view/App.view.xml
similarity index 100%
rename from steps/07/webapp/view/App.view.xml
rename to packages/walkthrough/steps/07/webapp/view/App.view.xml
diff --git a/steps/08/README.md b/packages/walkthrough/steps/08/README.md
similarity index 98%
rename from steps/08/README.md
rename to packages/walkthrough/steps/08/README.md
index 99f080d86..c6267b2a1 100644
--- a/steps/08/README.md
+++ b/packages/walkthrough/steps/08/README.md
@@ -14,20 +14,20 @@ This way, they are all in a central place and can be easily translated into othe
*An input field and a description displaying the value of the input field \(No visual changes to last step\)*
-You can access the live preview by clicking on this link: [π Live Preview of Step 8](https://sap-samples.github.io/ui5-typescript-walkthrough/build/08/index-cdn.html).
+You can access the live preview by clicking on this link: [π Live Preview of Step 8](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/build/08/index-cdn.html).
***
### Coding
-You can download the solution for this step here: [π₯ Download step 8](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-08.zip).
+You can download the solution for this step here: [π₯ Download step 8](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-08.zip).
-You can download the solution for this step here: [π₯ Download step 8](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-08-js.zip).
+You can download the solution for this step here: [π₯ Download step 8](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-08-js.zip).
***
diff --git a/steps/08/assets/loio0eb579e2f2a64c5a9894086322c7faa0_LowRes.png b/packages/walkthrough/steps/08/assets/loio0eb579e2f2a64c5a9894086322c7faa0_LowRes.png
similarity index 100%
rename from steps/08/assets/loio0eb579e2f2a64c5a9894086322c7faa0_LowRes.png
rename to packages/walkthrough/steps/08/assets/loio0eb579e2f2a64c5a9894086322c7faa0_LowRes.png
diff --git a/steps/08/package.json b/packages/walkthrough/steps/08/package.json
similarity index 93%
rename from steps/08/package.json
rename to packages/walkthrough/steps/08/package.json
index c2f9b30b4..032757d36 100644
--- a/steps/08/package.json
+++ b/packages/walkthrough/steps/08/package.json
@@ -8,7 +8,7 @@
"start": "ui5 serve -o index.html"
},
"devDependencies": {
- "@types/openui5": "^1.142.0",
+ "@types/openui5": "^1.145.0",
"@ui5/cli": "^4.0.51",
"typescript": "^5.9.3",
"ui5-middleware-livereload": "^3.3.0",
diff --git a/steps/08/tsconfig.json b/packages/walkthrough/steps/08/tsconfig.json
similarity index 100%
rename from steps/08/tsconfig.json
rename to packages/walkthrough/steps/08/tsconfig.json
diff --git a/packages/walkthrough/steps/08/ui5.yaml b/packages/walkthrough/steps/08/ui5.yaml
new file mode 100644
index 000000000..dfa185033
--- /dev/null
+++ b/packages/walkthrough/steps/08/ui5.yaml
@@ -0,0 +1,23 @@
+specVersion: '3.0'
+metadata:
+ name: "ui5.walkthrough"
+type: application
+framework:
+ name: OpenUI5
+ version: "1.145.1"
+ libraries:
+ - name: sap.m
+ - name: sap.ui.core
+ - name: themelib_sap_horizon
+builder:
+ customTasks:
+ - name: ui5-tooling-transpile-task
+ afterTask: replaceVersion
+server:
+ customMiddleware:
+ - name: ui5-tooling-transpile-middleware
+ afterMiddleware: compression
+ - name: ui5-middleware-serveframework
+ afterMiddleware: compression
+ - name: ui5-middleware-livereload
+ afterMiddleware: compression
diff --git a/steps/08/webapp/controller/App.controller.ts b/packages/walkthrough/steps/08/webapp/controller/App.controller.ts
similarity index 100%
rename from steps/08/webapp/controller/App.controller.ts
rename to packages/walkthrough/steps/08/webapp/controller/App.controller.ts
diff --git a/steps/08/webapp/i18n/i18n.properties b/packages/walkthrough/steps/08/webapp/i18n/i18n.properties
similarity index 100%
rename from steps/08/webapp/i18n/i18n.properties
rename to packages/walkthrough/steps/08/webapp/i18n/i18n.properties
diff --git a/steps/08/webapp/index-cdn.html b/packages/walkthrough/steps/08/webapp/index-cdn.html
similarity index 100%
rename from steps/08/webapp/index-cdn.html
rename to packages/walkthrough/steps/08/webapp/index-cdn.html
diff --git a/steps/08/webapp/index.html b/packages/walkthrough/steps/08/webapp/index.html
similarity index 100%
rename from steps/08/webapp/index.html
rename to packages/walkthrough/steps/08/webapp/index.html
diff --git a/steps/08/webapp/index.ts b/packages/walkthrough/steps/08/webapp/index.ts
similarity index 100%
rename from steps/08/webapp/index.ts
rename to packages/walkthrough/steps/08/webapp/index.ts
diff --git a/steps/08/webapp/manifest.json b/packages/walkthrough/steps/08/webapp/manifest.json
similarity index 100%
rename from steps/08/webapp/manifest.json
rename to packages/walkthrough/steps/08/webapp/manifest.json
diff --git a/steps/08/webapp/view/App.view.xml b/packages/walkthrough/steps/08/webapp/view/App.view.xml
similarity index 100%
rename from steps/08/webapp/view/App.view.xml
rename to packages/walkthrough/steps/08/webapp/view/App.view.xml
diff --git a/steps/09/README.md b/packages/walkthrough/steps/09/README.md
similarity index 98%
rename from steps/09/README.md
rename to packages/walkthrough/steps/09/README.md
index c84c0ec85..e428611bf 100644
--- a/steps/09/README.md
+++ b/packages/walkthrough/steps/09/README.md
@@ -17,7 +17,7 @@ By encapsulating our application as a component, we can seamlessly integrate it
*An input field and a description displaying the value of the input field \(No visual changes to last step\)*
-You can access the live preview by clicking on this link: [π Live Preview of Step 9](https://sap-samples.github.io/ui5-typescript-walkthrough/build/09/index-cdn.html).
+You can access the live preview by clicking on this link: [π Live Preview of Step 9](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/build/09/index-cdn.html).
After this step your project structure will look like the figure below. We will create the `Component.?s` file now and modify the related files in the app.
@@ -30,13 +30,13 @@ After this step your project structure will look like the figure below. We will
-You can download the solution for this step here: [π₯ Download step 9](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-09.zip).
+You can download the solution for this step here: [π₯ Download step 9](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-09.zip).
-You can download the solution for this step here: [π₯ Download step 9](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-09-js.zip).
+You can download the solution for this step here: [π₯ Download step 9](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-09-js.zip).
***
diff --git a/steps/09/assets/loio1e237a36972a44ac8522dd1a540ac062_LowRes.png b/packages/walkthrough/steps/09/assets/loio1e237a36972a44ac8522dd1a540ac062_LowRes.png
similarity index 100%
rename from steps/09/assets/loio1e237a36972a44ac8522dd1a540ac062_LowRes.png
rename to packages/walkthrough/steps/09/assets/loio1e237a36972a44ac8522dd1a540ac062_LowRes.png
diff --git a/steps/09/assets/loiocac9bcfa902c44c496d115acd7ee7376_LowRes.png b/packages/walkthrough/steps/09/assets/loiocac9bcfa902c44c496d115acd7ee7376_LowRes.png
similarity index 100%
rename from steps/09/assets/loiocac9bcfa902c44c496d115acd7ee7376_LowRes.png
rename to packages/walkthrough/steps/09/assets/loiocac9bcfa902c44c496d115acd7ee7376_LowRes.png
diff --git a/steps/09/package.json b/packages/walkthrough/steps/09/package.json
similarity index 93%
rename from steps/09/package.json
rename to packages/walkthrough/steps/09/package.json
index 3009d2ba7..64d7e617b 100644
--- a/steps/09/package.json
+++ b/packages/walkthrough/steps/09/package.json
@@ -8,7 +8,7 @@
"start": "ui5 serve -o index.html"
},
"devDependencies": {
- "@types/openui5": "^1.142.0",
+ "@types/openui5": "^1.145.0",
"@ui5/cli": "^4.0.51",
"typescript": "^5.9.3",
"ui5-middleware-livereload": "^3.3.0",
diff --git a/steps/09/tsconfig.json b/packages/walkthrough/steps/09/tsconfig.json
similarity index 100%
rename from steps/09/tsconfig.json
rename to packages/walkthrough/steps/09/tsconfig.json
diff --git a/packages/walkthrough/steps/09/ui5.yaml b/packages/walkthrough/steps/09/ui5.yaml
new file mode 100644
index 000000000..dfa185033
--- /dev/null
+++ b/packages/walkthrough/steps/09/ui5.yaml
@@ -0,0 +1,23 @@
+specVersion: '3.0'
+metadata:
+ name: "ui5.walkthrough"
+type: application
+framework:
+ name: OpenUI5
+ version: "1.145.1"
+ libraries:
+ - name: sap.m
+ - name: sap.ui.core
+ - name: themelib_sap_horizon
+builder:
+ customTasks:
+ - name: ui5-tooling-transpile-task
+ afterTask: replaceVersion
+server:
+ customMiddleware:
+ - name: ui5-tooling-transpile-middleware
+ afterMiddleware: compression
+ - name: ui5-middleware-serveframework
+ afterMiddleware: compression
+ - name: ui5-middleware-livereload
+ afterMiddleware: compression
diff --git a/steps/09/webapp/Component.ts b/packages/walkthrough/steps/09/webapp/Component.ts
similarity index 100%
rename from steps/09/webapp/Component.ts
rename to packages/walkthrough/steps/09/webapp/Component.ts
diff --git a/steps/09/webapp/controller/App.controller.ts b/packages/walkthrough/steps/09/webapp/controller/App.controller.ts
similarity index 100%
rename from steps/09/webapp/controller/App.controller.ts
rename to packages/walkthrough/steps/09/webapp/controller/App.controller.ts
diff --git a/steps/09/webapp/i18n/i18n.properties b/packages/walkthrough/steps/09/webapp/i18n/i18n.properties
similarity index 100%
rename from steps/09/webapp/i18n/i18n.properties
rename to packages/walkthrough/steps/09/webapp/i18n/i18n.properties
diff --git a/steps/09/webapp/index-cdn.html b/packages/walkthrough/steps/09/webapp/index-cdn.html
similarity index 100%
rename from steps/09/webapp/index-cdn.html
rename to packages/walkthrough/steps/09/webapp/index-cdn.html
diff --git a/steps/09/webapp/index.html b/packages/walkthrough/steps/09/webapp/index.html
similarity index 100%
rename from steps/09/webapp/index.html
rename to packages/walkthrough/steps/09/webapp/index.html
diff --git a/steps/09/webapp/index.ts b/packages/walkthrough/steps/09/webapp/index.ts
similarity index 100%
rename from steps/09/webapp/index.ts
rename to packages/walkthrough/steps/09/webapp/index.ts
diff --git a/steps/09/webapp/manifest.json b/packages/walkthrough/steps/09/webapp/manifest.json
similarity index 100%
rename from steps/09/webapp/manifest.json
rename to packages/walkthrough/steps/09/webapp/manifest.json
diff --git a/steps/09/webapp/view/App.view.xml b/packages/walkthrough/steps/09/webapp/view/App.view.xml
similarity index 100%
rename from steps/09/webapp/view/App.view.xml
rename to packages/walkthrough/steps/09/webapp/view/App.view.xml
diff --git a/steps/10/README.md b/packages/walkthrough/steps/10/README.md
similarity index 99%
rename from steps/10/README.md
rename to packages/walkthrough/steps/10/README.md
index 6564733a1..761d8b1ff 100644
--- a/steps/10/README.md
+++ b/packages/walkthrough/steps/10/README.md
@@ -13,7 +13,7 @@ Instead of relying on a local HTML file for the bootstrap, the manifest is parse
*An input field and a description displaying the value of the input field \(No visual changes to last step\)*
-You can access the live preview by clicking on this link: [π Live Preview of Step 10](https://sap-samples.github.io/ui5-typescript-walkthrough/build/10/index-cdn.html).
+You can access the live preview by clicking on this link: [π Live Preview of Step 10](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/build/10/index-cdn.html).
***
@@ -21,13 +21,13 @@ You can access the live preview by clicking on this link: [π Live Preview of
-You can download the solution for this step here: [π₯ Download step 10](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-10.zip).
+You can download the solution for this step here: [π₯ Download step 10](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-10.zip).
-You can download the solution for this step here: [π₯ Download step 10](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-10-js.zip).
+You can download the solution for this step here: [π₯ Download step 10](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-10-js.zip).
***
diff --git a/steps/10/assets/loio7b2aef85c016485da4a31c087bf4c0f0_LowRes.png b/packages/walkthrough/steps/10/assets/loio7b2aef85c016485da4a31c087bf4c0f0_LowRes.png
similarity index 100%
rename from steps/10/assets/loio7b2aef85c016485da4a31c087bf4c0f0_LowRes.png
rename to packages/walkthrough/steps/10/assets/loio7b2aef85c016485da4a31c087bf4c0f0_LowRes.png
diff --git a/steps/10/package.json b/packages/walkthrough/steps/10/package.json
similarity index 93%
rename from steps/10/package.json
rename to packages/walkthrough/steps/10/package.json
index 87c3338c5..d48fcf5ef 100644
--- a/steps/10/package.json
+++ b/packages/walkthrough/steps/10/package.json
@@ -8,7 +8,7 @@
"start": "ui5 serve -o index.html"
},
"devDependencies": {
- "@types/openui5": "^1.142.0",
+ "@types/openui5": "^1.145.0",
"@ui5/cli": "^4.0.51",
"typescript": "^5.9.3",
"ui5-middleware-livereload": "^3.3.0",
diff --git a/steps/10/tsconfig.json b/packages/walkthrough/steps/10/tsconfig.json
similarity index 100%
rename from steps/10/tsconfig.json
rename to packages/walkthrough/steps/10/tsconfig.json
diff --git a/packages/walkthrough/steps/10/ui5.yaml b/packages/walkthrough/steps/10/ui5.yaml
new file mode 100644
index 000000000..dfa185033
--- /dev/null
+++ b/packages/walkthrough/steps/10/ui5.yaml
@@ -0,0 +1,23 @@
+specVersion: '3.0'
+metadata:
+ name: "ui5.walkthrough"
+type: application
+framework:
+ name: OpenUI5
+ version: "1.145.1"
+ libraries:
+ - name: sap.m
+ - name: sap.ui.core
+ - name: themelib_sap_horizon
+builder:
+ customTasks:
+ - name: ui5-tooling-transpile-task
+ afterTask: replaceVersion
+server:
+ customMiddleware:
+ - name: ui5-tooling-transpile-middleware
+ afterMiddleware: compression
+ - name: ui5-middleware-serveframework
+ afterMiddleware: compression
+ - name: ui5-middleware-livereload
+ afterMiddleware: compression
diff --git a/steps/10/webapp/Component.ts b/packages/walkthrough/steps/10/webapp/Component.ts
similarity index 100%
rename from steps/10/webapp/Component.ts
rename to packages/walkthrough/steps/10/webapp/Component.ts
diff --git a/steps/10/webapp/controller/App.controller.ts b/packages/walkthrough/steps/10/webapp/controller/App.controller.ts
similarity index 100%
rename from steps/10/webapp/controller/App.controller.ts
rename to packages/walkthrough/steps/10/webapp/controller/App.controller.ts
diff --git a/steps/10/webapp/i18n/i18n.properties b/packages/walkthrough/steps/10/webapp/i18n/i18n.properties
similarity index 100%
rename from steps/10/webapp/i18n/i18n.properties
rename to packages/walkthrough/steps/10/webapp/i18n/i18n.properties
diff --git a/steps/10/webapp/index-cdn.html b/packages/walkthrough/steps/10/webapp/index-cdn.html
similarity index 100%
rename from steps/10/webapp/index-cdn.html
rename to packages/walkthrough/steps/10/webapp/index-cdn.html
diff --git a/steps/10/webapp/index.html b/packages/walkthrough/steps/10/webapp/index.html
similarity index 100%
rename from steps/10/webapp/index.html
rename to packages/walkthrough/steps/10/webapp/index.html
diff --git a/steps/10/webapp/manifest.json b/packages/walkthrough/steps/10/webapp/manifest.json
similarity index 100%
rename from steps/10/webapp/manifest.json
rename to packages/walkthrough/steps/10/webapp/manifest.json
diff --git a/steps/10/webapp/view/App.view.xml b/packages/walkthrough/steps/10/webapp/view/App.view.xml
similarity index 100%
rename from steps/10/webapp/view/App.view.xml
rename to packages/walkthrough/steps/10/webapp/view/App.view.xml
diff --git a/steps/11/README.md b/packages/walkthrough/steps/11/README.md
similarity index 97%
rename from steps/11/README.md
rename to packages/walkthrough/steps/11/README.md
index bbcb57c5a..859d5ffd6 100644
--- a/steps/11/README.md
+++ b/packages/walkthrough/steps/11/README.md
@@ -12,7 +12,7 @@ After all the work on the app structure itβs time to improve the look of our a
*A panel is now displaying the controls from the previous steps*
-You can access the live preview by clicking on this link: [π Live Preview of Step 11](https://sap-samples.github.io/ui5-typescript-walkthrough/build/11/index-cdn.html).
+You can access the live preview by clicking on this link: [π Live Preview of Step 11](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/build/11/index-cdn.html).
***
@@ -21,13 +21,13 @@ You can access the live preview by clicking on this link: [π Live Preview of
-You can download the solution for this step here: [π₯ Download step 11](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-11.zip).
+You can download the solution for this step here: [π₯ Download step 11](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-11.zip).
-You can download the solution for this step here: [π₯ Download step 11](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-11-js.zip).
+You can download the solution for this step here: [π₯ Download step 11](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-11-js.zip).
***
diff --git a/steps/11/assets/loio97feb5417c89462ead5b4259f3ecfd47_LowRes.png b/packages/walkthrough/steps/11/assets/loio97feb5417c89462ead5b4259f3ecfd47_LowRes.png
similarity index 100%
rename from steps/11/assets/loio97feb5417c89462ead5b4259f3ecfd47_LowRes.png
rename to packages/walkthrough/steps/11/assets/loio97feb5417c89462ead5b4259f3ecfd47_LowRes.png
diff --git a/steps/11/package.json b/packages/walkthrough/steps/11/package.json
similarity index 93%
rename from steps/11/package.json
rename to packages/walkthrough/steps/11/package.json
index 02c7a9ee3..bae982477 100644
--- a/steps/11/package.json
+++ b/packages/walkthrough/steps/11/package.json
@@ -8,7 +8,7 @@
"start": "ui5 serve -o index.html"
},
"devDependencies": {
- "@types/openui5": "^1.142.0",
+ "@types/openui5": "^1.145.0",
"@ui5/cli": "^4.0.51",
"typescript": "^5.9.3",
"ui5-middleware-livereload": "^3.3.0",
diff --git a/steps/11/tsconfig.json b/packages/walkthrough/steps/11/tsconfig.json
similarity index 100%
rename from steps/11/tsconfig.json
rename to packages/walkthrough/steps/11/tsconfig.json
diff --git a/packages/walkthrough/steps/11/ui5.yaml b/packages/walkthrough/steps/11/ui5.yaml
new file mode 100644
index 000000000..dfa185033
--- /dev/null
+++ b/packages/walkthrough/steps/11/ui5.yaml
@@ -0,0 +1,23 @@
+specVersion: '3.0'
+metadata:
+ name: "ui5.walkthrough"
+type: application
+framework:
+ name: OpenUI5
+ version: "1.145.1"
+ libraries:
+ - name: sap.m
+ - name: sap.ui.core
+ - name: themelib_sap_horizon
+builder:
+ customTasks:
+ - name: ui5-tooling-transpile-task
+ afterTask: replaceVersion
+server:
+ customMiddleware:
+ - name: ui5-tooling-transpile-middleware
+ afterMiddleware: compression
+ - name: ui5-middleware-serveframework
+ afterMiddleware: compression
+ - name: ui5-middleware-livereload
+ afterMiddleware: compression
diff --git a/steps/11/webapp/Component.ts b/packages/walkthrough/steps/11/webapp/Component.ts
similarity index 100%
rename from steps/11/webapp/Component.ts
rename to packages/walkthrough/steps/11/webapp/Component.ts
diff --git a/steps/11/webapp/controller/App.controller.ts b/packages/walkthrough/steps/11/webapp/controller/App.controller.ts
similarity index 100%
rename from steps/11/webapp/controller/App.controller.ts
rename to packages/walkthrough/steps/11/webapp/controller/App.controller.ts
diff --git a/steps/11/webapp/i18n/i18n.properties b/packages/walkthrough/steps/11/webapp/i18n/i18n.properties
similarity index 100%
rename from steps/11/webapp/i18n/i18n.properties
rename to packages/walkthrough/steps/11/webapp/i18n/i18n.properties
diff --git a/steps/11/webapp/index-cdn.html b/packages/walkthrough/steps/11/webapp/index-cdn.html
similarity index 100%
rename from steps/11/webapp/index-cdn.html
rename to packages/walkthrough/steps/11/webapp/index-cdn.html
diff --git a/steps/11/webapp/index.html b/packages/walkthrough/steps/11/webapp/index.html
similarity index 100%
rename from steps/11/webapp/index.html
rename to packages/walkthrough/steps/11/webapp/index.html
diff --git a/steps/11/webapp/manifest.json b/packages/walkthrough/steps/11/webapp/manifest.json
similarity index 100%
rename from steps/11/webapp/manifest.json
rename to packages/walkthrough/steps/11/webapp/manifest.json
diff --git a/steps/11/webapp/view/App.view.xml b/packages/walkthrough/steps/11/webapp/view/App.view.xml
similarity index 100%
rename from steps/11/webapp/view/App.view.xml
rename to packages/walkthrough/steps/11/webapp/view/App.view.xml
diff --git a/steps/12/README.md b/packages/walkthrough/steps/12/README.md
similarity index 95%
rename from steps/12/README.md
rename to packages/walkthrough/steps/12/README.md
index a99ab2afe..2078ff79f 100644
--- a/steps/12/README.md
+++ b/packages/walkthrough/steps/12/README.md
@@ -12,7 +12,7 @@ Now we use a shell control as container for our app and use it as our new root e
*The app is now run in a shell that limits the app width*
-You can access the live preview by clicking on this link: [π Live Preview of Step 12](https://sap-samples.github.io/ui5-typescript-walkthrough/build/12/index-cdn.html).
+You can access the live preview by clicking on this link: [π Live Preview of Step 12](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/build/12/index-cdn.html).
***
@@ -20,13 +20,13 @@ You can access the live preview by clicking on this link: [π Live Preview of
-You can download the solution for this step here: [π₯ Download step 12](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-12.zip).
+You can download the solution for this step here: [π₯ Download step 12](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-12.zip).
-You can download the solution for this step here: [π₯ Download step 12](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-12-js.zip).
+You can download the solution for this step here: [π₯ Download step 12](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-12-js.zip).
***
diff --git a/steps/12/assets/loio0becf3ee81f5486a864e3b39ba036402_LowRes.png b/packages/walkthrough/steps/12/assets/loio0becf3ee81f5486a864e3b39ba036402_LowRes.png
similarity index 100%
rename from steps/12/assets/loio0becf3ee81f5486a864e3b39ba036402_LowRes.png
rename to packages/walkthrough/steps/12/assets/loio0becf3ee81f5486a864e3b39ba036402_LowRes.png
diff --git a/steps/12/package.json b/packages/walkthrough/steps/12/package.json
similarity index 93%
rename from steps/12/package.json
rename to packages/walkthrough/steps/12/package.json
index a1b395135..e573f106d 100644
--- a/steps/12/package.json
+++ b/packages/walkthrough/steps/12/package.json
@@ -8,7 +8,7 @@
"start": "ui5 serve -o index.html"
},
"devDependencies": {
- "@types/openui5": "^1.142.0",
+ "@types/openui5": "^1.145.0",
"@ui5/cli": "^4.0.51",
"typescript": "^5.9.3",
"ui5-middleware-livereload": "^3.3.0",
diff --git a/steps/12/tsconfig.json b/packages/walkthrough/steps/12/tsconfig.json
similarity index 100%
rename from steps/12/tsconfig.json
rename to packages/walkthrough/steps/12/tsconfig.json
diff --git a/packages/walkthrough/steps/12/ui5.yaml b/packages/walkthrough/steps/12/ui5.yaml
new file mode 100644
index 000000000..dfa185033
--- /dev/null
+++ b/packages/walkthrough/steps/12/ui5.yaml
@@ -0,0 +1,23 @@
+specVersion: '3.0'
+metadata:
+ name: "ui5.walkthrough"
+type: application
+framework:
+ name: OpenUI5
+ version: "1.145.1"
+ libraries:
+ - name: sap.m
+ - name: sap.ui.core
+ - name: themelib_sap_horizon
+builder:
+ customTasks:
+ - name: ui5-tooling-transpile-task
+ afterTask: replaceVersion
+server:
+ customMiddleware:
+ - name: ui5-tooling-transpile-middleware
+ afterMiddleware: compression
+ - name: ui5-middleware-serveframework
+ afterMiddleware: compression
+ - name: ui5-middleware-livereload
+ afterMiddleware: compression
diff --git a/steps/12/webapp/Component.ts b/packages/walkthrough/steps/12/webapp/Component.ts
similarity index 100%
rename from steps/12/webapp/Component.ts
rename to packages/walkthrough/steps/12/webapp/Component.ts
diff --git a/steps/12/webapp/controller/App.controller.ts b/packages/walkthrough/steps/12/webapp/controller/App.controller.ts
similarity index 100%
rename from steps/12/webapp/controller/App.controller.ts
rename to packages/walkthrough/steps/12/webapp/controller/App.controller.ts
diff --git a/steps/12/webapp/i18n/i18n.properties b/packages/walkthrough/steps/12/webapp/i18n/i18n.properties
similarity index 100%
rename from steps/12/webapp/i18n/i18n.properties
rename to packages/walkthrough/steps/12/webapp/i18n/i18n.properties
diff --git a/steps/12/webapp/index-cdn.html b/packages/walkthrough/steps/12/webapp/index-cdn.html
similarity index 100%
rename from steps/12/webapp/index-cdn.html
rename to packages/walkthrough/steps/12/webapp/index-cdn.html
diff --git a/steps/12/webapp/index.html b/packages/walkthrough/steps/12/webapp/index.html
similarity index 100%
rename from steps/12/webapp/index.html
rename to packages/walkthrough/steps/12/webapp/index.html
diff --git a/steps/12/webapp/manifest.json b/packages/walkthrough/steps/12/webapp/manifest.json
similarity index 100%
rename from steps/12/webapp/manifest.json
rename to packages/walkthrough/steps/12/webapp/manifest.json
diff --git a/steps/12/webapp/view/App.view.xml b/packages/walkthrough/steps/12/webapp/view/App.view.xml
similarity index 100%
rename from steps/12/webapp/view/App.view.xml
rename to packages/walkthrough/steps/12/webapp/view/App.view.xml
diff --git a/steps/13/README.md b/packages/walkthrough/steps/13/README.md
similarity index 96%
rename from steps/13/README.md
rename to packages/walkthrough/steps/13/README.md
index 2b6f126f0..62094693f 100644
--- a/steps/13/README.md
+++ b/packages/walkthrough/steps/13/README.md
@@ -14,7 +14,7 @@ Instead of manually adding CSS to the controls, we will use the standard classes
*The layout of the panel and its content now has margins and padding*
-You can access the live preview by clicking on this link: [π Live Preview of Step 13](https://sap-samples.github.io/ui5-typescript-walkthrough/build/13/index-cdn.html).
+You can access the live preview by clicking on this link: [π Live Preview of Step 13](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/build/13/index-cdn.html).
***
@@ -22,13 +22,13 @@ You can access the live preview by clicking on this link: [π Live Preview of
-You can download the solution for this step here: [π₯ Download step 13](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-13.zip).
+You can download the solution for this step here: [π₯ Download step 13](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-13.zip).
-You can download the solution for this step here: [π₯ Download step 13](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-13-js.zip).
+You can download the solution for this step here: [π₯ Download step 13](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-13-js.zip).
***
diff --git a/steps/13/assets/loio0becf3ee81f5486a864e3b39ba036402_LowRes.png b/packages/walkthrough/steps/13/assets/loio0becf3ee81f5486a864e3b39ba036402_LowRes.png
similarity index 100%
rename from steps/13/assets/loio0becf3ee81f5486a864e3b39ba036402_LowRes.png
rename to packages/walkthrough/steps/13/assets/loio0becf3ee81f5486a864e3b39ba036402_LowRes.png
diff --git a/steps/13/package.json b/packages/walkthrough/steps/13/package.json
similarity index 93%
rename from steps/13/package.json
rename to packages/walkthrough/steps/13/package.json
index ccdfaffc3..053133851 100644
--- a/steps/13/package.json
+++ b/packages/walkthrough/steps/13/package.json
@@ -8,7 +8,7 @@
"start": "ui5 serve -o index.html"
},
"devDependencies": {
- "@types/openui5": "^1.142.0",
+ "@types/openui5": "^1.145.0",
"@ui5/cli": "^4.0.51",
"typescript": "^5.9.3",
"ui5-middleware-livereload": "^3.3.0",
diff --git a/steps/13/tsconfig.json b/packages/walkthrough/steps/13/tsconfig.json
similarity index 100%
rename from steps/13/tsconfig.json
rename to packages/walkthrough/steps/13/tsconfig.json
diff --git a/packages/walkthrough/steps/13/ui5.yaml b/packages/walkthrough/steps/13/ui5.yaml
new file mode 100644
index 000000000..dfa185033
--- /dev/null
+++ b/packages/walkthrough/steps/13/ui5.yaml
@@ -0,0 +1,23 @@
+specVersion: '3.0'
+metadata:
+ name: "ui5.walkthrough"
+type: application
+framework:
+ name: OpenUI5
+ version: "1.145.1"
+ libraries:
+ - name: sap.m
+ - name: sap.ui.core
+ - name: themelib_sap_horizon
+builder:
+ customTasks:
+ - name: ui5-tooling-transpile-task
+ afterTask: replaceVersion
+server:
+ customMiddleware:
+ - name: ui5-tooling-transpile-middleware
+ afterMiddleware: compression
+ - name: ui5-middleware-serveframework
+ afterMiddleware: compression
+ - name: ui5-middleware-livereload
+ afterMiddleware: compression
diff --git a/steps/13/webapp/Component.ts b/packages/walkthrough/steps/13/webapp/Component.ts
similarity index 100%
rename from steps/13/webapp/Component.ts
rename to packages/walkthrough/steps/13/webapp/Component.ts
diff --git a/steps/13/webapp/controller/App.controller.ts b/packages/walkthrough/steps/13/webapp/controller/App.controller.ts
similarity index 100%
rename from steps/13/webapp/controller/App.controller.ts
rename to packages/walkthrough/steps/13/webapp/controller/App.controller.ts
diff --git a/steps/13/webapp/i18n/i18n.properties b/packages/walkthrough/steps/13/webapp/i18n/i18n.properties
similarity index 100%
rename from steps/13/webapp/i18n/i18n.properties
rename to packages/walkthrough/steps/13/webapp/i18n/i18n.properties
diff --git a/steps/13/webapp/index-cdn.html b/packages/walkthrough/steps/13/webapp/index-cdn.html
similarity index 100%
rename from steps/13/webapp/index-cdn.html
rename to packages/walkthrough/steps/13/webapp/index-cdn.html
diff --git a/steps/13/webapp/index.html b/packages/walkthrough/steps/13/webapp/index.html
similarity index 100%
rename from steps/13/webapp/index.html
rename to packages/walkthrough/steps/13/webapp/index.html
diff --git a/steps/13/webapp/manifest.json b/packages/walkthrough/steps/13/webapp/manifest.json
similarity index 100%
rename from steps/13/webapp/manifest.json
rename to packages/walkthrough/steps/13/webapp/manifest.json
diff --git a/steps/13/webapp/view/App.view.xml b/packages/walkthrough/steps/13/webapp/view/App.view.xml
similarity index 100%
rename from steps/13/webapp/view/App.view.xml
rename to packages/walkthrough/steps/13/webapp/view/App.view.xml
diff --git a/steps/14/README.md b/packages/walkthrough/steps/14/README.md
similarity index 98%
rename from steps/14/README.md
rename to packages/walkthrough/steps/14/README.md
index d0a0a90a7..e7b4298d7 100644
--- a/steps/14/README.md
+++ b/packages/walkthrough/steps/14/README.md
@@ -15,7 +15,7 @@ Sometimes we need to define some more fine-granular layouts and this is when we
*The space between the button and the input field is now smaller and the output text is bold*
-You can access the live preview by clicking on this link: [π Live Preview of Step 14](https://sap-samples.github.io/ui5-typescript-walkthrough/build/14/index-cdn.html).
+You can access the live preview by clicking on this link: [π Live Preview of Step 14](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/build/14/index-cdn.html).
***
@@ -24,13 +24,13 @@ You can access the live preview by clicking on this link: [π Live Preview of
### Coding
-You can download the solution for this step here: [π₯ Download step 14](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-14.zip).
+You can download the solution for this step here: [π₯ Download step 14](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-14.zip).
-You can download the solution for this step here: [π₯ Download step 14](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-14-js.zip).
+You can download the solution for this step here: [π₯ Download step 14](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-14-js.zip).
***
diff --git a/steps/14/assets/loiod9a40e539b7c49c485be821efbd3821f_LowRes.png b/packages/walkthrough/steps/14/assets/loiod9a40e539b7c49c485be821efbd3821f_LowRes.png
similarity index 100%
rename from steps/14/assets/loiod9a40e539b7c49c485be821efbd3821f_LowRes.png
rename to packages/walkthrough/steps/14/assets/loiod9a40e539b7c49c485be821efbd3821f_LowRes.png
diff --git a/steps/14/package.json b/packages/walkthrough/steps/14/package.json
similarity index 93%
rename from steps/14/package.json
rename to packages/walkthrough/steps/14/package.json
index 0f03dbd0d..b5b3cb06b 100644
--- a/steps/14/package.json
+++ b/packages/walkthrough/steps/14/package.json
@@ -8,7 +8,7 @@
"start": "ui5 serve -o index.html"
},
"devDependencies": {
- "@types/openui5": "^1.142.0",
+ "@types/openui5": "^1.145.0",
"@ui5/cli": "^4.0.51",
"typescript": "^5.9.3",
"ui5-middleware-livereload": "^3.3.0",
diff --git a/steps/14/tsconfig.json b/packages/walkthrough/steps/14/tsconfig.json
similarity index 100%
rename from steps/14/tsconfig.json
rename to packages/walkthrough/steps/14/tsconfig.json
diff --git a/packages/walkthrough/steps/14/ui5.yaml b/packages/walkthrough/steps/14/ui5.yaml
new file mode 100644
index 000000000..dfa185033
--- /dev/null
+++ b/packages/walkthrough/steps/14/ui5.yaml
@@ -0,0 +1,23 @@
+specVersion: '3.0'
+metadata:
+ name: "ui5.walkthrough"
+type: application
+framework:
+ name: OpenUI5
+ version: "1.145.1"
+ libraries:
+ - name: sap.m
+ - name: sap.ui.core
+ - name: themelib_sap_horizon
+builder:
+ customTasks:
+ - name: ui5-tooling-transpile-task
+ afterTask: replaceVersion
+server:
+ customMiddleware:
+ - name: ui5-tooling-transpile-middleware
+ afterMiddleware: compression
+ - name: ui5-middleware-serveframework
+ afterMiddleware: compression
+ - name: ui5-middleware-livereload
+ afterMiddleware: compression
diff --git a/steps/14/webapp/Component.ts b/packages/walkthrough/steps/14/webapp/Component.ts
similarity index 100%
rename from steps/14/webapp/Component.ts
rename to packages/walkthrough/steps/14/webapp/Component.ts
diff --git a/steps/14/webapp/controller/App.controller.ts b/packages/walkthrough/steps/14/webapp/controller/App.controller.ts
similarity index 100%
rename from steps/14/webapp/controller/App.controller.ts
rename to packages/walkthrough/steps/14/webapp/controller/App.controller.ts
diff --git a/steps/14/webapp/css/style.css b/packages/walkthrough/steps/14/webapp/css/style.css
similarity index 100%
rename from steps/14/webapp/css/style.css
rename to packages/walkthrough/steps/14/webapp/css/style.css
diff --git a/steps/14/webapp/i18n/i18n.properties b/packages/walkthrough/steps/14/webapp/i18n/i18n.properties
similarity index 100%
rename from steps/14/webapp/i18n/i18n.properties
rename to packages/walkthrough/steps/14/webapp/i18n/i18n.properties
diff --git a/steps/14/webapp/index-cdn.html b/packages/walkthrough/steps/14/webapp/index-cdn.html
similarity index 100%
rename from steps/14/webapp/index-cdn.html
rename to packages/walkthrough/steps/14/webapp/index-cdn.html
diff --git a/steps/14/webapp/index.html b/packages/walkthrough/steps/14/webapp/index.html
similarity index 100%
rename from steps/14/webapp/index.html
rename to packages/walkthrough/steps/14/webapp/index.html
diff --git a/steps/14/webapp/manifest.json b/packages/walkthrough/steps/14/webapp/manifest.json
similarity index 100%
rename from steps/14/webapp/manifest.json
rename to packages/walkthrough/steps/14/webapp/manifest.json
diff --git a/steps/14/webapp/view/App.view.xml b/packages/walkthrough/steps/14/webapp/view/App.view.xml
similarity index 100%
rename from steps/14/webapp/view/App.view.xml
rename to packages/walkthrough/steps/14/webapp/view/App.view.xml
diff --git a/steps/15/README.md b/packages/walkthrough/steps/15/README.md
similarity index 97%
rename from steps/15/README.md
rename to packages/walkthrough/steps/15/README.md
index c187ab60c..6ba83a46b 100644
--- a/steps/15/README.md
+++ b/packages/walkthrough/steps/15/README.md
@@ -12,7 +12,7 @@ Our panel content is getting more and more complex and now it is time to move th
*The panel content is now refactored to a separate view \(No visual changes to last step\)*
-You can access the live preview by clicking on this link: [π Live Preview of Step 15](https://sap-samples.github.io/ui5-typescript-walkthrough/build/15/index-cdn.html).
+You can access the live preview by clicking on this link: [π Live Preview of Step 15](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/build/15/index-cdn.html).
***
@@ -21,13 +21,13 @@ You can access the live preview by clicking on this link: [π Live Preview of
-You can download the solution for this step here: [π₯ Download step 15](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-15.zip).
+You can download the solution for this step here: [π₯ Download step 15](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-15.zip).
-You can download the solution for this step here: [π₯ Download step 15](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-15-js.zip).
+You can download the solution for this step here: [π₯ Download step 15](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-15-js.zip).
***
diff --git a/steps/15/assets/loiof3724d2f97e94a78b27d8ab01ff9c37d_LowRes.png b/packages/walkthrough/steps/15/assets/loiof3724d2f97e94a78b27d8ab01ff9c37d_LowRes.png
similarity index 100%
rename from steps/15/assets/loiof3724d2f97e94a78b27d8ab01ff9c37d_LowRes.png
rename to packages/walkthrough/steps/15/assets/loiof3724d2f97e94a78b27d8ab01ff9c37d_LowRes.png
diff --git a/steps/15/package.json b/packages/walkthrough/steps/15/package.json
similarity index 92%
rename from steps/15/package.json
rename to packages/walkthrough/steps/15/package.json
index 9ad7bd43d..cc910b26d 100644
--- a/steps/15/package.json
+++ b/packages/walkthrough/steps/15/package.json
@@ -8,7 +8,7 @@
"start": "ui5 serve -o index.html"
},
"devDependencies": {
- "@types/openui5": "^1.142.0",
+ "@types/openui5": "^1.145.0",
"@ui5/cli": "^4.0.51",
"typescript": "^5.9.3",
"ui5-middleware-livereload": "^3.3.0",
diff --git a/steps/15/tsconfig.json b/packages/walkthrough/steps/15/tsconfig.json
similarity index 100%
rename from steps/15/tsconfig.json
rename to packages/walkthrough/steps/15/tsconfig.json
diff --git a/packages/walkthrough/steps/15/ui5.yaml b/packages/walkthrough/steps/15/ui5.yaml
new file mode 100644
index 000000000..dfa185033
--- /dev/null
+++ b/packages/walkthrough/steps/15/ui5.yaml
@@ -0,0 +1,23 @@
+specVersion: '3.0'
+metadata:
+ name: "ui5.walkthrough"
+type: application
+framework:
+ name: OpenUI5
+ version: "1.145.1"
+ libraries:
+ - name: sap.m
+ - name: sap.ui.core
+ - name: themelib_sap_horizon
+builder:
+ customTasks:
+ - name: ui5-tooling-transpile-task
+ afterTask: replaceVersion
+server:
+ customMiddleware:
+ - name: ui5-tooling-transpile-middleware
+ afterMiddleware: compression
+ - name: ui5-middleware-serveframework
+ afterMiddleware: compression
+ - name: ui5-middleware-livereload
+ afterMiddleware: compression
diff --git a/steps/15/webapp/Component.ts b/packages/walkthrough/steps/15/webapp/Component.ts
similarity index 100%
rename from steps/15/webapp/Component.ts
rename to packages/walkthrough/steps/15/webapp/Component.ts
diff --git a/steps/15/webapp/controller/App.controller.ts b/packages/walkthrough/steps/15/webapp/controller/App.controller.ts
similarity index 100%
rename from steps/15/webapp/controller/App.controller.ts
rename to packages/walkthrough/steps/15/webapp/controller/App.controller.ts
diff --git a/steps/15/webapp/controller/HelloPanel.controller.ts b/packages/walkthrough/steps/15/webapp/controller/HelloPanel.controller.ts
similarity index 100%
rename from steps/15/webapp/controller/HelloPanel.controller.ts
rename to packages/walkthrough/steps/15/webapp/controller/HelloPanel.controller.ts
diff --git a/steps/15/webapp/css/style.css b/packages/walkthrough/steps/15/webapp/css/style.css
similarity index 100%
rename from steps/15/webapp/css/style.css
rename to packages/walkthrough/steps/15/webapp/css/style.css
diff --git a/steps/15/webapp/i18n/i18n.properties b/packages/walkthrough/steps/15/webapp/i18n/i18n.properties
similarity index 100%
rename from steps/15/webapp/i18n/i18n.properties
rename to packages/walkthrough/steps/15/webapp/i18n/i18n.properties
diff --git a/steps/15/webapp/index-cdn.html b/packages/walkthrough/steps/15/webapp/index-cdn.html
similarity index 100%
rename from steps/15/webapp/index-cdn.html
rename to packages/walkthrough/steps/15/webapp/index-cdn.html
diff --git a/steps/15/webapp/index.html b/packages/walkthrough/steps/15/webapp/index.html
similarity index 100%
rename from steps/15/webapp/index.html
rename to packages/walkthrough/steps/15/webapp/index.html
diff --git a/steps/15/webapp/manifest.json b/packages/walkthrough/steps/15/webapp/manifest.json
similarity index 100%
rename from steps/15/webapp/manifest.json
rename to packages/walkthrough/steps/15/webapp/manifest.json
diff --git a/steps/15/webapp/view/App.view.xml b/packages/walkthrough/steps/15/webapp/view/App.view.xml
similarity index 100%
rename from steps/15/webapp/view/App.view.xml
rename to packages/walkthrough/steps/15/webapp/view/App.view.xml
diff --git a/steps/15/webapp/view/HelloPanel.view.xml b/packages/walkthrough/steps/15/webapp/view/HelloPanel.view.xml
similarity index 100%
rename from steps/15/webapp/view/HelloPanel.view.xml
rename to packages/walkthrough/steps/15/webapp/view/HelloPanel.view.xml
diff --git a/steps/16/README.md b/packages/walkthrough/steps/16/README.md
similarity index 98%
rename from steps/16/README.md
rename to packages/walkthrough/steps/16/README.md
index 3f4a2889e..0afcfc7ed 100644
--- a/steps/16/README.md
+++ b/packages/walkthrough/steps/16/README.md
@@ -18,7 +18,7 @@ We will now add a dialog to our app. Dialogs are special, because they open on t
*A dialog opens when the new βSay Hello With Dialogβ button is clicked*
-You can access the live preview by clicking on this link: [π Live Preview of Step 16](https://sap-samples.github.io/ui5-typescript-walkthrough/build/16/index-cdn.html).
+You can access the live preview by clicking on this link: [π Live Preview of Step 16](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/build/16/index-cdn.html).
***
@@ -27,13 +27,13 @@ You can access the live preview by clicking on this link: [π Live Preview of
-You can download the solution for this step here: [π₯ Download step 16](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-16.zip).
+You can download the solution for this step here: [π₯ Download step 16](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-16.zip).
-You can download the solution for this step here: [π₯ Download step 16](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-16-js.zip).
+You can download the solution for this step here: [π₯ Download step 16](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-16-js.zip).
***
diff --git a/steps/16/assets/loio0916080895e144ed8b31963bfb18e17f_LowRes.png b/packages/walkthrough/steps/16/assets/loio0916080895e144ed8b31963bfb18e17f_LowRes.png
similarity index 100%
rename from steps/16/assets/loio0916080895e144ed8b31963bfb18e17f_LowRes.png
rename to packages/walkthrough/steps/16/assets/loio0916080895e144ed8b31963bfb18e17f_LowRes.png
diff --git a/steps/16/package.json b/packages/walkthrough/steps/16/package.json
similarity index 93%
rename from steps/16/package.json
rename to packages/walkthrough/steps/16/package.json
index 418371a94..7cf7e45df 100644
--- a/steps/16/package.json
+++ b/packages/walkthrough/steps/16/package.json
@@ -8,7 +8,7 @@
"start": "ui5 serve -o index.html"
},
"devDependencies": {
- "@types/openui5": "^1.142.0",
+ "@types/openui5": "^1.145.0",
"@ui5/cli": "^4.0.51",
"typescript": "^5.9.3",
"ui5-middleware-livereload": "^3.3.0",
diff --git a/steps/16/tsconfig.json b/packages/walkthrough/steps/16/tsconfig.json
similarity index 100%
rename from steps/16/tsconfig.json
rename to packages/walkthrough/steps/16/tsconfig.json
diff --git a/packages/walkthrough/steps/16/ui5.yaml b/packages/walkthrough/steps/16/ui5.yaml
new file mode 100644
index 000000000..dfa185033
--- /dev/null
+++ b/packages/walkthrough/steps/16/ui5.yaml
@@ -0,0 +1,23 @@
+specVersion: '3.0'
+metadata:
+ name: "ui5.walkthrough"
+type: application
+framework:
+ name: OpenUI5
+ version: "1.145.1"
+ libraries:
+ - name: sap.m
+ - name: sap.ui.core
+ - name: themelib_sap_horizon
+builder:
+ customTasks:
+ - name: ui5-tooling-transpile-task
+ afterTask: replaceVersion
+server:
+ customMiddleware:
+ - name: ui5-tooling-transpile-middleware
+ afterMiddleware: compression
+ - name: ui5-middleware-serveframework
+ afterMiddleware: compression
+ - name: ui5-middleware-livereload
+ afterMiddleware: compression
diff --git a/steps/16/webapp/Component.ts b/packages/walkthrough/steps/16/webapp/Component.ts
similarity index 100%
rename from steps/16/webapp/Component.ts
rename to packages/walkthrough/steps/16/webapp/Component.ts
diff --git a/steps/16/webapp/controller/App.controller.ts b/packages/walkthrough/steps/16/webapp/controller/App.controller.ts
similarity index 100%
rename from steps/16/webapp/controller/App.controller.ts
rename to packages/walkthrough/steps/16/webapp/controller/App.controller.ts
diff --git a/steps/16/webapp/controller/HelloPanel.controller.ts b/packages/walkthrough/steps/16/webapp/controller/HelloPanel.controller.ts
similarity index 100%
rename from steps/16/webapp/controller/HelloPanel.controller.ts
rename to packages/walkthrough/steps/16/webapp/controller/HelloPanel.controller.ts
diff --git a/steps/16/webapp/css/style.css b/packages/walkthrough/steps/16/webapp/css/style.css
similarity index 100%
rename from steps/16/webapp/css/style.css
rename to packages/walkthrough/steps/16/webapp/css/style.css
diff --git a/steps/16/webapp/i18n/i18n.properties b/packages/walkthrough/steps/16/webapp/i18n/i18n.properties
similarity index 100%
rename from steps/16/webapp/i18n/i18n.properties
rename to packages/walkthrough/steps/16/webapp/i18n/i18n.properties
diff --git a/steps/16/webapp/index-cdn.html b/packages/walkthrough/steps/16/webapp/index-cdn.html
similarity index 100%
rename from steps/16/webapp/index-cdn.html
rename to packages/walkthrough/steps/16/webapp/index-cdn.html
diff --git a/steps/16/webapp/index.html b/packages/walkthrough/steps/16/webapp/index.html
similarity index 100%
rename from steps/16/webapp/index.html
rename to packages/walkthrough/steps/16/webapp/index.html
diff --git a/steps/16/webapp/manifest.json b/packages/walkthrough/steps/16/webapp/manifest.json
similarity index 100%
rename from steps/16/webapp/manifest.json
rename to packages/walkthrough/steps/16/webapp/manifest.json
diff --git a/steps/16/webapp/view/App.view.xml b/packages/walkthrough/steps/16/webapp/view/App.view.xml
similarity index 100%
rename from steps/16/webapp/view/App.view.xml
rename to packages/walkthrough/steps/16/webapp/view/App.view.xml
diff --git a/steps/16/webapp/view/HelloDialog.fragment.xml b/packages/walkthrough/steps/16/webapp/view/HelloDialog.fragment.xml
similarity index 100%
rename from steps/16/webapp/view/HelloDialog.fragment.xml
rename to packages/walkthrough/steps/16/webapp/view/HelloDialog.fragment.xml
diff --git a/steps/16/webapp/view/HelloPanel.view.xml b/packages/walkthrough/steps/16/webapp/view/HelloPanel.view.xml
similarity index 100%
rename from steps/16/webapp/view/HelloPanel.view.xml
rename to packages/walkthrough/steps/16/webapp/view/HelloPanel.view.xml
diff --git a/steps/17/README.md b/packages/walkthrough/steps/17/README.md
similarity index 97%
rename from steps/17/README.md
rename to packages/walkthrough/steps/17/README.md
index 1bffdd736..bd46634f1 100644
--- a/steps/17/README.md
+++ b/packages/walkthrough/steps/17/README.md
@@ -12,20 +12,20 @@ Now that we have integrated the dialog, it's time to add some user interaction.
*The dialog now has an "OK" button to close the dialog*
-You can access the live preview by clicking on this link: [π Live Preview of Step 17](https://sap-samples.github.io/ui5-typescript-walkthrough/build/17/index-cdn.html).
+You can access the live preview by clicking on this link: [π Live Preview of Step 17](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/build/17/index-cdn.html).
***
### Coding
-You can download the solution for this step here: [π₯ Download step 17](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-17.zip).
+You can download the solution for this step here: [π₯ Download step 17](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-17.zip).
-You can download the solution for this step here: [π₯ Download step 17](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-17-js.zip).
+You can download the solution for this step here: [π₯ Download step 17](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-17-js.zip).
***
diff --git a/steps/17/assets/loioc351bbd078824c43bf1758b0c3679cbd_LowRes.png b/packages/walkthrough/steps/17/assets/loioc351bbd078824c43bf1758b0c3679cbd_LowRes.png
similarity index 100%
rename from steps/17/assets/loioc351bbd078824c43bf1758b0c3679cbd_LowRes.png
rename to packages/walkthrough/steps/17/assets/loioc351bbd078824c43bf1758b0c3679cbd_LowRes.png
diff --git a/steps/17/package.json b/packages/walkthrough/steps/17/package.json
similarity index 93%
rename from steps/17/package.json
rename to packages/walkthrough/steps/17/package.json
index 1a408a2fd..0a9b381a2 100644
--- a/steps/17/package.json
+++ b/packages/walkthrough/steps/17/package.json
@@ -8,7 +8,7 @@
"start": "ui5 serve -o index.html"
},
"devDependencies": {
- "@types/openui5": "^1.142.0",
+ "@types/openui5": "^1.145.0",
"@ui5/cli": "^4.0.51",
"typescript": "^5.9.3",
"ui5-middleware-livereload": "^3.3.0",
diff --git a/steps/17/tsconfig.json b/packages/walkthrough/steps/17/tsconfig.json
similarity index 100%
rename from steps/17/tsconfig.json
rename to packages/walkthrough/steps/17/tsconfig.json
diff --git a/packages/walkthrough/steps/17/ui5.yaml b/packages/walkthrough/steps/17/ui5.yaml
new file mode 100644
index 000000000..dfa185033
--- /dev/null
+++ b/packages/walkthrough/steps/17/ui5.yaml
@@ -0,0 +1,23 @@
+specVersion: '3.0'
+metadata:
+ name: "ui5.walkthrough"
+type: application
+framework:
+ name: OpenUI5
+ version: "1.145.1"
+ libraries:
+ - name: sap.m
+ - name: sap.ui.core
+ - name: themelib_sap_horizon
+builder:
+ customTasks:
+ - name: ui5-tooling-transpile-task
+ afterTask: replaceVersion
+server:
+ customMiddleware:
+ - name: ui5-tooling-transpile-middleware
+ afterMiddleware: compression
+ - name: ui5-middleware-serveframework
+ afterMiddleware: compression
+ - name: ui5-middleware-livereload
+ afterMiddleware: compression
diff --git a/steps/17/webapp/Component.ts b/packages/walkthrough/steps/17/webapp/Component.ts
similarity index 100%
rename from steps/17/webapp/Component.ts
rename to packages/walkthrough/steps/17/webapp/Component.ts
diff --git a/steps/17/webapp/controller/App.controller.ts b/packages/walkthrough/steps/17/webapp/controller/App.controller.ts
similarity index 100%
rename from steps/17/webapp/controller/App.controller.ts
rename to packages/walkthrough/steps/17/webapp/controller/App.controller.ts
diff --git a/steps/17/webapp/controller/HelloPanel.controller.ts b/packages/walkthrough/steps/17/webapp/controller/HelloPanel.controller.ts
similarity index 100%
rename from steps/17/webapp/controller/HelloPanel.controller.ts
rename to packages/walkthrough/steps/17/webapp/controller/HelloPanel.controller.ts
diff --git a/steps/17/webapp/css/style.css b/packages/walkthrough/steps/17/webapp/css/style.css
similarity index 100%
rename from steps/17/webapp/css/style.css
rename to packages/walkthrough/steps/17/webapp/css/style.css
diff --git a/steps/17/webapp/i18n/i18n.properties b/packages/walkthrough/steps/17/webapp/i18n/i18n.properties
similarity index 100%
rename from steps/17/webapp/i18n/i18n.properties
rename to packages/walkthrough/steps/17/webapp/i18n/i18n.properties
diff --git a/steps/17/webapp/index-cdn.html b/packages/walkthrough/steps/17/webapp/index-cdn.html
similarity index 100%
rename from steps/17/webapp/index-cdn.html
rename to packages/walkthrough/steps/17/webapp/index-cdn.html
diff --git a/steps/17/webapp/index.html b/packages/walkthrough/steps/17/webapp/index.html
similarity index 100%
rename from steps/17/webapp/index.html
rename to packages/walkthrough/steps/17/webapp/index.html
diff --git a/steps/17/webapp/manifest.json b/packages/walkthrough/steps/17/webapp/manifest.json
similarity index 100%
rename from steps/17/webapp/manifest.json
rename to packages/walkthrough/steps/17/webapp/manifest.json
diff --git a/steps/17/webapp/view/App.view.xml b/packages/walkthrough/steps/17/webapp/view/App.view.xml
similarity index 100%
rename from steps/17/webapp/view/App.view.xml
rename to packages/walkthrough/steps/17/webapp/view/App.view.xml
diff --git a/steps/17/webapp/view/HelloDialog.fragment.xml b/packages/walkthrough/steps/17/webapp/view/HelloDialog.fragment.xml
similarity index 100%
rename from steps/17/webapp/view/HelloDialog.fragment.xml
rename to packages/walkthrough/steps/17/webapp/view/HelloDialog.fragment.xml
diff --git a/steps/17/webapp/view/HelloPanel.view.xml b/packages/walkthrough/steps/17/webapp/view/HelloPanel.view.xml
similarity index 100%
rename from steps/17/webapp/view/HelloPanel.view.xml
rename to packages/walkthrough/steps/17/webapp/view/HelloPanel.view.xml
diff --git a/steps/18/README.md b/packages/walkthrough/steps/18/README.md
similarity index 96%
rename from steps/18/README.md
rename to packages/walkthrough/steps/18/README.md
index 8b280d8f9..d9ace078c 100644
--- a/steps/18/README.md
+++ b/packages/walkthrough/steps/18/README.md
@@ -12,20 +12,20 @@ Our dialog is still pretty much empty. Since OpenUI5 is shipped with a large ico
*An icon is now displayed in the dialog box*
-You can access the live preview by clicking on this link: [π Live Preview of Step 18](https://sap-samples.github.io/ui5-typescript-walkthrough/build/18/index-cdn.html).
+You can access the live preview by clicking on this link: [π Live Preview of Step 18](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/build/18/index-cdn.html).
***
### Coding
-You can download the solution for this step here: [π₯ Download step 18](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-18.zip).
+You can download the solution for this step here: [π₯ Download step 18](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-18.zip).
-You can download the solution for this step here: [π₯ Download step 18](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-18-js.zip).
+You can download the solution for this step here: [π₯ Download step 18](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-18-js.zip).
***
diff --git a/steps/18/assets/loiofbc48e23cc7d45e393cc95bbbfc6e0a3_LowRes.png b/packages/walkthrough/steps/18/assets/loiofbc48e23cc7d45e393cc95bbbfc6e0a3_LowRes.png
similarity index 100%
rename from steps/18/assets/loiofbc48e23cc7d45e393cc95bbbfc6e0a3_LowRes.png
rename to packages/walkthrough/steps/18/assets/loiofbc48e23cc7d45e393cc95bbbfc6e0a3_LowRes.png
diff --git a/steps/18/package.json b/packages/walkthrough/steps/18/package.json
similarity index 92%
rename from steps/18/package.json
rename to packages/walkthrough/steps/18/package.json
index 5bae0f064..cdddf4a84 100644
--- a/steps/18/package.json
+++ b/packages/walkthrough/steps/18/package.json
@@ -8,7 +8,7 @@
"start": "ui5 serve -o index.html"
},
"devDependencies": {
- "@types/openui5": "^1.142.0",
+ "@types/openui5": "^1.145.0",
"@ui5/cli": "^4.0.51",
"typescript": "^5.9.3",
"ui5-middleware-livereload": "^3.3.0",
diff --git a/steps/18/tsconfig.json b/packages/walkthrough/steps/18/tsconfig.json
similarity index 100%
rename from steps/18/tsconfig.json
rename to packages/walkthrough/steps/18/tsconfig.json
diff --git a/packages/walkthrough/steps/18/ui5.yaml b/packages/walkthrough/steps/18/ui5.yaml
new file mode 100644
index 000000000..dfa185033
--- /dev/null
+++ b/packages/walkthrough/steps/18/ui5.yaml
@@ -0,0 +1,23 @@
+specVersion: '3.0'
+metadata:
+ name: "ui5.walkthrough"
+type: application
+framework:
+ name: OpenUI5
+ version: "1.145.1"
+ libraries:
+ - name: sap.m
+ - name: sap.ui.core
+ - name: themelib_sap_horizon
+builder:
+ customTasks:
+ - name: ui5-tooling-transpile-task
+ afterTask: replaceVersion
+server:
+ customMiddleware:
+ - name: ui5-tooling-transpile-middleware
+ afterMiddleware: compression
+ - name: ui5-middleware-serveframework
+ afterMiddleware: compression
+ - name: ui5-middleware-livereload
+ afterMiddleware: compression
diff --git a/steps/18/webapp/Component.ts b/packages/walkthrough/steps/18/webapp/Component.ts
similarity index 100%
rename from steps/18/webapp/Component.ts
rename to packages/walkthrough/steps/18/webapp/Component.ts
diff --git a/steps/18/webapp/controller/App.controller.ts b/packages/walkthrough/steps/18/webapp/controller/App.controller.ts
similarity index 100%
rename from steps/18/webapp/controller/App.controller.ts
rename to packages/walkthrough/steps/18/webapp/controller/App.controller.ts
diff --git a/steps/18/webapp/controller/HelloPanel.controller.ts b/packages/walkthrough/steps/18/webapp/controller/HelloPanel.controller.ts
similarity index 100%
rename from steps/18/webapp/controller/HelloPanel.controller.ts
rename to packages/walkthrough/steps/18/webapp/controller/HelloPanel.controller.ts
diff --git a/steps/18/webapp/css/style.css b/packages/walkthrough/steps/18/webapp/css/style.css
similarity index 100%
rename from steps/18/webapp/css/style.css
rename to packages/walkthrough/steps/18/webapp/css/style.css
diff --git a/steps/18/webapp/i18n/i18n.properties b/packages/walkthrough/steps/18/webapp/i18n/i18n.properties
similarity index 100%
rename from steps/18/webapp/i18n/i18n.properties
rename to packages/walkthrough/steps/18/webapp/i18n/i18n.properties
diff --git a/steps/18/webapp/index-cdn.html b/packages/walkthrough/steps/18/webapp/index-cdn.html
similarity index 100%
rename from steps/18/webapp/index-cdn.html
rename to packages/walkthrough/steps/18/webapp/index-cdn.html
diff --git a/steps/18/webapp/index.html b/packages/walkthrough/steps/18/webapp/index.html
similarity index 100%
rename from steps/18/webapp/index.html
rename to packages/walkthrough/steps/18/webapp/index.html
diff --git a/steps/18/webapp/manifest.json b/packages/walkthrough/steps/18/webapp/manifest.json
similarity index 100%
rename from steps/18/webapp/manifest.json
rename to packages/walkthrough/steps/18/webapp/manifest.json
diff --git a/steps/18/webapp/view/App.view.xml b/packages/walkthrough/steps/18/webapp/view/App.view.xml
similarity index 100%
rename from steps/18/webapp/view/App.view.xml
rename to packages/walkthrough/steps/18/webapp/view/App.view.xml
diff --git a/steps/18/webapp/view/HelloDialog.fragment.xml b/packages/walkthrough/steps/18/webapp/view/HelloDialog.fragment.xml
similarity index 100%
rename from steps/18/webapp/view/HelloDialog.fragment.xml
rename to packages/walkthrough/steps/18/webapp/view/HelloDialog.fragment.xml
diff --git a/steps/18/webapp/view/HelloPanel.view.xml b/packages/walkthrough/steps/18/webapp/view/HelloPanel.view.xml
similarity index 100%
rename from steps/18/webapp/view/HelloPanel.view.xml
rename to packages/walkthrough/steps/18/webapp/view/HelloPanel.view.xml
diff --git a/steps/19/README.md b/packages/walkthrough/steps/19/README.md
similarity index 98%
rename from steps/19/README.md
rename to packages/walkthrough/steps/19/README.md
index 125da14ef..dfd1a070b 100644
--- a/steps/19/README.md
+++ b/packages/walkthrough/steps/19/README.md
@@ -11,7 +11,7 @@ Now that we have established a good structure for our app, it's time to add some
*A list of invoices is displayed below the panel*
-You can access the live preview by clicking on this link: [π Live Preview of Step 19](https://sap-samples.github.io/ui5-typescript-walkthrough/build/19/index-cdn.html).
+You can access the live preview by clicking on this link: [π Live Preview of Step 19](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/build/19/index-cdn.html).
***
@@ -19,13 +19,13 @@ You can access the live preview by clicking on this link: [π Live Preview of
-You can download the solution for this step here: [π₯ Download step 19](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-19.zip).
+You can download the solution for this step here: [π₯ Download step 19](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-19.zip).
-You can download the solution for this step here: [π₯ Download step 19](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-19-js.zip).
+You can download the solution for this step here: [π₯ Download step 19](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-19-js.zip).
***
@@ -219,4 +219,4 @@ In the app view we add a second view and assign it to our newly created InvoiceL
[API Reference: sap.m.List](https://sdk.openui5.org/#/api/sap.m.List)
-[Samples: sap.m.List](https://sdk.openui5.org/#/entity/sap.m.List)
\ No newline at end of file
+[Samples: sap.m.List](https://sdk.openui5.org/#/entity/sap.m.List)
diff --git a/steps/19/assets/loiob05bdb47393b4abda3e1b54498959c38_LowRes.png b/packages/walkthrough/steps/19/assets/loiob05bdb47393b4abda3e1b54498959c38_LowRes.png
similarity index 100%
rename from steps/19/assets/loiob05bdb47393b4abda3e1b54498959c38_LowRes.png
rename to packages/walkthrough/steps/19/assets/loiob05bdb47393b4abda3e1b54498959c38_LowRes.png
diff --git a/steps/19/package.json b/packages/walkthrough/steps/19/package.json
similarity index 93%
rename from steps/19/package.json
rename to packages/walkthrough/steps/19/package.json
index e0e8e8a14..b812dbb55 100644
--- a/steps/19/package.json
+++ b/packages/walkthrough/steps/19/package.json
@@ -8,7 +8,7 @@
"start": "ui5 serve -o index.html"
},
"devDependencies": {
- "@types/openui5": "^1.142.0",
+ "@types/openui5": "^1.145.0",
"@ui5/cli": "^4.0.51",
"typescript": "^5.9.3",
"ui5-middleware-livereload": "^3.3.0",
diff --git a/steps/19/tsconfig.json b/packages/walkthrough/steps/19/tsconfig.json
similarity index 100%
rename from steps/19/tsconfig.json
rename to packages/walkthrough/steps/19/tsconfig.json
diff --git a/packages/walkthrough/steps/19/ui5.yaml b/packages/walkthrough/steps/19/ui5.yaml
new file mode 100644
index 000000000..dfa185033
--- /dev/null
+++ b/packages/walkthrough/steps/19/ui5.yaml
@@ -0,0 +1,23 @@
+specVersion: '3.0'
+metadata:
+ name: "ui5.walkthrough"
+type: application
+framework:
+ name: OpenUI5
+ version: "1.145.1"
+ libraries:
+ - name: sap.m
+ - name: sap.ui.core
+ - name: themelib_sap_horizon
+builder:
+ customTasks:
+ - name: ui5-tooling-transpile-task
+ afterTask: replaceVersion
+server:
+ customMiddleware:
+ - name: ui5-tooling-transpile-middleware
+ afterMiddleware: compression
+ - name: ui5-middleware-serveframework
+ afterMiddleware: compression
+ - name: ui5-middleware-livereload
+ afterMiddleware: compression
diff --git a/steps/19/webapp/Component.ts b/packages/walkthrough/steps/19/webapp/Component.ts
similarity index 100%
rename from steps/19/webapp/Component.ts
rename to packages/walkthrough/steps/19/webapp/Component.ts
diff --git a/steps/19/webapp/controller/App.controller.ts b/packages/walkthrough/steps/19/webapp/controller/App.controller.ts
similarity index 100%
rename from steps/19/webapp/controller/App.controller.ts
rename to packages/walkthrough/steps/19/webapp/controller/App.controller.ts
diff --git a/steps/19/webapp/controller/HelloPanel.controller.ts b/packages/walkthrough/steps/19/webapp/controller/HelloPanel.controller.ts
similarity index 100%
rename from steps/19/webapp/controller/HelloPanel.controller.ts
rename to packages/walkthrough/steps/19/webapp/controller/HelloPanel.controller.ts
diff --git a/steps/19/webapp/css/style.css b/packages/walkthrough/steps/19/webapp/css/style.css
similarity index 100%
rename from steps/19/webapp/css/style.css
rename to packages/walkthrough/steps/19/webapp/css/style.css
diff --git a/steps/19/webapp/i18n/i18n.properties b/packages/walkthrough/steps/19/webapp/i18n/i18n.properties
similarity index 100%
rename from steps/19/webapp/i18n/i18n.properties
rename to packages/walkthrough/steps/19/webapp/i18n/i18n.properties
diff --git a/steps/19/webapp/index-cdn.html b/packages/walkthrough/steps/19/webapp/index-cdn.html
similarity index 100%
rename from steps/19/webapp/index-cdn.html
rename to packages/walkthrough/steps/19/webapp/index-cdn.html
diff --git a/steps/19/webapp/index.html b/packages/walkthrough/steps/19/webapp/index.html
similarity index 100%
rename from steps/19/webapp/index.html
rename to packages/walkthrough/steps/19/webapp/index.html
diff --git a/steps/19/webapp/manifest.json b/packages/walkthrough/steps/19/webapp/manifest.json
similarity index 100%
rename from steps/19/webapp/manifest.json
rename to packages/walkthrough/steps/19/webapp/manifest.json
diff --git a/steps/19/webapp/model/localInvoices.json b/packages/walkthrough/steps/19/webapp/model/localInvoices.json
similarity index 100%
rename from steps/19/webapp/model/localInvoices.json
rename to packages/walkthrough/steps/19/webapp/model/localInvoices.json
diff --git a/steps/19/webapp/view/App.view.xml b/packages/walkthrough/steps/19/webapp/view/App.view.xml
similarity index 100%
rename from steps/19/webapp/view/App.view.xml
rename to packages/walkthrough/steps/19/webapp/view/App.view.xml
diff --git a/steps/19/webapp/view/HelloDialog.fragment.xml b/packages/walkthrough/steps/19/webapp/view/HelloDialog.fragment.xml
similarity index 100%
rename from steps/19/webapp/view/HelloDialog.fragment.xml
rename to packages/walkthrough/steps/19/webapp/view/HelloDialog.fragment.xml
diff --git a/steps/19/webapp/view/HelloPanel.view.xml b/packages/walkthrough/steps/19/webapp/view/HelloPanel.view.xml
similarity index 100%
rename from steps/19/webapp/view/HelloPanel.view.xml
rename to packages/walkthrough/steps/19/webapp/view/HelloPanel.view.xml
diff --git a/steps/19/webapp/view/InvoiceList.view.xml b/packages/walkthrough/steps/19/webapp/view/InvoiceList.view.xml
similarity index 100%
rename from steps/19/webapp/view/InvoiceList.view.xml
rename to packages/walkthrough/steps/19/webapp/view/InvoiceList.view.xml
diff --git a/steps/20/README.md b/packages/walkthrough/steps/20/README.md
similarity index 98%
rename from steps/20/README.md
rename to packages/walkthrough/steps/20/README.md
index 789eae0e1..0c77b6b2b 100644
--- a/steps/20/README.md
+++ b/packages/walkthrough/steps/20/README.md
@@ -12,20 +12,20 @@ The list of invoices is already looking nice, but what is an invoice without a p
*The list of invoices with prices and number units*
-You can access the live preview by clicking on this link: [π Live Preview of Step 20](https://sap-samples.github.io/ui5-typescript-walkthrough/build/20/index-cdn.html).
+You can access the live preview by clicking on this link: [π Live Preview of Step 20](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/build/20/index-cdn.html).
***
### Coding
-You can download the solution for this step here: [π₯ Download step 20](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-20.zip).
+You can download the solution for this step here: [π₯ Download step 20](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-20.zip).
-You can download the solution for this step here: [π₯ Download step 20](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-20-js.zip).
+You can download the solution for this step here: [π₯ Download step 20](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-20-js.zip).
***
diff --git a/steps/20/assets/loiodc9e919119564ddab78b8d0550ecfa9b_LowRes.png b/packages/walkthrough/steps/20/assets/loiodc9e919119564ddab78b8d0550ecfa9b_LowRes.png
similarity index 100%
rename from steps/20/assets/loiodc9e919119564ddab78b8d0550ecfa9b_LowRes.png
rename to packages/walkthrough/steps/20/assets/loiodc9e919119564ddab78b8d0550ecfa9b_LowRes.png
diff --git a/steps/20/package.json b/packages/walkthrough/steps/20/package.json
similarity index 92%
rename from steps/20/package.json
rename to packages/walkthrough/steps/20/package.json
index 72ee12d57..d76439b0d 100644
--- a/steps/20/package.json
+++ b/packages/walkthrough/steps/20/package.json
@@ -8,7 +8,7 @@
"start": "ui5 serve -o index.html"
},
"devDependencies": {
- "@types/openui5": "^1.142.0",
+ "@types/openui5": "^1.145.0",
"@ui5/cli": "^4.0.51",
"typescript": "^5.9.3",
"ui5-middleware-livereload": "^3.3.0",
diff --git a/steps/20/tsconfig.json b/packages/walkthrough/steps/20/tsconfig.json
similarity index 100%
rename from steps/20/tsconfig.json
rename to packages/walkthrough/steps/20/tsconfig.json
diff --git a/packages/walkthrough/steps/20/ui5.yaml b/packages/walkthrough/steps/20/ui5.yaml
new file mode 100644
index 000000000..dfa185033
--- /dev/null
+++ b/packages/walkthrough/steps/20/ui5.yaml
@@ -0,0 +1,23 @@
+specVersion: '3.0'
+metadata:
+ name: "ui5.walkthrough"
+type: application
+framework:
+ name: OpenUI5
+ version: "1.145.1"
+ libraries:
+ - name: sap.m
+ - name: sap.ui.core
+ - name: themelib_sap_horizon
+builder:
+ customTasks:
+ - name: ui5-tooling-transpile-task
+ afterTask: replaceVersion
+server:
+ customMiddleware:
+ - name: ui5-tooling-transpile-middleware
+ afterMiddleware: compression
+ - name: ui5-middleware-serveframework
+ afterMiddleware: compression
+ - name: ui5-middleware-livereload
+ afterMiddleware: compression
diff --git a/steps/20/webapp/Component.ts b/packages/walkthrough/steps/20/webapp/Component.ts
similarity index 100%
rename from steps/20/webapp/Component.ts
rename to packages/walkthrough/steps/20/webapp/Component.ts
diff --git a/steps/20/webapp/controller/App.controller.ts b/packages/walkthrough/steps/20/webapp/controller/App.controller.ts
similarity index 100%
rename from steps/20/webapp/controller/App.controller.ts
rename to packages/walkthrough/steps/20/webapp/controller/App.controller.ts
diff --git a/steps/20/webapp/controller/HelloPanel.controller.ts b/packages/walkthrough/steps/20/webapp/controller/HelloPanel.controller.ts
similarity index 100%
rename from steps/20/webapp/controller/HelloPanel.controller.ts
rename to packages/walkthrough/steps/20/webapp/controller/HelloPanel.controller.ts
diff --git a/steps/20/webapp/controller/InvoiceList.controller.ts b/packages/walkthrough/steps/20/webapp/controller/InvoiceList.controller.ts
similarity index 100%
rename from steps/20/webapp/controller/InvoiceList.controller.ts
rename to packages/walkthrough/steps/20/webapp/controller/InvoiceList.controller.ts
diff --git a/steps/20/webapp/css/style.css b/packages/walkthrough/steps/20/webapp/css/style.css
similarity index 100%
rename from steps/20/webapp/css/style.css
rename to packages/walkthrough/steps/20/webapp/css/style.css
diff --git a/steps/20/webapp/i18n/i18n.properties b/packages/walkthrough/steps/20/webapp/i18n/i18n.properties
similarity index 100%
rename from steps/20/webapp/i18n/i18n.properties
rename to packages/walkthrough/steps/20/webapp/i18n/i18n.properties
diff --git a/steps/20/webapp/index-cdn.html b/packages/walkthrough/steps/20/webapp/index-cdn.html
similarity index 100%
rename from steps/20/webapp/index-cdn.html
rename to packages/walkthrough/steps/20/webapp/index-cdn.html
diff --git a/steps/20/webapp/index.html b/packages/walkthrough/steps/20/webapp/index.html
similarity index 100%
rename from steps/20/webapp/index.html
rename to packages/walkthrough/steps/20/webapp/index.html
diff --git a/steps/20/webapp/manifest.json b/packages/walkthrough/steps/20/webapp/manifest.json
similarity index 100%
rename from steps/20/webapp/manifest.json
rename to packages/walkthrough/steps/20/webapp/manifest.json
diff --git a/steps/20/webapp/model/localInvoices.json b/packages/walkthrough/steps/20/webapp/model/localInvoices.json
similarity index 100%
rename from steps/20/webapp/model/localInvoices.json
rename to packages/walkthrough/steps/20/webapp/model/localInvoices.json
diff --git a/steps/20/webapp/view/App.view.xml b/packages/walkthrough/steps/20/webapp/view/App.view.xml
similarity index 100%
rename from steps/20/webapp/view/App.view.xml
rename to packages/walkthrough/steps/20/webapp/view/App.view.xml
diff --git a/steps/20/webapp/view/HelloDialog.fragment.xml b/packages/walkthrough/steps/20/webapp/view/HelloDialog.fragment.xml
similarity index 100%
rename from steps/20/webapp/view/HelloDialog.fragment.xml
rename to packages/walkthrough/steps/20/webapp/view/HelloDialog.fragment.xml
diff --git a/steps/20/webapp/view/HelloPanel.view.xml b/packages/walkthrough/steps/20/webapp/view/HelloPanel.view.xml
similarity index 100%
rename from steps/20/webapp/view/HelloPanel.view.xml
rename to packages/walkthrough/steps/20/webapp/view/HelloPanel.view.xml
diff --git a/steps/20/webapp/view/InvoiceList.view.xml b/packages/walkthrough/steps/20/webapp/view/InvoiceList.view.xml
similarity index 100%
rename from steps/20/webapp/view/InvoiceList.view.xml
rename to packages/walkthrough/steps/20/webapp/view/InvoiceList.view.xml
diff --git a/steps/21/README.md b/packages/walkthrough/steps/21/README.md
similarity index 96%
rename from steps/21/README.md
rename to packages/walkthrough/steps/21/README.md
index fe9065167..ee5ed1c55 100644
--- a/steps/21/README.md
+++ b/packages/walkthrough/steps/21/README.md
@@ -12,7 +12,7 @@ Sometimes the predefined types of OpenUI5 are not flexible enough and you want t
*The price is now formatted according to its number*
-You can access the live preview by clicking on this link: [π Live Preview of Step 21](https://sap-samples.github.io/ui5-typescript-walkthrough/build/21/index-cdn.html).
+You can access the live preview by clicking on this link: [π Live Preview of Step 21](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/build/21/index-cdn.html).
***
@@ -20,13 +20,13 @@ You can access the live preview by clicking on this link: [π Live Preview of
-You can download the solution for this step here: [π₯ Download step 21](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-21.zip).
+You can download the solution for this step here: [π₯ Download step 21](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-21.zip).
-You can download the solution for this step here: [π₯ Download step 21](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-21-js.zip).
+You can download the solution for this step here: [π₯ Download step 21](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-21-js.zip).
***
diff --git a/steps/21/assets/loio636b7008113442c8a4765bb710dd8ea9_LowRes.png b/packages/walkthrough/steps/21/assets/loio636b7008113442c8a4765bb710dd8ea9_LowRes.png
similarity index 100%
rename from steps/21/assets/loio636b7008113442c8a4765bb710dd8ea9_LowRes.png
rename to packages/walkthrough/steps/21/assets/loio636b7008113442c8a4765bb710dd8ea9_LowRes.png
diff --git a/steps/21/package.json b/packages/walkthrough/steps/21/package.json
similarity index 93%
rename from steps/21/package.json
rename to packages/walkthrough/steps/21/package.json
index dac5d7527..47fc74e13 100644
--- a/steps/21/package.json
+++ b/packages/walkthrough/steps/21/package.json
@@ -8,7 +8,7 @@
"start": "ui5 serve -o index.html"
},
"devDependencies": {
- "@types/openui5": "^1.142.0",
+ "@types/openui5": "^1.145.0",
"@ui5/cli": "^4.0.51",
"typescript": "^5.9.3",
"ui5-middleware-livereload": "^3.3.0",
diff --git a/steps/21/tsconfig.json b/packages/walkthrough/steps/21/tsconfig.json
similarity index 100%
rename from steps/21/tsconfig.json
rename to packages/walkthrough/steps/21/tsconfig.json
diff --git a/packages/walkthrough/steps/21/ui5.yaml b/packages/walkthrough/steps/21/ui5.yaml
new file mode 100644
index 000000000..dfa185033
--- /dev/null
+++ b/packages/walkthrough/steps/21/ui5.yaml
@@ -0,0 +1,23 @@
+specVersion: '3.0'
+metadata:
+ name: "ui5.walkthrough"
+type: application
+framework:
+ name: OpenUI5
+ version: "1.145.1"
+ libraries:
+ - name: sap.m
+ - name: sap.ui.core
+ - name: themelib_sap_horizon
+builder:
+ customTasks:
+ - name: ui5-tooling-transpile-task
+ afterTask: replaceVersion
+server:
+ customMiddleware:
+ - name: ui5-tooling-transpile-middleware
+ afterMiddleware: compression
+ - name: ui5-middleware-serveframework
+ afterMiddleware: compression
+ - name: ui5-middleware-livereload
+ afterMiddleware: compression
diff --git a/steps/21/webapp/Component.ts b/packages/walkthrough/steps/21/webapp/Component.ts
similarity index 100%
rename from steps/21/webapp/Component.ts
rename to packages/walkthrough/steps/21/webapp/Component.ts
diff --git a/steps/21/webapp/controller/App.controller.ts b/packages/walkthrough/steps/21/webapp/controller/App.controller.ts
similarity index 100%
rename from steps/21/webapp/controller/App.controller.ts
rename to packages/walkthrough/steps/21/webapp/controller/App.controller.ts
diff --git a/steps/21/webapp/controller/HelloPanel.controller.ts b/packages/walkthrough/steps/21/webapp/controller/HelloPanel.controller.ts
similarity index 100%
rename from steps/21/webapp/controller/HelloPanel.controller.ts
rename to packages/walkthrough/steps/21/webapp/controller/HelloPanel.controller.ts
diff --git a/steps/21/webapp/controller/InvoiceList.controller.ts b/packages/walkthrough/steps/21/webapp/controller/InvoiceList.controller.ts
similarity index 100%
rename from steps/21/webapp/controller/InvoiceList.controller.ts
rename to packages/walkthrough/steps/21/webapp/controller/InvoiceList.controller.ts
diff --git a/steps/21/webapp/css/style.css b/packages/walkthrough/steps/21/webapp/css/style.css
similarity index 100%
rename from steps/21/webapp/css/style.css
rename to packages/walkthrough/steps/21/webapp/css/style.css
diff --git a/steps/21/webapp/i18n/i18n.properties b/packages/walkthrough/steps/21/webapp/i18n/i18n.properties
similarity index 100%
rename from steps/21/webapp/i18n/i18n.properties
rename to packages/walkthrough/steps/21/webapp/i18n/i18n.properties
diff --git a/steps/21/webapp/index-cdn.html b/packages/walkthrough/steps/21/webapp/index-cdn.html
similarity index 100%
rename from steps/21/webapp/index-cdn.html
rename to packages/walkthrough/steps/21/webapp/index-cdn.html
diff --git a/steps/21/webapp/index.html b/packages/walkthrough/steps/21/webapp/index.html
similarity index 100%
rename from steps/21/webapp/index.html
rename to packages/walkthrough/steps/21/webapp/index.html
diff --git a/steps/21/webapp/manifest.json b/packages/walkthrough/steps/21/webapp/manifest.json
similarity index 100%
rename from steps/21/webapp/manifest.json
rename to packages/walkthrough/steps/21/webapp/manifest.json
diff --git a/steps/21/webapp/model/localInvoices.json b/packages/walkthrough/steps/21/webapp/model/localInvoices.json
similarity index 100%
rename from steps/21/webapp/model/localInvoices.json
rename to packages/walkthrough/steps/21/webapp/model/localInvoices.json
diff --git a/steps/21/webapp/view/App.view.xml b/packages/walkthrough/steps/21/webapp/view/App.view.xml
similarity index 100%
rename from steps/21/webapp/view/App.view.xml
rename to packages/walkthrough/steps/21/webapp/view/App.view.xml
diff --git a/steps/21/webapp/view/HelloDialog.fragment.xml b/packages/walkthrough/steps/21/webapp/view/HelloDialog.fragment.xml
similarity index 100%
rename from steps/21/webapp/view/HelloDialog.fragment.xml
rename to packages/walkthrough/steps/21/webapp/view/HelloDialog.fragment.xml
diff --git a/steps/21/webapp/view/HelloPanel.view.xml b/packages/walkthrough/steps/21/webapp/view/HelloPanel.view.xml
similarity index 100%
rename from steps/21/webapp/view/HelloPanel.view.xml
rename to packages/walkthrough/steps/21/webapp/view/HelloPanel.view.xml
diff --git a/steps/21/webapp/view/InvoiceList.view.xml b/packages/walkthrough/steps/21/webapp/view/InvoiceList.view.xml
similarity index 100%
rename from steps/21/webapp/view/InvoiceList.view.xml
rename to packages/walkthrough/steps/21/webapp/view/InvoiceList.view.xml
diff --git a/steps/22/README.md b/packages/walkthrough/steps/22/README.md
similarity index 98%
rename from steps/22/README.md
rename to packages/walkthrough/steps/22/README.md
index 31c095733..99ed8d601 100644
--- a/steps/22/README.md
+++ b/packages/walkthrough/steps/22/README.md
@@ -12,7 +12,7 @@ If we want to do a more complex logic for formatting properties of our data mode
*A status is now displayed with a custom formatter*
-You can access the live preview by clicking on this link: [π Live Preview of Step 22](https://sap-samples.github.io/ui5-typescript-walkthrough/build/22/index-cdn.html).
+You can access the live preview by clicking on this link: [π Live Preview of Step 22](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/build/22/index-cdn.html).
***
@@ -20,13 +20,13 @@ You can access the live preview by clicking on this link: [π Live Preview of
-You can download the solution for this step here: [π₯ Download step 22](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-22.zip).
+You can download the solution for this step here: [π₯ Download step 22](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-22.zip).
-You can download the solution for this step here: [π₯ Download step 22](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-22-js.zip).
+You can download the solution for this step here: [π₯ Download step 22](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-22-js.zip).
***
diff --git a/steps/22/assets/loio7aa185a90dd7495cb6ec30c96bc80a54_LowRes.png b/packages/walkthrough/steps/22/assets/loio7aa185a90dd7495cb6ec30c96bc80a54_LowRes.png
similarity index 100%
rename from steps/22/assets/loio7aa185a90dd7495cb6ec30c96bc80a54_LowRes.png
rename to packages/walkthrough/steps/22/assets/loio7aa185a90dd7495cb6ec30c96bc80a54_LowRes.png
diff --git a/steps/22/package.json b/packages/walkthrough/steps/22/package.json
similarity index 93%
rename from steps/22/package.json
rename to packages/walkthrough/steps/22/package.json
index 9acce5d9c..6220c83a1 100644
--- a/steps/22/package.json
+++ b/packages/walkthrough/steps/22/package.json
@@ -8,7 +8,7 @@
"start": "ui5 serve -o index.html"
},
"devDependencies": {
- "@types/openui5": "^1.142.0",
+ "@types/openui5": "^1.145.0",
"@ui5/cli": "^4.0.51",
"typescript": "^5.9.3",
"ui5-middleware-livereload": "^3.3.0",
diff --git a/steps/22/tsconfig.json b/packages/walkthrough/steps/22/tsconfig.json
similarity index 100%
rename from steps/22/tsconfig.json
rename to packages/walkthrough/steps/22/tsconfig.json
diff --git a/packages/walkthrough/steps/22/ui5.yaml b/packages/walkthrough/steps/22/ui5.yaml
new file mode 100644
index 000000000..dfa185033
--- /dev/null
+++ b/packages/walkthrough/steps/22/ui5.yaml
@@ -0,0 +1,23 @@
+specVersion: '3.0'
+metadata:
+ name: "ui5.walkthrough"
+type: application
+framework:
+ name: OpenUI5
+ version: "1.145.1"
+ libraries:
+ - name: sap.m
+ - name: sap.ui.core
+ - name: themelib_sap_horizon
+builder:
+ customTasks:
+ - name: ui5-tooling-transpile-task
+ afterTask: replaceVersion
+server:
+ customMiddleware:
+ - name: ui5-tooling-transpile-middleware
+ afterMiddleware: compression
+ - name: ui5-middleware-serveframework
+ afterMiddleware: compression
+ - name: ui5-middleware-livereload
+ afterMiddleware: compression
diff --git a/steps/22/webapp/Component.ts b/packages/walkthrough/steps/22/webapp/Component.ts
similarity index 100%
rename from steps/22/webapp/Component.ts
rename to packages/walkthrough/steps/22/webapp/Component.ts
diff --git a/steps/22/webapp/controller/App.controller.ts b/packages/walkthrough/steps/22/webapp/controller/App.controller.ts
similarity index 100%
rename from steps/22/webapp/controller/App.controller.ts
rename to packages/walkthrough/steps/22/webapp/controller/App.controller.ts
diff --git a/steps/22/webapp/controller/HelloPanel.controller.ts b/packages/walkthrough/steps/22/webapp/controller/HelloPanel.controller.ts
similarity index 100%
rename from steps/22/webapp/controller/HelloPanel.controller.ts
rename to packages/walkthrough/steps/22/webapp/controller/HelloPanel.controller.ts
diff --git a/steps/22/webapp/controller/InvoiceList.controller.ts b/packages/walkthrough/steps/22/webapp/controller/InvoiceList.controller.ts
similarity index 100%
rename from steps/22/webapp/controller/InvoiceList.controller.ts
rename to packages/walkthrough/steps/22/webapp/controller/InvoiceList.controller.ts
diff --git a/steps/22/webapp/css/style.css b/packages/walkthrough/steps/22/webapp/css/style.css
similarity index 100%
rename from steps/22/webapp/css/style.css
rename to packages/walkthrough/steps/22/webapp/css/style.css
diff --git a/steps/22/webapp/i18n/i18n.properties b/packages/walkthrough/steps/22/webapp/i18n/i18n.properties
similarity index 100%
rename from steps/22/webapp/i18n/i18n.properties
rename to packages/walkthrough/steps/22/webapp/i18n/i18n.properties
diff --git a/steps/22/webapp/index-cdn.html b/packages/walkthrough/steps/22/webapp/index-cdn.html
similarity index 100%
rename from steps/22/webapp/index-cdn.html
rename to packages/walkthrough/steps/22/webapp/index-cdn.html
diff --git a/steps/22/webapp/index.html b/packages/walkthrough/steps/22/webapp/index.html
similarity index 100%
rename from steps/22/webapp/index.html
rename to packages/walkthrough/steps/22/webapp/index.html
diff --git a/steps/22/webapp/manifest.json b/packages/walkthrough/steps/22/webapp/manifest.json
similarity index 100%
rename from steps/22/webapp/manifest.json
rename to packages/walkthrough/steps/22/webapp/manifest.json
diff --git a/steps/22/webapp/model/formatter.ts b/packages/walkthrough/steps/22/webapp/model/formatter.ts
similarity index 100%
rename from steps/22/webapp/model/formatter.ts
rename to packages/walkthrough/steps/22/webapp/model/formatter.ts
diff --git a/steps/22/webapp/model/localInvoices.json b/packages/walkthrough/steps/22/webapp/model/localInvoices.json
similarity index 100%
rename from steps/22/webapp/model/localInvoices.json
rename to packages/walkthrough/steps/22/webapp/model/localInvoices.json
diff --git a/steps/22/webapp/view/App.view.xml b/packages/walkthrough/steps/22/webapp/view/App.view.xml
similarity index 100%
rename from steps/22/webapp/view/App.view.xml
rename to packages/walkthrough/steps/22/webapp/view/App.view.xml
diff --git a/steps/22/webapp/view/HelloDialog.fragment.xml b/packages/walkthrough/steps/22/webapp/view/HelloDialog.fragment.xml
similarity index 100%
rename from steps/22/webapp/view/HelloDialog.fragment.xml
rename to packages/walkthrough/steps/22/webapp/view/HelloDialog.fragment.xml
diff --git a/steps/22/webapp/view/HelloPanel.view.xml b/packages/walkthrough/steps/22/webapp/view/HelloPanel.view.xml
similarity index 100%
rename from steps/22/webapp/view/HelloPanel.view.xml
rename to packages/walkthrough/steps/22/webapp/view/HelloPanel.view.xml
diff --git a/steps/22/webapp/view/InvoiceList.view.xml b/packages/walkthrough/steps/22/webapp/view/InvoiceList.view.xml
similarity index 100%
rename from steps/22/webapp/view/InvoiceList.view.xml
rename to packages/walkthrough/steps/22/webapp/view/InvoiceList.view.xml
diff --git a/steps/23/README.md b/packages/walkthrough/steps/23/README.md
similarity index 98%
rename from steps/23/README.md
rename to packages/walkthrough/steps/23/README.md
index 26bdcfdf7..f0bb18d91 100644
--- a/steps/23/README.md
+++ b/packages/walkthrough/steps/23/README.md
@@ -12,7 +12,7 @@ In this step, we add a search field for our product list and define a filter tha
*A search field is displayed above the list*
-You can access the live preview by clicking on this link: [π Live Preview of Step 23](https://sap-samples.github.io/ui5-typescript-walkthrough/build/23/index-cdn.html).
+You can access the live preview by clicking on this link: [π Live Preview of Step 23](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/build/23/index-cdn.html).
***
@@ -20,13 +20,13 @@ You can access the live preview by clicking on this link: [π Live Preview of
-You can download the solution for this step here: [π₯ Download step 23](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-23.zip).
+You can download the solution for this step here: [π₯ Download step 23](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-23.zip).
-You can download the solution for this step here: [π₯ Download step 23](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-23-js.zip).
+You can download the solution for this step here: [π₯ Download step 23](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-23-js.zip).
***
diff --git a/steps/23/assets/loio472ab6bf88674c23ba103efd97163133_LowRes.png b/packages/walkthrough/steps/23/assets/loio472ab6bf88674c23ba103efd97163133_LowRes.png
similarity index 100%
rename from steps/23/assets/loio472ab6bf88674c23ba103efd97163133_LowRes.png
rename to packages/walkthrough/steps/23/assets/loio472ab6bf88674c23ba103efd97163133_LowRes.png
diff --git a/steps/23/package.json b/packages/walkthrough/steps/23/package.json
similarity index 92%
rename from steps/23/package.json
rename to packages/walkthrough/steps/23/package.json
index 171eac625..d5f715afa 100644
--- a/steps/23/package.json
+++ b/packages/walkthrough/steps/23/package.json
@@ -8,7 +8,7 @@
"start": "ui5 serve -o index.html"
},
"devDependencies": {
- "@types/openui5": "^1.142.0",
+ "@types/openui5": "^1.145.0",
"@ui5/cli": "^4.0.51",
"typescript": "^5.9.3",
"ui5-middleware-livereload": "^3.3.0",
diff --git a/steps/23/tsconfig.json b/packages/walkthrough/steps/23/tsconfig.json
similarity index 100%
rename from steps/23/tsconfig.json
rename to packages/walkthrough/steps/23/tsconfig.json
diff --git a/packages/walkthrough/steps/23/ui5.yaml b/packages/walkthrough/steps/23/ui5.yaml
new file mode 100644
index 000000000..dfa185033
--- /dev/null
+++ b/packages/walkthrough/steps/23/ui5.yaml
@@ -0,0 +1,23 @@
+specVersion: '3.0'
+metadata:
+ name: "ui5.walkthrough"
+type: application
+framework:
+ name: OpenUI5
+ version: "1.145.1"
+ libraries:
+ - name: sap.m
+ - name: sap.ui.core
+ - name: themelib_sap_horizon
+builder:
+ customTasks:
+ - name: ui5-tooling-transpile-task
+ afterTask: replaceVersion
+server:
+ customMiddleware:
+ - name: ui5-tooling-transpile-middleware
+ afterMiddleware: compression
+ - name: ui5-middleware-serveframework
+ afterMiddleware: compression
+ - name: ui5-middleware-livereload
+ afterMiddleware: compression
diff --git a/steps/23/webapp/Component.ts b/packages/walkthrough/steps/23/webapp/Component.ts
similarity index 100%
rename from steps/23/webapp/Component.ts
rename to packages/walkthrough/steps/23/webapp/Component.ts
diff --git a/steps/23/webapp/controller/App.controller.ts b/packages/walkthrough/steps/23/webapp/controller/App.controller.ts
similarity index 100%
rename from steps/23/webapp/controller/App.controller.ts
rename to packages/walkthrough/steps/23/webapp/controller/App.controller.ts
diff --git a/steps/23/webapp/controller/HelloPanel.controller.ts b/packages/walkthrough/steps/23/webapp/controller/HelloPanel.controller.ts
similarity index 100%
rename from steps/23/webapp/controller/HelloPanel.controller.ts
rename to packages/walkthrough/steps/23/webapp/controller/HelloPanel.controller.ts
diff --git a/steps/23/webapp/controller/InvoiceList.controller.ts b/packages/walkthrough/steps/23/webapp/controller/InvoiceList.controller.ts
similarity index 100%
rename from steps/23/webapp/controller/InvoiceList.controller.ts
rename to packages/walkthrough/steps/23/webapp/controller/InvoiceList.controller.ts
diff --git a/steps/23/webapp/css/style.css b/packages/walkthrough/steps/23/webapp/css/style.css
similarity index 100%
rename from steps/23/webapp/css/style.css
rename to packages/walkthrough/steps/23/webapp/css/style.css
diff --git a/steps/23/webapp/i18n/i18n.properties b/packages/walkthrough/steps/23/webapp/i18n/i18n.properties
similarity index 100%
rename from steps/23/webapp/i18n/i18n.properties
rename to packages/walkthrough/steps/23/webapp/i18n/i18n.properties
diff --git a/steps/23/webapp/index-cdn.html b/packages/walkthrough/steps/23/webapp/index-cdn.html
similarity index 100%
rename from steps/23/webapp/index-cdn.html
rename to packages/walkthrough/steps/23/webapp/index-cdn.html
diff --git a/steps/23/webapp/index.html b/packages/walkthrough/steps/23/webapp/index.html
similarity index 100%
rename from steps/23/webapp/index.html
rename to packages/walkthrough/steps/23/webapp/index.html
diff --git a/steps/23/webapp/manifest.json b/packages/walkthrough/steps/23/webapp/manifest.json
similarity index 100%
rename from steps/23/webapp/manifest.json
rename to packages/walkthrough/steps/23/webapp/manifest.json
diff --git a/steps/23/webapp/model/formatter.ts b/packages/walkthrough/steps/23/webapp/model/formatter.ts
similarity index 100%
rename from steps/23/webapp/model/formatter.ts
rename to packages/walkthrough/steps/23/webapp/model/formatter.ts
diff --git a/steps/23/webapp/model/localInvoices.json b/packages/walkthrough/steps/23/webapp/model/localInvoices.json
similarity index 100%
rename from steps/23/webapp/model/localInvoices.json
rename to packages/walkthrough/steps/23/webapp/model/localInvoices.json
diff --git a/steps/23/webapp/view/App.view.xml b/packages/walkthrough/steps/23/webapp/view/App.view.xml
similarity index 100%
rename from steps/23/webapp/view/App.view.xml
rename to packages/walkthrough/steps/23/webapp/view/App.view.xml
diff --git a/steps/23/webapp/view/HelloDialog.fragment.xml b/packages/walkthrough/steps/23/webapp/view/HelloDialog.fragment.xml
similarity index 100%
rename from steps/23/webapp/view/HelloDialog.fragment.xml
rename to packages/walkthrough/steps/23/webapp/view/HelloDialog.fragment.xml
diff --git a/steps/23/webapp/view/HelloPanel.view.xml b/packages/walkthrough/steps/23/webapp/view/HelloPanel.view.xml
similarity index 100%
rename from steps/23/webapp/view/HelloPanel.view.xml
rename to packages/walkthrough/steps/23/webapp/view/HelloPanel.view.xml
diff --git a/steps/23/webapp/view/InvoiceList.view.xml b/packages/walkthrough/steps/23/webapp/view/InvoiceList.view.xml
similarity index 100%
rename from steps/23/webapp/view/InvoiceList.view.xml
rename to packages/walkthrough/steps/23/webapp/view/InvoiceList.view.xml
diff --git a/steps/24/README.md b/packages/walkthrough/steps/24/README.md
similarity index 96%
rename from steps/24/README.md
rename to packages/walkthrough/steps/24/README.md
index 1865a9227..82eafc9e2 100644
--- a/steps/24/README.md
+++ b/packages/walkthrough/steps/24/README.md
@@ -13,7 +13,7 @@ To make our list of invoices even more user-friendly, we sort it alphabetically
*The list is now sorted and grouped by the shipping company*
-You can access the live preview by clicking on this link: [π Live Preview of Step 24](https://sap-samples.github.io/ui5-typescript-walkthrough/build/24/index-cdn.html).
+You can access the live preview by clicking on this link: [π Live Preview of Step 24](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/build/24/index-cdn.html).
***
@@ -21,13 +21,13 @@ You can access the live preview by clicking on this link: [π Live Preview of
-You can download the solution for this step here: [π₯ Download step 24](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-24.zip).
+You can download the solution for this step here: [π₯ Download step 24](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-24.zip).
-You can download the solution for this step here: [π₯ Download step 24](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-24-js.zip).
+You can download the solution for this step here: [π₯ Download step 24](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-24-js.zip).
***
diff --git a/steps/24/assets/loio33f71b44bb644d1fa2a0ab14f1fcc02a_LowRes.png b/packages/walkthrough/steps/24/assets/loio33f71b44bb644d1fa2a0ab14f1fcc02a_LowRes.png
similarity index 100%
rename from steps/24/assets/loio33f71b44bb644d1fa2a0ab14f1fcc02a_LowRes.png
rename to packages/walkthrough/steps/24/assets/loio33f71b44bb644d1fa2a0ab14f1fcc02a_LowRes.png
diff --git a/steps/24/package.json b/packages/walkthrough/steps/24/package.json
similarity index 93%
rename from steps/24/package.json
rename to packages/walkthrough/steps/24/package.json
index dd2226860..5d3c3123a 100644
--- a/steps/24/package.json
+++ b/packages/walkthrough/steps/24/package.json
@@ -8,7 +8,7 @@
"start": "ui5 serve -o index.html"
},
"devDependencies": {
- "@types/openui5": "^1.142.0",
+ "@types/openui5": "^1.145.0",
"@ui5/cli": "^4.0.51",
"typescript": "^5.9.3",
"ui5-middleware-livereload": "^3.3.0",
diff --git a/steps/24/tsconfig.json b/packages/walkthrough/steps/24/tsconfig.json
similarity index 100%
rename from steps/24/tsconfig.json
rename to packages/walkthrough/steps/24/tsconfig.json
diff --git a/packages/walkthrough/steps/24/ui5.yaml b/packages/walkthrough/steps/24/ui5.yaml
new file mode 100644
index 000000000..dfa185033
--- /dev/null
+++ b/packages/walkthrough/steps/24/ui5.yaml
@@ -0,0 +1,23 @@
+specVersion: '3.0'
+metadata:
+ name: "ui5.walkthrough"
+type: application
+framework:
+ name: OpenUI5
+ version: "1.145.1"
+ libraries:
+ - name: sap.m
+ - name: sap.ui.core
+ - name: themelib_sap_horizon
+builder:
+ customTasks:
+ - name: ui5-tooling-transpile-task
+ afterTask: replaceVersion
+server:
+ customMiddleware:
+ - name: ui5-tooling-transpile-middleware
+ afterMiddleware: compression
+ - name: ui5-middleware-serveframework
+ afterMiddleware: compression
+ - name: ui5-middleware-livereload
+ afterMiddleware: compression
diff --git a/steps/24/webapp/Component.ts b/packages/walkthrough/steps/24/webapp/Component.ts
similarity index 100%
rename from steps/24/webapp/Component.ts
rename to packages/walkthrough/steps/24/webapp/Component.ts
diff --git a/steps/24/webapp/controller/App.controller.ts b/packages/walkthrough/steps/24/webapp/controller/App.controller.ts
similarity index 100%
rename from steps/24/webapp/controller/App.controller.ts
rename to packages/walkthrough/steps/24/webapp/controller/App.controller.ts
diff --git a/steps/24/webapp/controller/HelloPanel.controller.ts b/packages/walkthrough/steps/24/webapp/controller/HelloPanel.controller.ts
similarity index 100%
rename from steps/24/webapp/controller/HelloPanel.controller.ts
rename to packages/walkthrough/steps/24/webapp/controller/HelloPanel.controller.ts
diff --git a/steps/24/webapp/controller/InvoiceList.controller.ts b/packages/walkthrough/steps/24/webapp/controller/InvoiceList.controller.ts
similarity index 100%
rename from steps/24/webapp/controller/InvoiceList.controller.ts
rename to packages/walkthrough/steps/24/webapp/controller/InvoiceList.controller.ts
diff --git a/steps/24/webapp/css/style.css b/packages/walkthrough/steps/24/webapp/css/style.css
similarity index 100%
rename from steps/24/webapp/css/style.css
rename to packages/walkthrough/steps/24/webapp/css/style.css
diff --git a/steps/24/webapp/i18n/i18n.properties b/packages/walkthrough/steps/24/webapp/i18n/i18n.properties
similarity index 100%
rename from steps/24/webapp/i18n/i18n.properties
rename to packages/walkthrough/steps/24/webapp/i18n/i18n.properties
diff --git a/steps/24/webapp/index-cdn.html b/packages/walkthrough/steps/24/webapp/index-cdn.html
similarity index 100%
rename from steps/24/webapp/index-cdn.html
rename to packages/walkthrough/steps/24/webapp/index-cdn.html
diff --git a/steps/24/webapp/index.html b/packages/walkthrough/steps/24/webapp/index.html
similarity index 100%
rename from steps/24/webapp/index.html
rename to packages/walkthrough/steps/24/webapp/index.html
diff --git a/steps/24/webapp/manifest.json b/packages/walkthrough/steps/24/webapp/manifest.json
similarity index 100%
rename from steps/24/webapp/manifest.json
rename to packages/walkthrough/steps/24/webapp/manifest.json
diff --git a/steps/24/webapp/model/formatter.ts b/packages/walkthrough/steps/24/webapp/model/formatter.ts
similarity index 100%
rename from steps/24/webapp/model/formatter.ts
rename to packages/walkthrough/steps/24/webapp/model/formatter.ts
diff --git a/steps/24/webapp/model/localInvoices.json b/packages/walkthrough/steps/24/webapp/model/localInvoices.json
similarity index 100%
rename from steps/24/webapp/model/localInvoices.json
rename to packages/walkthrough/steps/24/webapp/model/localInvoices.json
diff --git a/steps/24/webapp/view/App.view.xml b/packages/walkthrough/steps/24/webapp/view/App.view.xml
similarity index 100%
rename from steps/24/webapp/view/App.view.xml
rename to packages/walkthrough/steps/24/webapp/view/App.view.xml
diff --git a/steps/24/webapp/view/HelloDialog.fragment.xml b/packages/walkthrough/steps/24/webapp/view/HelloDialog.fragment.xml
similarity index 100%
rename from steps/24/webapp/view/HelloDialog.fragment.xml
rename to packages/walkthrough/steps/24/webapp/view/HelloDialog.fragment.xml
diff --git a/steps/24/webapp/view/HelloPanel.view.xml b/packages/walkthrough/steps/24/webapp/view/HelloPanel.view.xml
similarity index 100%
rename from steps/24/webapp/view/HelloPanel.view.xml
rename to packages/walkthrough/steps/24/webapp/view/HelloPanel.view.xml
diff --git a/steps/24/webapp/view/InvoiceList.view.xml b/packages/walkthrough/steps/24/webapp/view/InvoiceList.view.xml
similarity index 100%
rename from steps/24/webapp/view/InvoiceList.view.xml
rename to packages/walkthrough/steps/24/webapp/view/InvoiceList.view.xml
diff --git a/steps/25/README.md b/packages/walkthrough/steps/25/README.md
similarity index 98%
rename from steps/25/README.md
rename to packages/walkthrough/steps/25/README.md
index 76dfb0c55..288c9fe8f 100644
--- a/steps/25/README.md
+++ b/packages/walkthrough/steps/25/README.md
@@ -24,13 +24,13 @@ In the real world, data often resides on remote servers and is accessed via an O
-You can download the solution for this step here: [π₯ Download step 25](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-25.zip).
+You can download the solution for this step here: [π₯ Download step 25](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-25.zip).
-You can download the solution for this step here: [π₯ Download step 25](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-25-js.zip).
+You can download the solution for this step here: [π₯ Download step 25](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-25-js.zip).
***
@@ -62,7 +62,7 @@ metadata:
type: application
framework:
name: OpenUI5
- version: "1.136.7"
+ version: "1.145.1"
libraries:
- name: sap.m
- name: sap.ui.core
diff --git a/steps/25/assets/loio5b76bb4b15eb44e1862d0b6c1c802571_LowRes.png b/packages/walkthrough/steps/25/assets/loio5b76bb4b15eb44e1862d0b6c1c802571_LowRes.png
similarity index 100%
rename from steps/25/assets/loio5b76bb4b15eb44e1862d0b6c1c802571_LowRes.png
rename to packages/walkthrough/steps/25/assets/loio5b76bb4b15eb44e1862d0b6c1c802571_LowRes.png
diff --git a/steps/25/package.json b/packages/walkthrough/steps/25/package.json
similarity index 93%
rename from steps/25/package.json
rename to packages/walkthrough/steps/25/package.json
index 72c0bb95c..74bb8c253 100644
--- a/steps/25/package.json
+++ b/packages/walkthrough/steps/25/package.json
@@ -8,7 +8,7 @@
"start": "ui5 serve -o index.html"
},
"devDependencies": {
- "@types/openui5": "^1.142.0",
+ "@types/openui5": "^1.145.0",
"@ui5/cli": "^4.0.51",
"typescript": "^5.9.3",
"ui5-middleware-livereload": "^3.3.0",
diff --git a/steps/25/tsconfig.json b/packages/walkthrough/steps/25/tsconfig.json
similarity index 100%
rename from steps/25/tsconfig.json
rename to packages/walkthrough/steps/25/tsconfig.json
diff --git a/steps/25/ui5.yaml b/packages/walkthrough/steps/25/ui5.yaml
similarity index 96%
rename from steps/25/ui5.yaml
rename to packages/walkthrough/steps/25/ui5.yaml
index 440afbffe..997943cb9 100644
--- a/steps/25/ui5.yaml
+++ b/packages/walkthrough/steps/25/ui5.yaml
@@ -4,7 +4,7 @@ metadata:
type: application
framework:
name: OpenUI5
- version: "1.136.7"
+ version: "1.145.1"
libraries:
- name: sap.m
- name: sap.ui.core
diff --git a/steps/25/webapp/Component.ts b/packages/walkthrough/steps/25/webapp/Component.ts
similarity index 100%
rename from steps/25/webapp/Component.ts
rename to packages/walkthrough/steps/25/webapp/Component.ts
diff --git a/steps/25/webapp/controller/App.controller.ts b/packages/walkthrough/steps/25/webapp/controller/App.controller.ts
similarity index 100%
rename from steps/25/webapp/controller/App.controller.ts
rename to packages/walkthrough/steps/25/webapp/controller/App.controller.ts
diff --git a/steps/25/webapp/controller/HelloPanel.controller.ts b/packages/walkthrough/steps/25/webapp/controller/HelloPanel.controller.ts
similarity index 100%
rename from steps/25/webapp/controller/HelloPanel.controller.ts
rename to packages/walkthrough/steps/25/webapp/controller/HelloPanel.controller.ts
diff --git a/steps/25/webapp/controller/InvoiceList.controller.ts b/packages/walkthrough/steps/25/webapp/controller/InvoiceList.controller.ts
similarity index 100%
rename from steps/25/webapp/controller/InvoiceList.controller.ts
rename to packages/walkthrough/steps/25/webapp/controller/InvoiceList.controller.ts
diff --git a/steps/25/webapp/css/style.css b/packages/walkthrough/steps/25/webapp/css/style.css
similarity index 100%
rename from steps/25/webapp/css/style.css
rename to packages/walkthrough/steps/25/webapp/css/style.css
diff --git a/steps/25/webapp/i18n/i18n.properties b/packages/walkthrough/steps/25/webapp/i18n/i18n.properties
similarity index 100%
rename from steps/25/webapp/i18n/i18n.properties
rename to packages/walkthrough/steps/25/webapp/i18n/i18n.properties
diff --git a/steps/25/webapp/index-cdn.html b/packages/walkthrough/steps/25/webapp/index-cdn.html
similarity index 100%
rename from steps/25/webapp/index-cdn.html
rename to packages/walkthrough/steps/25/webapp/index-cdn.html
diff --git a/steps/25/webapp/index.html b/packages/walkthrough/steps/25/webapp/index.html
similarity index 100%
rename from steps/25/webapp/index.html
rename to packages/walkthrough/steps/25/webapp/index.html
diff --git a/steps/25/webapp/manifest.json b/packages/walkthrough/steps/25/webapp/manifest.json
similarity index 100%
rename from steps/25/webapp/manifest.json
rename to packages/walkthrough/steps/25/webapp/manifest.json
diff --git a/steps/25/webapp/model/formatter.ts b/packages/walkthrough/steps/25/webapp/model/formatter.ts
similarity index 100%
rename from steps/25/webapp/model/formatter.ts
rename to packages/walkthrough/steps/25/webapp/model/formatter.ts
diff --git a/steps/25/webapp/view/App.view.xml b/packages/walkthrough/steps/25/webapp/view/App.view.xml
similarity index 100%
rename from steps/25/webapp/view/App.view.xml
rename to packages/walkthrough/steps/25/webapp/view/App.view.xml
diff --git a/steps/25/webapp/view/HelloDialog.fragment.xml b/packages/walkthrough/steps/25/webapp/view/HelloDialog.fragment.xml
similarity index 100%
rename from steps/25/webapp/view/HelloDialog.fragment.xml
rename to packages/walkthrough/steps/25/webapp/view/HelloDialog.fragment.xml
diff --git a/steps/25/webapp/view/HelloPanel.view.xml b/packages/walkthrough/steps/25/webapp/view/HelloPanel.view.xml
similarity index 100%
rename from steps/25/webapp/view/HelloPanel.view.xml
rename to packages/walkthrough/steps/25/webapp/view/HelloPanel.view.xml
diff --git a/steps/25/webapp/view/InvoiceList.view.xml b/packages/walkthrough/steps/25/webapp/view/InvoiceList.view.xml
similarity index 100%
rename from steps/25/webapp/view/InvoiceList.view.xml
rename to packages/walkthrough/steps/25/webapp/view/InvoiceList.view.xml
diff --git a/steps/26/README.md b/packages/walkthrough/steps/26/README.md
similarity index 98%
rename from steps/26/README.md
rename to packages/walkthrough/steps/26/README.md
index db98af1a7..6adc68941 100644
--- a/steps/26/README.md
+++ b/packages/walkthrough/steps/26/README.md
@@ -23,20 +23,20 @@ The new `localService` folder contains a `metadata.xml` service description file
*Folder Structure for this Step*
-You can access the live preview by clicking on this link: [π Live Preview of Step 26](https://sap-samples.github.io/ui5-typescript-walkthrough/build/26/test/mockServer-cdn.html).
+You can access the live preview by clicking on this link: [π Live Preview of Step 26](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/build/26/test/mockServer-cdn.html).
***
### Coding
-You can download the solution for this step here: [π₯ Download step 26](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-26.zip).
+You can download the solution for this step here: [π₯ Download step 26](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-26.zip).
-You can download the solution for this step here: [π₯ Download step 26](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-26-js.zip).
+You can download the solution for this step here: [π₯ Download step 26](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-26-js.zip).
***
diff --git a/steps/26/assets/loio7a5e2b02d72d40d388f5e601d7de74df_LowRes.png b/packages/walkthrough/steps/26/assets/loio7a5e2b02d72d40d388f5e601d7de74df_LowRes.png
similarity index 100%
rename from steps/26/assets/loio7a5e2b02d72d40d388f5e601d7de74df_LowRes.png
rename to packages/walkthrough/steps/26/assets/loio7a5e2b02d72d40d388f5e601d7de74df_LowRes.png
diff --git a/steps/26/assets/loiofe1403346ce9499f8bb102beaa4986d5_LowRes.png b/packages/walkthrough/steps/26/assets/loiofe1403346ce9499f8bb102beaa4986d5_LowRes.png
similarity index 100%
rename from steps/26/assets/loiofe1403346ce9499f8bb102beaa4986d5_LowRes.png
rename to packages/walkthrough/steps/26/assets/loiofe1403346ce9499f8bb102beaa4986d5_LowRes.png
diff --git a/steps/26/package.json b/packages/walkthrough/steps/26/package.json
similarity index 93%
rename from steps/26/package.json
rename to packages/walkthrough/steps/26/package.json
index ebbde2be2..8fde875d5 100644
--- a/steps/26/package.json
+++ b/packages/walkthrough/steps/26/package.json
@@ -8,7 +8,7 @@
"start": "ui5 serve -o test/mockServer.html"
},
"devDependencies": {
- "@types/openui5": "^1.142.0",
+ "@types/openui5": "^1.145.0",
"@ui5/cli": "^4.0.51",
"typescript": "^5.9.3",
"ui5-middleware-livereload": "^3.3.0",
diff --git a/steps/26/tsconfig.json b/packages/walkthrough/steps/26/tsconfig.json
similarity index 100%
rename from steps/26/tsconfig.json
rename to packages/walkthrough/steps/26/tsconfig.json
diff --git a/steps/26/ui5.yaml b/packages/walkthrough/steps/26/ui5.yaml
similarity index 96%
rename from steps/26/ui5.yaml
rename to packages/walkthrough/steps/26/ui5.yaml
index 440afbffe..997943cb9 100644
--- a/steps/26/ui5.yaml
+++ b/packages/walkthrough/steps/26/ui5.yaml
@@ -4,7 +4,7 @@ metadata:
type: application
framework:
name: OpenUI5
- version: "1.136.7"
+ version: "1.145.1"
libraries:
- name: sap.m
- name: sap.ui.core
diff --git a/steps/26/webapp/Component.ts b/packages/walkthrough/steps/26/webapp/Component.ts
similarity index 100%
rename from steps/26/webapp/Component.ts
rename to packages/walkthrough/steps/26/webapp/Component.ts
diff --git a/steps/26/webapp/controller/App.controller.ts b/packages/walkthrough/steps/26/webapp/controller/App.controller.ts
similarity index 100%
rename from steps/26/webapp/controller/App.controller.ts
rename to packages/walkthrough/steps/26/webapp/controller/App.controller.ts
diff --git a/steps/26/webapp/controller/HelloPanel.controller.ts b/packages/walkthrough/steps/26/webapp/controller/HelloPanel.controller.ts
similarity index 100%
rename from steps/26/webapp/controller/HelloPanel.controller.ts
rename to packages/walkthrough/steps/26/webapp/controller/HelloPanel.controller.ts
diff --git a/steps/26/webapp/controller/InvoiceList.controller.ts b/packages/walkthrough/steps/26/webapp/controller/InvoiceList.controller.ts
similarity index 100%
rename from steps/26/webapp/controller/InvoiceList.controller.ts
rename to packages/walkthrough/steps/26/webapp/controller/InvoiceList.controller.ts
diff --git a/steps/26/webapp/css/style.css b/packages/walkthrough/steps/26/webapp/css/style.css
similarity index 100%
rename from steps/26/webapp/css/style.css
rename to packages/walkthrough/steps/26/webapp/css/style.css
diff --git a/steps/26/webapp/i18n/i18n.properties b/packages/walkthrough/steps/26/webapp/i18n/i18n.properties
similarity index 100%
rename from steps/26/webapp/i18n/i18n.properties
rename to packages/walkthrough/steps/26/webapp/i18n/i18n.properties
diff --git a/steps/26/webapp/index-cdn.html b/packages/walkthrough/steps/26/webapp/index-cdn.html
similarity index 100%
rename from steps/26/webapp/index-cdn.html
rename to packages/walkthrough/steps/26/webapp/index-cdn.html
diff --git a/steps/26/webapp/index.html b/packages/walkthrough/steps/26/webapp/index.html
similarity index 100%
rename from steps/26/webapp/index.html
rename to packages/walkthrough/steps/26/webapp/index.html
diff --git a/steps/26/webapp/localService/metadata.xml b/packages/walkthrough/steps/26/webapp/localService/metadata.xml
similarity index 100%
rename from steps/26/webapp/localService/metadata.xml
rename to packages/walkthrough/steps/26/webapp/localService/metadata.xml
diff --git a/steps/26/webapp/localService/mockdata/Invoices.json b/packages/walkthrough/steps/26/webapp/localService/mockdata/Invoices.json
similarity index 100%
rename from steps/26/webapp/localService/mockdata/Invoices.json
rename to packages/walkthrough/steps/26/webapp/localService/mockdata/Invoices.json
diff --git a/steps/26/webapp/localService/mockserver.ts b/packages/walkthrough/steps/26/webapp/localService/mockserver.ts
similarity index 100%
rename from steps/26/webapp/localService/mockserver.ts
rename to packages/walkthrough/steps/26/webapp/localService/mockserver.ts
diff --git a/steps/26/webapp/manifest.json b/packages/walkthrough/steps/26/webapp/manifest.json
similarity index 100%
rename from steps/26/webapp/manifest.json
rename to packages/walkthrough/steps/26/webapp/manifest.json
diff --git a/steps/26/webapp/model/formatter.ts b/packages/walkthrough/steps/26/webapp/model/formatter.ts
similarity index 100%
rename from steps/26/webapp/model/formatter.ts
rename to packages/walkthrough/steps/26/webapp/model/formatter.ts
diff --git a/steps/26/webapp/test/initMockServer.ts b/packages/walkthrough/steps/26/webapp/test/initMockServer.ts
similarity index 100%
rename from steps/26/webapp/test/initMockServer.ts
rename to packages/walkthrough/steps/26/webapp/test/initMockServer.ts
diff --git a/steps/26/webapp/test/mockServer-cdn.html b/packages/walkthrough/steps/26/webapp/test/mockServer-cdn.html
similarity index 100%
rename from steps/26/webapp/test/mockServer-cdn.html
rename to packages/walkthrough/steps/26/webapp/test/mockServer-cdn.html
diff --git a/steps/26/webapp/test/mockServer.html b/packages/walkthrough/steps/26/webapp/test/mockServer.html
similarity index 100%
rename from steps/26/webapp/test/mockServer.html
rename to packages/walkthrough/steps/26/webapp/test/mockServer.html
diff --git a/steps/26/webapp/view/App.view.xml b/packages/walkthrough/steps/26/webapp/view/App.view.xml
similarity index 100%
rename from steps/26/webapp/view/App.view.xml
rename to packages/walkthrough/steps/26/webapp/view/App.view.xml
diff --git a/steps/26/webapp/view/HelloDialog.fragment.xml b/packages/walkthrough/steps/26/webapp/view/HelloDialog.fragment.xml
similarity index 100%
rename from steps/26/webapp/view/HelloDialog.fragment.xml
rename to packages/walkthrough/steps/26/webapp/view/HelloDialog.fragment.xml
diff --git a/steps/26/webapp/view/HelloPanel.view.xml b/packages/walkthrough/steps/26/webapp/view/HelloPanel.view.xml
similarity index 100%
rename from steps/26/webapp/view/HelloPanel.view.xml
rename to packages/walkthrough/steps/26/webapp/view/HelloPanel.view.xml
diff --git a/steps/26/webapp/view/InvoiceList.view.xml b/packages/walkthrough/steps/26/webapp/view/InvoiceList.view.xml
similarity index 100%
rename from steps/26/webapp/view/InvoiceList.view.xml
rename to packages/walkthrough/steps/26/webapp/view/InvoiceList.view.xml
diff --git a/steps/27/README.md b/packages/walkthrough/steps/27/README.md
similarity index 98%
rename from steps/27/README.md
rename to packages/walkthrough/steps/27/README.md
index d88d02eba..5573911ea 100644
--- a/steps/27/README.md
+++ b/packages/walkthrough/steps/27/README.md
@@ -22,7 +22,7 @@ We add a new folder `unit` under the `test` folder and a `model` subfolder where

*Folder Structure for this Step*
-You can access the live preview by clicking on this link: [π Live Preview of Step 27](https://sap-samples.github.io/ui5-typescript-walkthrough/build/27/test/Test.cdn.qunit.html?testsuite=test-resources/ui5/walkthrough/testsuite.cdn.qunit&test=unit/unitTests).
+You can access the live preview by clicking on this link: [π Live Preview of Step 27](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/build/27/test/Test.cdn.qunit.html?testsuite=test-resources/ui5/walkthrough/testsuite.cdn.qunit&test=unit/unitTests).
***
@@ -30,13 +30,13 @@ You can access the live preview by clicking on this link: [π Live Preview of
-You can download the solution for this step here: [π₯ Download step 27](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-27.zip).
+You can download the solution for this step here: [π₯ Download step 27](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-27.zip).
-You can download the solution for this step here: [π₯ Download step 27](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-27-js.zip).
+You can download the solution for this step here: [π₯ Download step 27](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-27-js.zip).
***
diff --git a/steps/27/assets/loio0d29491d96574cfe8d8158d60a0a32e2_LowRes.png b/packages/walkthrough/steps/27/assets/loio0d29491d96574cfe8d8158d60a0a32e2_LowRes.png
similarity index 100%
rename from steps/27/assets/loio0d29491d96574cfe8d8158d60a0a32e2_LowRes.png
rename to packages/walkthrough/steps/27/assets/loio0d29491d96574cfe8d8158d60a0a32e2_LowRes.png
diff --git a/steps/27/assets/loio1b5613ac3ab94757af2c7823039222a9_LowRes.png b/packages/walkthrough/steps/27/assets/loio1b5613ac3ab94757af2c7823039222a9_LowRes.png
similarity index 100%
rename from steps/27/assets/loio1b5613ac3ab94757af2c7823039222a9_LowRes.png
rename to packages/walkthrough/steps/27/assets/loio1b5613ac3ab94757af2c7823039222a9_LowRes.png
diff --git a/steps/27/package.json b/packages/walkthrough/steps/27/package.json
similarity index 93%
rename from steps/27/package.json
rename to packages/walkthrough/steps/27/package.json
index 7520eb8a9..56ece8c84 100644
--- a/steps/27/package.json
+++ b/packages/walkthrough/steps/27/package.json
@@ -8,7 +8,7 @@
"start": "ui5 serve -o test/mockServer.html"
},
"devDependencies": {
- "@types/openui5": "^1.142.0",
+ "@types/openui5": "^1.145.0",
"@ui5/cli": "^4.0.51",
"typescript": "^5.9.3",
"ui5-middleware-livereload": "^3.3.0",
diff --git a/steps/27/tsconfig.json b/packages/walkthrough/steps/27/tsconfig.json
similarity index 100%
rename from steps/27/tsconfig.json
rename to packages/walkthrough/steps/27/tsconfig.json
diff --git a/steps/27/ui5.yaml b/packages/walkthrough/steps/27/ui5.yaml
similarity index 100%
rename from steps/27/ui5.yaml
rename to packages/walkthrough/steps/27/ui5.yaml
diff --git a/steps/27/webapp/Component.ts b/packages/walkthrough/steps/27/webapp/Component.ts
similarity index 100%
rename from steps/27/webapp/Component.ts
rename to packages/walkthrough/steps/27/webapp/Component.ts
diff --git a/steps/27/webapp/controller/App.controller.ts b/packages/walkthrough/steps/27/webapp/controller/App.controller.ts
similarity index 100%
rename from steps/27/webapp/controller/App.controller.ts
rename to packages/walkthrough/steps/27/webapp/controller/App.controller.ts
diff --git a/steps/27/webapp/controller/HelloPanel.controller.ts b/packages/walkthrough/steps/27/webapp/controller/HelloPanel.controller.ts
similarity index 100%
rename from steps/27/webapp/controller/HelloPanel.controller.ts
rename to packages/walkthrough/steps/27/webapp/controller/HelloPanel.controller.ts
diff --git a/steps/27/webapp/controller/InvoiceList.controller.ts b/packages/walkthrough/steps/27/webapp/controller/InvoiceList.controller.ts
similarity index 100%
rename from steps/27/webapp/controller/InvoiceList.controller.ts
rename to packages/walkthrough/steps/27/webapp/controller/InvoiceList.controller.ts
diff --git a/steps/27/webapp/css/style.css b/packages/walkthrough/steps/27/webapp/css/style.css
similarity index 100%
rename from steps/27/webapp/css/style.css
rename to packages/walkthrough/steps/27/webapp/css/style.css
diff --git a/steps/27/webapp/i18n/i18n.properties b/packages/walkthrough/steps/27/webapp/i18n/i18n.properties
similarity index 100%
rename from steps/27/webapp/i18n/i18n.properties
rename to packages/walkthrough/steps/27/webapp/i18n/i18n.properties
diff --git a/steps/27/webapp/index-cdn.html b/packages/walkthrough/steps/27/webapp/index-cdn.html
similarity index 100%
rename from steps/27/webapp/index-cdn.html
rename to packages/walkthrough/steps/27/webapp/index-cdn.html
diff --git a/steps/27/webapp/index.html b/packages/walkthrough/steps/27/webapp/index.html
similarity index 100%
rename from steps/27/webapp/index.html
rename to packages/walkthrough/steps/27/webapp/index.html
diff --git a/steps/27/webapp/localService/metadata.xml b/packages/walkthrough/steps/27/webapp/localService/metadata.xml
similarity index 100%
rename from steps/27/webapp/localService/metadata.xml
rename to packages/walkthrough/steps/27/webapp/localService/metadata.xml
diff --git a/steps/27/webapp/localService/mockdata/Invoices.json b/packages/walkthrough/steps/27/webapp/localService/mockdata/Invoices.json
similarity index 100%
rename from steps/27/webapp/localService/mockdata/Invoices.json
rename to packages/walkthrough/steps/27/webapp/localService/mockdata/Invoices.json
diff --git a/steps/27/webapp/localService/mockserver.ts b/packages/walkthrough/steps/27/webapp/localService/mockserver.ts
similarity index 100%
rename from steps/27/webapp/localService/mockserver.ts
rename to packages/walkthrough/steps/27/webapp/localService/mockserver.ts
diff --git a/steps/27/webapp/manifest.json b/packages/walkthrough/steps/27/webapp/manifest.json
similarity index 100%
rename from steps/27/webapp/manifest.json
rename to packages/walkthrough/steps/27/webapp/manifest.json
diff --git a/steps/27/webapp/model/formatter.ts b/packages/walkthrough/steps/27/webapp/model/formatter.ts
similarity index 100%
rename from steps/27/webapp/model/formatter.ts
rename to packages/walkthrough/steps/27/webapp/model/formatter.ts
diff --git a/steps/27/webapp/test/Test.cdn.qunit.html b/packages/walkthrough/steps/27/webapp/test/Test.cdn.qunit.html
similarity index 100%
rename from steps/27/webapp/test/Test.cdn.qunit.html
rename to packages/walkthrough/steps/27/webapp/test/Test.cdn.qunit.html
diff --git a/steps/27/webapp/test/Test.qunit.html b/packages/walkthrough/steps/27/webapp/test/Test.qunit.html
similarity index 100%
rename from steps/27/webapp/test/Test.qunit.html
rename to packages/walkthrough/steps/27/webapp/test/Test.qunit.html
diff --git a/steps/27/webapp/test/initMockServer.ts b/packages/walkthrough/steps/27/webapp/test/initMockServer.ts
similarity index 100%
rename from steps/27/webapp/test/initMockServer.ts
rename to packages/walkthrough/steps/27/webapp/test/initMockServer.ts
diff --git a/steps/27/webapp/test/mockServer-cdn.html b/packages/walkthrough/steps/27/webapp/test/mockServer-cdn.html
similarity index 100%
rename from steps/27/webapp/test/mockServer-cdn.html
rename to packages/walkthrough/steps/27/webapp/test/mockServer-cdn.html
diff --git a/steps/27/webapp/test/mockServer.html b/packages/walkthrough/steps/27/webapp/test/mockServer.html
similarity index 100%
rename from steps/27/webapp/test/mockServer.html
rename to packages/walkthrough/steps/27/webapp/test/mockServer.html
diff --git a/steps/27/webapp/test/testsuite.cdn.qunit.html b/packages/walkthrough/steps/27/webapp/test/testsuite.cdn.qunit.html
similarity index 100%
rename from steps/27/webapp/test/testsuite.cdn.qunit.html
rename to packages/walkthrough/steps/27/webapp/test/testsuite.cdn.qunit.html
diff --git a/steps/27/webapp/test/testsuite.cdn.qunit.ts b/packages/walkthrough/steps/27/webapp/test/testsuite.cdn.qunit.ts
similarity index 100%
rename from steps/27/webapp/test/testsuite.cdn.qunit.ts
rename to packages/walkthrough/steps/27/webapp/test/testsuite.cdn.qunit.ts
diff --git a/steps/27/webapp/test/testsuite.qunit.html b/packages/walkthrough/steps/27/webapp/test/testsuite.qunit.html
similarity index 100%
rename from steps/27/webapp/test/testsuite.qunit.html
rename to packages/walkthrough/steps/27/webapp/test/testsuite.qunit.html
diff --git a/steps/27/webapp/test/testsuite.qunit.ts b/packages/walkthrough/steps/27/webapp/test/testsuite.qunit.ts
similarity index 100%
rename from steps/27/webapp/test/testsuite.qunit.ts
rename to packages/walkthrough/steps/27/webapp/test/testsuite.qunit.ts
diff --git a/steps/27/webapp/test/unit/model/formatter.ts b/packages/walkthrough/steps/27/webapp/test/unit/model/formatter.ts
similarity index 100%
rename from steps/27/webapp/test/unit/model/formatter.ts
rename to packages/walkthrough/steps/27/webapp/test/unit/model/formatter.ts
diff --git a/steps/27/webapp/test/unit/unitTests.qunit.ts b/packages/walkthrough/steps/27/webapp/test/unit/unitTests.qunit.ts
similarity index 100%
rename from steps/27/webapp/test/unit/unitTests.qunit.ts
rename to packages/walkthrough/steps/27/webapp/test/unit/unitTests.qunit.ts
diff --git a/steps/27/webapp/view/App.view.xml b/packages/walkthrough/steps/27/webapp/view/App.view.xml
similarity index 100%
rename from steps/27/webapp/view/App.view.xml
rename to packages/walkthrough/steps/27/webapp/view/App.view.xml
diff --git a/steps/27/webapp/view/HelloDialog.fragment.xml b/packages/walkthrough/steps/27/webapp/view/HelloDialog.fragment.xml
similarity index 100%
rename from steps/27/webapp/view/HelloDialog.fragment.xml
rename to packages/walkthrough/steps/27/webapp/view/HelloDialog.fragment.xml
diff --git a/steps/27/webapp/view/HelloPanel.view.xml b/packages/walkthrough/steps/27/webapp/view/HelloPanel.view.xml
similarity index 100%
rename from steps/27/webapp/view/HelloPanel.view.xml
rename to packages/walkthrough/steps/27/webapp/view/HelloPanel.view.xml
diff --git a/steps/27/webapp/view/InvoiceList.view.xml b/packages/walkthrough/steps/27/webapp/view/InvoiceList.view.xml
similarity index 100%
rename from steps/27/webapp/view/InvoiceList.view.xml
rename to packages/walkthrough/steps/27/webapp/view/InvoiceList.view.xml
diff --git a/steps/28/README.md b/packages/walkthrough/steps/28/README.md
similarity index 97%
rename from steps/28/README.md
rename to packages/walkthrough/steps/28/README.md
index 2583a5705..f6609b9b2 100644
--- a/steps/28/README.md
+++ b/packages/walkthrough/steps/28/README.md
@@ -22,7 +22,7 @@ We add a new folder `integration` below the `test` folder, where we put our new

*Folder Structure for this Step*
-You can access the live preview by clicking on this link: [π Live Preview of Step 28](https://sap-samples.github.io/ui5-typescript-walkthrough/build/28/test/Test.cdn.qunit.html?testsuite=test-resources/ui5/walkthrough/testsuite.cdn.qunit&test=integration/opaTests).
+You can access the live preview by clicking on this link: [π Live Preview of Step 28](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/build/28/test/Test.cdn.qunit.html?testsuite=test-resources/ui5/walkthrough/testsuite.cdn.qunit&test=integration/opaTests).
***
@@ -31,13 +31,13 @@ You can access the live preview by clicking on this link: [π Live Preview of
-You can download the solution for this step here: [π₯ Download step 28](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-28.zip).
+You can download the solution for this step here: [π₯ Download step 28](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-28.zip).
-You can download the solution for this step here: [π₯ Download step 28](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-28-js.zip).
+You can download the solution for this step here: [π₯ Download step 28](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-28-js.zip).
***
diff --git a/steps/28/assets/loio250d5b92921d44a4b432cc0fade88cc9_LowRes.png b/packages/walkthrough/steps/28/assets/loio250d5b92921d44a4b432cc0fade88cc9_LowRes.png
similarity index 100%
rename from steps/28/assets/loio250d5b92921d44a4b432cc0fade88cc9_LowRes.png
rename to packages/walkthrough/steps/28/assets/loio250d5b92921d44a4b432cc0fade88cc9_LowRes.png
diff --git a/steps/28/assets/loio27e84d5bd72a485498564b92894869b5_LowRes.png b/packages/walkthrough/steps/28/assets/loio27e84d5bd72a485498564b92894869b5_LowRes.png
similarity index 100%
rename from steps/28/assets/loio27e84d5bd72a485498564b92894869b5_LowRes.png
rename to packages/walkthrough/steps/28/assets/loio27e84d5bd72a485498564b92894869b5_LowRes.png
diff --git a/steps/28/package.json b/packages/walkthrough/steps/28/package.json
similarity index 93%
rename from steps/28/package.json
rename to packages/walkthrough/steps/28/package.json
index 3ab8c8a32..fbc690d92 100644
--- a/steps/28/package.json
+++ b/packages/walkthrough/steps/28/package.json
@@ -8,7 +8,7 @@
"start": "ui5 serve -o test/mockServer.html"
},
"devDependencies": {
- "@types/openui5": "^1.142.0",
+ "@types/openui5": "^1.145.0",
"@ui5/cli": "^4.0.51",
"typescript": "^5.9.3",
"ui5-middleware-livereload": "^3.3.0",
diff --git a/steps/28/tsconfig.json b/packages/walkthrough/steps/28/tsconfig.json
similarity index 100%
rename from steps/28/tsconfig.json
rename to packages/walkthrough/steps/28/tsconfig.json
diff --git a/steps/28/ui5.yaml b/packages/walkthrough/steps/28/ui5.yaml
similarity index 100%
rename from steps/28/ui5.yaml
rename to packages/walkthrough/steps/28/ui5.yaml
diff --git a/steps/28/webapp/Component.ts b/packages/walkthrough/steps/28/webapp/Component.ts
similarity index 100%
rename from steps/28/webapp/Component.ts
rename to packages/walkthrough/steps/28/webapp/Component.ts
diff --git a/steps/28/webapp/controller/App.controller.ts b/packages/walkthrough/steps/28/webapp/controller/App.controller.ts
similarity index 100%
rename from steps/28/webapp/controller/App.controller.ts
rename to packages/walkthrough/steps/28/webapp/controller/App.controller.ts
diff --git a/steps/28/webapp/controller/HelloPanel.controller.ts b/packages/walkthrough/steps/28/webapp/controller/HelloPanel.controller.ts
similarity index 100%
rename from steps/28/webapp/controller/HelloPanel.controller.ts
rename to packages/walkthrough/steps/28/webapp/controller/HelloPanel.controller.ts
diff --git a/steps/28/webapp/controller/InvoiceList.controller.ts b/packages/walkthrough/steps/28/webapp/controller/InvoiceList.controller.ts
similarity index 100%
rename from steps/28/webapp/controller/InvoiceList.controller.ts
rename to packages/walkthrough/steps/28/webapp/controller/InvoiceList.controller.ts
diff --git a/steps/28/webapp/css/style.css b/packages/walkthrough/steps/28/webapp/css/style.css
similarity index 100%
rename from steps/28/webapp/css/style.css
rename to packages/walkthrough/steps/28/webapp/css/style.css
diff --git a/steps/28/webapp/i18n/i18n.properties b/packages/walkthrough/steps/28/webapp/i18n/i18n.properties
similarity index 100%
rename from steps/28/webapp/i18n/i18n.properties
rename to packages/walkthrough/steps/28/webapp/i18n/i18n.properties
diff --git a/steps/28/webapp/index-cdn.html b/packages/walkthrough/steps/28/webapp/index-cdn.html
similarity index 100%
rename from steps/28/webapp/index-cdn.html
rename to packages/walkthrough/steps/28/webapp/index-cdn.html
diff --git a/steps/28/webapp/index.html b/packages/walkthrough/steps/28/webapp/index.html
similarity index 100%
rename from steps/28/webapp/index.html
rename to packages/walkthrough/steps/28/webapp/index.html
diff --git a/steps/28/webapp/localService/metadata.xml b/packages/walkthrough/steps/28/webapp/localService/metadata.xml
similarity index 100%
rename from steps/28/webapp/localService/metadata.xml
rename to packages/walkthrough/steps/28/webapp/localService/metadata.xml
diff --git a/steps/28/webapp/localService/mockdata/Invoices.json b/packages/walkthrough/steps/28/webapp/localService/mockdata/Invoices.json
similarity index 100%
rename from steps/28/webapp/localService/mockdata/Invoices.json
rename to packages/walkthrough/steps/28/webapp/localService/mockdata/Invoices.json
diff --git a/steps/28/webapp/localService/mockserver.ts b/packages/walkthrough/steps/28/webapp/localService/mockserver.ts
similarity index 100%
rename from steps/28/webapp/localService/mockserver.ts
rename to packages/walkthrough/steps/28/webapp/localService/mockserver.ts
diff --git a/steps/28/webapp/manifest.json b/packages/walkthrough/steps/28/webapp/manifest.json
similarity index 100%
rename from steps/28/webapp/manifest.json
rename to packages/walkthrough/steps/28/webapp/manifest.json
diff --git a/steps/28/webapp/model/formatter.ts b/packages/walkthrough/steps/28/webapp/model/formatter.ts
similarity index 100%
rename from steps/28/webapp/model/formatter.ts
rename to packages/walkthrough/steps/28/webapp/model/formatter.ts
diff --git a/steps/28/webapp/test/Test.cdn.qunit.html b/packages/walkthrough/steps/28/webapp/test/Test.cdn.qunit.html
similarity index 100%
rename from steps/28/webapp/test/Test.cdn.qunit.html
rename to packages/walkthrough/steps/28/webapp/test/Test.cdn.qunit.html
diff --git a/steps/28/webapp/test/Test.qunit.html b/packages/walkthrough/steps/28/webapp/test/Test.qunit.html
similarity index 100%
rename from steps/28/webapp/test/Test.qunit.html
rename to packages/walkthrough/steps/28/webapp/test/Test.qunit.html
diff --git a/steps/28/webapp/test/initMockServer.ts b/packages/walkthrough/steps/28/webapp/test/initMockServer.ts
similarity index 100%
rename from steps/28/webapp/test/initMockServer.ts
rename to packages/walkthrough/steps/28/webapp/test/initMockServer.ts
diff --git a/steps/28/webapp/test/integration/NavigationJourney.ts b/packages/walkthrough/steps/28/webapp/test/integration/NavigationJourney.ts
similarity index 100%
rename from steps/28/webapp/test/integration/NavigationJourney.ts
rename to packages/walkthrough/steps/28/webapp/test/integration/NavigationJourney.ts
diff --git a/steps/28/webapp/test/integration/opaTests.qunit.ts b/packages/walkthrough/steps/28/webapp/test/integration/opaTests.qunit.ts
similarity index 100%
rename from steps/28/webapp/test/integration/opaTests.qunit.ts
rename to packages/walkthrough/steps/28/webapp/test/integration/opaTests.qunit.ts
diff --git a/steps/28/webapp/test/integration/pages/HelloPanelPage.ts b/packages/walkthrough/steps/28/webapp/test/integration/pages/HelloPanelPage.ts
similarity index 100%
rename from steps/28/webapp/test/integration/pages/HelloPanelPage.ts
rename to packages/walkthrough/steps/28/webapp/test/integration/pages/HelloPanelPage.ts
diff --git a/steps/28/webapp/test/mockServer-cdn.html b/packages/walkthrough/steps/28/webapp/test/mockServer-cdn.html
similarity index 100%
rename from steps/28/webapp/test/mockServer-cdn.html
rename to packages/walkthrough/steps/28/webapp/test/mockServer-cdn.html
diff --git a/steps/28/webapp/test/mockServer.html b/packages/walkthrough/steps/28/webapp/test/mockServer.html
similarity index 100%
rename from steps/28/webapp/test/mockServer.html
rename to packages/walkthrough/steps/28/webapp/test/mockServer.html
diff --git a/steps/28/webapp/test/testsuite.cdn.qunit.html b/packages/walkthrough/steps/28/webapp/test/testsuite.cdn.qunit.html
similarity index 100%
rename from steps/28/webapp/test/testsuite.cdn.qunit.html
rename to packages/walkthrough/steps/28/webapp/test/testsuite.cdn.qunit.html
diff --git a/steps/28/webapp/test/testsuite.cdn.qunit.ts b/packages/walkthrough/steps/28/webapp/test/testsuite.cdn.qunit.ts
similarity index 100%
rename from steps/28/webapp/test/testsuite.cdn.qunit.ts
rename to packages/walkthrough/steps/28/webapp/test/testsuite.cdn.qunit.ts
diff --git a/steps/28/webapp/test/testsuite.qunit.html b/packages/walkthrough/steps/28/webapp/test/testsuite.qunit.html
similarity index 100%
rename from steps/28/webapp/test/testsuite.qunit.html
rename to packages/walkthrough/steps/28/webapp/test/testsuite.qunit.html
diff --git a/steps/28/webapp/test/testsuite.qunit.ts b/packages/walkthrough/steps/28/webapp/test/testsuite.qunit.ts
similarity index 100%
rename from steps/28/webapp/test/testsuite.qunit.ts
rename to packages/walkthrough/steps/28/webapp/test/testsuite.qunit.ts
diff --git a/steps/28/webapp/test/unit/model/formatter.ts b/packages/walkthrough/steps/28/webapp/test/unit/model/formatter.ts
similarity index 100%
rename from steps/28/webapp/test/unit/model/formatter.ts
rename to packages/walkthrough/steps/28/webapp/test/unit/model/formatter.ts
diff --git a/steps/28/webapp/test/unit/unitTests.qunit.ts b/packages/walkthrough/steps/28/webapp/test/unit/unitTests.qunit.ts
similarity index 100%
rename from steps/28/webapp/test/unit/unitTests.qunit.ts
rename to packages/walkthrough/steps/28/webapp/test/unit/unitTests.qunit.ts
diff --git a/steps/28/webapp/view/App.view.xml b/packages/walkthrough/steps/28/webapp/view/App.view.xml
similarity index 100%
rename from steps/28/webapp/view/App.view.xml
rename to packages/walkthrough/steps/28/webapp/view/App.view.xml
diff --git a/steps/28/webapp/view/HelloDialog.fragment.xml b/packages/walkthrough/steps/28/webapp/view/HelloDialog.fragment.xml
similarity index 100%
rename from steps/28/webapp/view/HelloDialog.fragment.xml
rename to packages/walkthrough/steps/28/webapp/view/HelloDialog.fragment.xml
diff --git a/steps/28/webapp/view/HelloPanel.view.xml b/packages/walkthrough/steps/28/webapp/view/HelloPanel.view.xml
similarity index 100%
rename from steps/28/webapp/view/HelloPanel.view.xml
rename to packages/walkthrough/steps/28/webapp/view/HelloPanel.view.xml
diff --git a/steps/28/webapp/view/InvoiceList.view.xml b/packages/walkthrough/steps/28/webapp/view/InvoiceList.view.xml
similarity index 100%
rename from steps/28/webapp/view/InvoiceList.view.xml
rename to packages/walkthrough/steps/28/webapp/view/InvoiceList.view.xml
diff --git a/steps/29/README.md b/packages/walkthrough/steps/29/README.md
similarity index 98%
rename from steps/29/README.md
rename to packages/walkthrough/steps/29/README.md
index bd0500bef..dbeae3b27 100644
--- a/steps/29/README.md
+++ b/packages/walkthrough/steps/29/README.md
@@ -23,13 +23,13 @@ Luckily, OpenUI5 provides a couple of debugging tools that we can use within the
-You can download the solution for this step here: [π₯ Download step 29](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-29.zip).
+You can download the solution for this step here: [π₯ Download step 29](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-29.zip).
-You can download the solution for this step here: [π₯ Download step 29](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-29-js.zip).
+You can download the solution for this step here: [π₯ Download step 29](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-29-js.zip).
diff --git a/steps/29/assets/loio34c4b02c74eb4848b8b720d86042bfdc_LowRes.png b/packages/walkthrough/steps/29/assets/loio34c4b02c74eb4848b8b720d86042bfdc_LowRes.png
similarity index 100%
rename from steps/29/assets/loio34c4b02c74eb4848b8b720d86042bfdc_LowRes.png
rename to packages/walkthrough/steps/29/assets/loio34c4b02c74eb4848b8b720d86042bfdc_LowRes.png
diff --git a/steps/29/assets/loio930de31b311f43ffa9df9261ca760da0_LowRes.png b/packages/walkthrough/steps/29/assets/loio930de31b311f43ffa9df9261ca760da0_LowRes.png
similarity index 100%
rename from steps/29/assets/loio930de31b311f43ffa9df9261ca760da0_LowRes.png
rename to packages/walkthrough/steps/29/assets/loio930de31b311f43ffa9df9261ca760da0_LowRes.png
diff --git a/steps/29/package.json b/packages/walkthrough/steps/29/package.json
similarity index 93%
rename from steps/29/package.json
rename to packages/walkthrough/steps/29/package.json
index a399b86cc..2e17e81e1 100644
--- a/steps/29/package.json
+++ b/packages/walkthrough/steps/29/package.json
@@ -8,7 +8,7 @@
"start": "ui5 serve -o test/mockServer.html"
},
"devDependencies": {
- "@types/openui5": "^1.142.0",
+ "@types/openui5": "^1.145.0",
"@ui5/cli": "^4.0.51",
"typescript": "^5.9.3",
"ui5-middleware-livereload": "^3.3.0",
diff --git a/steps/29/tsconfig.json b/packages/walkthrough/steps/29/tsconfig.json
similarity index 100%
rename from steps/29/tsconfig.json
rename to packages/walkthrough/steps/29/tsconfig.json
diff --git a/steps/29/ui5.yaml b/packages/walkthrough/steps/29/ui5.yaml
similarity index 100%
rename from steps/29/ui5.yaml
rename to packages/walkthrough/steps/29/ui5.yaml
diff --git a/steps/29/webapp/Component.ts b/packages/walkthrough/steps/29/webapp/Component.ts
similarity index 100%
rename from steps/29/webapp/Component.ts
rename to packages/walkthrough/steps/29/webapp/Component.ts
diff --git a/steps/29/webapp/controller/App.controller.ts b/packages/walkthrough/steps/29/webapp/controller/App.controller.ts
similarity index 100%
rename from steps/29/webapp/controller/App.controller.ts
rename to packages/walkthrough/steps/29/webapp/controller/App.controller.ts
diff --git a/steps/29/webapp/controller/HelloPanel.controller.ts b/packages/walkthrough/steps/29/webapp/controller/HelloPanel.controller.ts
similarity index 100%
rename from steps/29/webapp/controller/HelloPanel.controller.ts
rename to packages/walkthrough/steps/29/webapp/controller/HelloPanel.controller.ts
diff --git a/steps/29/webapp/controller/InvoiceList.controller.ts b/packages/walkthrough/steps/29/webapp/controller/InvoiceList.controller.ts
similarity index 100%
rename from steps/29/webapp/controller/InvoiceList.controller.ts
rename to packages/walkthrough/steps/29/webapp/controller/InvoiceList.controller.ts
diff --git a/steps/29/webapp/css/style.css b/packages/walkthrough/steps/29/webapp/css/style.css
similarity index 100%
rename from steps/29/webapp/css/style.css
rename to packages/walkthrough/steps/29/webapp/css/style.css
diff --git a/steps/29/webapp/i18n/i18n.properties b/packages/walkthrough/steps/29/webapp/i18n/i18n.properties
similarity index 100%
rename from steps/29/webapp/i18n/i18n.properties
rename to packages/walkthrough/steps/29/webapp/i18n/i18n.properties
diff --git a/steps/29/webapp/index-cdn.html b/packages/walkthrough/steps/29/webapp/index-cdn.html
similarity index 100%
rename from steps/29/webapp/index-cdn.html
rename to packages/walkthrough/steps/29/webapp/index-cdn.html
diff --git a/steps/29/webapp/index.html b/packages/walkthrough/steps/29/webapp/index.html
similarity index 100%
rename from steps/29/webapp/index.html
rename to packages/walkthrough/steps/29/webapp/index.html
diff --git a/steps/29/webapp/localService/metadata.xml b/packages/walkthrough/steps/29/webapp/localService/metadata.xml
similarity index 100%
rename from steps/29/webapp/localService/metadata.xml
rename to packages/walkthrough/steps/29/webapp/localService/metadata.xml
diff --git a/steps/29/webapp/localService/mockdata/Invoices.json b/packages/walkthrough/steps/29/webapp/localService/mockdata/Invoices.json
similarity index 100%
rename from steps/29/webapp/localService/mockdata/Invoices.json
rename to packages/walkthrough/steps/29/webapp/localService/mockdata/Invoices.json
diff --git a/steps/29/webapp/localService/mockserver.ts b/packages/walkthrough/steps/29/webapp/localService/mockserver.ts
similarity index 100%
rename from steps/29/webapp/localService/mockserver.ts
rename to packages/walkthrough/steps/29/webapp/localService/mockserver.ts
diff --git a/steps/29/webapp/manifest.json b/packages/walkthrough/steps/29/webapp/manifest.json
similarity index 100%
rename from steps/29/webapp/manifest.json
rename to packages/walkthrough/steps/29/webapp/manifest.json
diff --git a/steps/29/webapp/model/formatter.ts b/packages/walkthrough/steps/29/webapp/model/formatter.ts
similarity index 100%
rename from steps/29/webapp/model/formatter.ts
rename to packages/walkthrough/steps/29/webapp/model/formatter.ts
diff --git a/steps/29/webapp/test/Test.cdn.qunit.html b/packages/walkthrough/steps/29/webapp/test/Test.cdn.qunit.html
similarity index 100%
rename from steps/29/webapp/test/Test.cdn.qunit.html
rename to packages/walkthrough/steps/29/webapp/test/Test.cdn.qunit.html
diff --git a/steps/29/webapp/test/Test.qunit.html b/packages/walkthrough/steps/29/webapp/test/Test.qunit.html
similarity index 100%
rename from steps/29/webapp/test/Test.qunit.html
rename to packages/walkthrough/steps/29/webapp/test/Test.qunit.html
diff --git a/steps/29/webapp/test/initMockServer.ts b/packages/walkthrough/steps/29/webapp/test/initMockServer.ts
similarity index 100%
rename from steps/29/webapp/test/initMockServer.ts
rename to packages/walkthrough/steps/29/webapp/test/initMockServer.ts
diff --git a/steps/29/webapp/test/integration/NavigationJourney.ts b/packages/walkthrough/steps/29/webapp/test/integration/NavigationJourney.ts
similarity index 100%
rename from steps/29/webapp/test/integration/NavigationJourney.ts
rename to packages/walkthrough/steps/29/webapp/test/integration/NavigationJourney.ts
diff --git a/steps/29/webapp/test/integration/opaTests.qunit.ts b/packages/walkthrough/steps/29/webapp/test/integration/opaTests.qunit.ts
similarity index 100%
rename from steps/29/webapp/test/integration/opaTests.qunit.ts
rename to packages/walkthrough/steps/29/webapp/test/integration/opaTests.qunit.ts
diff --git a/steps/29/webapp/test/integration/pages/HelloPanelPage.ts b/packages/walkthrough/steps/29/webapp/test/integration/pages/HelloPanelPage.ts
similarity index 100%
rename from steps/29/webapp/test/integration/pages/HelloPanelPage.ts
rename to packages/walkthrough/steps/29/webapp/test/integration/pages/HelloPanelPage.ts
diff --git a/steps/29/webapp/test/mockServer-cdn.html b/packages/walkthrough/steps/29/webapp/test/mockServer-cdn.html
similarity index 100%
rename from steps/29/webapp/test/mockServer-cdn.html
rename to packages/walkthrough/steps/29/webapp/test/mockServer-cdn.html
diff --git a/steps/29/webapp/test/mockServer.html b/packages/walkthrough/steps/29/webapp/test/mockServer.html
similarity index 100%
rename from steps/29/webapp/test/mockServer.html
rename to packages/walkthrough/steps/29/webapp/test/mockServer.html
diff --git a/steps/29/webapp/test/testsuite.cdn.qunit.html b/packages/walkthrough/steps/29/webapp/test/testsuite.cdn.qunit.html
similarity index 100%
rename from steps/29/webapp/test/testsuite.cdn.qunit.html
rename to packages/walkthrough/steps/29/webapp/test/testsuite.cdn.qunit.html
diff --git a/steps/29/webapp/test/testsuite.cdn.qunit.ts b/packages/walkthrough/steps/29/webapp/test/testsuite.cdn.qunit.ts
similarity index 100%
rename from steps/29/webapp/test/testsuite.cdn.qunit.ts
rename to packages/walkthrough/steps/29/webapp/test/testsuite.cdn.qunit.ts
diff --git a/steps/29/webapp/test/testsuite.qunit.html b/packages/walkthrough/steps/29/webapp/test/testsuite.qunit.html
similarity index 100%
rename from steps/29/webapp/test/testsuite.qunit.html
rename to packages/walkthrough/steps/29/webapp/test/testsuite.qunit.html
diff --git a/steps/29/webapp/test/testsuite.qunit.ts b/packages/walkthrough/steps/29/webapp/test/testsuite.qunit.ts
similarity index 100%
rename from steps/29/webapp/test/testsuite.qunit.ts
rename to packages/walkthrough/steps/29/webapp/test/testsuite.qunit.ts
diff --git a/steps/29/webapp/test/unit/model/formatter.ts b/packages/walkthrough/steps/29/webapp/test/unit/model/formatter.ts
similarity index 100%
rename from steps/29/webapp/test/unit/model/formatter.ts
rename to packages/walkthrough/steps/29/webapp/test/unit/model/formatter.ts
diff --git a/steps/29/webapp/test/unit/unitTests.qunit.ts b/packages/walkthrough/steps/29/webapp/test/unit/unitTests.qunit.ts
similarity index 100%
rename from steps/29/webapp/test/unit/unitTests.qunit.ts
rename to packages/walkthrough/steps/29/webapp/test/unit/unitTests.qunit.ts
diff --git a/steps/29/webapp/view/App.view.xml b/packages/walkthrough/steps/29/webapp/view/App.view.xml
similarity index 100%
rename from steps/29/webapp/view/App.view.xml
rename to packages/walkthrough/steps/29/webapp/view/App.view.xml
diff --git a/steps/29/webapp/view/HelloDialog.fragment.xml b/packages/walkthrough/steps/29/webapp/view/HelloDialog.fragment.xml
similarity index 100%
rename from steps/29/webapp/view/HelloDialog.fragment.xml
rename to packages/walkthrough/steps/29/webapp/view/HelloDialog.fragment.xml
diff --git a/steps/29/webapp/view/HelloPanel.view.xml b/packages/walkthrough/steps/29/webapp/view/HelloPanel.view.xml
similarity index 100%
rename from steps/29/webapp/view/HelloPanel.view.xml
rename to packages/walkthrough/steps/29/webapp/view/HelloPanel.view.xml
diff --git a/steps/29/webapp/view/InvoiceList.view.xml b/packages/walkthrough/steps/29/webapp/view/InvoiceList.view.xml
similarity index 100%
rename from steps/29/webapp/view/InvoiceList.view.xml
rename to packages/walkthrough/steps/29/webapp/view/InvoiceList.view.xml
diff --git a/steps/30/README.md b/packages/walkthrough/steps/30/README.md
similarity index 99%
rename from steps/30/README.md
rename to packages/walkthrough/steps/30/README.md
index 4d42d1607..d0759927f 100644
--- a/steps/30/README.md
+++ b/packages/walkthrough/steps/30/README.md
@@ -15,7 +15,7 @@ In this step, we will use the OpenUI5 navigation features to load and show a sep
*A second page is added to display the invoice*
-You can access the live preview by clicking on this link: [π Live Preview of Step 30](https://sap-samples.github.io/ui5-typescript-walkthrough/build/30/test/mockServer-cdn.html).
+You can access the live preview by clicking on this link: [π Live Preview of Step 30](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/build/30/test/mockServer-cdn.html).
***
@@ -24,13 +24,13 @@ You can access the live preview by clicking on this link: [π Live Preview of
-You can download the solution for this step here: [π₯ Download step 30](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-30.zip).
+You can download the solution for this step here: [π₯ Download step 30](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-30.zip).
-You can download the solution for this step here: [π₯ Download step 30](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-30-js.zip).
+You can download the solution for this step here: [π₯ Download step 30](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-30-js.zip).
***
diff --git a/steps/30/assets/loio94152a595fe24d45b12223e0abcccb9c_LowRes.png b/packages/walkthrough/steps/30/assets/loio94152a595fe24d45b12223e0abcccb9c_LowRes.png
similarity index 100%
rename from steps/30/assets/loio94152a595fe24d45b12223e0abcccb9c_LowRes.png
rename to packages/walkthrough/steps/30/assets/loio94152a595fe24d45b12223e0abcccb9c_LowRes.png
diff --git a/steps/30/package.json b/packages/walkthrough/steps/30/package.json
similarity index 93%
rename from steps/30/package.json
rename to packages/walkthrough/steps/30/package.json
index a4fe56e32..8a4a8fb0d 100644
--- a/steps/30/package.json
+++ b/packages/walkthrough/steps/30/package.json
@@ -8,7 +8,7 @@
"start": "ui5 serve -o test/mockServer.html"
},
"devDependencies": {
- "@types/openui5": "^1.142.0",
+ "@types/openui5": "^1.145.0",
"@ui5/cli": "^4.0.51",
"typescript": "^5.9.3",
"ui5-middleware-livereload": "^3.3.0",
diff --git a/steps/30/tsconfig.json b/packages/walkthrough/steps/30/tsconfig.json
similarity index 100%
rename from steps/30/tsconfig.json
rename to packages/walkthrough/steps/30/tsconfig.json
diff --git a/steps/30/ui5.yaml b/packages/walkthrough/steps/30/ui5.yaml
similarity index 100%
rename from steps/30/ui5.yaml
rename to packages/walkthrough/steps/30/ui5.yaml
diff --git a/steps/30/webapp/Component.ts b/packages/walkthrough/steps/30/webapp/Component.ts
similarity index 100%
rename from steps/30/webapp/Component.ts
rename to packages/walkthrough/steps/30/webapp/Component.ts
diff --git a/steps/30/webapp/controller/App.controller.ts b/packages/walkthrough/steps/30/webapp/controller/App.controller.ts
similarity index 100%
rename from steps/30/webapp/controller/App.controller.ts
rename to packages/walkthrough/steps/30/webapp/controller/App.controller.ts
diff --git a/steps/30/webapp/controller/HelloPanel.controller.ts b/packages/walkthrough/steps/30/webapp/controller/HelloPanel.controller.ts
similarity index 100%
rename from steps/30/webapp/controller/HelloPanel.controller.ts
rename to packages/walkthrough/steps/30/webapp/controller/HelloPanel.controller.ts
diff --git a/steps/30/webapp/controller/InvoiceList.controller.ts b/packages/walkthrough/steps/30/webapp/controller/InvoiceList.controller.ts
similarity index 100%
rename from steps/30/webapp/controller/InvoiceList.controller.ts
rename to packages/walkthrough/steps/30/webapp/controller/InvoiceList.controller.ts
diff --git a/steps/30/webapp/css/style.css b/packages/walkthrough/steps/30/webapp/css/style.css
similarity index 100%
rename from steps/30/webapp/css/style.css
rename to packages/walkthrough/steps/30/webapp/css/style.css
diff --git a/steps/30/webapp/i18n/i18n.properties b/packages/walkthrough/steps/30/webapp/i18n/i18n.properties
similarity index 100%
rename from steps/30/webapp/i18n/i18n.properties
rename to packages/walkthrough/steps/30/webapp/i18n/i18n.properties
diff --git a/steps/30/webapp/index-cdn.html b/packages/walkthrough/steps/30/webapp/index-cdn.html
similarity index 100%
rename from steps/30/webapp/index-cdn.html
rename to packages/walkthrough/steps/30/webapp/index-cdn.html
diff --git a/steps/30/webapp/index.html b/packages/walkthrough/steps/30/webapp/index.html
similarity index 100%
rename from steps/30/webapp/index.html
rename to packages/walkthrough/steps/30/webapp/index.html
diff --git a/steps/30/webapp/localService/metadata.xml b/packages/walkthrough/steps/30/webapp/localService/metadata.xml
similarity index 100%
rename from steps/30/webapp/localService/metadata.xml
rename to packages/walkthrough/steps/30/webapp/localService/metadata.xml
diff --git a/steps/30/webapp/localService/mockdata/Invoices.json b/packages/walkthrough/steps/30/webapp/localService/mockdata/Invoices.json
similarity index 100%
rename from steps/30/webapp/localService/mockdata/Invoices.json
rename to packages/walkthrough/steps/30/webapp/localService/mockdata/Invoices.json
diff --git a/steps/30/webapp/localService/mockserver.ts b/packages/walkthrough/steps/30/webapp/localService/mockserver.ts
similarity index 100%
rename from steps/30/webapp/localService/mockserver.ts
rename to packages/walkthrough/steps/30/webapp/localService/mockserver.ts
diff --git a/steps/30/webapp/manifest.json b/packages/walkthrough/steps/30/webapp/manifest.json
similarity index 100%
rename from steps/30/webapp/manifest.json
rename to packages/walkthrough/steps/30/webapp/manifest.json
diff --git a/steps/30/webapp/model/formatter.ts b/packages/walkthrough/steps/30/webapp/model/formatter.ts
similarity index 100%
rename from steps/30/webapp/model/formatter.ts
rename to packages/walkthrough/steps/30/webapp/model/formatter.ts
diff --git a/steps/30/webapp/test/Test.cdn.qunit.html b/packages/walkthrough/steps/30/webapp/test/Test.cdn.qunit.html
similarity index 100%
rename from steps/30/webapp/test/Test.cdn.qunit.html
rename to packages/walkthrough/steps/30/webapp/test/Test.cdn.qunit.html
diff --git a/steps/30/webapp/test/Test.qunit.html b/packages/walkthrough/steps/30/webapp/test/Test.qunit.html
similarity index 100%
rename from steps/30/webapp/test/Test.qunit.html
rename to packages/walkthrough/steps/30/webapp/test/Test.qunit.html
diff --git a/steps/30/webapp/test/initMockServer.ts b/packages/walkthrough/steps/30/webapp/test/initMockServer.ts
similarity index 100%
rename from steps/30/webapp/test/initMockServer.ts
rename to packages/walkthrough/steps/30/webapp/test/initMockServer.ts
diff --git a/steps/30/webapp/test/integration/NavigationJourney.ts b/packages/walkthrough/steps/30/webapp/test/integration/NavigationJourney.ts
similarity index 100%
rename from steps/30/webapp/test/integration/NavigationJourney.ts
rename to packages/walkthrough/steps/30/webapp/test/integration/NavigationJourney.ts
diff --git a/steps/30/webapp/test/integration/opaTests.qunit.ts b/packages/walkthrough/steps/30/webapp/test/integration/opaTests.qunit.ts
similarity index 100%
rename from steps/30/webapp/test/integration/opaTests.qunit.ts
rename to packages/walkthrough/steps/30/webapp/test/integration/opaTests.qunit.ts
diff --git a/steps/30/webapp/test/integration/pages/HelloPanelPage.ts b/packages/walkthrough/steps/30/webapp/test/integration/pages/HelloPanelPage.ts
similarity index 100%
rename from steps/30/webapp/test/integration/pages/HelloPanelPage.ts
rename to packages/walkthrough/steps/30/webapp/test/integration/pages/HelloPanelPage.ts
diff --git a/steps/30/webapp/test/mockServer-cdn.html b/packages/walkthrough/steps/30/webapp/test/mockServer-cdn.html
similarity index 100%
rename from steps/30/webapp/test/mockServer-cdn.html
rename to packages/walkthrough/steps/30/webapp/test/mockServer-cdn.html
diff --git a/steps/30/webapp/test/mockServer.html b/packages/walkthrough/steps/30/webapp/test/mockServer.html
similarity index 100%
rename from steps/30/webapp/test/mockServer.html
rename to packages/walkthrough/steps/30/webapp/test/mockServer.html
diff --git a/steps/30/webapp/test/testsuite.cdn.qunit.html b/packages/walkthrough/steps/30/webapp/test/testsuite.cdn.qunit.html
similarity index 100%
rename from steps/30/webapp/test/testsuite.cdn.qunit.html
rename to packages/walkthrough/steps/30/webapp/test/testsuite.cdn.qunit.html
diff --git a/steps/30/webapp/test/testsuite.cdn.qunit.ts b/packages/walkthrough/steps/30/webapp/test/testsuite.cdn.qunit.ts
similarity index 100%
rename from steps/30/webapp/test/testsuite.cdn.qunit.ts
rename to packages/walkthrough/steps/30/webapp/test/testsuite.cdn.qunit.ts
diff --git a/steps/30/webapp/test/testsuite.qunit.html b/packages/walkthrough/steps/30/webapp/test/testsuite.qunit.html
similarity index 100%
rename from steps/30/webapp/test/testsuite.qunit.html
rename to packages/walkthrough/steps/30/webapp/test/testsuite.qunit.html
diff --git a/steps/30/webapp/test/testsuite.qunit.ts b/packages/walkthrough/steps/30/webapp/test/testsuite.qunit.ts
similarity index 100%
rename from steps/30/webapp/test/testsuite.qunit.ts
rename to packages/walkthrough/steps/30/webapp/test/testsuite.qunit.ts
diff --git a/steps/30/webapp/test/unit/model/formatter.ts b/packages/walkthrough/steps/30/webapp/test/unit/model/formatter.ts
similarity index 100%
rename from steps/30/webapp/test/unit/model/formatter.ts
rename to packages/walkthrough/steps/30/webapp/test/unit/model/formatter.ts
diff --git a/steps/30/webapp/test/unit/unitTests.qunit.ts b/packages/walkthrough/steps/30/webapp/test/unit/unitTests.qunit.ts
similarity index 100%
rename from steps/30/webapp/test/unit/unitTests.qunit.ts
rename to packages/walkthrough/steps/30/webapp/test/unit/unitTests.qunit.ts
diff --git a/steps/30/webapp/view/App.view.xml b/packages/walkthrough/steps/30/webapp/view/App.view.xml
similarity index 100%
rename from steps/30/webapp/view/App.view.xml
rename to packages/walkthrough/steps/30/webapp/view/App.view.xml
diff --git a/steps/30/webapp/view/Detail.view.xml b/packages/walkthrough/steps/30/webapp/view/Detail.view.xml
similarity index 100%
rename from steps/30/webapp/view/Detail.view.xml
rename to packages/walkthrough/steps/30/webapp/view/Detail.view.xml
diff --git a/steps/30/webapp/view/HelloDialog.fragment.xml b/packages/walkthrough/steps/30/webapp/view/HelloDialog.fragment.xml
similarity index 100%
rename from steps/30/webapp/view/HelloDialog.fragment.xml
rename to packages/walkthrough/steps/30/webapp/view/HelloDialog.fragment.xml
diff --git a/steps/30/webapp/view/HelloPanel.view.xml b/packages/walkthrough/steps/30/webapp/view/HelloPanel.view.xml
similarity index 100%
rename from steps/30/webapp/view/HelloPanel.view.xml
rename to packages/walkthrough/steps/30/webapp/view/HelloPanel.view.xml
diff --git a/steps/30/webapp/view/InvoiceList.view.xml b/packages/walkthrough/steps/30/webapp/view/InvoiceList.view.xml
similarity index 100%
rename from steps/30/webapp/view/InvoiceList.view.xml
rename to packages/walkthrough/steps/30/webapp/view/InvoiceList.view.xml
diff --git a/steps/30/webapp/view/Overview.view.xml b/packages/walkthrough/steps/30/webapp/view/Overview.view.xml
similarity index 100%
rename from steps/30/webapp/view/Overview.view.xml
rename to packages/walkthrough/steps/30/webapp/view/Overview.view.xml
diff --git a/steps/31/README.md b/packages/walkthrough/steps/31/README.md
similarity index 98%
rename from steps/31/README.md
rename to packages/walkthrough/steps/31/README.md
index 6a05c784c..de0510804 100644
--- a/steps/31/README.md
+++ b/packages/walkthrough/steps/31/README.md
@@ -15,7 +15,7 @@ To make this work, we have to pass over the information which item has been sele
*The selected invoice details are now shown in the details page*
-You can access the live preview by clicking on this link: [π Live Preview of Step 31](https://sap-samples.github.io/ui5-typescript-walkthrough/build/31/test/mockServer-cdn.html).
+You can access the live preview by clicking on this link: [π Live Preview of Step 31](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/build/31/test/mockServer-cdn.html).
***
@@ -23,13 +23,13 @@ You can access the live preview by clicking on this link: [π Live Preview of
-You can download the solution for this step here: [π₯ Download step 31](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-31.zip).
+You can download the solution for this step here: [π₯ Download step 31](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-31.zip).
-You can download the solution for this step here: [π₯ Download step 31](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-31-js.zip).
+You can download the solution for this step here: [π₯ Download step 31](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-31-js.zip).
diff --git a/steps/31/assets/loio31da9d48ae204c36a991146b90648c21_LowRes.png b/packages/walkthrough/steps/31/assets/loio31da9d48ae204c36a991146b90648c21_LowRes.png
similarity index 100%
rename from steps/31/assets/loio31da9d48ae204c36a991146b90648c21_LowRes.png
rename to packages/walkthrough/steps/31/assets/loio31da9d48ae204c36a991146b90648c21_LowRes.png
diff --git a/steps/31/package.json b/packages/walkthrough/steps/31/package.json
similarity index 93%
rename from steps/31/package.json
rename to packages/walkthrough/steps/31/package.json
index 089ae053f..90e61efce 100644
--- a/steps/31/package.json
+++ b/packages/walkthrough/steps/31/package.json
@@ -8,7 +8,7 @@
"start": "ui5 serve -o test/mockServer.html"
},
"devDependencies": {
- "@types/openui5": "^1.142.0",
+ "@types/openui5": "^1.145.0",
"@ui5/cli": "^4.0.51",
"typescript": "^5.9.3",
"ui5-middleware-livereload": "^3.3.0",
diff --git a/steps/31/tsconfig.json b/packages/walkthrough/steps/31/tsconfig.json
similarity index 100%
rename from steps/31/tsconfig.json
rename to packages/walkthrough/steps/31/tsconfig.json
diff --git a/steps/31/ui5.yaml b/packages/walkthrough/steps/31/ui5.yaml
similarity index 100%
rename from steps/31/ui5.yaml
rename to packages/walkthrough/steps/31/ui5.yaml
diff --git a/steps/31/webapp/Component.ts b/packages/walkthrough/steps/31/webapp/Component.ts
similarity index 100%
rename from steps/31/webapp/Component.ts
rename to packages/walkthrough/steps/31/webapp/Component.ts
diff --git a/steps/31/webapp/controller/App.controller.ts b/packages/walkthrough/steps/31/webapp/controller/App.controller.ts
similarity index 100%
rename from steps/31/webapp/controller/App.controller.ts
rename to packages/walkthrough/steps/31/webapp/controller/App.controller.ts
diff --git a/steps/31/webapp/controller/Detail.controller.ts b/packages/walkthrough/steps/31/webapp/controller/Detail.controller.ts
similarity index 100%
rename from steps/31/webapp/controller/Detail.controller.ts
rename to packages/walkthrough/steps/31/webapp/controller/Detail.controller.ts
diff --git a/steps/31/webapp/controller/HelloPanel.controller.ts b/packages/walkthrough/steps/31/webapp/controller/HelloPanel.controller.ts
similarity index 100%
rename from steps/31/webapp/controller/HelloPanel.controller.ts
rename to packages/walkthrough/steps/31/webapp/controller/HelloPanel.controller.ts
diff --git a/steps/31/webapp/controller/InvoiceList.controller.ts b/packages/walkthrough/steps/31/webapp/controller/InvoiceList.controller.ts
similarity index 100%
rename from steps/31/webapp/controller/InvoiceList.controller.ts
rename to packages/walkthrough/steps/31/webapp/controller/InvoiceList.controller.ts
diff --git a/steps/31/webapp/css/style.css b/packages/walkthrough/steps/31/webapp/css/style.css
similarity index 100%
rename from steps/31/webapp/css/style.css
rename to packages/walkthrough/steps/31/webapp/css/style.css
diff --git a/steps/31/webapp/i18n/i18n.properties b/packages/walkthrough/steps/31/webapp/i18n/i18n.properties
similarity index 100%
rename from steps/31/webapp/i18n/i18n.properties
rename to packages/walkthrough/steps/31/webapp/i18n/i18n.properties
diff --git a/steps/31/webapp/index-cdn.html b/packages/walkthrough/steps/31/webapp/index-cdn.html
similarity index 100%
rename from steps/31/webapp/index-cdn.html
rename to packages/walkthrough/steps/31/webapp/index-cdn.html
diff --git a/steps/31/webapp/index.html b/packages/walkthrough/steps/31/webapp/index.html
similarity index 100%
rename from steps/31/webapp/index.html
rename to packages/walkthrough/steps/31/webapp/index.html
diff --git a/steps/31/webapp/localService/metadata.xml b/packages/walkthrough/steps/31/webapp/localService/metadata.xml
similarity index 100%
rename from steps/31/webapp/localService/metadata.xml
rename to packages/walkthrough/steps/31/webapp/localService/metadata.xml
diff --git a/steps/31/webapp/localService/mockdata/Invoices.json b/packages/walkthrough/steps/31/webapp/localService/mockdata/Invoices.json
similarity index 100%
rename from steps/31/webapp/localService/mockdata/Invoices.json
rename to packages/walkthrough/steps/31/webapp/localService/mockdata/Invoices.json
diff --git a/steps/31/webapp/localService/mockserver.ts b/packages/walkthrough/steps/31/webapp/localService/mockserver.ts
similarity index 100%
rename from steps/31/webapp/localService/mockserver.ts
rename to packages/walkthrough/steps/31/webapp/localService/mockserver.ts
diff --git a/steps/31/webapp/manifest.json b/packages/walkthrough/steps/31/webapp/manifest.json
similarity index 100%
rename from steps/31/webapp/manifest.json
rename to packages/walkthrough/steps/31/webapp/manifest.json
diff --git a/steps/31/webapp/model/formatter.ts b/packages/walkthrough/steps/31/webapp/model/formatter.ts
similarity index 100%
rename from steps/31/webapp/model/formatter.ts
rename to packages/walkthrough/steps/31/webapp/model/formatter.ts
diff --git a/steps/31/webapp/test/Test.cdn.qunit.html b/packages/walkthrough/steps/31/webapp/test/Test.cdn.qunit.html
similarity index 100%
rename from steps/31/webapp/test/Test.cdn.qunit.html
rename to packages/walkthrough/steps/31/webapp/test/Test.cdn.qunit.html
diff --git a/steps/31/webapp/test/Test.qunit.html b/packages/walkthrough/steps/31/webapp/test/Test.qunit.html
similarity index 100%
rename from steps/31/webapp/test/Test.qunit.html
rename to packages/walkthrough/steps/31/webapp/test/Test.qunit.html
diff --git a/steps/31/webapp/test/initMockServer.ts b/packages/walkthrough/steps/31/webapp/test/initMockServer.ts
similarity index 100%
rename from steps/31/webapp/test/initMockServer.ts
rename to packages/walkthrough/steps/31/webapp/test/initMockServer.ts
diff --git a/steps/31/webapp/test/integration/NavigationJourney.ts b/packages/walkthrough/steps/31/webapp/test/integration/NavigationJourney.ts
similarity index 100%
rename from steps/31/webapp/test/integration/NavigationJourney.ts
rename to packages/walkthrough/steps/31/webapp/test/integration/NavigationJourney.ts
diff --git a/steps/31/webapp/test/integration/opaTests.qunit.ts b/packages/walkthrough/steps/31/webapp/test/integration/opaTests.qunit.ts
similarity index 100%
rename from steps/31/webapp/test/integration/opaTests.qunit.ts
rename to packages/walkthrough/steps/31/webapp/test/integration/opaTests.qunit.ts
diff --git a/steps/31/webapp/test/integration/pages/HelloPanelPage.ts b/packages/walkthrough/steps/31/webapp/test/integration/pages/HelloPanelPage.ts
similarity index 100%
rename from steps/31/webapp/test/integration/pages/HelloPanelPage.ts
rename to packages/walkthrough/steps/31/webapp/test/integration/pages/HelloPanelPage.ts
diff --git a/steps/31/webapp/test/mockServer-cdn.html b/packages/walkthrough/steps/31/webapp/test/mockServer-cdn.html
similarity index 100%
rename from steps/31/webapp/test/mockServer-cdn.html
rename to packages/walkthrough/steps/31/webapp/test/mockServer-cdn.html
diff --git a/steps/31/webapp/test/mockServer.html b/packages/walkthrough/steps/31/webapp/test/mockServer.html
similarity index 100%
rename from steps/31/webapp/test/mockServer.html
rename to packages/walkthrough/steps/31/webapp/test/mockServer.html
diff --git a/steps/31/webapp/test/testsuite.cdn.qunit.html b/packages/walkthrough/steps/31/webapp/test/testsuite.cdn.qunit.html
similarity index 100%
rename from steps/31/webapp/test/testsuite.cdn.qunit.html
rename to packages/walkthrough/steps/31/webapp/test/testsuite.cdn.qunit.html
diff --git a/steps/31/webapp/test/testsuite.cdn.qunit.ts b/packages/walkthrough/steps/31/webapp/test/testsuite.cdn.qunit.ts
similarity index 100%
rename from steps/31/webapp/test/testsuite.cdn.qunit.ts
rename to packages/walkthrough/steps/31/webapp/test/testsuite.cdn.qunit.ts
diff --git a/steps/31/webapp/test/testsuite.qunit.html b/packages/walkthrough/steps/31/webapp/test/testsuite.qunit.html
similarity index 100%
rename from steps/31/webapp/test/testsuite.qunit.html
rename to packages/walkthrough/steps/31/webapp/test/testsuite.qunit.html
diff --git a/steps/31/webapp/test/testsuite.qunit.ts b/packages/walkthrough/steps/31/webapp/test/testsuite.qunit.ts
similarity index 100%
rename from steps/31/webapp/test/testsuite.qunit.ts
rename to packages/walkthrough/steps/31/webapp/test/testsuite.qunit.ts
diff --git a/steps/31/webapp/test/unit/model/formatter.ts b/packages/walkthrough/steps/31/webapp/test/unit/model/formatter.ts
similarity index 100%
rename from steps/31/webapp/test/unit/model/formatter.ts
rename to packages/walkthrough/steps/31/webapp/test/unit/model/formatter.ts
diff --git a/steps/31/webapp/test/unit/unitTests.qunit.ts b/packages/walkthrough/steps/31/webapp/test/unit/unitTests.qunit.ts
similarity index 100%
rename from steps/31/webapp/test/unit/unitTests.qunit.ts
rename to packages/walkthrough/steps/31/webapp/test/unit/unitTests.qunit.ts
diff --git a/steps/31/webapp/view/App.view.xml b/packages/walkthrough/steps/31/webapp/view/App.view.xml
similarity index 100%
rename from steps/31/webapp/view/App.view.xml
rename to packages/walkthrough/steps/31/webapp/view/App.view.xml
diff --git a/steps/31/webapp/view/Detail.view.xml b/packages/walkthrough/steps/31/webapp/view/Detail.view.xml
similarity index 100%
rename from steps/31/webapp/view/Detail.view.xml
rename to packages/walkthrough/steps/31/webapp/view/Detail.view.xml
diff --git a/steps/31/webapp/view/HelloDialog.fragment.xml b/packages/walkthrough/steps/31/webapp/view/HelloDialog.fragment.xml
similarity index 100%
rename from steps/31/webapp/view/HelloDialog.fragment.xml
rename to packages/walkthrough/steps/31/webapp/view/HelloDialog.fragment.xml
diff --git a/steps/31/webapp/view/HelloPanel.view.xml b/packages/walkthrough/steps/31/webapp/view/HelloPanel.view.xml
similarity index 100%
rename from steps/31/webapp/view/HelloPanel.view.xml
rename to packages/walkthrough/steps/31/webapp/view/HelloPanel.view.xml
diff --git a/steps/31/webapp/view/InvoiceList.view.xml b/packages/walkthrough/steps/31/webapp/view/InvoiceList.view.xml
similarity index 100%
rename from steps/31/webapp/view/InvoiceList.view.xml
rename to packages/walkthrough/steps/31/webapp/view/InvoiceList.view.xml
diff --git a/steps/31/webapp/view/Overview.view.xml b/packages/walkthrough/steps/31/webapp/view/Overview.view.xml
similarity index 100%
rename from steps/31/webapp/view/Overview.view.xml
rename to packages/walkthrough/steps/31/webapp/view/Overview.view.xml
diff --git a/steps/32/README.md b/packages/walkthrough/steps/32/README.md
similarity index 97%
rename from steps/32/README.md
rename to packages/walkthrough/steps/32/README.md
index 81d9faf90..a442e0e07 100644
--- a/steps/32/README.md
+++ b/packages/walkthrough/steps/32/README.md
@@ -13,7 +13,7 @@ Now we can navigate to our detail page and display an invoice, but we cannot go
*A back button is now displayed on the detail page*
-You can access the live preview by clicking on this link: [π Live Preview of Step 32](https://sap-samples.github.io/ui5-typescript-walkthrough/build/32/test/mockServer-cdn.html).
+You can access the live preview by clicking on this link: [π Live Preview of Step 32](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/build/32/test/mockServer-cdn.html).
***
@@ -21,13 +21,13 @@ You can access the live preview by clicking on this link: [π Live Preview of
-You can download the solution for this step here: [π₯ Download step 32](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-32.zip).
+You can download the solution for this step here: [π₯ Download step 32](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-32.zip).
-You can download the solution for this step here: [π₯ Download step 32](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-32-js.zip).
+You can download the solution for this step here: [π₯ Download step 32](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-32-js.zip).
diff --git a/steps/32/assets/loio33a8341077bb458685274c64d2317f6b_LowRes.png b/packages/walkthrough/steps/32/assets/loio33a8341077bb458685274c64d2317f6b_LowRes.png
similarity index 100%
rename from steps/32/assets/loio33a8341077bb458685274c64d2317f6b_LowRes.png
rename to packages/walkthrough/steps/32/assets/loio33a8341077bb458685274c64d2317f6b_LowRes.png
diff --git a/steps/32/package.json b/packages/walkthrough/steps/32/package.json
similarity index 93%
rename from steps/32/package.json
rename to packages/walkthrough/steps/32/package.json
index e0f6e0af1..aadd72c91 100644
--- a/steps/32/package.json
+++ b/packages/walkthrough/steps/32/package.json
@@ -8,7 +8,7 @@
"start": "ui5 serve -o test/mockServer.html"
},
"devDependencies": {
- "@types/openui5": "^1.142.0",
+ "@types/openui5": "^1.145.0",
"@ui5/cli": "^4.0.51",
"typescript": "^5.9.3",
"ui5-middleware-livereload": "^3.3.0",
diff --git a/steps/32/tsconfig.json b/packages/walkthrough/steps/32/tsconfig.json
similarity index 100%
rename from steps/32/tsconfig.json
rename to packages/walkthrough/steps/32/tsconfig.json
diff --git a/steps/32/ui5.yaml b/packages/walkthrough/steps/32/ui5.yaml
similarity index 100%
rename from steps/32/ui5.yaml
rename to packages/walkthrough/steps/32/ui5.yaml
diff --git a/steps/32/webapp/Component.ts b/packages/walkthrough/steps/32/webapp/Component.ts
similarity index 100%
rename from steps/32/webapp/Component.ts
rename to packages/walkthrough/steps/32/webapp/Component.ts
diff --git a/steps/32/webapp/controller/App.controller.ts b/packages/walkthrough/steps/32/webapp/controller/App.controller.ts
similarity index 100%
rename from steps/32/webapp/controller/App.controller.ts
rename to packages/walkthrough/steps/32/webapp/controller/App.controller.ts
diff --git a/steps/32/webapp/controller/Detail.controller.ts b/packages/walkthrough/steps/32/webapp/controller/Detail.controller.ts
similarity index 100%
rename from steps/32/webapp/controller/Detail.controller.ts
rename to packages/walkthrough/steps/32/webapp/controller/Detail.controller.ts
diff --git a/steps/32/webapp/controller/HelloPanel.controller.ts b/packages/walkthrough/steps/32/webapp/controller/HelloPanel.controller.ts
similarity index 100%
rename from steps/32/webapp/controller/HelloPanel.controller.ts
rename to packages/walkthrough/steps/32/webapp/controller/HelloPanel.controller.ts
diff --git a/steps/32/webapp/controller/InvoiceList.controller.ts b/packages/walkthrough/steps/32/webapp/controller/InvoiceList.controller.ts
similarity index 100%
rename from steps/32/webapp/controller/InvoiceList.controller.ts
rename to packages/walkthrough/steps/32/webapp/controller/InvoiceList.controller.ts
diff --git a/steps/32/webapp/css/style.css b/packages/walkthrough/steps/32/webapp/css/style.css
similarity index 100%
rename from steps/32/webapp/css/style.css
rename to packages/walkthrough/steps/32/webapp/css/style.css
diff --git a/steps/32/webapp/i18n/i18n.properties b/packages/walkthrough/steps/32/webapp/i18n/i18n.properties
similarity index 100%
rename from steps/32/webapp/i18n/i18n.properties
rename to packages/walkthrough/steps/32/webapp/i18n/i18n.properties
diff --git a/steps/32/webapp/index-cdn.html b/packages/walkthrough/steps/32/webapp/index-cdn.html
similarity index 100%
rename from steps/32/webapp/index-cdn.html
rename to packages/walkthrough/steps/32/webapp/index-cdn.html
diff --git a/steps/32/webapp/index.html b/packages/walkthrough/steps/32/webapp/index.html
similarity index 100%
rename from steps/32/webapp/index.html
rename to packages/walkthrough/steps/32/webapp/index.html
diff --git a/steps/32/webapp/localService/metadata.xml b/packages/walkthrough/steps/32/webapp/localService/metadata.xml
similarity index 100%
rename from steps/32/webapp/localService/metadata.xml
rename to packages/walkthrough/steps/32/webapp/localService/metadata.xml
diff --git a/steps/32/webapp/localService/mockdata/Invoices.json b/packages/walkthrough/steps/32/webapp/localService/mockdata/Invoices.json
similarity index 100%
rename from steps/32/webapp/localService/mockdata/Invoices.json
rename to packages/walkthrough/steps/32/webapp/localService/mockdata/Invoices.json
diff --git a/steps/32/webapp/localService/mockserver.ts b/packages/walkthrough/steps/32/webapp/localService/mockserver.ts
similarity index 100%
rename from steps/32/webapp/localService/mockserver.ts
rename to packages/walkthrough/steps/32/webapp/localService/mockserver.ts
diff --git a/steps/32/webapp/manifest.json b/packages/walkthrough/steps/32/webapp/manifest.json
similarity index 100%
rename from steps/32/webapp/manifest.json
rename to packages/walkthrough/steps/32/webapp/manifest.json
diff --git a/steps/32/webapp/model/formatter.ts b/packages/walkthrough/steps/32/webapp/model/formatter.ts
similarity index 100%
rename from steps/32/webapp/model/formatter.ts
rename to packages/walkthrough/steps/32/webapp/model/formatter.ts
diff --git a/steps/32/webapp/test/Test.cdn.qunit.html b/packages/walkthrough/steps/32/webapp/test/Test.cdn.qunit.html
similarity index 100%
rename from steps/32/webapp/test/Test.cdn.qunit.html
rename to packages/walkthrough/steps/32/webapp/test/Test.cdn.qunit.html
diff --git a/steps/32/webapp/test/Test.qunit.html b/packages/walkthrough/steps/32/webapp/test/Test.qunit.html
similarity index 100%
rename from steps/32/webapp/test/Test.qunit.html
rename to packages/walkthrough/steps/32/webapp/test/Test.qunit.html
diff --git a/steps/32/webapp/test/initMockServer.ts b/packages/walkthrough/steps/32/webapp/test/initMockServer.ts
similarity index 100%
rename from steps/32/webapp/test/initMockServer.ts
rename to packages/walkthrough/steps/32/webapp/test/initMockServer.ts
diff --git a/steps/32/webapp/test/integration/NavigationJourney.ts b/packages/walkthrough/steps/32/webapp/test/integration/NavigationJourney.ts
similarity index 100%
rename from steps/32/webapp/test/integration/NavigationJourney.ts
rename to packages/walkthrough/steps/32/webapp/test/integration/NavigationJourney.ts
diff --git a/steps/32/webapp/test/integration/opaTests.qunit.ts b/packages/walkthrough/steps/32/webapp/test/integration/opaTests.qunit.ts
similarity index 100%
rename from steps/32/webapp/test/integration/opaTests.qunit.ts
rename to packages/walkthrough/steps/32/webapp/test/integration/opaTests.qunit.ts
diff --git a/steps/32/webapp/test/integration/pages/HelloPanelPage.ts b/packages/walkthrough/steps/32/webapp/test/integration/pages/HelloPanelPage.ts
similarity index 100%
rename from steps/32/webapp/test/integration/pages/HelloPanelPage.ts
rename to packages/walkthrough/steps/32/webapp/test/integration/pages/HelloPanelPage.ts
diff --git a/steps/32/webapp/test/mockServer-cdn.html b/packages/walkthrough/steps/32/webapp/test/mockServer-cdn.html
similarity index 100%
rename from steps/32/webapp/test/mockServer-cdn.html
rename to packages/walkthrough/steps/32/webapp/test/mockServer-cdn.html
diff --git a/steps/32/webapp/test/mockServer.html b/packages/walkthrough/steps/32/webapp/test/mockServer.html
similarity index 100%
rename from steps/32/webapp/test/mockServer.html
rename to packages/walkthrough/steps/32/webapp/test/mockServer.html
diff --git a/steps/32/webapp/test/testsuite.cdn.qunit.html b/packages/walkthrough/steps/32/webapp/test/testsuite.cdn.qunit.html
similarity index 100%
rename from steps/32/webapp/test/testsuite.cdn.qunit.html
rename to packages/walkthrough/steps/32/webapp/test/testsuite.cdn.qunit.html
diff --git a/steps/32/webapp/test/testsuite.cdn.qunit.ts b/packages/walkthrough/steps/32/webapp/test/testsuite.cdn.qunit.ts
similarity index 100%
rename from steps/32/webapp/test/testsuite.cdn.qunit.ts
rename to packages/walkthrough/steps/32/webapp/test/testsuite.cdn.qunit.ts
diff --git a/steps/32/webapp/test/testsuite.qunit.html b/packages/walkthrough/steps/32/webapp/test/testsuite.qunit.html
similarity index 100%
rename from steps/32/webapp/test/testsuite.qunit.html
rename to packages/walkthrough/steps/32/webapp/test/testsuite.qunit.html
diff --git a/steps/32/webapp/test/testsuite.qunit.ts b/packages/walkthrough/steps/32/webapp/test/testsuite.qunit.ts
similarity index 100%
rename from steps/32/webapp/test/testsuite.qunit.ts
rename to packages/walkthrough/steps/32/webapp/test/testsuite.qunit.ts
diff --git a/steps/32/webapp/test/unit/model/formatter.ts b/packages/walkthrough/steps/32/webapp/test/unit/model/formatter.ts
similarity index 100%
rename from steps/32/webapp/test/unit/model/formatter.ts
rename to packages/walkthrough/steps/32/webapp/test/unit/model/formatter.ts
diff --git a/steps/32/webapp/test/unit/unitTests.qunit.ts b/packages/walkthrough/steps/32/webapp/test/unit/unitTests.qunit.ts
similarity index 100%
rename from steps/32/webapp/test/unit/unitTests.qunit.ts
rename to packages/walkthrough/steps/32/webapp/test/unit/unitTests.qunit.ts
diff --git a/steps/32/webapp/view/App.view.xml b/packages/walkthrough/steps/32/webapp/view/App.view.xml
similarity index 100%
rename from steps/32/webapp/view/App.view.xml
rename to packages/walkthrough/steps/32/webapp/view/App.view.xml
diff --git a/steps/32/webapp/view/Detail.view.xml b/packages/walkthrough/steps/32/webapp/view/Detail.view.xml
similarity index 100%
rename from steps/32/webapp/view/Detail.view.xml
rename to packages/walkthrough/steps/32/webapp/view/Detail.view.xml
diff --git a/steps/32/webapp/view/HelloDialog.fragment.xml b/packages/walkthrough/steps/32/webapp/view/HelloDialog.fragment.xml
similarity index 100%
rename from steps/32/webapp/view/HelloDialog.fragment.xml
rename to packages/walkthrough/steps/32/webapp/view/HelloDialog.fragment.xml
diff --git a/steps/32/webapp/view/HelloPanel.view.xml b/packages/walkthrough/steps/32/webapp/view/HelloPanel.view.xml
similarity index 100%
rename from steps/32/webapp/view/HelloPanel.view.xml
rename to packages/walkthrough/steps/32/webapp/view/HelloPanel.view.xml
diff --git a/steps/32/webapp/view/InvoiceList.view.xml b/packages/walkthrough/steps/32/webapp/view/InvoiceList.view.xml
similarity index 100%
rename from steps/32/webapp/view/InvoiceList.view.xml
rename to packages/walkthrough/steps/32/webapp/view/InvoiceList.view.xml
diff --git a/steps/32/webapp/view/Overview.view.xml b/packages/walkthrough/steps/32/webapp/view/Overview.view.xml
similarity index 100%
rename from steps/32/webapp/view/Overview.view.xml
rename to packages/walkthrough/steps/32/webapp/view/Overview.view.xml
diff --git a/steps/33/README.md b/packages/walkthrough/steps/33/README.md
similarity index 99%
rename from steps/33/README.md
rename to packages/walkthrough/steps/33/README.md
index 0e2be8156..77b3281e1 100644
--- a/steps/33/README.md
+++ b/packages/walkthrough/steps/33/README.md
@@ -12,20 +12,20 @@ In this step, we are going to extend the functionality of OpenUI5 with a custom
*A custom product rating control is added to the detail page*
-You can access the live preview by clicking on this link: [π Live Preview of Step 33](https://sap-samples.github.io/ui5-typescript-walkthrough/build/33/test/mockServer-cdn.html).
+You can access the live preview by clicking on this link: [π Live Preview of Step 33](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/build/33/test/mockServer-cdn.html).
***
### Coding
-You can download the solution for this step here: [π₯ Download step 33](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-33.zip).
+You can download the solution for this step here: [π₯ Download step 33](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-33.zip).
-You can download the solution for this step here: [π₯ Download step 33](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-33-js.zip).
+You can download the solution for this step here: [π₯ Download step 33](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-33-js.zip).
***
diff --git a/steps/33/assets/loio21dd14c37b67473b817c8865f168f668_LowRes.png b/packages/walkthrough/steps/33/assets/loio21dd14c37b67473b817c8865f168f668_LowRes.png
similarity index 100%
rename from steps/33/assets/loio21dd14c37b67473b817c8865f168f668_LowRes.png
rename to packages/walkthrough/steps/33/assets/loio21dd14c37b67473b817c8865f168f668_LowRes.png
diff --git a/steps/33/package.json b/packages/walkthrough/steps/33/package.json
similarity index 94%
rename from steps/33/package.json
rename to packages/walkthrough/steps/33/package.json
index d633a367c..66f4fff9f 100644
--- a/steps/33/package.json
+++ b/packages/walkthrough/steps/33/package.json
@@ -8,7 +8,7 @@
"start": "ui5 serve -o test/mockServer.html"
},
"devDependencies": {
- "@types/openui5": "^1.142.0",
+ "@types/openui5": "^1.145.0",
"@ui5/cli": "^4.0.51",
"@ui5/ts-interface-generator": "^0.10.5",
"typescript": "^5.9.3",
diff --git a/steps/33/tsconfig.json b/packages/walkthrough/steps/33/tsconfig.json
similarity index 100%
rename from steps/33/tsconfig.json
rename to packages/walkthrough/steps/33/tsconfig.json
diff --git a/steps/33/ui5.yaml b/packages/walkthrough/steps/33/ui5.yaml
similarity index 100%
rename from steps/33/ui5.yaml
rename to packages/walkthrough/steps/33/ui5.yaml
diff --git a/steps/33/webapp/Component.ts b/packages/walkthrough/steps/33/webapp/Component.ts
similarity index 100%
rename from steps/33/webapp/Component.ts
rename to packages/walkthrough/steps/33/webapp/Component.ts
diff --git a/steps/33/webapp/control/ProductRating.gen.d.ts b/packages/walkthrough/steps/33/webapp/control/ProductRating.gen.d.ts
similarity index 100%
rename from steps/33/webapp/control/ProductRating.gen.d.ts
rename to packages/walkthrough/steps/33/webapp/control/ProductRating.gen.d.ts
diff --git a/steps/33/webapp/control/ProductRating.ts b/packages/walkthrough/steps/33/webapp/control/ProductRating.ts
similarity index 100%
rename from steps/33/webapp/control/ProductRating.ts
rename to packages/walkthrough/steps/33/webapp/control/ProductRating.ts
diff --git a/steps/33/webapp/controller/App.controller.ts b/packages/walkthrough/steps/33/webapp/controller/App.controller.ts
similarity index 100%
rename from steps/33/webapp/controller/App.controller.ts
rename to packages/walkthrough/steps/33/webapp/controller/App.controller.ts
diff --git a/steps/33/webapp/controller/Detail.controller.ts b/packages/walkthrough/steps/33/webapp/controller/Detail.controller.ts
similarity index 100%
rename from steps/33/webapp/controller/Detail.controller.ts
rename to packages/walkthrough/steps/33/webapp/controller/Detail.controller.ts
diff --git a/steps/33/webapp/controller/HelloPanel.controller.ts b/packages/walkthrough/steps/33/webapp/controller/HelloPanel.controller.ts
similarity index 100%
rename from steps/33/webapp/controller/HelloPanel.controller.ts
rename to packages/walkthrough/steps/33/webapp/controller/HelloPanel.controller.ts
diff --git a/steps/33/webapp/controller/InvoiceList.controller.ts b/packages/walkthrough/steps/33/webapp/controller/InvoiceList.controller.ts
similarity index 100%
rename from steps/33/webapp/controller/InvoiceList.controller.ts
rename to packages/walkthrough/steps/33/webapp/controller/InvoiceList.controller.ts
diff --git a/steps/33/webapp/css/style.css b/packages/walkthrough/steps/33/webapp/css/style.css
similarity index 100%
rename from steps/33/webapp/css/style.css
rename to packages/walkthrough/steps/33/webapp/css/style.css
diff --git a/steps/33/webapp/i18n/i18n.properties b/packages/walkthrough/steps/33/webapp/i18n/i18n.properties
similarity index 100%
rename from steps/33/webapp/i18n/i18n.properties
rename to packages/walkthrough/steps/33/webapp/i18n/i18n.properties
diff --git a/steps/33/webapp/index-cdn.html b/packages/walkthrough/steps/33/webapp/index-cdn.html
similarity index 100%
rename from steps/33/webapp/index-cdn.html
rename to packages/walkthrough/steps/33/webapp/index-cdn.html
diff --git a/steps/33/webapp/index.html b/packages/walkthrough/steps/33/webapp/index.html
similarity index 100%
rename from steps/33/webapp/index.html
rename to packages/walkthrough/steps/33/webapp/index.html
diff --git a/steps/33/webapp/localService/metadata.xml b/packages/walkthrough/steps/33/webapp/localService/metadata.xml
similarity index 100%
rename from steps/33/webapp/localService/metadata.xml
rename to packages/walkthrough/steps/33/webapp/localService/metadata.xml
diff --git a/steps/33/webapp/localService/mockdata/Invoices.json b/packages/walkthrough/steps/33/webapp/localService/mockdata/Invoices.json
similarity index 100%
rename from steps/33/webapp/localService/mockdata/Invoices.json
rename to packages/walkthrough/steps/33/webapp/localService/mockdata/Invoices.json
diff --git a/steps/33/webapp/localService/mockserver.ts b/packages/walkthrough/steps/33/webapp/localService/mockserver.ts
similarity index 100%
rename from steps/33/webapp/localService/mockserver.ts
rename to packages/walkthrough/steps/33/webapp/localService/mockserver.ts
diff --git a/steps/33/webapp/manifest.json b/packages/walkthrough/steps/33/webapp/manifest.json
similarity index 100%
rename from steps/33/webapp/manifest.json
rename to packages/walkthrough/steps/33/webapp/manifest.json
diff --git a/steps/33/webapp/model/formatter.ts b/packages/walkthrough/steps/33/webapp/model/formatter.ts
similarity index 100%
rename from steps/33/webapp/model/formatter.ts
rename to packages/walkthrough/steps/33/webapp/model/formatter.ts
diff --git a/steps/33/webapp/test/Test.cdn.qunit.html b/packages/walkthrough/steps/33/webapp/test/Test.cdn.qunit.html
similarity index 100%
rename from steps/33/webapp/test/Test.cdn.qunit.html
rename to packages/walkthrough/steps/33/webapp/test/Test.cdn.qunit.html
diff --git a/steps/33/webapp/test/Test.qunit.html b/packages/walkthrough/steps/33/webapp/test/Test.qunit.html
similarity index 100%
rename from steps/33/webapp/test/Test.qunit.html
rename to packages/walkthrough/steps/33/webapp/test/Test.qunit.html
diff --git a/steps/33/webapp/test/initMockServer.ts b/packages/walkthrough/steps/33/webapp/test/initMockServer.ts
similarity index 100%
rename from steps/33/webapp/test/initMockServer.ts
rename to packages/walkthrough/steps/33/webapp/test/initMockServer.ts
diff --git a/steps/33/webapp/test/integration/NavigationJourney.ts b/packages/walkthrough/steps/33/webapp/test/integration/NavigationJourney.ts
similarity index 100%
rename from steps/33/webapp/test/integration/NavigationJourney.ts
rename to packages/walkthrough/steps/33/webapp/test/integration/NavigationJourney.ts
diff --git a/steps/33/webapp/test/integration/opaTests.qunit.ts b/packages/walkthrough/steps/33/webapp/test/integration/opaTests.qunit.ts
similarity index 100%
rename from steps/33/webapp/test/integration/opaTests.qunit.ts
rename to packages/walkthrough/steps/33/webapp/test/integration/opaTests.qunit.ts
diff --git a/steps/33/webapp/test/integration/pages/HelloPanelPage.ts b/packages/walkthrough/steps/33/webapp/test/integration/pages/HelloPanelPage.ts
similarity index 100%
rename from steps/33/webapp/test/integration/pages/HelloPanelPage.ts
rename to packages/walkthrough/steps/33/webapp/test/integration/pages/HelloPanelPage.ts
diff --git a/steps/33/webapp/test/mockServer-cdn.html b/packages/walkthrough/steps/33/webapp/test/mockServer-cdn.html
similarity index 100%
rename from steps/33/webapp/test/mockServer-cdn.html
rename to packages/walkthrough/steps/33/webapp/test/mockServer-cdn.html
diff --git a/steps/33/webapp/test/mockServer.html b/packages/walkthrough/steps/33/webapp/test/mockServer.html
similarity index 100%
rename from steps/33/webapp/test/mockServer.html
rename to packages/walkthrough/steps/33/webapp/test/mockServer.html
diff --git a/steps/33/webapp/test/testsuite.cdn.qunit.html b/packages/walkthrough/steps/33/webapp/test/testsuite.cdn.qunit.html
similarity index 100%
rename from steps/33/webapp/test/testsuite.cdn.qunit.html
rename to packages/walkthrough/steps/33/webapp/test/testsuite.cdn.qunit.html
diff --git a/steps/33/webapp/test/testsuite.cdn.qunit.ts b/packages/walkthrough/steps/33/webapp/test/testsuite.cdn.qunit.ts
similarity index 100%
rename from steps/33/webapp/test/testsuite.cdn.qunit.ts
rename to packages/walkthrough/steps/33/webapp/test/testsuite.cdn.qunit.ts
diff --git a/steps/33/webapp/test/testsuite.qunit.html b/packages/walkthrough/steps/33/webapp/test/testsuite.qunit.html
similarity index 100%
rename from steps/33/webapp/test/testsuite.qunit.html
rename to packages/walkthrough/steps/33/webapp/test/testsuite.qunit.html
diff --git a/steps/33/webapp/test/testsuite.qunit.ts b/packages/walkthrough/steps/33/webapp/test/testsuite.qunit.ts
similarity index 100%
rename from steps/33/webapp/test/testsuite.qunit.ts
rename to packages/walkthrough/steps/33/webapp/test/testsuite.qunit.ts
diff --git a/steps/33/webapp/test/unit/model/formatter.ts b/packages/walkthrough/steps/33/webapp/test/unit/model/formatter.ts
similarity index 100%
rename from steps/33/webapp/test/unit/model/formatter.ts
rename to packages/walkthrough/steps/33/webapp/test/unit/model/formatter.ts
diff --git a/steps/33/webapp/test/unit/unitTests.qunit.ts b/packages/walkthrough/steps/33/webapp/test/unit/unitTests.qunit.ts
similarity index 100%
rename from steps/33/webapp/test/unit/unitTests.qunit.ts
rename to packages/walkthrough/steps/33/webapp/test/unit/unitTests.qunit.ts
diff --git a/steps/33/webapp/view/App.view.xml b/packages/walkthrough/steps/33/webapp/view/App.view.xml
similarity index 100%
rename from steps/33/webapp/view/App.view.xml
rename to packages/walkthrough/steps/33/webapp/view/App.view.xml
diff --git a/steps/33/webapp/view/Detail.view.xml b/packages/walkthrough/steps/33/webapp/view/Detail.view.xml
similarity index 100%
rename from steps/33/webapp/view/Detail.view.xml
rename to packages/walkthrough/steps/33/webapp/view/Detail.view.xml
diff --git a/steps/33/webapp/view/HelloDialog.fragment.xml b/packages/walkthrough/steps/33/webapp/view/HelloDialog.fragment.xml
similarity index 100%
rename from steps/33/webapp/view/HelloDialog.fragment.xml
rename to packages/walkthrough/steps/33/webapp/view/HelloDialog.fragment.xml
diff --git a/steps/33/webapp/view/HelloPanel.view.xml b/packages/walkthrough/steps/33/webapp/view/HelloPanel.view.xml
similarity index 100%
rename from steps/33/webapp/view/HelloPanel.view.xml
rename to packages/walkthrough/steps/33/webapp/view/HelloPanel.view.xml
diff --git a/steps/33/webapp/view/InvoiceList.view.xml b/packages/walkthrough/steps/33/webapp/view/InvoiceList.view.xml
similarity index 100%
rename from steps/33/webapp/view/InvoiceList.view.xml
rename to packages/walkthrough/steps/33/webapp/view/InvoiceList.view.xml
diff --git a/steps/33/webapp/view/Overview.view.xml b/packages/walkthrough/steps/33/webapp/view/Overview.view.xml
similarity index 100%
rename from steps/33/webapp/view/Overview.view.xml
rename to packages/walkthrough/steps/33/webapp/view/Overview.view.xml
diff --git a/steps/34/README.md b/packages/walkthrough/steps/34/README.md
similarity index 98%
rename from steps/34/README.md
rename to packages/walkthrough/steps/34/README.md
index 98fdb3994..9eb1b040e 100644
--- a/steps/34/README.md
+++ b/packages/walkthrough/steps/34/README.md
@@ -13,7 +13,7 @@ In this step, we improve the responsiveness of our app. OpenUI5 applications can
*A responsive table is hiding some of the columns on small devices*
-You can access the live preview by clicking on this link: [π Live Preview of Step 34](https://sap-samples.github.io/ui5-typescript-walkthrough/build/34/test/mockServer-cdn.html).
+You can access the live preview by clicking on this link: [π Live Preview of Step 34](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/build/34/test/mockServer-cdn.html).
***
@@ -21,13 +21,13 @@ You can access the live preview by clicking on this link: [π Live Preview of
### Coding
-You can download the solution for this step here: [π₯ Download step 34](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-34.zip).
+You can download the solution for this step here: [π₯ Download step 34](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-34.zip).
-You can download the solution for this step here: [π₯ Download step 34](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-34-js.zip).
+You can download the solution for this step here: [π₯ Download step 34](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-34-js.zip).
***
diff --git a/steps/34/assets/loiocc3f2e0d8ac6471288af6495836c2f07_LowRes.png b/packages/walkthrough/steps/34/assets/loiocc3f2e0d8ac6471288af6495836c2f07_LowRes.png
similarity index 100%
rename from steps/34/assets/loiocc3f2e0d8ac6471288af6495836c2f07_LowRes.png
rename to packages/walkthrough/steps/34/assets/loiocc3f2e0d8ac6471288af6495836c2f07_LowRes.png
diff --git a/steps/34/package.json b/packages/walkthrough/steps/34/package.json
similarity index 94%
rename from steps/34/package.json
rename to packages/walkthrough/steps/34/package.json
index 75506ae60..f62ab2478 100644
--- a/steps/34/package.json
+++ b/packages/walkthrough/steps/34/package.json
@@ -8,7 +8,7 @@
"start": "ui5 serve -o test/mockServer.html"
},
"devDependencies": {
- "@types/openui5": "^1.142.0",
+ "@types/openui5": "^1.145.0",
"@ui5/cli": "^4.0.51",
"@ui5/ts-interface-generator": "^0.10.5",
"typescript": "^5.9.3",
diff --git a/steps/34/tsconfig.json b/packages/walkthrough/steps/34/tsconfig.json
similarity index 100%
rename from steps/34/tsconfig.json
rename to packages/walkthrough/steps/34/tsconfig.json
diff --git a/steps/34/ui5.yaml b/packages/walkthrough/steps/34/ui5.yaml
similarity index 100%
rename from steps/34/ui5.yaml
rename to packages/walkthrough/steps/34/ui5.yaml
diff --git a/steps/34/webapp/Component.ts b/packages/walkthrough/steps/34/webapp/Component.ts
similarity index 100%
rename from steps/34/webapp/Component.ts
rename to packages/walkthrough/steps/34/webapp/Component.ts
diff --git a/steps/34/webapp/control/ProductRating.gen.d.ts b/packages/walkthrough/steps/34/webapp/control/ProductRating.gen.d.ts
similarity index 100%
rename from steps/34/webapp/control/ProductRating.gen.d.ts
rename to packages/walkthrough/steps/34/webapp/control/ProductRating.gen.d.ts
diff --git a/steps/34/webapp/control/ProductRating.ts b/packages/walkthrough/steps/34/webapp/control/ProductRating.ts
similarity index 100%
rename from steps/34/webapp/control/ProductRating.ts
rename to packages/walkthrough/steps/34/webapp/control/ProductRating.ts
diff --git a/steps/34/webapp/controller/App.controller.ts b/packages/walkthrough/steps/34/webapp/controller/App.controller.ts
similarity index 100%
rename from steps/34/webapp/controller/App.controller.ts
rename to packages/walkthrough/steps/34/webapp/controller/App.controller.ts
diff --git a/steps/34/webapp/controller/Detail.controller.ts b/packages/walkthrough/steps/34/webapp/controller/Detail.controller.ts
similarity index 100%
rename from steps/34/webapp/controller/Detail.controller.ts
rename to packages/walkthrough/steps/34/webapp/controller/Detail.controller.ts
diff --git a/steps/34/webapp/controller/HelloPanel.controller.ts b/packages/walkthrough/steps/34/webapp/controller/HelloPanel.controller.ts
similarity index 100%
rename from steps/34/webapp/controller/HelloPanel.controller.ts
rename to packages/walkthrough/steps/34/webapp/controller/HelloPanel.controller.ts
diff --git a/steps/34/webapp/controller/InvoiceList.controller.ts b/packages/walkthrough/steps/34/webapp/controller/InvoiceList.controller.ts
similarity index 100%
rename from steps/34/webapp/controller/InvoiceList.controller.ts
rename to packages/walkthrough/steps/34/webapp/controller/InvoiceList.controller.ts
diff --git a/steps/34/webapp/css/style.css b/packages/walkthrough/steps/34/webapp/css/style.css
similarity index 100%
rename from steps/34/webapp/css/style.css
rename to packages/walkthrough/steps/34/webapp/css/style.css
diff --git a/steps/34/webapp/i18n/i18n.properties b/packages/walkthrough/steps/34/webapp/i18n/i18n.properties
similarity index 100%
rename from steps/34/webapp/i18n/i18n.properties
rename to packages/walkthrough/steps/34/webapp/i18n/i18n.properties
diff --git a/steps/34/webapp/index-cdn.html b/packages/walkthrough/steps/34/webapp/index-cdn.html
similarity index 100%
rename from steps/34/webapp/index-cdn.html
rename to packages/walkthrough/steps/34/webapp/index-cdn.html
diff --git a/steps/34/webapp/index.html b/packages/walkthrough/steps/34/webapp/index.html
similarity index 100%
rename from steps/34/webapp/index.html
rename to packages/walkthrough/steps/34/webapp/index.html
diff --git a/steps/34/webapp/localService/metadata.xml b/packages/walkthrough/steps/34/webapp/localService/metadata.xml
similarity index 100%
rename from steps/34/webapp/localService/metadata.xml
rename to packages/walkthrough/steps/34/webapp/localService/metadata.xml
diff --git a/steps/34/webapp/localService/mockdata/Invoices.json b/packages/walkthrough/steps/34/webapp/localService/mockdata/Invoices.json
similarity index 100%
rename from steps/34/webapp/localService/mockdata/Invoices.json
rename to packages/walkthrough/steps/34/webapp/localService/mockdata/Invoices.json
diff --git a/steps/34/webapp/localService/mockserver.ts b/packages/walkthrough/steps/34/webapp/localService/mockserver.ts
similarity index 100%
rename from steps/34/webapp/localService/mockserver.ts
rename to packages/walkthrough/steps/34/webapp/localService/mockserver.ts
diff --git a/steps/34/webapp/manifest.json b/packages/walkthrough/steps/34/webapp/manifest.json
similarity index 100%
rename from steps/34/webapp/manifest.json
rename to packages/walkthrough/steps/34/webapp/manifest.json
diff --git a/steps/34/webapp/model/formatter.ts b/packages/walkthrough/steps/34/webapp/model/formatter.ts
similarity index 100%
rename from steps/34/webapp/model/formatter.ts
rename to packages/walkthrough/steps/34/webapp/model/formatter.ts
diff --git a/steps/34/webapp/test/Test.cdn.qunit.html b/packages/walkthrough/steps/34/webapp/test/Test.cdn.qunit.html
similarity index 100%
rename from steps/34/webapp/test/Test.cdn.qunit.html
rename to packages/walkthrough/steps/34/webapp/test/Test.cdn.qunit.html
diff --git a/steps/34/webapp/test/Test.qunit.html b/packages/walkthrough/steps/34/webapp/test/Test.qunit.html
similarity index 100%
rename from steps/34/webapp/test/Test.qunit.html
rename to packages/walkthrough/steps/34/webapp/test/Test.qunit.html
diff --git a/steps/34/webapp/test/initMockServer.ts b/packages/walkthrough/steps/34/webapp/test/initMockServer.ts
similarity index 100%
rename from steps/34/webapp/test/initMockServer.ts
rename to packages/walkthrough/steps/34/webapp/test/initMockServer.ts
diff --git a/steps/34/webapp/test/integration/NavigationJourney.ts b/packages/walkthrough/steps/34/webapp/test/integration/NavigationJourney.ts
similarity index 100%
rename from steps/34/webapp/test/integration/NavigationJourney.ts
rename to packages/walkthrough/steps/34/webapp/test/integration/NavigationJourney.ts
diff --git a/steps/34/webapp/test/integration/opaTests.qunit.ts b/packages/walkthrough/steps/34/webapp/test/integration/opaTests.qunit.ts
similarity index 100%
rename from steps/34/webapp/test/integration/opaTests.qunit.ts
rename to packages/walkthrough/steps/34/webapp/test/integration/opaTests.qunit.ts
diff --git a/steps/34/webapp/test/integration/pages/HelloPanelPage.ts b/packages/walkthrough/steps/34/webapp/test/integration/pages/HelloPanelPage.ts
similarity index 100%
rename from steps/34/webapp/test/integration/pages/HelloPanelPage.ts
rename to packages/walkthrough/steps/34/webapp/test/integration/pages/HelloPanelPage.ts
diff --git a/steps/34/webapp/test/mockServer-cdn.html b/packages/walkthrough/steps/34/webapp/test/mockServer-cdn.html
similarity index 100%
rename from steps/34/webapp/test/mockServer-cdn.html
rename to packages/walkthrough/steps/34/webapp/test/mockServer-cdn.html
diff --git a/steps/34/webapp/test/mockServer.html b/packages/walkthrough/steps/34/webapp/test/mockServer.html
similarity index 100%
rename from steps/34/webapp/test/mockServer.html
rename to packages/walkthrough/steps/34/webapp/test/mockServer.html
diff --git a/steps/34/webapp/test/testsuite.cdn.qunit.html b/packages/walkthrough/steps/34/webapp/test/testsuite.cdn.qunit.html
similarity index 100%
rename from steps/34/webapp/test/testsuite.cdn.qunit.html
rename to packages/walkthrough/steps/34/webapp/test/testsuite.cdn.qunit.html
diff --git a/steps/34/webapp/test/testsuite.cdn.qunit.ts b/packages/walkthrough/steps/34/webapp/test/testsuite.cdn.qunit.ts
similarity index 100%
rename from steps/34/webapp/test/testsuite.cdn.qunit.ts
rename to packages/walkthrough/steps/34/webapp/test/testsuite.cdn.qunit.ts
diff --git a/steps/34/webapp/test/testsuite.qunit.html b/packages/walkthrough/steps/34/webapp/test/testsuite.qunit.html
similarity index 100%
rename from steps/34/webapp/test/testsuite.qunit.html
rename to packages/walkthrough/steps/34/webapp/test/testsuite.qunit.html
diff --git a/steps/34/webapp/test/testsuite.qunit.ts b/packages/walkthrough/steps/34/webapp/test/testsuite.qunit.ts
similarity index 100%
rename from steps/34/webapp/test/testsuite.qunit.ts
rename to packages/walkthrough/steps/34/webapp/test/testsuite.qunit.ts
diff --git a/steps/34/webapp/test/unit/model/formatter.ts b/packages/walkthrough/steps/34/webapp/test/unit/model/formatter.ts
similarity index 100%
rename from steps/34/webapp/test/unit/model/formatter.ts
rename to packages/walkthrough/steps/34/webapp/test/unit/model/formatter.ts
diff --git a/steps/34/webapp/test/unit/unitTests.qunit.ts b/packages/walkthrough/steps/34/webapp/test/unit/unitTests.qunit.ts
similarity index 100%
rename from steps/34/webapp/test/unit/unitTests.qunit.ts
rename to packages/walkthrough/steps/34/webapp/test/unit/unitTests.qunit.ts
diff --git a/steps/34/webapp/view/App.view.xml b/packages/walkthrough/steps/34/webapp/view/App.view.xml
similarity index 100%
rename from steps/34/webapp/view/App.view.xml
rename to packages/walkthrough/steps/34/webapp/view/App.view.xml
diff --git a/steps/34/webapp/view/Detail.view.xml b/packages/walkthrough/steps/34/webapp/view/Detail.view.xml
similarity index 100%
rename from steps/34/webapp/view/Detail.view.xml
rename to packages/walkthrough/steps/34/webapp/view/Detail.view.xml
diff --git a/steps/34/webapp/view/HelloDialog.fragment.xml b/packages/walkthrough/steps/34/webapp/view/HelloDialog.fragment.xml
similarity index 100%
rename from steps/34/webapp/view/HelloDialog.fragment.xml
rename to packages/walkthrough/steps/34/webapp/view/HelloDialog.fragment.xml
diff --git a/steps/34/webapp/view/HelloPanel.view.xml b/packages/walkthrough/steps/34/webapp/view/HelloPanel.view.xml
similarity index 100%
rename from steps/34/webapp/view/HelloPanel.view.xml
rename to packages/walkthrough/steps/34/webapp/view/HelloPanel.view.xml
diff --git a/steps/34/webapp/view/InvoiceList.view.xml b/packages/walkthrough/steps/34/webapp/view/InvoiceList.view.xml
similarity index 100%
rename from steps/34/webapp/view/InvoiceList.view.xml
rename to packages/walkthrough/steps/34/webapp/view/InvoiceList.view.xml
diff --git a/steps/34/webapp/view/Overview.view.xml b/packages/walkthrough/steps/34/webapp/view/Overview.view.xml
similarity index 100%
rename from steps/34/webapp/view/Overview.view.xml
rename to packages/walkthrough/steps/34/webapp/view/Overview.view.xml
diff --git a/steps/35/README.md b/packages/walkthrough/steps/35/README.md
similarity index 98%
rename from steps/35/README.md
rename to packages/walkthrough/steps/35/README.md
index 3b83a7c68..399b74067 100644
--- a/steps/35/README.md
+++ b/packages/walkthrough/steps/35/README.md
@@ -12,20 +12,20 @@ We now configure the visibility and properties of controls based on the device t
*On phone devices, the panel is collapsed to save screen space and a button is hidden*
-You can access the live preview by clicking on this link: [π Live Preview of Step 35](https://sap-samples.github.io/ui5-typescript-walkthrough/build/35/test/mockServer-cdn.html).
+You can access the live preview by clicking on this link: [π Live Preview of Step 35](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/build/35/test/mockServer-cdn.html).
***
### Coding
-You can download the solution for this step here: [π₯ Download step 35](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-35.zip).
+You can download the solution for this step here: [π₯ Download step 35](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-35.zip).
-You can download the solution for this step here: [π₯ Download step 35](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-35-js.zip).
+You can download the solution for this step here: [π₯ Download step 35](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-35-js.zip).
***
diff --git a/steps/35/assets/loio0b0d57e04e574d7fbc4b10395e6cb260_LowRes.png b/packages/walkthrough/steps/35/assets/loio0b0d57e04e574d7fbc4b10395e6cb260_LowRes.png
similarity index 100%
rename from steps/35/assets/loio0b0d57e04e574d7fbc4b10395e6cb260_LowRes.png
rename to packages/walkthrough/steps/35/assets/loio0b0d57e04e574d7fbc4b10395e6cb260_LowRes.png
diff --git a/steps/35/package.json b/packages/walkthrough/steps/35/package.json
similarity index 94%
rename from steps/35/package.json
rename to packages/walkthrough/steps/35/package.json
index 3ae3a7ef3..76905a649 100644
--- a/steps/35/package.json
+++ b/packages/walkthrough/steps/35/package.json
@@ -8,7 +8,7 @@
"start": "ui5 serve -o test/mockServer.html"
},
"devDependencies": {
- "@types/openui5": "^1.142.0",
+ "@types/openui5": "^1.145.0",
"@ui5/cli": "^4.0.51",
"@ui5/ts-interface-generator": "^0.10.5",
"typescript": "^5.9.3",
diff --git a/steps/35/tsconfig.json b/packages/walkthrough/steps/35/tsconfig.json
similarity index 100%
rename from steps/35/tsconfig.json
rename to packages/walkthrough/steps/35/tsconfig.json
diff --git a/steps/35/ui5.yaml b/packages/walkthrough/steps/35/ui5.yaml
similarity index 100%
rename from steps/35/ui5.yaml
rename to packages/walkthrough/steps/35/ui5.yaml
diff --git a/steps/35/webapp/Component.ts b/packages/walkthrough/steps/35/webapp/Component.ts
similarity index 100%
rename from steps/35/webapp/Component.ts
rename to packages/walkthrough/steps/35/webapp/Component.ts
diff --git a/steps/35/webapp/control/ProductRating.gen.d.ts b/packages/walkthrough/steps/35/webapp/control/ProductRating.gen.d.ts
similarity index 100%
rename from steps/35/webapp/control/ProductRating.gen.d.ts
rename to packages/walkthrough/steps/35/webapp/control/ProductRating.gen.d.ts
diff --git a/steps/35/webapp/control/ProductRating.ts b/packages/walkthrough/steps/35/webapp/control/ProductRating.ts
similarity index 100%
rename from steps/35/webapp/control/ProductRating.ts
rename to packages/walkthrough/steps/35/webapp/control/ProductRating.ts
diff --git a/steps/35/webapp/controller/App.controller.ts b/packages/walkthrough/steps/35/webapp/controller/App.controller.ts
similarity index 100%
rename from steps/35/webapp/controller/App.controller.ts
rename to packages/walkthrough/steps/35/webapp/controller/App.controller.ts
diff --git a/steps/35/webapp/controller/Detail.controller.ts b/packages/walkthrough/steps/35/webapp/controller/Detail.controller.ts
similarity index 100%
rename from steps/35/webapp/controller/Detail.controller.ts
rename to packages/walkthrough/steps/35/webapp/controller/Detail.controller.ts
diff --git a/steps/35/webapp/controller/HelloPanel.controller.ts b/packages/walkthrough/steps/35/webapp/controller/HelloPanel.controller.ts
similarity index 100%
rename from steps/35/webapp/controller/HelloPanel.controller.ts
rename to packages/walkthrough/steps/35/webapp/controller/HelloPanel.controller.ts
diff --git a/steps/35/webapp/controller/InvoiceList.controller.ts b/packages/walkthrough/steps/35/webapp/controller/InvoiceList.controller.ts
similarity index 100%
rename from steps/35/webapp/controller/InvoiceList.controller.ts
rename to packages/walkthrough/steps/35/webapp/controller/InvoiceList.controller.ts
diff --git a/steps/35/webapp/css/style.css b/packages/walkthrough/steps/35/webapp/css/style.css
similarity index 100%
rename from steps/35/webapp/css/style.css
rename to packages/walkthrough/steps/35/webapp/css/style.css
diff --git a/steps/35/webapp/i18n/i18n.properties b/packages/walkthrough/steps/35/webapp/i18n/i18n.properties
similarity index 100%
rename from steps/35/webapp/i18n/i18n.properties
rename to packages/walkthrough/steps/35/webapp/i18n/i18n.properties
diff --git a/steps/35/webapp/index-cdn.html b/packages/walkthrough/steps/35/webapp/index-cdn.html
similarity index 100%
rename from steps/35/webapp/index-cdn.html
rename to packages/walkthrough/steps/35/webapp/index-cdn.html
diff --git a/steps/35/webapp/index.html b/packages/walkthrough/steps/35/webapp/index.html
similarity index 100%
rename from steps/35/webapp/index.html
rename to packages/walkthrough/steps/35/webapp/index.html
diff --git a/steps/35/webapp/localService/metadata.xml b/packages/walkthrough/steps/35/webapp/localService/metadata.xml
similarity index 100%
rename from steps/35/webapp/localService/metadata.xml
rename to packages/walkthrough/steps/35/webapp/localService/metadata.xml
diff --git a/steps/35/webapp/localService/mockdata/Invoices.json b/packages/walkthrough/steps/35/webapp/localService/mockdata/Invoices.json
similarity index 100%
rename from steps/35/webapp/localService/mockdata/Invoices.json
rename to packages/walkthrough/steps/35/webapp/localService/mockdata/Invoices.json
diff --git a/steps/35/webapp/localService/mockserver.ts b/packages/walkthrough/steps/35/webapp/localService/mockserver.ts
similarity index 100%
rename from steps/35/webapp/localService/mockserver.ts
rename to packages/walkthrough/steps/35/webapp/localService/mockserver.ts
diff --git a/steps/35/webapp/manifest.json b/packages/walkthrough/steps/35/webapp/manifest.json
similarity index 100%
rename from steps/35/webapp/manifest.json
rename to packages/walkthrough/steps/35/webapp/manifest.json
diff --git a/steps/35/webapp/model/formatter.ts b/packages/walkthrough/steps/35/webapp/model/formatter.ts
similarity index 100%
rename from steps/35/webapp/model/formatter.ts
rename to packages/walkthrough/steps/35/webapp/model/formatter.ts
diff --git a/steps/35/webapp/test/Test.cdn.qunit.html b/packages/walkthrough/steps/35/webapp/test/Test.cdn.qunit.html
similarity index 100%
rename from steps/35/webapp/test/Test.cdn.qunit.html
rename to packages/walkthrough/steps/35/webapp/test/Test.cdn.qunit.html
diff --git a/steps/35/webapp/test/Test.qunit.html b/packages/walkthrough/steps/35/webapp/test/Test.qunit.html
similarity index 100%
rename from steps/35/webapp/test/Test.qunit.html
rename to packages/walkthrough/steps/35/webapp/test/Test.qunit.html
diff --git a/steps/35/webapp/test/initMockServer.ts b/packages/walkthrough/steps/35/webapp/test/initMockServer.ts
similarity index 100%
rename from steps/35/webapp/test/initMockServer.ts
rename to packages/walkthrough/steps/35/webapp/test/initMockServer.ts
diff --git a/steps/35/webapp/test/integration/NavigationJourney.ts b/packages/walkthrough/steps/35/webapp/test/integration/NavigationJourney.ts
similarity index 100%
rename from steps/35/webapp/test/integration/NavigationJourney.ts
rename to packages/walkthrough/steps/35/webapp/test/integration/NavigationJourney.ts
diff --git a/steps/35/webapp/test/integration/opaTests.qunit.ts b/packages/walkthrough/steps/35/webapp/test/integration/opaTests.qunit.ts
similarity index 100%
rename from steps/35/webapp/test/integration/opaTests.qunit.ts
rename to packages/walkthrough/steps/35/webapp/test/integration/opaTests.qunit.ts
diff --git a/steps/35/webapp/test/integration/pages/HelloPanelPage.ts b/packages/walkthrough/steps/35/webapp/test/integration/pages/HelloPanelPage.ts
similarity index 100%
rename from steps/35/webapp/test/integration/pages/HelloPanelPage.ts
rename to packages/walkthrough/steps/35/webapp/test/integration/pages/HelloPanelPage.ts
diff --git a/steps/35/webapp/test/mockServer-cdn.html b/packages/walkthrough/steps/35/webapp/test/mockServer-cdn.html
similarity index 100%
rename from steps/35/webapp/test/mockServer-cdn.html
rename to packages/walkthrough/steps/35/webapp/test/mockServer-cdn.html
diff --git a/steps/35/webapp/test/mockServer.html b/packages/walkthrough/steps/35/webapp/test/mockServer.html
similarity index 100%
rename from steps/35/webapp/test/mockServer.html
rename to packages/walkthrough/steps/35/webapp/test/mockServer.html
diff --git a/steps/35/webapp/test/testsuite.cdn.qunit.html b/packages/walkthrough/steps/35/webapp/test/testsuite.cdn.qunit.html
similarity index 100%
rename from steps/35/webapp/test/testsuite.cdn.qunit.html
rename to packages/walkthrough/steps/35/webapp/test/testsuite.cdn.qunit.html
diff --git a/steps/35/webapp/test/testsuite.cdn.qunit.ts b/packages/walkthrough/steps/35/webapp/test/testsuite.cdn.qunit.ts
similarity index 100%
rename from steps/35/webapp/test/testsuite.cdn.qunit.ts
rename to packages/walkthrough/steps/35/webapp/test/testsuite.cdn.qunit.ts
diff --git a/steps/35/webapp/test/testsuite.qunit.html b/packages/walkthrough/steps/35/webapp/test/testsuite.qunit.html
similarity index 100%
rename from steps/35/webapp/test/testsuite.qunit.html
rename to packages/walkthrough/steps/35/webapp/test/testsuite.qunit.html
diff --git a/steps/35/webapp/test/testsuite.qunit.ts b/packages/walkthrough/steps/35/webapp/test/testsuite.qunit.ts
similarity index 100%
rename from steps/35/webapp/test/testsuite.qunit.ts
rename to packages/walkthrough/steps/35/webapp/test/testsuite.qunit.ts
diff --git a/steps/35/webapp/test/unit/model/formatter.ts b/packages/walkthrough/steps/35/webapp/test/unit/model/formatter.ts
similarity index 100%
rename from steps/35/webapp/test/unit/model/formatter.ts
rename to packages/walkthrough/steps/35/webapp/test/unit/model/formatter.ts
diff --git a/steps/35/webapp/test/unit/unitTests.qunit.ts b/packages/walkthrough/steps/35/webapp/test/unit/unitTests.qunit.ts
similarity index 100%
rename from steps/35/webapp/test/unit/unitTests.qunit.ts
rename to packages/walkthrough/steps/35/webapp/test/unit/unitTests.qunit.ts
diff --git a/steps/35/webapp/view/App.view.xml b/packages/walkthrough/steps/35/webapp/view/App.view.xml
similarity index 100%
rename from steps/35/webapp/view/App.view.xml
rename to packages/walkthrough/steps/35/webapp/view/App.view.xml
diff --git a/steps/35/webapp/view/Detail.view.xml b/packages/walkthrough/steps/35/webapp/view/Detail.view.xml
similarity index 100%
rename from steps/35/webapp/view/Detail.view.xml
rename to packages/walkthrough/steps/35/webapp/view/Detail.view.xml
diff --git a/steps/35/webapp/view/HelloDialog.fragment.xml b/packages/walkthrough/steps/35/webapp/view/HelloDialog.fragment.xml
similarity index 100%
rename from steps/35/webapp/view/HelloDialog.fragment.xml
rename to packages/walkthrough/steps/35/webapp/view/HelloDialog.fragment.xml
diff --git a/steps/35/webapp/view/HelloPanel.view.xml b/packages/walkthrough/steps/35/webapp/view/HelloPanel.view.xml
similarity index 100%
rename from steps/35/webapp/view/HelloPanel.view.xml
rename to packages/walkthrough/steps/35/webapp/view/HelloPanel.view.xml
diff --git a/steps/35/webapp/view/InvoiceList.view.xml b/packages/walkthrough/steps/35/webapp/view/InvoiceList.view.xml
similarity index 100%
rename from steps/35/webapp/view/InvoiceList.view.xml
rename to packages/walkthrough/steps/35/webapp/view/InvoiceList.view.xml
diff --git a/steps/35/webapp/view/Overview.view.xml b/packages/walkthrough/steps/35/webapp/view/Overview.view.xml
similarity index 100%
rename from steps/35/webapp/view/Overview.view.xml
rename to packages/walkthrough/steps/35/webapp/view/Overview.view.xml
diff --git a/steps/36/README.md b/packages/walkthrough/steps/36/README.md
similarity index 97%
rename from steps/36/README.md
rename to packages/walkthrough/steps/36/README.md
index 5b61bf44d..8545fec27 100644
--- a/steps/36/README.md
+++ b/packages/walkthrough/steps/36/README.md
@@ -12,20 +12,20 @@ In this step of our Walkthrough tutorial, we adjust the content density based on
*The content density is compact on devices without a touch screen and cozy on touch-enabled devices*
-You can access the live preview by clicking on this link: [π Live Preview of Step 36](https://sap-samples.github.io/ui5-typescript-walkthrough/build/36/test/mockServer-cdn.html).
+You can access the live preview by clicking on this link: [π Live Preview of Step 36](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/build/36/test/mockServer-cdn.html).
***
### Coding
-You can download the solution for this step here: [π₯ Download step 36](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-36.zip).
+You can download the solution for this step here: [π₯ Download step 36](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-36.zip).
-You can download the solution for this step here: [π₯ Download step 36](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-36-js.zip).
+You can download the solution for this step here: [π₯ Download step 36](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-36-js.zip).
***
diff --git a/steps/36/assets/loiof216b131c492448d8a1df25db2b9a26d_LowRes.png b/packages/walkthrough/steps/36/assets/loiof216b131c492448d8a1df25db2b9a26d_LowRes.png
similarity index 100%
rename from steps/36/assets/loiof216b131c492448d8a1df25db2b9a26d_LowRes.png
rename to packages/walkthrough/steps/36/assets/loiof216b131c492448d8a1df25db2b9a26d_LowRes.png
diff --git a/steps/36/package.json b/packages/walkthrough/steps/36/package.json
similarity index 94%
rename from steps/36/package.json
rename to packages/walkthrough/steps/36/package.json
index 1d312c46a..829e73660 100644
--- a/steps/36/package.json
+++ b/packages/walkthrough/steps/36/package.json
@@ -8,7 +8,7 @@
"start": "ui5 serve -o test/mockServer.html"
},
"devDependencies": {
- "@types/openui5": "^1.142.0",
+ "@types/openui5": "^1.145.0",
"@ui5/cli": "^4.0.51",
"@ui5/ts-interface-generator": "^0.10.5",
"typescript": "^5.9.3",
diff --git a/steps/36/tsconfig.json b/packages/walkthrough/steps/36/tsconfig.json
similarity index 100%
rename from steps/36/tsconfig.json
rename to packages/walkthrough/steps/36/tsconfig.json
diff --git a/steps/36/ui5.yaml b/packages/walkthrough/steps/36/ui5.yaml
similarity index 100%
rename from steps/36/ui5.yaml
rename to packages/walkthrough/steps/36/ui5.yaml
diff --git a/steps/36/webapp/Component.ts b/packages/walkthrough/steps/36/webapp/Component.ts
similarity index 100%
rename from steps/36/webapp/Component.ts
rename to packages/walkthrough/steps/36/webapp/Component.ts
diff --git a/steps/36/webapp/control/ProductRating.gen.d.ts b/packages/walkthrough/steps/36/webapp/control/ProductRating.gen.d.ts
similarity index 100%
rename from steps/36/webapp/control/ProductRating.gen.d.ts
rename to packages/walkthrough/steps/36/webapp/control/ProductRating.gen.d.ts
diff --git a/steps/36/webapp/control/ProductRating.ts b/packages/walkthrough/steps/36/webapp/control/ProductRating.ts
similarity index 100%
rename from steps/36/webapp/control/ProductRating.ts
rename to packages/walkthrough/steps/36/webapp/control/ProductRating.ts
diff --git a/steps/36/webapp/controller/App.controller.ts b/packages/walkthrough/steps/36/webapp/controller/App.controller.ts
similarity index 100%
rename from steps/36/webapp/controller/App.controller.ts
rename to packages/walkthrough/steps/36/webapp/controller/App.controller.ts
diff --git a/steps/36/webapp/controller/Detail.controller.ts b/packages/walkthrough/steps/36/webapp/controller/Detail.controller.ts
similarity index 100%
rename from steps/36/webapp/controller/Detail.controller.ts
rename to packages/walkthrough/steps/36/webapp/controller/Detail.controller.ts
diff --git a/steps/36/webapp/controller/HelloPanel.controller.ts b/packages/walkthrough/steps/36/webapp/controller/HelloPanel.controller.ts
similarity index 100%
rename from steps/36/webapp/controller/HelloPanel.controller.ts
rename to packages/walkthrough/steps/36/webapp/controller/HelloPanel.controller.ts
diff --git a/steps/36/webapp/controller/InvoiceList.controller.ts b/packages/walkthrough/steps/36/webapp/controller/InvoiceList.controller.ts
similarity index 100%
rename from steps/36/webapp/controller/InvoiceList.controller.ts
rename to packages/walkthrough/steps/36/webapp/controller/InvoiceList.controller.ts
diff --git a/steps/36/webapp/css/style.css b/packages/walkthrough/steps/36/webapp/css/style.css
similarity index 100%
rename from steps/36/webapp/css/style.css
rename to packages/walkthrough/steps/36/webapp/css/style.css
diff --git a/steps/36/webapp/i18n/i18n.properties b/packages/walkthrough/steps/36/webapp/i18n/i18n.properties
similarity index 100%
rename from steps/36/webapp/i18n/i18n.properties
rename to packages/walkthrough/steps/36/webapp/i18n/i18n.properties
diff --git a/steps/36/webapp/index-cdn.html b/packages/walkthrough/steps/36/webapp/index-cdn.html
similarity index 100%
rename from steps/36/webapp/index-cdn.html
rename to packages/walkthrough/steps/36/webapp/index-cdn.html
diff --git a/steps/36/webapp/index.html b/packages/walkthrough/steps/36/webapp/index.html
similarity index 100%
rename from steps/36/webapp/index.html
rename to packages/walkthrough/steps/36/webapp/index.html
diff --git a/steps/36/webapp/localService/metadata.xml b/packages/walkthrough/steps/36/webapp/localService/metadata.xml
similarity index 100%
rename from steps/36/webapp/localService/metadata.xml
rename to packages/walkthrough/steps/36/webapp/localService/metadata.xml
diff --git a/steps/36/webapp/localService/mockdata/Invoices.json b/packages/walkthrough/steps/36/webapp/localService/mockdata/Invoices.json
similarity index 100%
rename from steps/36/webapp/localService/mockdata/Invoices.json
rename to packages/walkthrough/steps/36/webapp/localService/mockdata/Invoices.json
diff --git a/steps/36/webapp/localService/mockserver.ts b/packages/walkthrough/steps/36/webapp/localService/mockserver.ts
similarity index 100%
rename from steps/36/webapp/localService/mockserver.ts
rename to packages/walkthrough/steps/36/webapp/localService/mockserver.ts
diff --git a/steps/36/webapp/manifest.json b/packages/walkthrough/steps/36/webapp/manifest.json
similarity index 100%
rename from steps/36/webapp/manifest.json
rename to packages/walkthrough/steps/36/webapp/manifest.json
diff --git a/steps/36/webapp/model/formatter.ts b/packages/walkthrough/steps/36/webapp/model/formatter.ts
similarity index 100%
rename from steps/36/webapp/model/formatter.ts
rename to packages/walkthrough/steps/36/webapp/model/formatter.ts
diff --git a/steps/36/webapp/test/Test.cdn.qunit.html b/packages/walkthrough/steps/36/webapp/test/Test.cdn.qunit.html
similarity index 100%
rename from steps/36/webapp/test/Test.cdn.qunit.html
rename to packages/walkthrough/steps/36/webapp/test/Test.cdn.qunit.html
diff --git a/steps/36/webapp/test/Test.qunit.html b/packages/walkthrough/steps/36/webapp/test/Test.qunit.html
similarity index 100%
rename from steps/36/webapp/test/Test.qunit.html
rename to packages/walkthrough/steps/36/webapp/test/Test.qunit.html
diff --git a/steps/36/webapp/test/initMockServer.ts b/packages/walkthrough/steps/36/webapp/test/initMockServer.ts
similarity index 100%
rename from steps/36/webapp/test/initMockServer.ts
rename to packages/walkthrough/steps/36/webapp/test/initMockServer.ts
diff --git a/steps/36/webapp/test/integration/NavigationJourney.ts b/packages/walkthrough/steps/36/webapp/test/integration/NavigationJourney.ts
similarity index 100%
rename from steps/36/webapp/test/integration/NavigationJourney.ts
rename to packages/walkthrough/steps/36/webapp/test/integration/NavigationJourney.ts
diff --git a/steps/36/webapp/test/integration/opaTests.qunit.ts b/packages/walkthrough/steps/36/webapp/test/integration/opaTests.qunit.ts
similarity index 100%
rename from steps/36/webapp/test/integration/opaTests.qunit.ts
rename to packages/walkthrough/steps/36/webapp/test/integration/opaTests.qunit.ts
diff --git a/steps/36/webapp/test/integration/pages/HelloPanelPage.ts b/packages/walkthrough/steps/36/webapp/test/integration/pages/HelloPanelPage.ts
similarity index 100%
rename from steps/36/webapp/test/integration/pages/HelloPanelPage.ts
rename to packages/walkthrough/steps/36/webapp/test/integration/pages/HelloPanelPage.ts
diff --git a/steps/36/webapp/test/mockServer-cdn.html b/packages/walkthrough/steps/36/webapp/test/mockServer-cdn.html
similarity index 100%
rename from steps/36/webapp/test/mockServer-cdn.html
rename to packages/walkthrough/steps/36/webapp/test/mockServer-cdn.html
diff --git a/steps/36/webapp/test/mockServer.html b/packages/walkthrough/steps/36/webapp/test/mockServer.html
similarity index 100%
rename from steps/36/webapp/test/mockServer.html
rename to packages/walkthrough/steps/36/webapp/test/mockServer.html
diff --git a/steps/36/webapp/test/testsuite.cdn.qunit.html b/packages/walkthrough/steps/36/webapp/test/testsuite.cdn.qunit.html
similarity index 100%
rename from steps/36/webapp/test/testsuite.cdn.qunit.html
rename to packages/walkthrough/steps/36/webapp/test/testsuite.cdn.qunit.html
diff --git a/steps/36/webapp/test/testsuite.cdn.qunit.ts b/packages/walkthrough/steps/36/webapp/test/testsuite.cdn.qunit.ts
similarity index 100%
rename from steps/36/webapp/test/testsuite.cdn.qunit.ts
rename to packages/walkthrough/steps/36/webapp/test/testsuite.cdn.qunit.ts
diff --git a/steps/36/webapp/test/testsuite.qunit.html b/packages/walkthrough/steps/36/webapp/test/testsuite.qunit.html
similarity index 100%
rename from steps/36/webapp/test/testsuite.qunit.html
rename to packages/walkthrough/steps/36/webapp/test/testsuite.qunit.html
diff --git a/steps/36/webapp/test/testsuite.qunit.ts b/packages/walkthrough/steps/36/webapp/test/testsuite.qunit.ts
similarity index 100%
rename from steps/36/webapp/test/testsuite.qunit.ts
rename to packages/walkthrough/steps/36/webapp/test/testsuite.qunit.ts
diff --git a/steps/36/webapp/test/unit/model/formatter.ts b/packages/walkthrough/steps/36/webapp/test/unit/model/formatter.ts
similarity index 100%
rename from steps/36/webapp/test/unit/model/formatter.ts
rename to packages/walkthrough/steps/36/webapp/test/unit/model/formatter.ts
diff --git a/steps/36/webapp/test/unit/unitTests.qunit.ts b/packages/walkthrough/steps/36/webapp/test/unit/unitTests.qunit.ts
similarity index 100%
rename from steps/36/webapp/test/unit/unitTests.qunit.ts
rename to packages/walkthrough/steps/36/webapp/test/unit/unitTests.qunit.ts
diff --git a/steps/36/webapp/view/App.view.xml b/packages/walkthrough/steps/36/webapp/view/App.view.xml
similarity index 100%
rename from steps/36/webapp/view/App.view.xml
rename to packages/walkthrough/steps/36/webapp/view/App.view.xml
diff --git a/steps/36/webapp/view/Detail.view.xml b/packages/walkthrough/steps/36/webapp/view/Detail.view.xml
similarity index 100%
rename from steps/36/webapp/view/Detail.view.xml
rename to packages/walkthrough/steps/36/webapp/view/Detail.view.xml
diff --git a/steps/36/webapp/view/HelloDialog.fragment.xml b/packages/walkthrough/steps/36/webapp/view/HelloDialog.fragment.xml
similarity index 100%
rename from steps/36/webapp/view/HelloDialog.fragment.xml
rename to packages/walkthrough/steps/36/webapp/view/HelloDialog.fragment.xml
diff --git a/steps/36/webapp/view/HelloPanel.view.xml b/packages/walkthrough/steps/36/webapp/view/HelloPanel.view.xml
similarity index 100%
rename from steps/36/webapp/view/HelloPanel.view.xml
rename to packages/walkthrough/steps/36/webapp/view/HelloPanel.view.xml
diff --git a/steps/36/webapp/view/InvoiceList.view.xml b/packages/walkthrough/steps/36/webapp/view/InvoiceList.view.xml
similarity index 100%
rename from steps/36/webapp/view/InvoiceList.view.xml
rename to packages/walkthrough/steps/36/webapp/view/InvoiceList.view.xml
diff --git a/steps/36/webapp/view/Overview.view.xml b/packages/walkthrough/steps/36/webapp/view/Overview.view.xml
similarity index 100%
rename from steps/36/webapp/view/Overview.view.xml
rename to packages/walkthrough/steps/36/webapp/view/Overview.view.xml
diff --git a/steps/37/README.md b/packages/walkthrough/steps/37/README.md
similarity index 97%
rename from steps/37/README.md
rename to packages/walkthrough/steps/37/README.md
index 5ef994efc..d98c6e468 100644
--- a/steps/37/README.md
+++ b/packages/walkthrough/steps/37/README.md
@@ -19,7 +19,7 @@ One part of the ARIA attribute set are the so-called landmarks. You can compare
*Landmarks in our app*
-You can access the live preview by clicking on this link: [π Live Preview of Step 37](https://sap-samples.github.io/ui5-typescript-walkthrough/build/37/test/mockServer-cdn.html).
+You can access the live preview by clicking on this link: [π Live Preview of Step 37](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/build/37/test/mockServer-cdn.html).
***
@@ -27,13 +27,13 @@ You can access the live preview by clicking on this link: [π Live Preview of
-You can download the solution for this step here: [π₯ Download step 37](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-37.zip).
+You can download the solution for this step here: [π₯ Download step 37](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-37.zip).
-You can download the solution for this step here: [π₯ Download step 37](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-37-js.zip).
+You can download the solution for this step here: [π₯ Download step 37](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-37-js.zip).
***
diff --git a/steps/37/assets/loio54e9bca5a5844c14b45b5405496166b1_HiRes.png b/packages/walkthrough/steps/37/assets/loio54e9bca5a5844c14b45b5405496166b1_HiRes.png
similarity index 100%
rename from steps/37/assets/loio54e9bca5a5844c14b45b5405496166b1_HiRes.png
rename to packages/walkthrough/steps/37/assets/loio54e9bca5a5844c14b45b5405496166b1_HiRes.png
diff --git a/steps/37/assets/loiob35deda1ebe1433fbf0ff066f6e3fc4b_LowRes.png b/packages/walkthrough/steps/37/assets/loiob35deda1ebe1433fbf0ff066f6e3fc4b_LowRes.png
similarity index 100%
rename from steps/37/assets/loiob35deda1ebe1433fbf0ff066f6e3fc4b_LowRes.png
rename to packages/walkthrough/steps/37/assets/loiob35deda1ebe1433fbf0ff066f6e3fc4b_LowRes.png
diff --git a/steps/37/assets/loiof38dee2624c2437d8977de70575b3eae_HiRes.png b/packages/walkthrough/steps/37/assets/loiof38dee2624c2437d8977de70575b3eae_HiRes.png
similarity index 100%
rename from steps/37/assets/loiof38dee2624c2437d8977de70575b3eae_HiRes.png
rename to packages/walkthrough/steps/37/assets/loiof38dee2624c2437d8977de70575b3eae_HiRes.png
diff --git a/steps/37/package.json b/packages/walkthrough/steps/37/package.json
similarity index 94%
rename from steps/37/package.json
rename to packages/walkthrough/steps/37/package.json
index bcb0090ee..fda44ab2b 100644
--- a/steps/37/package.json
+++ b/packages/walkthrough/steps/37/package.json
@@ -8,7 +8,7 @@
"start": "ui5 serve -o test/mockServer.html"
},
"devDependencies": {
- "@types/openui5": "^1.142.0",
+ "@types/openui5": "^1.145.0",
"@ui5/cli": "^4.0.51",
"@ui5/ts-interface-generator": "^0.10.5",
"typescript": "^5.9.3",
diff --git a/steps/37/tsconfig.json b/packages/walkthrough/steps/37/tsconfig.json
similarity index 100%
rename from steps/37/tsconfig.json
rename to packages/walkthrough/steps/37/tsconfig.json
diff --git a/steps/37/ui5.yaml b/packages/walkthrough/steps/37/ui5.yaml
similarity index 100%
rename from steps/37/ui5.yaml
rename to packages/walkthrough/steps/37/ui5.yaml
diff --git a/steps/37/webapp/Component.ts b/packages/walkthrough/steps/37/webapp/Component.ts
similarity index 100%
rename from steps/37/webapp/Component.ts
rename to packages/walkthrough/steps/37/webapp/Component.ts
diff --git a/steps/37/webapp/control/ProductRating.gen.d.ts b/packages/walkthrough/steps/37/webapp/control/ProductRating.gen.d.ts
similarity index 100%
rename from steps/37/webapp/control/ProductRating.gen.d.ts
rename to packages/walkthrough/steps/37/webapp/control/ProductRating.gen.d.ts
diff --git a/steps/37/webapp/control/ProductRating.ts b/packages/walkthrough/steps/37/webapp/control/ProductRating.ts
similarity index 100%
rename from steps/37/webapp/control/ProductRating.ts
rename to packages/walkthrough/steps/37/webapp/control/ProductRating.ts
diff --git a/steps/37/webapp/controller/App.controller.ts b/packages/walkthrough/steps/37/webapp/controller/App.controller.ts
similarity index 100%
rename from steps/37/webapp/controller/App.controller.ts
rename to packages/walkthrough/steps/37/webapp/controller/App.controller.ts
diff --git a/steps/37/webapp/controller/Detail.controller.ts b/packages/walkthrough/steps/37/webapp/controller/Detail.controller.ts
similarity index 100%
rename from steps/37/webapp/controller/Detail.controller.ts
rename to packages/walkthrough/steps/37/webapp/controller/Detail.controller.ts
diff --git a/steps/37/webapp/controller/HelloPanel.controller.ts b/packages/walkthrough/steps/37/webapp/controller/HelloPanel.controller.ts
similarity index 100%
rename from steps/37/webapp/controller/HelloPanel.controller.ts
rename to packages/walkthrough/steps/37/webapp/controller/HelloPanel.controller.ts
diff --git a/steps/37/webapp/controller/InvoiceList.controller.ts b/packages/walkthrough/steps/37/webapp/controller/InvoiceList.controller.ts
similarity index 100%
rename from steps/37/webapp/controller/InvoiceList.controller.ts
rename to packages/walkthrough/steps/37/webapp/controller/InvoiceList.controller.ts
diff --git a/steps/37/webapp/css/style.css b/packages/walkthrough/steps/37/webapp/css/style.css
similarity index 100%
rename from steps/37/webapp/css/style.css
rename to packages/walkthrough/steps/37/webapp/css/style.css
diff --git a/steps/37/webapp/i18n/i18n.properties b/packages/walkthrough/steps/37/webapp/i18n/i18n.properties
similarity index 100%
rename from steps/37/webapp/i18n/i18n.properties
rename to packages/walkthrough/steps/37/webapp/i18n/i18n.properties
diff --git a/steps/37/webapp/index-cdn.html b/packages/walkthrough/steps/37/webapp/index-cdn.html
similarity index 100%
rename from steps/37/webapp/index-cdn.html
rename to packages/walkthrough/steps/37/webapp/index-cdn.html
diff --git a/steps/37/webapp/index.html b/packages/walkthrough/steps/37/webapp/index.html
similarity index 100%
rename from steps/37/webapp/index.html
rename to packages/walkthrough/steps/37/webapp/index.html
diff --git a/steps/37/webapp/localService/metadata.xml b/packages/walkthrough/steps/37/webapp/localService/metadata.xml
similarity index 100%
rename from steps/37/webapp/localService/metadata.xml
rename to packages/walkthrough/steps/37/webapp/localService/metadata.xml
diff --git a/steps/37/webapp/localService/mockdata/Invoices.json b/packages/walkthrough/steps/37/webapp/localService/mockdata/Invoices.json
similarity index 100%
rename from steps/37/webapp/localService/mockdata/Invoices.json
rename to packages/walkthrough/steps/37/webapp/localService/mockdata/Invoices.json
diff --git a/steps/37/webapp/localService/mockserver.ts b/packages/walkthrough/steps/37/webapp/localService/mockserver.ts
similarity index 100%
rename from steps/37/webapp/localService/mockserver.ts
rename to packages/walkthrough/steps/37/webapp/localService/mockserver.ts
diff --git a/steps/37/webapp/manifest.json b/packages/walkthrough/steps/37/webapp/manifest.json
similarity index 100%
rename from steps/37/webapp/manifest.json
rename to packages/walkthrough/steps/37/webapp/manifest.json
diff --git a/steps/37/webapp/model/formatter.ts b/packages/walkthrough/steps/37/webapp/model/formatter.ts
similarity index 100%
rename from steps/37/webapp/model/formatter.ts
rename to packages/walkthrough/steps/37/webapp/model/formatter.ts
diff --git a/steps/37/webapp/test/Test.cdn.qunit.html b/packages/walkthrough/steps/37/webapp/test/Test.cdn.qunit.html
similarity index 100%
rename from steps/37/webapp/test/Test.cdn.qunit.html
rename to packages/walkthrough/steps/37/webapp/test/Test.cdn.qunit.html
diff --git a/steps/37/webapp/test/Test.qunit.html b/packages/walkthrough/steps/37/webapp/test/Test.qunit.html
similarity index 100%
rename from steps/37/webapp/test/Test.qunit.html
rename to packages/walkthrough/steps/37/webapp/test/Test.qunit.html
diff --git a/steps/37/webapp/test/initMockServer.ts b/packages/walkthrough/steps/37/webapp/test/initMockServer.ts
similarity index 100%
rename from steps/37/webapp/test/initMockServer.ts
rename to packages/walkthrough/steps/37/webapp/test/initMockServer.ts
diff --git a/steps/37/webapp/test/integration/NavigationJourney.ts b/packages/walkthrough/steps/37/webapp/test/integration/NavigationJourney.ts
similarity index 100%
rename from steps/37/webapp/test/integration/NavigationJourney.ts
rename to packages/walkthrough/steps/37/webapp/test/integration/NavigationJourney.ts
diff --git a/steps/37/webapp/test/integration/opaTests.qunit.ts b/packages/walkthrough/steps/37/webapp/test/integration/opaTests.qunit.ts
similarity index 100%
rename from steps/37/webapp/test/integration/opaTests.qunit.ts
rename to packages/walkthrough/steps/37/webapp/test/integration/opaTests.qunit.ts
diff --git a/steps/37/webapp/test/integration/pages/HelloPanelPage.ts b/packages/walkthrough/steps/37/webapp/test/integration/pages/HelloPanelPage.ts
similarity index 100%
rename from steps/37/webapp/test/integration/pages/HelloPanelPage.ts
rename to packages/walkthrough/steps/37/webapp/test/integration/pages/HelloPanelPage.ts
diff --git a/steps/37/webapp/test/mockServer-cdn.html b/packages/walkthrough/steps/37/webapp/test/mockServer-cdn.html
similarity index 100%
rename from steps/37/webapp/test/mockServer-cdn.html
rename to packages/walkthrough/steps/37/webapp/test/mockServer-cdn.html
diff --git a/steps/37/webapp/test/mockServer.html b/packages/walkthrough/steps/37/webapp/test/mockServer.html
similarity index 100%
rename from steps/37/webapp/test/mockServer.html
rename to packages/walkthrough/steps/37/webapp/test/mockServer.html
diff --git a/steps/37/webapp/test/testsuite.cdn.qunit.html b/packages/walkthrough/steps/37/webapp/test/testsuite.cdn.qunit.html
similarity index 100%
rename from steps/37/webapp/test/testsuite.cdn.qunit.html
rename to packages/walkthrough/steps/37/webapp/test/testsuite.cdn.qunit.html
diff --git a/steps/37/webapp/test/testsuite.cdn.qunit.ts b/packages/walkthrough/steps/37/webapp/test/testsuite.cdn.qunit.ts
similarity index 100%
rename from steps/37/webapp/test/testsuite.cdn.qunit.ts
rename to packages/walkthrough/steps/37/webapp/test/testsuite.cdn.qunit.ts
diff --git a/steps/37/webapp/test/testsuite.qunit.html b/packages/walkthrough/steps/37/webapp/test/testsuite.qunit.html
similarity index 100%
rename from steps/37/webapp/test/testsuite.qunit.html
rename to packages/walkthrough/steps/37/webapp/test/testsuite.qunit.html
diff --git a/steps/37/webapp/test/testsuite.qunit.ts b/packages/walkthrough/steps/37/webapp/test/testsuite.qunit.ts
similarity index 100%
rename from steps/37/webapp/test/testsuite.qunit.ts
rename to packages/walkthrough/steps/37/webapp/test/testsuite.qunit.ts
diff --git a/steps/37/webapp/test/unit/model/formatter.ts b/packages/walkthrough/steps/37/webapp/test/unit/model/formatter.ts
similarity index 100%
rename from steps/37/webapp/test/unit/model/formatter.ts
rename to packages/walkthrough/steps/37/webapp/test/unit/model/formatter.ts
diff --git a/steps/37/webapp/test/unit/unitTests.qunit.ts b/packages/walkthrough/steps/37/webapp/test/unit/unitTests.qunit.ts
similarity index 100%
rename from steps/37/webapp/test/unit/unitTests.qunit.ts
rename to packages/walkthrough/steps/37/webapp/test/unit/unitTests.qunit.ts
diff --git a/steps/37/webapp/view/App.view.xml b/packages/walkthrough/steps/37/webapp/view/App.view.xml
similarity index 100%
rename from steps/37/webapp/view/App.view.xml
rename to packages/walkthrough/steps/37/webapp/view/App.view.xml
diff --git a/steps/37/webapp/view/Detail.view.xml b/packages/walkthrough/steps/37/webapp/view/Detail.view.xml
similarity index 100%
rename from steps/37/webapp/view/Detail.view.xml
rename to packages/walkthrough/steps/37/webapp/view/Detail.view.xml
diff --git a/steps/37/webapp/view/HelloDialog.fragment.xml b/packages/walkthrough/steps/37/webapp/view/HelloDialog.fragment.xml
similarity index 100%
rename from steps/37/webapp/view/HelloDialog.fragment.xml
rename to packages/walkthrough/steps/37/webapp/view/HelloDialog.fragment.xml
diff --git a/steps/37/webapp/view/HelloPanel.view.xml b/packages/walkthrough/steps/37/webapp/view/HelloPanel.view.xml
similarity index 100%
rename from steps/37/webapp/view/HelloPanel.view.xml
rename to packages/walkthrough/steps/37/webapp/view/HelloPanel.view.xml
diff --git a/steps/37/webapp/view/InvoiceList.view.xml b/packages/walkthrough/steps/37/webapp/view/InvoiceList.view.xml
similarity index 100%
rename from steps/37/webapp/view/InvoiceList.view.xml
rename to packages/walkthrough/steps/37/webapp/view/InvoiceList.view.xml
diff --git a/steps/37/webapp/view/Overview.view.xml b/packages/walkthrough/steps/37/webapp/view/Overview.view.xml
similarity index 100%
rename from steps/37/webapp/view/Overview.view.xml
rename to packages/walkthrough/steps/37/webapp/view/Overview.view.xml
diff --git a/steps/38/README.md b/packages/walkthrough/steps/38/README.md
similarity index 98%
rename from steps/38/README.md
rename to packages/walkthrough/steps/38/README.md
index 38b3cf75d..cb8232aec 100644
--- a/steps/38/README.md
+++ b/packages/walkthrough/steps/38/README.md
@@ -18,13 +18,13 @@ In this step we're going to build our application and consume the speed of a bui
### Coding
-You can download the solution for this step here: [π₯ Download step 38](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-38.zip).
+You can download the solution for this step here: [π₯ Download step 38](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-38.zip).
-You can download the solution for this step here: [π₯ Download step 38](https://sap-samples.github.io/ui5-typescript-walkthrough/ui5-typescript-walkthrough-step-38-js.zip).
+You can download the solution for this step here: [π₯ Download step 38](https://sap-samples.github.io/ui5-typescript-walkthrough/walkthrough/walkthrough-step-38-js.zip).
***
diff --git a/steps/38/assets/loiofb12cea5ac9b45bb9007aac5a1a8689f_LowRes.png b/packages/walkthrough/steps/38/assets/loiofb12cea5ac9b45bb9007aac5a1a8689f_LowRes.png
similarity index 100%
rename from steps/38/assets/loiofb12cea5ac9b45bb9007aac5a1a8689f_LowRes.png
rename to packages/walkthrough/steps/38/assets/loiofb12cea5ac9b45bb9007aac5a1a8689f_LowRes.png
diff --git a/steps/38/package.json b/packages/walkthrough/steps/38/package.json
similarity index 95%
rename from steps/38/package.json
rename to packages/walkthrough/steps/38/package.json
index 153955117..f3e9bccbb 100644
--- a/steps/38/package.json
+++ b/packages/walkthrough/steps/38/package.json
@@ -10,7 +10,7 @@
"serve-dist": "ws --compress -d dist --open"
},
"devDependencies": {
- "@types/openui5": "^1.142.0",
+ "@types/openui5": "^1.145.0",
"@ui5/cli": "^4.0.51",
"@ui5/ts-interface-generator": "^0.10.5",
"local-web-server": "^5.4.0",
diff --git a/steps/38/tsconfig.json b/packages/walkthrough/steps/38/tsconfig.json
similarity index 100%
rename from steps/38/tsconfig.json
rename to packages/walkthrough/steps/38/tsconfig.json
diff --git a/steps/38/ui5.yaml b/packages/walkthrough/steps/38/ui5.yaml
similarity index 100%
rename from steps/38/ui5.yaml
rename to packages/walkthrough/steps/38/ui5.yaml
diff --git a/steps/38/webapp/Component.ts b/packages/walkthrough/steps/38/webapp/Component.ts
similarity index 100%
rename from steps/38/webapp/Component.ts
rename to packages/walkthrough/steps/38/webapp/Component.ts
diff --git a/steps/38/webapp/control/ProductRating.gen.d.ts b/packages/walkthrough/steps/38/webapp/control/ProductRating.gen.d.ts
similarity index 100%
rename from steps/38/webapp/control/ProductRating.gen.d.ts
rename to packages/walkthrough/steps/38/webapp/control/ProductRating.gen.d.ts
diff --git a/steps/38/webapp/control/ProductRating.ts b/packages/walkthrough/steps/38/webapp/control/ProductRating.ts
similarity index 100%
rename from steps/38/webapp/control/ProductRating.ts
rename to packages/walkthrough/steps/38/webapp/control/ProductRating.ts
diff --git a/steps/38/webapp/controller/App.controller.ts b/packages/walkthrough/steps/38/webapp/controller/App.controller.ts
similarity index 100%
rename from steps/38/webapp/controller/App.controller.ts
rename to packages/walkthrough/steps/38/webapp/controller/App.controller.ts
diff --git a/steps/38/webapp/controller/Detail.controller.ts b/packages/walkthrough/steps/38/webapp/controller/Detail.controller.ts
similarity index 100%
rename from steps/38/webapp/controller/Detail.controller.ts
rename to packages/walkthrough/steps/38/webapp/controller/Detail.controller.ts
diff --git a/steps/38/webapp/controller/HelloPanel.controller.ts b/packages/walkthrough/steps/38/webapp/controller/HelloPanel.controller.ts
similarity index 100%
rename from steps/38/webapp/controller/HelloPanel.controller.ts
rename to packages/walkthrough/steps/38/webapp/controller/HelloPanel.controller.ts
diff --git a/steps/38/webapp/controller/InvoiceList.controller.ts b/packages/walkthrough/steps/38/webapp/controller/InvoiceList.controller.ts
similarity index 100%
rename from steps/38/webapp/controller/InvoiceList.controller.ts
rename to packages/walkthrough/steps/38/webapp/controller/InvoiceList.controller.ts
diff --git a/steps/38/webapp/css/style.css b/packages/walkthrough/steps/38/webapp/css/style.css
similarity index 100%
rename from steps/38/webapp/css/style.css
rename to packages/walkthrough/steps/38/webapp/css/style.css
diff --git a/steps/38/webapp/i18n/i18n.properties b/packages/walkthrough/steps/38/webapp/i18n/i18n.properties
similarity index 100%
rename from steps/38/webapp/i18n/i18n.properties
rename to packages/walkthrough/steps/38/webapp/i18n/i18n.properties
diff --git a/steps/38/webapp/index-cdn.html b/packages/walkthrough/steps/38/webapp/index-cdn.html
similarity index 100%
rename from steps/38/webapp/index-cdn.html
rename to packages/walkthrough/steps/38/webapp/index-cdn.html
diff --git a/steps/38/webapp/index.html b/packages/walkthrough/steps/38/webapp/index.html
similarity index 100%
rename from steps/38/webapp/index.html
rename to packages/walkthrough/steps/38/webapp/index.html
diff --git a/steps/38/webapp/index.ts b/packages/walkthrough/steps/38/webapp/index.ts
similarity index 100%
rename from steps/38/webapp/index.ts
rename to packages/walkthrough/steps/38/webapp/index.ts
diff --git a/steps/38/webapp/localService/metadata.xml b/packages/walkthrough/steps/38/webapp/localService/metadata.xml
similarity index 100%
rename from steps/38/webapp/localService/metadata.xml
rename to packages/walkthrough/steps/38/webapp/localService/metadata.xml
diff --git a/steps/38/webapp/localService/mockdata/Invoices.json b/packages/walkthrough/steps/38/webapp/localService/mockdata/Invoices.json
similarity index 100%
rename from steps/38/webapp/localService/mockdata/Invoices.json
rename to packages/walkthrough/steps/38/webapp/localService/mockdata/Invoices.json
diff --git a/steps/38/webapp/localService/mockserver.ts b/packages/walkthrough/steps/38/webapp/localService/mockserver.ts
similarity index 100%
rename from steps/38/webapp/localService/mockserver.ts
rename to packages/walkthrough/steps/38/webapp/localService/mockserver.ts
diff --git a/steps/38/webapp/manifest.json b/packages/walkthrough/steps/38/webapp/manifest.json
similarity index 100%
rename from steps/38/webapp/manifest.json
rename to packages/walkthrough/steps/38/webapp/manifest.json
diff --git a/steps/38/webapp/model/formatter.ts b/packages/walkthrough/steps/38/webapp/model/formatter.ts
similarity index 100%
rename from steps/38/webapp/model/formatter.ts
rename to packages/walkthrough/steps/38/webapp/model/formatter.ts
diff --git a/steps/38/webapp/test/Test.cdn.qunit.html b/packages/walkthrough/steps/38/webapp/test/Test.cdn.qunit.html
similarity index 100%
rename from steps/38/webapp/test/Test.cdn.qunit.html
rename to packages/walkthrough/steps/38/webapp/test/Test.cdn.qunit.html
diff --git a/steps/38/webapp/test/Test.qunit.html b/packages/walkthrough/steps/38/webapp/test/Test.qunit.html
similarity index 100%
rename from steps/38/webapp/test/Test.qunit.html
rename to packages/walkthrough/steps/38/webapp/test/Test.qunit.html
diff --git a/steps/38/webapp/test/initMockServer.ts b/packages/walkthrough/steps/38/webapp/test/initMockServer.ts
similarity index 100%
rename from steps/38/webapp/test/initMockServer.ts
rename to packages/walkthrough/steps/38/webapp/test/initMockServer.ts
diff --git a/steps/38/webapp/test/integration/NavigationJourney.ts b/packages/walkthrough/steps/38/webapp/test/integration/NavigationJourney.ts
similarity index 100%
rename from steps/38/webapp/test/integration/NavigationJourney.ts
rename to packages/walkthrough/steps/38/webapp/test/integration/NavigationJourney.ts
diff --git a/steps/38/webapp/test/integration/opaTests.qunit.ts b/packages/walkthrough/steps/38/webapp/test/integration/opaTests.qunit.ts
similarity index 100%
rename from steps/38/webapp/test/integration/opaTests.qunit.ts
rename to packages/walkthrough/steps/38/webapp/test/integration/opaTests.qunit.ts
diff --git a/steps/38/webapp/test/integration/pages/HelloPanelPage.ts b/packages/walkthrough/steps/38/webapp/test/integration/pages/HelloPanelPage.ts
similarity index 100%
rename from steps/38/webapp/test/integration/pages/HelloPanelPage.ts
rename to packages/walkthrough/steps/38/webapp/test/integration/pages/HelloPanelPage.ts
diff --git a/steps/38/webapp/test/mockServer-cdn.html b/packages/walkthrough/steps/38/webapp/test/mockServer-cdn.html
similarity index 100%
rename from steps/38/webapp/test/mockServer-cdn.html
rename to packages/walkthrough/steps/38/webapp/test/mockServer-cdn.html
diff --git a/steps/38/webapp/test/mockServer.html b/packages/walkthrough/steps/38/webapp/test/mockServer.html
similarity index 100%
rename from steps/38/webapp/test/mockServer.html
rename to packages/walkthrough/steps/38/webapp/test/mockServer.html
diff --git a/steps/38/webapp/test/testsuite.cdn.qunit.html b/packages/walkthrough/steps/38/webapp/test/testsuite.cdn.qunit.html
similarity index 100%
rename from steps/38/webapp/test/testsuite.cdn.qunit.html
rename to packages/walkthrough/steps/38/webapp/test/testsuite.cdn.qunit.html
diff --git a/steps/38/webapp/test/testsuite.cdn.qunit.ts b/packages/walkthrough/steps/38/webapp/test/testsuite.cdn.qunit.ts
similarity index 100%
rename from steps/38/webapp/test/testsuite.cdn.qunit.ts
rename to packages/walkthrough/steps/38/webapp/test/testsuite.cdn.qunit.ts
diff --git a/steps/38/webapp/test/testsuite.qunit.html b/packages/walkthrough/steps/38/webapp/test/testsuite.qunit.html
similarity index 100%
rename from steps/38/webapp/test/testsuite.qunit.html
rename to packages/walkthrough/steps/38/webapp/test/testsuite.qunit.html
diff --git a/steps/38/webapp/test/testsuite.qunit.ts b/packages/walkthrough/steps/38/webapp/test/testsuite.qunit.ts
similarity index 100%
rename from steps/38/webapp/test/testsuite.qunit.ts
rename to packages/walkthrough/steps/38/webapp/test/testsuite.qunit.ts
diff --git a/steps/38/webapp/test/unit/model/formatter.ts b/packages/walkthrough/steps/38/webapp/test/unit/model/formatter.ts
similarity index 100%
rename from steps/38/webapp/test/unit/model/formatter.ts
rename to packages/walkthrough/steps/38/webapp/test/unit/model/formatter.ts
diff --git a/steps/38/webapp/test/unit/unitTests.qunit.ts b/packages/walkthrough/steps/38/webapp/test/unit/unitTests.qunit.ts
similarity index 100%
rename from steps/38/webapp/test/unit/unitTests.qunit.ts
rename to packages/walkthrough/steps/38/webapp/test/unit/unitTests.qunit.ts
diff --git a/steps/38/webapp/view/App.view.xml b/packages/walkthrough/steps/38/webapp/view/App.view.xml
similarity index 100%
rename from steps/38/webapp/view/App.view.xml
rename to packages/walkthrough/steps/38/webapp/view/App.view.xml
diff --git a/steps/38/webapp/view/Detail.view.xml b/packages/walkthrough/steps/38/webapp/view/Detail.view.xml
similarity index 100%
rename from steps/38/webapp/view/Detail.view.xml
rename to packages/walkthrough/steps/38/webapp/view/Detail.view.xml
diff --git a/steps/38/webapp/view/HelloDialog.fragment.xml b/packages/walkthrough/steps/38/webapp/view/HelloDialog.fragment.xml
similarity index 100%
rename from steps/38/webapp/view/HelloDialog.fragment.xml
rename to packages/walkthrough/steps/38/webapp/view/HelloDialog.fragment.xml
diff --git a/steps/38/webapp/view/HelloPanel.view.xml b/packages/walkthrough/steps/38/webapp/view/HelloPanel.view.xml
similarity index 100%
rename from steps/38/webapp/view/HelloPanel.view.xml
rename to packages/walkthrough/steps/38/webapp/view/HelloPanel.view.xml
diff --git a/steps/38/webapp/view/InvoiceList.view.xml b/packages/walkthrough/steps/38/webapp/view/InvoiceList.view.xml
similarity index 100%
rename from steps/38/webapp/view/InvoiceList.view.xml
rename to packages/walkthrough/steps/38/webapp/view/InvoiceList.view.xml
diff --git a/steps/38/webapp/view/Overview.view.xml b/packages/walkthrough/steps/38/webapp/view/Overview.view.xml
similarity index 100%
rename from steps/38/webapp/view/Overview.view.xml
rename to packages/walkthrough/steps/38/webapp/view/Overview.view.xml
diff --git a/renovate.json b/renovate.json
new file mode 100644
index 000000000..e623e20ae
--- /dev/null
+++ b/renovate.json
@@ -0,0 +1,61 @@
+{
+ "$schema": "https://docs.renovatebot.com/renovate-schema.json",
+ "extends": [
+ "config:recommended",
+ "github>ui5/renovate-config"
+ ],
+ "rangeStrategy": "bump",
+ "lockFileMaintenance": {
+ "enabled": true,
+ "automerge": true,
+ "commitMessagePrefix": "build:",
+ "commitMessageAction": "In-range update of npm dependencies",
+ "schedule": [
+ "* 0-8 * * 1"
+ ]
+ },
+ "packageRules": [
+ {
+ "matchDepNames": [
+ "*"
+ ],
+ "automerge": true,
+ "commitMessagePrefix": "build(deps-dev):",
+ "commitMessageAction": "Bump",
+ "schedule": [
+ "* 8-16 * * 1"
+ ]
+ },
+ {
+ "matchManagers": [
+ "github-actions"
+ ],
+ "automerge": true,
+ "commitMessagePrefix": "build(github-actions):",
+ "commitMessageAction": "Bump",
+ "schedule": [
+ "* 8-16 * * 1"
+ ]
+ },
+ {
+ "matchPackageNames": [
+ "node",
+ "npm"
+ ],
+ "enabled": false
+ },
+ {
+ "matchDepNames": [
+ "openui5",
+ "@types/openui5"
+ ],
+ "groupName": "openui5",
+ "automerge": true,
+ "commitMessagePrefix": "deps:",
+ "commitMessageAction": "Update",
+ "schedule": [
+ "* 8-16 * * 1"
+ ]
+ }
+ ]
+}
diff --git a/steps/07/ui5.yaml b/steps/07/ui5.yaml
deleted file mode 100644
index 06cb1107d..000000000
--- a/steps/07/ui5.yaml
+++ /dev/null
@@ -1,23 +0,0 @@
-specVersion: '3.0'
-metadata:
- name: "ui5.walkthrough"
-type: application
-framework:
- name: OpenUI5
- version: "1.136.7"
- libraries:
- - name: sap.m
- - name: sap.ui.core
- - name: themelib_sap_horizon
-builder:
- customTasks:
- - name: ui5-tooling-transpile-task
- afterTask: replaceVersion
-server:
- customMiddleware:
- - name: ui5-tooling-transpile-middleware
- afterMiddleware: compression
- - name: ui5-middleware-serveframework
- afterMiddleware: compression
- - name: ui5-middleware-livereload
- afterMiddleware: compression
diff --git a/steps/08/ui5.yaml b/steps/08/ui5.yaml
deleted file mode 100644
index 06cb1107d..000000000
--- a/steps/08/ui5.yaml
+++ /dev/null
@@ -1,23 +0,0 @@
-specVersion: '3.0'
-metadata:
- name: "ui5.walkthrough"
-type: application
-framework:
- name: OpenUI5
- version: "1.136.7"
- libraries:
- - name: sap.m
- - name: sap.ui.core
- - name: themelib_sap_horizon
-builder:
- customTasks:
- - name: ui5-tooling-transpile-task
- afterTask: replaceVersion
-server:
- customMiddleware:
- - name: ui5-tooling-transpile-middleware
- afterMiddleware: compression
- - name: ui5-middleware-serveframework
- afterMiddleware: compression
- - name: ui5-middleware-livereload
- afterMiddleware: compression
diff --git a/steps/09/ui5.yaml b/steps/09/ui5.yaml
deleted file mode 100644
index 06cb1107d..000000000
--- a/steps/09/ui5.yaml
+++ /dev/null
@@ -1,23 +0,0 @@
-specVersion: '3.0'
-metadata:
- name: "ui5.walkthrough"
-type: application
-framework:
- name: OpenUI5
- version: "1.136.7"
- libraries:
- - name: sap.m
- - name: sap.ui.core
- - name: themelib_sap_horizon
-builder:
- customTasks:
- - name: ui5-tooling-transpile-task
- afterTask: replaceVersion
-server:
- customMiddleware:
- - name: ui5-tooling-transpile-middleware
- afterMiddleware: compression
- - name: ui5-middleware-serveframework
- afterMiddleware: compression
- - name: ui5-middleware-livereload
- afterMiddleware: compression
diff --git a/steps/10/ui5.yaml b/steps/10/ui5.yaml
deleted file mode 100644
index 06cb1107d..000000000
--- a/steps/10/ui5.yaml
+++ /dev/null
@@ -1,23 +0,0 @@
-specVersion: '3.0'
-metadata:
- name: "ui5.walkthrough"
-type: application
-framework:
- name: OpenUI5
- version: "1.136.7"
- libraries:
- - name: sap.m
- - name: sap.ui.core
- - name: themelib_sap_horizon
-builder:
- customTasks:
- - name: ui5-tooling-transpile-task
- afterTask: replaceVersion
-server:
- customMiddleware:
- - name: ui5-tooling-transpile-middleware
- afterMiddleware: compression
- - name: ui5-middleware-serveframework
- afterMiddleware: compression
- - name: ui5-middleware-livereload
- afterMiddleware: compression
diff --git a/steps/11/ui5.yaml b/steps/11/ui5.yaml
deleted file mode 100644
index 06cb1107d..000000000
--- a/steps/11/ui5.yaml
+++ /dev/null
@@ -1,23 +0,0 @@
-specVersion: '3.0'
-metadata:
- name: "ui5.walkthrough"
-type: application
-framework:
- name: OpenUI5
- version: "1.136.7"
- libraries:
- - name: sap.m
- - name: sap.ui.core
- - name: themelib_sap_horizon
-builder:
- customTasks:
- - name: ui5-tooling-transpile-task
- afterTask: replaceVersion
-server:
- customMiddleware:
- - name: ui5-tooling-transpile-middleware
- afterMiddleware: compression
- - name: ui5-middleware-serveframework
- afterMiddleware: compression
- - name: ui5-middleware-livereload
- afterMiddleware: compression
diff --git a/steps/12/ui5.yaml b/steps/12/ui5.yaml
deleted file mode 100644
index 06cb1107d..000000000
--- a/steps/12/ui5.yaml
+++ /dev/null
@@ -1,23 +0,0 @@
-specVersion: '3.0'
-metadata:
- name: "ui5.walkthrough"
-type: application
-framework:
- name: OpenUI5
- version: "1.136.7"
- libraries:
- - name: sap.m
- - name: sap.ui.core
- - name: themelib_sap_horizon
-builder:
- customTasks:
- - name: ui5-tooling-transpile-task
- afterTask: replaceVersion
-server:
- customMiddleware:
- - name: ui5-tooling-transpile-middleware
- afterMiddleware: compression
- - name: ui5-middleware-serveframework
- afterMiddleware: compression
- - name: ui5-middleware-livereload
- afterMiddleware: compression
diff --git a/steps/13/ui5.yaml b/steps/13/ui5.yaml
deleted file mode 100644
index 06cb1107d..000000000
--- a/steps/13/ui5.yaml
+++ /dev/null
@@ -1,23 +0,0 @@
-specVersion: '3.0'
-metadata:
- name: "ui5.walkthrough"
-type: application
-framework:
- name: OpenUI5
- version: "1.136.7"
- libraries:
- - name: sap.m
- - name: sap.ui.core
- - name: themelib_sap_horizon
-builder:
- customTasks:
- - name: ui5-tooling-transpile-task
- afterTask: replaceVersion
-server:
- customMiddleware:
- - name: ui5-tooling-transpile-middleware
- afterMiddleware: compression
- - name: ui5-middleware-serveframework
- afterMiddleware: compression
- - name: ui5-middleware-livereload
- afterMiddleware: compression
diff --git a/steps/14/ui5.yaml b/steps/14/ui5.yaml
deleted file mode 100644
index 06cb1107d..000000000
--- a/steps/14/ui5.yaml
+++ /dev/null
@@ -1,23 +0,0 @@
-specVersion: '3.0'
-metadata:
- name: "ui5.walkthrough"
-type: application
-framework:
- name: OpenUI5
- version: "1.136.7"
- libraries:
- - name: sap.m
- - name: sap.ui.core
- - name: themelib_sap_horizon
-builder:
- customTasks:
- - name: ui5-tooling-transpile-task
- afterTask: replaceVersion
-server:
- customMiddleware:
- - name: ui5-tooling-transpile-middleware
- afterMiddleware: compression
- - name: ui5-middleware-serveframework
- afterMiddleware: compression
- - name: ui5-middleware-livereload
- afterMiddleware: compression
diff --git a/steps/15/ui5.yaml b/steps/15/ui5.yaml
deleted file mode 100644
index 06cb1107d..000000000
--- a/steps/15/ui5.yaml
+++ /dev/null
@@ -1,23 +0,0 @@
-specVersion: '3.0'
-metadata:
- name: "ui5.walkthrough"
-type: application
-framework:
- name: OpenUI5
- version: "1.136.7"
- libraries:
- - name: sap.m
- - name: sap.ui.core
- - name: themelib_sap_horizon
-builder:
- customTasks:
- - name: ui5-tooling-transpile-task
- afterTask: replaceVersion
-server:
- customMiddleware:
- - name: ui5-tooling-transpile-middleware
- afterMiddleware: compression
- - name: ui5-middleware-serveframework
- afterMiddleware: compression
- - name: ui5-middleware-livereload
- afterMiddleware: compression
diff --git a/steps/16/ui5.yaml b/steps/16/ui5.yaml
deleted file mode 100644
index 06cb1107d..000000000
--- a/steps/16/ui5.yaml
+++ /dev/null
@@ -1,23 +0,0 @@
-specVersion: '3.0'
-metadata:
- name: "ui5.walkthrough"
-type: application
-framework:
- name: OpenUI5
- version: "1.136.7"
- libraries:
- - name: sap.m
- - name: sap.ui.core
- - name: themelib_sap_horizon
-builder:
- customTasks:
- - name: ui5-tooling-transpile-task
- afterTask: replaceVersion
-server:
- customMiddleware:
- - name: ui5-tooling-transpile-middleware
- afterMiddleware: compression
- - name: ui5-middleware-serveframework
- afterMiddleware: compression
- - name: ui5-middleware-livereload
- afterMiddleware: compression
diff --git a/steps/17/ui5.yaml b/steps/17/ui5.yaml
deleted file mode 100644
index 06cb1107d..000000000
--- a/steps/17/ui5.yaml
+++ /dev/null
@@ -1,23 +0,0 @@
-specVersion: '3.0'
-metadata:
- name: "ui5.walkthrough"
-type: application
-framework:
- name: OpenUI5
- version: "1.136.7"
- libraries:
- - name: sap.m
- - name: sap.ui.core
- - name: themelib_sap_horizon
-builder:
- customTasks:
- - name: ui5-tooling-transpile-task
- afterTask: replaceVersion
-server:
- customMiddleware:
- - name: ui5-tooling-transpile-middleware
- afterMiddleware: compression
- - name: ui5-middleware-serveframework
- afterMiddleware: compression
- - name: ui5-middleware-livereload
- afterMiddleware: compression
diff --git a/steps/18/ui5.yaml b/steps/18/ui5.yaml
deleted file mode 100644
index 06cb1107d..000000000
--- a/steps/18/ui5.yaml
+++ /dev/null
@@ -1,23 +0,0 @@
-specVersion: '3.0'
-metadata:
- name: "ui5.walkthrough"
-type: application
-framework:
- name: OpenUI5
- version: "1.136.7"
- libraries:
- - name: sap.m
- - name: sap.ui.core
- - name: themelib_sap_horizon
-builder:
- customTasks:
- - name: ui5-tooling-transpile-task
- afterTask: replaceVersion
-server:
- customMiddleware:
- - name: ui5-tooling-transpile-middleware
- afterMiddleware: compression
- - name: ui5-middleware-serveframework
- afterMiddleware: compression
- - name: ui5-middleware-livereload
- afterMiddleware: compression
diff --git a/steps/19/ui5.yaml b/steps/19/ui5.yaml
deleted file mode 100644
index 06cb1107d..000000000
--- a/steps/19/ui5.yaml
+++ /dev/null
@@ -1,23 +0,0 @@
-specVersion: '3.0'
-metadata:
- name: "ui5.walkthrough"
-type: application
-framework:
- name: OpenUI5
- version: "1.136.7"
- libraries:
- - name: sap.m
- - name: sap.ui.core
- - name: themelib_sap_horizon
-builder:
- customTasks:
- - name: ui5-tooling-transpile-task
- afterTask: replaceVersion
-server:
- customMiddleware:
- - name: ui5-tooling-transpile-middleware
- afterMiddleware: compression
- - name: ui5-middleware-serveframework
- afterMiddleware: compression
- - name: ui5-middleware-livereload
- afterMiddleware: compression
diff --git a/steps/20/ui5.yaml b/steps/20/ui5.yaml
deleted file mode 100644
index 06cb1107d..000000000
--- a/steps/20/ui5.yaml
+++ /dev/null
@@ -1,23 +0,0 @@
-specVersion: '3.0'
-metadata:
- name: "ui5.walkthrough"
-type: application
-framework:
- name: OpenUI5
- version: "1.136.7"
- libraries:
- - name: sap.m
- - name: sap.ui.core
- - name: themelib_sap_horizon
-builder:
- customTasks:
- - name: ui5-tooling-transpile-task
- afterTask: replaceVersion
-server:
- customMiddleware:
- - name: ui5-tooling-transpile-middleware
- afterMiddleware: compression
- - name: ui5-middleware-serveframework
- afterMiddleware: compression
- - name: ui5-middleware-livereload
- afterMiddleware: compression
diff --git a/steps/21/ui5.yaml b/steps/21/ui5.yaml
deleted file mode 100644
index 06cb1107d..000000000
--- a/steps/21/ui5.yaml
+++ /dev/null
@@ -1,23 +0,0 @@
-specVersion: '3.0'
-metadata:
- name: "ui5.walkthrough"
-type: application
-framework:
- name: OpenUI5
- version: "1.136.7"
- libraries:
- - name: sap.m
- - name: sap.ui.core
- - name: themelib_sap_horizon
-builder:
- customTasks:
- - name: ui5-tooling-transpile-task
- afterTask: replaceVersion
-server:
- customMiddleware:
- - name: ui5-tooling-transpile-middleware
- afterMiddleware: compression
- - name: ui5-middleware-serveframework
- afterMiddleware: compression
- - name: ui5-middleware-livereload
- afterMiddleware: compression
diff --git a/steps/22/ui5.yaml b/steps/22/ui5.yaml
deleted file mode 100644
index 06cb1107d..000000000
--- a/steps/22/ui5.yaml
+++ /dev/null
@@ -1,23 +0,0 @@
-specVersion: '3.0'
-metadata:
- name: "ui5.walkthrough"
-type: application
-framework:
- name: OpenUI5
- version: "1.136.7"
- libraries:
- - name: sap.m
- - name: sap.ui.core
- - name: themelib_sap_horizon
-builder:
- customTasks:
- - name: ui5-tooling-transpile-task
- afterTask: replaceVersion
-server:
- customMiddleware:
- - name: ui5-tooling-transpile-middleware
- afterMiddleware: compression
- - name: ui5-middleware-serveframework
- afterMiddleware: compression
- - name: ui5-middleware-livereload
- afterMiddleware: compression
diff --git a/steps/23/ui5.yaml b/steps/23/ui5.yaml
deleted file mode 100644
index 06cb1107d..000000000
--- a/steps/23/ui5.yaml
+++ /dev/null
@@ -1,23 +0,0 @@
-specVersion: '3.0'
-metadata:
- name: "ui5.walkthrough"
-type: application
-framework:
- name: OpenUI5
- version: "1.136.7"
- libraries:
- - name: sap.m
- - name: sap.ui.core
- - name: themelib_sap_horizon
-builder:
- customTasks:
- - name: ui5-tooling-transpile-task
- afterTask: replaceVersion
-server:
- customMiddleware:
- - name: ui5-tooling-transpile-middleware
- afterMiddleware: compression
- - name: ui5-middleware-serveframework
- afterMiddleware: compression
- - name: ui5-middleware-livereload
- afterMiddleware: compression
diff --git a/steps/24/ui5.yaml b/steps/24/ui5.yaml
deleted file mode 100644
index 06cb1107d..000000000
--- a/steps/24/ui5.yaml
+++ /dev/null
@@ -1,23 +0,0 @@
-specVersion: '3.0'
-metadata:
- name: "ui5.walkthrough"
-type: application
-framework:
- name: OpenUI5
- version: "1.136.7"
- libraries:
- - name: sap.m
- - name: sap.ui.core
- - name: themelib_sap_horizon
-builder:
- customTasks:
- - name: ui5-tooling-transpile-task
- afterTask: replaceVersion
-server:
- customMiddleware:
- - name: ui5-tooling-transpile-middleware
- afterMiddleware: compression
- - name: ui5-middleware-serveframework
- afterMiddleware: compression
- - name: ui5-middleware-livereload
- afterMiddleware: compression
diff --git a/tools/builder/prepare-gh-pages.js b/tools/builder/prepare-gh-pages.js
index ee06ae779..6a3d8227e 100644
--- a/tools/builder/prepare-gh-pages.js
+++ b/tools/builder/prepare-gh-pages.js
@@ -30,45 +30,51 @@ function zipDirectory(sourceDir, outPath) {
});
}
-(async function() {
+function getTutorials() {
+ const packagesDir = join(cwd, "packages");
+ return readdirSync(packagesDir).filter((entry) =>
+ statSync(join(packagesDir, entry)).isDirectory() &&
+ existsSync(join(packagesDir, entry, "steps"))
+ );
+}
- let steps = readdirSync(join(cwd, "steps"));
- // only consider directories
- steps = steps.filter((step) => statSync(join(cwd, "steps", step)).isDirectory());
+function getSteps(tutorialDir) {
+ let steps = readdirSync(join(tutorialDir, "steps"));
+ return steps.filter((step) => statSync(join(tutorialDir, "steps", step)).isDirectory());
+}
+
+(async function() {
if (existsSync(join(cwd, "dist"))) {
rmSync(join(cwd, "dist"), { recursive: true });
}
-
mkdirSync(join(cwd, "dist"), { recursive: true });
- console.log(`π Zipping TypeScript sources...`);
- await Promise.all(steps.map((step) => {
- return zipDirectory(join(cwd, "steps", step), join(cwd, "dist", `ui5-typescript-walkthrough-step-${step}.zip`))
- }));
-
- mkdirSync(join(cwd, "dist/build"), { recursive: true });
-
- console.log(`π Building steps...`);
- for (const step of steps) {
- console.log(` π Building step ${step}...`);
- //console.log(`npx ui5 build --dest ${join(cwd, "dist", "build", `${step}`)}`);
- await execute(`npx ui5 build --dest ${join(cwd, "dist", "build", `${step}`)}`, {
- cwd: join(cwd, "steps", step)
- });
- }
-
- function rewriteLinks(file, path) {
- let content = `---\npermalink: ${path ? `build/${path.replace(".md", ".html")}` : "index.html"}\n---\n\n${readFileSync(file, { encoding: "utf8"})}`;
- content = content.replace(/steps\/(\d{2})/g, "build/$1");
- content = content.replace(/\.\.\/(\d{2})/g, "../$1");
+ console.log(`π Copying root README.md...`);
+ function rewriteLinks(file, path, tutorialName) {
+ let permalink;
+ if (!path) {
+ permalink = "index.html";
+ } else if (!tutorialName) {
+ permalink = `build/${path.replace(".md", ".html")}`;
+ } else {
+ permalink = `${tutorialName}/build/${path.replace(".md", ".html")}`;
+ }
+ let content = `---\npermalink: ${permalink}\n---\n\n${readFileSync(file, { encoding: "utf8"})}`;
+ if (tutorialName) {
+ content = content.replace(/steps\/(\d{2})/g, `${tutorialName}/build/$1`);
+ content = content.replace(/\.\.\/(\d{2})/g, "../$1");
+ } else {
+ content = content.replace(/steps\/(\d{2})/g, "build/$1");
+ content = content.replace(/\.\.\/(\d{2})/g, "../$1");
+ }
content = content.replace(/README\.md/g, "README.html");
writeFileSync(file, content, { encoding: "utf8" });
}
- console.log(`π Copying README.md...`);
copyFileSync(join(cwd, "README.md"), join(cwd, "dist/index.md"));
rewriteLinks(join(cwd, "dist/index.md"));
+ copyFileSync(join(cwd, "404.html"), join(cwd, "dist/404.html"));
console.log(` π Copying _includes....`);
const includes = fg.globSync(["**/*"], { cwd: join(cwd, "_includes") });
@@ -84,65 +90,103 @@ function zipDirectory(sourceDir, outPath) {
copyFileSync(join(cwd, "assets", asset), join(cwd, `dist/assets/${asset}`));
});
- console.log(`π Copying steps README.md files...`);
- const readmes = fg.globSync(["steps/*/README.md"], { cwd });
- readmes.forEach((readme) => {
- const [, path, step] = readme.match("steps/((.*)/README.md)");
- mkdirSync(join(cwd, `dist/build/${step}`), { recursive: true });
- copyFileSync(join(cwd, readme), join(cwd, `dist/build/${path}`));
- rewriteLinks(join(cwd, `dist/build/${path}`), `${path}`);
- });
- console.log(` π Copying steps assets....`);
- const assets = fg.globSync(["steps/*/assets/**/*"], { cwd });
- assets.forEach((asset) => {
- const [, step, assetFile] = asset.match("steps/(.*)/assets/(.*)");
- mkdirSync(dirname(join(cwd, "dist/build", step, "assets", assetFile)), { recursive: true });
- copyFileSync(join(cwd, "steps", step, "assets", assetFile), join(cwd, "dist/build", step, "assets", assetFile));
- });
+ const tutorials = getTutorials();
+ console.log(`π Found tutorials: ${tutorials.join(", ")}`);
+
+ for (const tutorial of tutorials) {
+ const tutorialDir = join(cwd, "packages", tutorial);
+ const distTutorialDir = join(cwd, "dist", tutorial);
+ const steps = getSteps(tutorialDir);
+
+ console.log(`\nπ¦ Processing tutorial: ${tutorial} (${steps.length} steps)`);
+
+ mkdirSync(distTutorialDir, { recursive: true });
+
+ console.log(` π Copying tutorial README.md...`);
+ if (existsSync(join(tutorialDir, "README.md"))) {
+ copyFileSync(join(tutorialDir, "README.md"), join(distTutorialDir, "index.md"));
+ rewriteLinks(join(distTutorialDir, "index.md"), null, tutorial);
+ }
+
+ console.log(` π Zipping TypeScript sources...`);
+ await Promise.all(steps.map((step) => {
+ return zipDirectory(
+ join(tutorialDir, "steps", step),
+ join(distTutorialDir, `${tutorial}-step-${step}.zip`)
+ );
+ }));
+
+ const buildDir = join(distTutorialDir, "build");
+ mkdirSync(buildDir, { recursive: true });
+
+ console.log(` π Building steps...`);
+ for (const step of steps) {
+ console.log(` π Building step ${step}...`);
+ await execute(`npx ui5 build --dest ${join(buildDir, step)}`, {
+ cwd: join(tutorialDir, "steps", step)
+ });
+ }
+
+ console.log(` π Copying step README.md files...`);
+ const readmes = fg.globSync(["steps/*/README.md"], { cwd: tutorialDir });
+ readmes.forEach((readme) => {
+ const [, path, step] = readme.match("steps/((.*)/README.md)");
+ mkdirSync(join(buildDir, step), { recursive: true });
+ copyFileSync(join(tutorialDir, readme), join(buildDir, path));
+ rewriteLinks(join(buildDir, path), path, tutorial);
+ });
+ console.log(` π Copying step assets...`);
+ const assets = fg.globSync(["steps/*/assets/**/*"], { cwd: tutorialDir });
+ assets.forEach((asset) => {
+ const [, step, assetFile] = asset.match("steps/(.*)/assets/(.*)");
+ mkdirSync(dirname(join(buildDir, step, "assets", assetFile)), { recursive: true });
+ copyFileSync(join(tutorialDir, "steps", step, "assets", assetFile), join(buildDir, step, "assets", assetFile));
+ });
- console.log(`π Generate the JavaScript sources...`);
- await Promise.all(steps.map((step) => {
- const jsStepBaseDir = join(cwd, "steps", step);
- const buildOutputDir = join(cwd, "dist", "build", `${step}`);
- const targetDir = join(cwd, "dist", "steps", `${step}`);
-
- console.log(` π Generate sources for step ${step}...`);
-
- // copy all files from buildOutputDir to targetDir except of TS files
- const files = fg.sync(["**/*"], { cwd: jsStepBaseDir, dot: true });
- files.forEach((file) => {
- const source = join(jsStepBaseDir, file);
- const target = join(targetDir, file);
- if (file.endsWith(".ts") && file.startsWith("webapp")) {
- const outputFile = file.substring(7, file.length - 3);
- let sourceJS;
- if (file.endsWith("controller.ts")) {
- sourceJS = join(buildOutputDir, `${outputFile.substring(0, outputFile.length - 11)}-dbg.controller.js`);
- } else if (file.endsWith(".ts") && !file.endsWith(".d.ts")) {
- sourceJS = join(buildOutputDir, `${outputFile}-dbg.js`);
- }
+ console.log(` π Generating JavaScript sources...`);
+ await Promise.all(steps.map((step) => {
+ const jsStepBaseDir = join(tutorialDir, "steps", step);
+ const buildOutputDir = join(buildDir, step);
+ const targetDir = join(distTutorialDir, "steps", step);
+
+ console.log(` π Generating sources for step ${step}...`);
+
+ const files = fg.sync(["**/*"], { cwd: jsStepBaseDir, dot: true });
+ files.forEach((file) => {
+ const source = join(jsStepBaseDir, file);
+ const target = join(targetDir, file);
+ if (file.endsWith(".ts") && file.startsWith("webapp")) {
+ const outputFile = file.substring(7, file.length - 3);
+ let sourceJS;
+ if (file.endsWith("controller.ts")) {
+ sourceJS = join(buildOutputDir, `${outputFile.substring(0, outputFile.length - 11)}-dbg.controller.js`);
+ } else if (!file.endsWith(".d.ts")) {
+ sourceJS = join(buildOutputDir, `${outputFile}-dbg.js`);
+ }
- if (!file.endsWith(".d.ts")) {
- if (existsSync(sourceJS)) {
- const targetJS = target.replace(/\.ts$/, ".js");
- mkdirSync(dirname(targetJS), { recursive: true });
- // rewrite content of the JS file
- let content = readFileSync(sourceJS, { encoding: "utf8" });
- content = sanitize(content);
- writeFileSync(targetJS, content, { encoding: "utf8" });
- } else {
- console.error("No JS file found for", source);
+ if (!file.endsWith(".d.ts")) {
+ if (existsSync(sourceJS)) {
+ const targetJS = target.replace(/\.ts$/, ".js");
+ mkdirSync(dirname(targetJS), { recursive: true });
+ let content = readFileSync(sourceJS, { encoding: "utf8" });
+ content = sanitize(content);
+ writeFileSync(targetJS, content, { encoding: "utf8" });
+ } else {
+ console.error("No JS file found for", source);
+ }
}
+ } else if (file !== "tsconfig.json") {
+ mkdirSync(dirname(target), { recursive: true });
+ copyFileSync(source, target);
}
- } else if (file !== "tsconfig.json") {
- mkdirSync(dirname(target), { recursive: true });
- copyFileSync(source, target);
- }
- });
+ });
- //console.log(`${jsStepBaseDir} -> ${buildOutputDir}`);
- return zipDirectory(join(cwd, "dist", "steps", `${step}`), join(cwd, "dist", `ui5-typescript-walkthrough-step-${step}-js.zip`))
- }));
+ return zipDirectory(
+ join(distTutorialDir, "steps", step),
+ join(distTutorialDir, `${tutorial}-step-${step}-js.zip`)
+ );
+ }));
+ }
}());
diff --git a/tools/dev-server/ghpage-template.hbs b/tools/dev-server/ghpage-template.hbs
index c6a4da506..579dee24a 100644
--- a/tools/dev-server/ghpage-template.hbs
+++ b/tools/dev-server/ghpage-template.hbs
@@ -63,7 +63,7 @@