@cbs-consulting/generator-btp 1.0.0 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,105 +1,105 @@
1
- # CAP/UI5 Foundation Generator
2
-
3
- A Yeoman generator for creating the foundation of CAP/UI5 projects with TypeScript, ESLint, Prettier, and other essential development configurations.
4
-
5
- ## Features
6
-
7
- This generator sets up a solid foundation for your CAP/UI5 projects with:
8
-
9
- - ✅ **TypeScript** - Full TypeScript configuration with strict settings
10
- - ✅ **ESLint** - Code quality and linting rules optimized for TypeScript
11
- - ✅ **Prettier** - Consistent code formatting
12
- - ✅ **Husky** - Git hooks for pre-commit quality checks
13
- - ✅ **Jest** - Testing framework with TypeScript support
14
- - ✅ **GitHub Actions** - CI/CD pipeline for automated testing and building
15
- - ✅ **VS Code** - Optimized settings and recommended extensions
16
- - ✅ **Docker** - Container configuration for deployment (optional)
17
-
18
- ## Installation
19
-
20
- First, install Yeoman and this generator globally:
21
-
22
- ```bash
23
- npm install -g yo
24
- npm install -g @cbs-consulting/generator-btp
25
- ```
26
-
27
- Or install locally in your project:
28
-
29
- ```bash
30
- npm install --save-dev @cbs-consulting/generator-btp
31
- ```
32
-
33
- ## Usage
34
-
35
- This generator is split into two sub-generators.
36
-
37
- 1. CAP flow
38
-
39
- ```bash
40
- mkdir my-cap
41
- cd my-cap
42
- yo @cbs-consulting/btp:cap
43
- # read and execute the printed steps shown in the terminal
44
- ```
45
-
46
- 2. UI5 flow
47
-
48
- ```bash
49
- mkdir my-ui5
50
- cd my-ui5
51
- # ensure you have a UI5 project skeleton (or after cds init)
52
- yo @cbs-consulting/btp:ui5
53
- # read and execute the printed steps in the terminal
54
- ```
55
-
56
- The CAP sub-generator copies all templates from generators/app/templatesCAP into your project and merges additions from generators/app/additionsCAP into existing files. The scripting.txt is shown but not executed automatically.
57
-
58
- ## Generated Project Structure
59
-
60
- ```
61
- my-project/
62
- ├── src/ # Source TypeScript files
63
- ├── tests/ # Test files (if Jest is selected)
64
- ├── dist/ # Compiled output (after build)
65
- ├── .github/workflows/ # GitHub Actions CI/CD (if selected)
66
- ├── .vscode/ # VS Code settings (if selected)
67
- ├── .eslintrc.js # ESLint configuration
68
- ├── .prettierrc # Prettier configuration
69
- ├── .gitignore # Git ignore rules
70
- ├── tsconfig.json # TypeScript configuration
71
- ├── jest.config.js # Jest configuration (if selected)
72
- ├── package.json # Project dependencies and scripts
73
- └── README.md # Project documentation
74
- ```
75
-
76
- ## Available Scripts
77
-
78
- The generated project includes these npm scripts:
79
-
80
- - `npm run build` - Compile TypeScript to JavaScript
81
- - `npm run build:watch` - Watch mode compilation
82
- - `npm run lint` - Run ESLint on your code
83
- - `npm run lint:fix` - Fix auto-fixable ESLint issues
84
- - `npm run format` - Format code with Prettier
85
- - `npm run format:check` - Check if code is properly formatted
86
- - `npm test` - Run Jest tests (if enabled)
87
- - `npm run test:watch` - Run tests in watch mode
88
- - `npm run test:coverage` - Generate test coverage report
89
-
90
- ## Development
91
-
92
- To develop this generator locally:
93
-
94
- 1. Clone this repository
95
- 2. Install dependencies: `npm install`
96
- 3. Link the generator: `npm link`
97
- 4. Test in a new directory: `yo @cbs-consulting/btp`
98
-
99
- ## Contributing
100
-
101
- 1. Fork the repository
102
- 2. Create a feature branch
103
- 3. Make your changes
104
- 4. Add tests if applicable
105
- 5. Submit a pull request
1
+ # CAP/UI5 Foundation Generator
2
+
3
+ A Yeoman generator for creating the foundation of CAP/UI5 projects with TypeScript, ESLint, Prettier, and other essential development configurations.
4
+
5
+ ## Features
6
+
7
+ This generator sets up a solid foundation for your CAP/UI5 projects with:
8
+
9
+ - ✅ **TypeScript** - Full TypeScript configuration with strict settings
10
+ - ✅ **ESLint** - Code quality and linting rules optimized for TypeScript
11
+ - ✅ **Prettier** - Consistent code formatting
12
+ - ✅ **Husky** - Git hooks for pre-commit quality checks
13
+ - ✅ **Jest** - Testing framework with TypeScript support
14
+ - ✅ **GitHub Actions** - CI/CD pipeline for automated testing and building
15
+ - ✅ **VS Code** - Optimized settings and recommended extensions
16
+ - ✅ **Docker** - Container configuration for deployment (optional)
17
+
18
+ ## Installation
19
+
20
+ First, install Yeoman and this generator globally:
21
+
22
+ ```bash
23
+ npm install -g yo
24
+ npm install -g @cbs-consulting/generator-btp
25
+ ```
26
+
27
+ Or install locally in your project:
28
+
29
+ ```bash
30
+ npm install --save-dev @cbs-consulting/generator-btp
31
+ ```
32
+
33
+ ## Usage
34
+
35
+ This generator is split into two sub-generators.
36
+
37
+ 1. CAP flow
38
+
39
+ ```bash
40
+ mkdir my-cap
41
+ cd my-cap
42
+ yo @cbs-consulting/btp:cap
43
+ # read and execute the printed steps shown in the terminal
44
+ ```
45
+
46
+ 2. UI5 flow
47
+
48
+ ```bash
49
+ mkdir my-ui5
50
+ cd my-ui5
51
+ # ensure you have a UI5 project skeleton (or after cds init)
52
+ yo @cbs-consulting/btp:ui5
53
+ # read and execute the printed steps in the terminal
54
+ ```
55
+
56
+ The CAP sub-generator copies all templates from generators/app/templatesCAP into your project and merges additions from generators/app/additionsCAP into existing files. The scripting.txt is shown but not executed automatically.
57
+
58
+ ## Generated Project Structure
59
+
60
+ ```
61
+ my-project/
62
+ ├── src/ # Source TypeScript files
63
+ ├── tests/ # Test files (if Jest is selected)
64
+ ├── dist/ # Compiled output (after build)
65
+ ├── .github/workflows/ # GitHub Actions CI/CD (if selected)
66
+ ├── .vscode/ # VS Code settings (if selected)
67
+ ├── .eslintrc.js # ESLint configuration
68
+ ├── .prettierrc # Prettier configuration
69
+ ├── .gitignore # Git ignore rules
70
+ ├── tsconfig.json # TypeScript configuration
71
+ ├── jest.config.js # Jest configuration (if selected)
72
+ ├── package.json # Project dependencies and scripts
73
+ └── README.md # Project documentation
74
+ ```
75
+
76
+ ## Available Scripts
77
+
78
+ The generated project includes these npm scripts:
79
+
80
+ - `npm run build` - Compile TypeScript to JavaScript
81
+ - `npm run build:watch` - Watch mode compilation
82
+ - `npm run lint` - Run ESLint on your code
83
+ - `npm run lint:fix` - Fix auto-fixable ESLint issues
84
+ - `npm run format` - Format code with Prettier
85
+ - `npm run format:check` - Check if code is properly formatted
86
+ - `npm test` - Run Jest tests (if enabled)
87
+ - `npm run test:watch` - Run tests in watch mode
88
+ - `npm run test:coverage` - Generate test coverage report
89
+
90
+ ## Development
91
+
92
+ To develop this generator locally:
93
+
94
+ 1. Clone this repository
95
+ 2. Install dependencies: `npm install`
96
+ 3. Link the generator: `npm link`
97
+ 4. Test in a new directory: `yo @cbs-consulting/btp`
98
+
99
+ ## Contributing
100
+
101
+ 1. Fork the repository
102
+ 2. Create a feature branch
103
+ 3. Make your changes
104
+ 4. Add tests if applicable
105
+ 5. Submit a pull request
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "devDependencies": [
3
- "cbs-tools",
3
+ "@cbs-consulting/tools",
4
4
  "prettier",
5
5
  "prettier-plugin-organize-imports",
6
6
  "@prettier/plugin-xml",
@@ -1,16 +1,16 @@
1
- #!/bin/bash
2
-
3
- # Install CF multiapps plugin for deploy and dmol
4
- echo "Adding CF-Community plugin repository..."
5
- cf add-plugin-repo CF-Community https://plugins.cloudfoundry.org > /dev/null 2>&1
6
- echo "✓ Added CF-Community plugin successfully!"
7
-
8
- echo "Installing multiapps plugin..."
9
- # Install silently to avoid unnecessary output
10
- cf install-plugin multiapps -f > /dev/null 2>&1
11
- echo "✓ CF multiapps plugin installed successfully!"
12
-
13
- # Install required azure extensions
14
- echo "Installing azure extensions..."
15
- az extension add --name azure-devops
1
+ #!/bin/bash
2
+
3
+ # Install CF multiapps plugin for deploy and dmol
4
+ echo "Adding CF-Community plugin repository..."
5
+ cf add-plugin-repo CF-Community https://plugins.cloudfoundry.org > /dev/null 2>&1
6
+ echo "✓ Added CF-Community plugin successfully!"
7
+
8
+ echo "Installing multiapps plugin..."
9
+ # Install silently to avoid unnecessary output
10
+ cf install-plugin multiapps -f > /dev/null 2>&1
11
+ echo "✓ CF multiapps plugin installed successfully!"
12
+
13
+ # Install required azure extensions
14
+ echo "Installing azure extensions..."
15
+ az extension add --name azure-devops
16
16
  echo "✓ Azure extensions installed successfully!"
@@ -1,16 +1,16 @@
1
- [alias]
2
- # Helper aliases for ticket workflow
3
- extract-branch-parts = "!f() { current_branch=$(git branch --show-current); case \"$current_branch\" in */*) prefix=\"${current_branch%%/*}\"; ticketRef=\"${current_branch#*/}\"; echo \"$prefix|$ticketRef\" ;; *) echo \"Error: Branch name must contain a prefix (e.g., feature/ABC-123)\" >&2; return 1 ;; esac; }; f"
4
- capitalize-prefix = "!f() { first_char=$(printf '%s' \"$1\" | cut -c1 | tr '[:lower:]' '[:upper:]'); rest_chars=$(printf '%s' \"$1\" | cut -c2-); echo \"$first_char$rest_chars\"; }; f"
5
- format-pr-url = "!f() { pr_id=\"$1\"; remote_url=$(git config --get remote.origin.url | sed 's|https://[^@]*@|https://|'); base_url=$(echo \"$remote_url\" | sed 's|\\.git$||'); echo \"${base_url}/pullrequest/${pr_id}\"; }; f"
6
- get-commit-message = "!f() { provided_message=\"$1\"; default_branch=\"$2\"; current_branch=$(git branch --show-current); commit_count=$(git rev-list --count $default_branch..$current_branch 2>/dev/null || echo \"0\"); if [ \"$commit_count\" -eq 1 ]; then if [ -z \"$provided_message\" ]; then git log -1 --pretty%=s; else echo \"$provided_message\"; fi; elif [ \"$commit_count\" -gt 1 ]; then if [ -z \"$provided_message\" ]; then echo \"Error: Multiple commits found. Please provide a message with -m <message>\" >&2; return 1; fi; echo \"$provided_message\"; else echo \"Error: No commits found on this branch\" >&2; return 1; fi; }; f"
7
- stash-if-dirty = "!f() { if ! git diff-index --quiet HEAD -- 2>/dev/null; then echo 'Stashing...'; git stash >/dev/null 2>&1 && echo 'stashed'; fi; }; f"
8
- unstash-if-needed = "!f() { if [ \"$1\" = \"stashed\" ]; then echo 'Restoring stash...'; git stash pop >/dev/null 2>&1; fi; }; f"
9
- revert-stash-if-needed = "!f() { if [ \"$1\" = \"stashed\" ]; then echo 'Reverting stash...'; git stash pop >/dev/null 2>&1; fi; }; f"
10
- open-ticket-help = "!f() { default_branch=$(git default-branch); echo ''; echo '----------------------------------------'; echo ''; echo 'Usage: git open-ticket [prefix] <ticketRef>'; echo ''; echo \"Creates a new feature branch from the default branch.\"; echo \"The default branch of this project is: $default_branch.\"; echo ''; echo 'Arguments:'; echo ' ticketRef Ticket reference (e.g., ABC-123)'; echo ' prefix Optional branch prefix (default: feature)'; echo ''; echo 'Options:'; echo ' -h Show this help message'; echo ''; echo 'Examples:'; echo ' git open-ticket ABC-123 # Creates feature/ABC-123'; echo ' git open-ticket bugfix ABC-123 # Creates bugfix/ABC-123'; echo ' git open-ticket hotfix XYZ-456 # Creates hotfix/XYZ-456'; }; f"
11
- close-ticket-help = "!f() { default_branch=$(git default-branch); echo ''; echo '----------------------------------------'; echo ''; echo 'Usage: git close-ticket [OPTIONS]'; echo ''; echo \"Creates a pull request from the current branch to the default branch.\"; echo \"The default branch of this project is: $default_branch.\"; echo ''; echo \"The message is prefixed based on the branch name.\"; echo \"Example: feature/ABC-123 -> Feature ABC-123: <message>\"; echo ''; echo 'Options:'; echo ' --auto-complete Enable auto-complete and delete source branch after merge'; echo ' -m <message> Custom PR message (required if multiple commits exist)'; echo ' -h Show this help message'; echo ''; echo 'Examples:'; echo ' git close-ticket'; echo ' git close-ticket --auto-complete'; echo ' git close-ticket -m \"Add new feature\"'; echo ' git close-ticket --auto-complete -m \"Fix bug\"'; }; f"
12
-
13
- # Main ticket workflow aliases
14
- close-ticket = "!f() { message=\"\"; auto_complete=\"\"; while [ $# -gt 0 ]; do case \"$1\" in -h) git close-ticket-help; return 0 ;; -m) if [ -z \"$2\" ]; then echo \"Error: -m requires a message\" >&2; return 1; fi; message=\"$2\"; shift 2 ;; --auto-complete) auto_complete=\"--auto-complete true --delete-source-branch true\"; shift ;; *) echo \"Error: Unknown parameter '$1'. Usage: git close-ticket [--auto-complete] [-m <message>]\" >&2; return 1 ;; esac; done; parts=$(git extract-branch-parts) || return 1; prefix=$(echo \"$parts\" | cut -d'|' -f1); ticketRef=$(echo \"$parts\" | cut -d'|' -f2); git push || return 1; default_branch=$(git default-branch); message=$(git get-commit-message \"$message\" \"$default_branch\") || return 1; prefix_cap=$(git capitalize-prefix \"$prefix\"); pr_title=\"$prefix_cap $ticketRef: $message\"; echo \"Creating PR: $pr_title\"; pr_id=$(az repos pr create --title \"$pr_title\" --target-branch \"$default_branch\" --source-branch \"$(git branch --show-current)\" $auto_complete -o tsv --query \"pullRequestId\") || return 1; pr_url=$(git format-pr-url \"$pr_id\"); echo \"PR created: $pr_url\"; git switch $(git default-branch) && git pull && git cleanup-branches; }; f"
15
- open-ticket = "!f() { if [ \"$1\" = \"-h\" ]; then git open-ticket-help; return 0; fi; if [ -z \"$1\" ]; then echo \"Error: Please provide a ticket name. Usage: git open-ticket [prefix] <ticketRef>\" >&2; return 1; fi; if [ -n \"$2\" ]; then prefix=\"$1/\"; ticket=\"$2\"; else prefix=\"feature/\"; ticket=\"$1\"; fi; case \"$ticket\" in */*) echo \"Error: Ticket name cannot contain '/'. Use separate prefix parameter instead. Example: git open-ticket feature ABC-123\" >&2; return 1 ;; esac; stash_status=$(git stash-if-dirty); if ! git switch $(git default-branch); then git revert-stash-if-needed \"$stash_status\"; return 1; fi; if ! git pull; then git revert-stash-if-needed \"$stash_status\"; return 1; fi; if ! git switch -c \"$prefix$ticket\"; then git revert-stash-if-needed \"$stash_status\"; return 1; fi; git unstash-if-needed \"$stash_status\"; }; f"
16
- default-branch = "!f() { \n if ! az extension list --query \"[?name=='azure-devops'].name\" -o tsv 2>/dev/null | grep -q 'azure-devops'; then \n echo \"Error: azure-devops extension is not installed. Install it with: az extension add --name azure-devops\" >&2; \n return 1; \n fi; \n if ! az account show >/dev/null 2>&1; then \n echo \"Error: Not logged in to Azure. Login with: az login --allow-no-subscriptions\" >&2; \n return 1; \n fi; \n repoName=$(basename -s .git \"$(git config --get remote.origin.url)\"); \n remoteBranch=$(az repos show --query defaultBranch -o tsv -r \"$repoName\"); \n localBranch=$(git rev-parse --abbrev-ref \"$remoteBranch\"); \n echo \"$localBranch\"; \n}; f"
1
+ [alias]
2
+ # Helper aliases for ticket workflow
3
+ extract-branch-parts = "!f() { current_branch=$(git branch --show-current); case \"$current_branch\" in */*) prefix=\"${current_branch%%/*}\"; ticketRef=\"${current_branch#*/}\"; echo \"$prefix|$ticketRef\" ;; *) echo \"Error: Branch name must contain a prefix (e.g., feature/ABC-123)\" >&2; return 1 ;; esac; }; f"
4
+ capitalize-prefix = "!f() { first_char=$(printf '%s' \"$1\" | cut -c1 | tr '[:lower:]' '[:upper:]'); rest_chars=$(printf '%s' \"$1\" | cut -c2-); echo \"$first_char$rest_chars\"; }; f"
5
+ format-pr-url = "!f() { pr_id=\"$1\"; remote_url=$(git config --get remote.origin.url | sed 's|https://[^@]*@|https://|'); base_url=$(echo \"$remote_url\" | sed 's|\\.git$||'); echo \"${base_url}/pullrequest/${pr_id}\"; }; f"
6
+ get-commit-message = "!f() { provided_message=\"$1\"; default_branch=\"$2\"; current_branch=$(git branch --show-current); commit_count=$(git rev-list --count $default_branch..$current_branch 2>/dev/null || echo \"0\"); if [ \"$commit_count\" -eq 1 ]; then if [ -z \"$provided_message\" ]; then git log -1 --pretty%=s; else echo \"$provided_message\"; fi; elif [ \"$commit_count\" -gt 1 ]; then if [ -z \"$provided_message\" ]; then echo \"Error: Multiple commits found. Please provide a message with -m <message>\" >&2; return 1; fi; echo \"$provided_message\"; else echo \"Error: No commits found on this branch\" >&2; return 1; fi; }; f"
7
+ stash-if-dirty = "!f() { if ! git diff-index --quiet HEAD -- 2>/dev/null; then echo 'Stashing...'; git stash >/dev/null 2>&1 && echo 'stashed'; fi; }; f"
8
+ unstash-if-needed = "!f() { if [ \"$1\" = \"stashed\" ]; then echo 'Restoring stash...'; git stash pop >/dev/null 2>&1; fi; }; f"
9
+ revert-stash-if-needed = "!f() { if [ \"$1\" = \"stashed\" ]; then echo 'Reverting stash...'; git stash pop >/dev/null 2>&1; fi; }; f"
10
+ open-ticket-help = "!f() { default_branch=$(git default-branch); echo ''; echo '----------------------------------------'; echo ''; echo 'Usage: git open-ticket [prefix] <ticketRef>'; echo ''; echo \"Creates a new feature branch from the default branch.\"; echo \"The default branch of this project is: $default_branch.\"; echo ''; echo 'Arguments:'; echo ' ticketRef Ticket reference (e.g., ABC-123)'; echo ' prefix Optional branch prefix (default: feature)'; echo ''; echo 'Options:'; echo ' -h Show this help message'; echo ''; echo 'Examples:'; echo ' git open-ticket ABC-123 # Creates feature/ABC-123'; echo ' git open-ticket bugfix ABC-123 # Creates bugfix/ABC-123'; echo ' git open-ticket hotfix XYZ-456 # Creates hotfix/XYZ-456'; }; f"
11
+ close-ticket-help = "!f() { default_branch=$(git default-branch); echo ''; echo '----------------------------------------'; echo ''; echo 'Usage: git close-ticket [OPTIONS]'; echo ''; echo \"Creates a pull request from the current branch to the default branch.\"; echo \"The default branch of this project is: $default_branch.\"; echo ''; echo \"The message is prefixed based on the branch name.\"; echo \"Example: feature/ABC-123 -> Feature ABC-123: <message>\"; echo ''; echo 'Options:'; echo ' --auto-complete Enable auto-complete and delete source branch after merge'; echo ' -m <message> Custom PR message (required if multiple commits exist)'; echo ' -h Show this help message'; echo ''; echo 'Examples:'; echo ' git close-ticket'; echo ' git close-ticket --auto-complete'; echo ' git close-ticket -m \"Add new feature\"'; echo ' git close-ticket --auto-complete -m \"Fix bug\"'; }; f"
12
+
13
+ # Main ticket workflow aliases
14
+ close-ticket = "!f() { message=\"\"; auto_complete=\"\"; while [ $# -gt 0 ]; do case \"$1\" in -h) git close-ticket-help; return 0 ;; -m) if [ -z \"$2\" ]; then echo \"Error: -m requires a message\" >&2; return 1; fi; message=\"$2\"; shift 2 ;; --auto-complete) auto_complete=\"--auto-complete true --delete-source-branch true\"; shift ;; *) echo \"Error: Unknown parameter '$1'. Usage: git close-ticket [--auto-complete] [-m <message>]\" >&2; return 1 ;; esac; done; parts=$(git extract-branch-parts) || return 1; prefix=$(echo \"$parts\" | cut -d'|' -f1); ticketRef=$(echo \"$parts\" | cut -d'|' -f2); git push || return 1; default_branch=$(git default-branch); message=$(git get-commit-message \"$message\" \"$default_branch\") || return 1; prefix_cap=$(git capitalize-prefix \"$prefix\"); pr_title=\"$prefix_cap $ticketRef: $message\"; echo \"Creating PR: $pr_title\"; pr_id=$(az repos pr create --title \"$pr_title\" --target-branch \"$default_branch\" --source-branch \"$(git branch --show-current)\" $auto_complete -o tsv --query \"pullRequestId\") || return 1; pr_url=$(git format-pr-url \"$pr_id\"); echo \"PR created: $pr_url\"; git switch $(git default-branch) && git pull && git cleanup-branches; }; f"
15
+ open-ticket = "!f() { if [ \"$1\" = \"-h\" ]; then git open-ticket-help; return 0; fi; if [ -z \"$1\" ]; then echo \"Error: Please provide a ticket name. Usage: git open-ticket [prefix] <ticketRef>\" >&2; return 1; fi; if [ -n \"$2\" ]; then prefix=\"$1/\"; ticket=\"$2\"; else prefix=\"feature/\"; ticket=\"$1\"; fi; case \"$ticket\" in */*) echo \"Error: Ticket name cannot contain '/'. Use separate prefix parameter instead. Example: git open-ticket feature ABC-123\" >&2; return 1 ;; esac; stash_status=$(git stash-if-dirty); if ! git switch $(git default-branch); then git revert-stash-if-needed \"$stash_status\"; return 1; fi; if ! git pull; then git revert-stash-if-needed \"$stash_status\"; return 1; fi; if ! git switch -c \"$prefix$ticket\"; then git revert-stash-if-needed \"$stash_status\"; return 1; fi; git unstash-if-needed \"$stash_status\"; }; f"
16
+ default-branch = "!f() { \n if ! az extension list --query \"[?name=='azure-devops'].name\" -o tsv 2>/dev/null | grep -q 'azure-devops'; then \n echo \"Error: azure-devops extension is not installed. Install it with: az extension add --name azure-devops\" >&2; \n return 1; \n fi; \n if ! az account show >/dev/null 2>&1; then \n echo \"Error: Not logged in to Azure. Login with: az login --allow-no-subscriptions\" >&2; \n return 1; \n fi; \n repoName=$(basename -s .git \"$(git config --get remote.origin.url)\"); \n remoteBranch=$(az repos show --query defaultBranch -o tsv -r \"$repoName\"); \n localBranch=$(git rev-parse --abbrev-ref \"$remoteBranch\"); \n echo \"$localBranch\"; \n}; f"
@@ -1,48 +1,48 @@
1
- # CAP smart-core
2
- _out
3
- *.db
4
- *.sqlite*
5
- connection.properties
6
- default-*.json
7
- .cdsrc-private.json
8
- gen/
9
- node_modules/
10
- target/
11
-
12
- # Web IDE, App Studio
13
- .che/
14
- .gen/
15
-
16
- # MTA
17
- *_mta_build_tmp
18
- *.mtar
19
- mta_archives/
20
-
21
- # Other
22
- .DS_Store
23
- *.orig
24
- *.log
25
-
26
- *.iml
27
- *.flattened-pom.xml
28
-
29
- # @cap-js/cds-typer
30
- @cds-models
31
-
32
- # ignore all dist folders in UI5 apps
33
- **/dist/
34
-
35
- resources/
36
- # auto generated wildcard
37
- db/.env
38
-
39
- gen.zip
40
-
41
- # LLM
42
- /.github/
43
-
44
- # Generated test data
45
- test/data/
46
-
47
- # Generated SQLite service files
1
+ # CAP smart-core
2
+ _out
3
+ *.db
4
+ *.sqlite*
5
+ connection.properties
6
+ default-*.json
7
+ .cdsrc-private.json
8
+ gen/
9
+ node_modules/
10
+ target/
11
+
12
+ # Web IDE, App Studio
13
+ .che/
14
+ .gen/
15
+
16
+ # MTA
17
+ *_mta_build_tmp
18
+ *.mtar
19
+ mta_archives/
20
+
21
+ # Other
22
+ .DS_Store
23
+ *.orig
24
+ *.log
25
+
26
+ *.iml
27
+ *.flattened-pom.xml
28
+
29
+ # @cap-js/cds-typer
30
+ @cds-models
31
+
32
+ # ignore all dist folders in UI5 apps
33
+ **/dist/
34
+
35
+ resources/
36
+ # auto generated wildcard
37
+ db/.env
38
+
39
+ gen.zip
40
+
41
+ # LLM
42
+ /.github/
43
+
44
+ # Generated test data
45
+ test/data/
46
+
47
+ # Generated SQLite service files
48
48
  srv/sqlite/
@@ -1,4 +1,4 @@
1
- import capTsConfig from "cbs-tools/eslint/cap/ts/eslint.config.mjs"
1
+ import capTsConfig from "@cbs-consulting/tools/eslint/cap/ts/eslint.config.mjs"
2
2
  export default capTsConfig
3
3
 
4
4
  // TODO: Add ignore for CAP Linting for app directory
@@ -1,2 +1,2 @@
1
- import prettierConfig from "cbs-tools/prettier/prettier.config.mjs"
1
+ import prettierConfig from "@cbs-consulting/tools/prettier/prettier.config.mjs"
2
2
  export default prettierConfig
@@ -1,2 +1,2 @@
1
- import ui5TsConfig from "cbs-tools/eslint/ui5/ts/eslint.config.mjs"
2
- export default ui5TsConfig
1
+ import ui5TsConfig from "@cbs-consulting/tools/eslint/ui5/ts/eslint.config.mjs";
2
+ export default ui5TsConfig;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cbs-consulting/generator-btp",
3
- "version": "1.0.0",
3
+ "version": "1.0.2",
4
4
  "description": "Yeoman generator for bootstrapping CAP/UI5 projects with TypeScript, ESLint, and other essential configurations",
5
5
  "main": "generators/app/index.js",
6
6
  "scripts": {
@@ -36,7 +36,10 @@
36
36
  "yeoman-assert": "3.1.1",
37
37
  "yeoman-test": "7.4.0"
38
38
  },
39
+ "publishConfig": {
40
+ "access": "public"
41
+ },
39
42
  "engines": {
40
- "node": ">=18.0.0"
43
+ "node": ">=20.0.0"
41
44
  }
42
45
  }