@salesforce/ui-bundle-template-app-angular-template-b2x 12.5.3 → 12.5.4
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 +54 -0
- package/dist/CHANGELOG.md +8 -0
- package/dist/README.md +110 -44
- package/dist/force-app/main/default/uiBundles/angularextapp/README.md +1 -1
- package/dist/force-app/main/default/uiBundles/angularextapp/package.json +3 -3
- package/dist/package-lock.json +2 -2
- package/dist/package.json +1 -1
- package/package.json +1 -1
package/README.md
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# Angular External App
|
|
2
|
+
|
|
3
|
+
Angular external app template — authentication, object search across Salesforce records, and a site container for Experience Cloud. Also ships a language switcher provided as an example (`features/language-switcher/__examples__/`) for manual integration — it is not wired into the app by default.
|
|
4
|
+
|
|
5
|
+
## In this monorepo
|
|
6
|
+
|
|
7
|
+
This package is a **template app** in the ui-bundle monorepo. It is built by applying feature patches to the base Angular app; the output is written to `dist/`.
|
|
8
|
+
|
|
9
|
+
### Build
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
nx run @salesforce/ui-bundle-template-app-angular-template-b2x:build
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
Produces an SFDX project in `dist/` with the UI Bundle at `dist/force-app/main/default/uiBundles/angularextapp/`.
|
|
16
|
+
|
|
17
|
+
### Dev server
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
nx run @salesforce/ui-bundle-template-app-angular-template-b2x:dev
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Starts the Salesforce Angular dev server (`sf-angular-serve`) from the built output in `dist/`.
|
|
24
|
+
|
|
25
|
+
### Watch
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
nx run @salesforce/ui-bundle-template-app-angular-template-b2x:watch
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
Re-applies patches automatically when source files change.
|
|
32
|
+
|
|
33
|
+
### Test
|
|
34
|
+
|
|
35
|
+
This package has no dedicated test target. To run tests, build first, then run them from the built UI Bundle:
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
nx run @salesforce/ui-bundle-template-app-angular-template-b2x:build
|
|
39
|
+
cd dist/force-app/main/default/uiBundles/angularextapp && npm install && npm test
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
Runs the unit test suite via `ng test`.
|
|
43
|
+
|
|
44
|
+
### Clean
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
npm run clean
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
Removes the `dist/` directory.
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
For standalone run, deploy, and test instructions (e.g. after publishing or extracting `dist/`), see the [UI Bundle README](dist/force-app/main/default/uiBundles/angularextapp/README.md).
|
package/dist/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,14 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [12.5.4](https://github.com/salesforce-experience-platform-emu/webapps/compare/v12.5.3...v12.5.4) (2026-09-09)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @salesforce/ui-bundle-template-base-sfdx-project
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
6
14
|
## [12.5.3](https://github.com/salesforce-experience-platform-emu/webapps/compare/v12.5.2...v12.5.3) (2026-09-08)
|
|
7
15
|
|
|
8
16
|
**Note:** Version bump only for package @salesforce/ui-bundle-template-base-sfdx-project
|
package/dist/README.md
CHANGED
|
@@ -1,69 +1,135 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Angular External App
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
An external Angular starter template for customer-facing apps on the Salesforce platform. Includes authentication, object search across Salesforce records, and an Experience Cloud site container. A language switcher is also shipped as an example (`features/language-switcher/__examples__/`) for manual integration — it is not wired into the app by default. Built with Angular (standalone components), Spartan NG (`@spartan-ng/brain` primitives with helm UI components copied into `src/app/shared/`), Tailwind CSS, Lucide icons (`@ng-icons/lucide`), and TypeScript.
|
|
4
4
|
|
|
5
|
-
##
|
|
5
|
+
## What's included
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
```
|
|
8
|
+
force-app/main/default/
|
|
9
|
+
├── classes/ # Apex Auth Logic
|
|
10
|
+
│ ├── UIBundleAuthUtils.cls
|
|
11
|
+
│ ├── UIBundleChangePassword.cls
|
|
12
|
+
│ ├── UIBundleForgotPassword.cls
|
|
13
|
+
│ ├── UIBundleLogin.cls
|
|
14
|
+
│ └── UIBundleRegistration.cls
|
|
15
|
+
├── digitalExperienceConfigs/ # Site configuration
|
|
16
|
+
├── digitalExperiences/ # Site definition & branding
|
|
17
|
+
├── networks/ # Experience Cloud network setup
|
|
18
|
+
├── sites/ # Salesforce Site metadata
|
|
19
|
+
├── labels/ # Custom Labels (localization)
|
|
20
|
+
├── translations/ # Locale translations
|
|
21
|
+
├── permissionsets/ # Permission sets
|
|
22
|
+
└── uiBundles/
|
|
23
|
+
└── angularextapp/ # Angular UI Bundle (source, config, tests)
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Getting started
|
|
27
|
+
|
|
28
|
+
Install project dependencies and start the local dev server:
|
|
8
29
|
|
|
9
30
|
```bash
|
|
31
|
+
npm install
|
|
10
32
|
npm run sf-project-setup
|
|
11
33
|
```
|
|
12
34
|
|
|
13
|
-
This installs
|
|
35
|
+
This installs the UI Bundle dependencies, builds the app, and starts the Salesforce Angular dev server (`sf-angular-serve`). For manual build and test instructions, see the [UI Bundle README](force-app/main/default/uiBundles/angularextapp/README.md).
|
|
36
|
+
|
|
37
|
+
## Add features
|
|
38
|
+
|
|
39
|
+
Use the features CLI to install additional UI features into the UI Bundle.
|
|
40
|
+
|
|
41
|
+
List all available features:
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
npx @salesforce/ui-bundle-features-experimental list
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
Get details about a specific feature (description, dependencies, files, and integration examples):
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
npx @salesforce/ui-bundle-features-experimental describe <feature-name>
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
Install a feature:
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
npx @salesforce/ui-bundle-features-experimental install <feature-name> --ui-bundle-dir angularextapp
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
After installation, the CLI will list any `__example__` files that need manual integration. Read each example file to see the integration pattern, apply it to the target file, then delete the example file.
|
|
60
|
+
|
|
61
|
+
## Deploy
|
|
62
|
+
|
|
63
|
+
### Deploy everything (metadata + Experience Cloud site + UI Bundle)
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
cd force-app/main/default/uiBundles/angularextapp && npm install && npm run build && cd -
|
|
67
|
+
sf project deploy start --source-dir force-app --target-org <alias>
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
### Deploy the UI Bundle only
|
|
14
71
|
|
|
15
|
-
|
|
72
|
+
```bash
|
|
73
|
+
cd force-app/main/default/uiBundles/angularextapp && npm install && npm run build && cd -
|
|
74
|
+
sf project deploy start --source-dir force-app/main/default/uiBundles --target-org <alias>
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### Deploy Experience Cloud site only
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
sf project deploy start \
|
|
81
|
+
--source-dir force-app/main/default/digitalExperienceConfigs \
|
|
82
|
+
--source-dir force-app/main/default/digitalExperiences \
|
|
83
|
+
--source-dir force-app/main/default/networks \
|
|
84
|
+
--source-dir force-app/main/default/sites \
|
|
85
|
+
--target-org <alias>
|
|
86
|
+
```
|
|
16
87
|
|
|
17
|
-
|
|
18
|
-
(a required precondition — auto-skipped if the org is already connected), deploys
|
|
19
|
-
metadata, assigns permission sets, imports sample data, refreshes the GraphQL
|
|
20
|
-
schema/types, and builds the UI Bundle. When `--target-org` is omitted it uses your
|
|
21
|
-
default org or, in an interactive terminal, prompts you to pick one.
|
|
88
|
+
### Deploy authentication classes only
|
|
22
89
|
|
|
23
90
|
```bash
|
|
24
|
-
|
|
91
|
+
sf project deploy start --source-dir force-app/main/default/classes --target-org <alias>
|
|
25
92
|
```
|
|
26
93
|
|
|
27
|
-
|
|
28
|
-
|
|
94
|
+
Replace `<alias>` with your target org alias.
|
|
95
|
+
|
|
96
|
+
## Setup scripts
|
|
97
|
+
|
|
98
|
+
Two npm scripts at the project root streamline getting started and deployment.
|
|
99
|
+
|
|
100
|
+
**`npm run sf-project-setup`** — installs the UI Bundle dependencies, builds the app, and starts the dev server (see [Getting started](#getting-started)).
|
|
101
|
+
|
|
102
|
+
**`npm run setup`** — runs the full deployment setup in one command: org login (a required precondition, auto-skipped if already connected), UI Bundle build, deploy metadata, fetch GraphQL schema, and run codegen. It no longer starts the dev server — run `npm run dev:preview` for that:
|
|
103
|
+
|
|
104
|
+
> **Guest and Portal GraphQL API Access requires an org preference** Starting with org release 264, unauthenticated (guest) sessions can only call the GraphQL API — the endpoint this app's data layer uses — if the **Enable GraphQL API for Guest Users** org preference is enabled. It is off by default. This is a security-sensitive, org-wide setting, so enable it through **Setup > Security > API Access Controls > Enable GraphQL API for Guest Users**. Enable it before configuring a guest user profile for this site. Without it, guest GraphQL calls fail with `403 GUEST_INSUFFICIENT_ACCESS`. This applies to any b2b/b2c (external) app whose site allows guest browsing.
|
|
29
105
|
|
|
30
106
|
```bash
|
|
31
|
-
|
|
107
|
+
# Install project dependencies first (required before running setup)
|
|
108
|
+
npm install
|
|
109
|
+
|
|
110
|
+
npm run setup -- --target-org <alias>
|
|
32
111
|
```
|
|
33
112
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
at build/CI time and again at the start of every `npm run setup`, so a malformed
|
|
39
|
-
config fails fast rather than misbehaving.
|
|
40
|
-
|
|
41
|
-
```jsonc
|
|
42
|
-
{
|
|
43
|
-
"permsetAssignments": {
|
|
44
|
-
"assignments": {
|
|
45
|
-
"My_Access": { "assignee": "currentUser" }
|
|
46
|
-
}
|
|
47
|
-
},
|
|
48
|
-
"role": { "assignee": "currentUser", "roleName": "Admin" },
|
|
49
|
-
"selfRegistration": {
|
|
50
|
-
"selfRegProfile": "My Prospect Profile",
|
|
51
|
-
"accountName": "My Self-Registration"
|
|
52
|
-
}
|
|
53
|
-
}
|
|
113
|
+
Running without flags presents an interactive step picker. Pass `--yes` to skip it and run all steps immediately:
|
|
114
|
+
|
|
115
|
+
```bash
|
|
116
|
+
npm run setup -- --target-org <alias> --yes
|
|
54
117
|
```
|
|
55
118
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
119
|
+
Common options:
|
|
120
|
+
|
|
121
|
+
| Option | Description |
|
|
122
|
+
| ------------------------- | ----------------------------------------------- |
|
|
123
|
+
| `--target-org <alias>` | Target org. If omitted, uses default org/prompt |
|
|
124
|
+
| `--skip-deploy` | Do not deploy metadata |
|
|
125
|
+
| `--skip-graphql` | Skip GraphQL schema fetch and codegen |
|
|
126
|
+
| `--skip-ui-bundle-build` | Skip `npm install` and UI Bundle build |
|
|
127
|
+
| `--ui-bundle-name <name>` | UI Bundle folder name when multiple exist |
|
|
128
|
+
| `-y, --yes` | Skip interactive step picker; run all steps |
|
|
63
129
|
|
|
64
|
-
|
|
130
|
+
> Login is a required precondition (no `--skip-login`), and the dev server is no longer part of setup (no `--skip-dev`); both flags are accepted but ignored. To start the dev server after setup, run `npm run dev:preview`.
|
|
65
131
|
|
|
66
|
-
|
|
132
|
+
For all options: `npm run setup -- --help`.
|
|
67
133
|
|
|
68
134
|
## Configure Your Salesforce DX Project
|
|
69
135
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Base Angular App
|
|
2
2
|
|
|
3
|
-
Base Angular App is a template application that demonstrates how to build an Angular UI Bundle on the Salesforce platform with the Angular CLI, TypeScript, Tailwind, and the Salesforce UI Bundle SDK. It provides a minimal shell (home, 404), routing with standalone components and signals, so feature apps can extend it via the patches pipeline.
|
|
3
|
+
Base Angular App is a template application that demonstrates how to build an Angular UI Bundle on the Salesforce platform with the Angular CLI, TypeScript, Tailwind, Spartan NG (shadcn/ui for Angular), and the Salesforce UI Bundle SDK. It provides a minimal shell (home, 404), routing with standalone components and signals, so feature apps can extend it via the patches pipeline.
|
|
4
4
|
|
|
5
5
|
This UI Bundle lives inside an SFDX project. The project root is the directory that contains `force-app/` and `sfdx-project.json`. Run the commands in the sections below from the paths indicated.
|
|
6
6
|
|
|
@@ -28,8 +28,8 @@
|
|
|
28
28
|
"@angular/router": "^21.2.0",
|
|
29
29
|
"@ng-icons/core": "^32.2.0",
|
|
30
30
|
"@ng-icons/lucide": "^32.2.0",
|
|
31
|
-
"@salesforce/angular-plugin-ui-bundle": "^12.5.
|
|
32
|
-
"@salesforce/platform-sdk": "^12.5.
|
|
31
|
+
"@salesforce/angular-plugin-ui-bundle": "^12.5.4",
|
|
32
|
+
"@salesforce/platform-sdk": "^12.5.4",
|
|
33
33
|
"@spartan-ng/brain": "^1.3.1",
|
|
34
34
|
"class-variance-authority": "^0.7.1",
|
|
35
35
|
"clsx": "^2.1.1",
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
"typescript": "~5.9.2",
|
|
62
62
|
"typescript-eslint": "^8.0.0",
|
|
63
63
|
"vitest": "^4.1.0",
|
|
64
|
-
"@salesforce/graphiti": "^12.5.
|
|
64
|
+
"@salesforce/graphiti": "^12.5.4"
|
|
65
65
|
},
|
|
66
66
|
"overrides": {
|
|
67
67
|
"undici": "^7.28.0"
|
package/dist/package-lock.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@salesforce/ui-bundle-template-base-sfdx-project",
|
|
3
|
-
"version": "12.5.
|
|
3
|
+
"version": "12.5.4",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "@salesforce/ui-bundle-template-base-sfdx-project",
|
|
9
|
-
"version": "12.5.
|
|
9
|
+
"version": "12.5.4",
|
|
10
10
|
"license": "SEE LICENSE IN LICENSE.txt",
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"fast-xml-parser": "^5.9.3",
|
package/dist/package.json
CHANGED