@salesforce/ui-bundle-template-app-angular-template-b2x 12.5.2 → 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 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,22 @@
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
+
14
+ ## [12.5.3](https://github.com/salesforce-experience-platform-emu/webapps/compare/v12.5.2...v12.5.3) (2026-09-08)
15
+
16
+ **Note:** Version bump only for package @salesforce/ui-bundle-template-base-sfdx-project
17
+
18
+
19
+
20
+
21
+
6
22
  ## [12.5.2](https://github.com/salesforce-experience-platform-emu/webapps/compare/v12.5.1...v12.5.2) (2026-09-08)
7
23
 
8
24
  **Note:** Version bump only for package @salesforce/ui-bundle-template-base-sfdx-project
package/dist/README.md CHANGED
@@ -1,69 +1,135 @@
1
- # Salesforce DX Project: Next Steps
1
+ # Angular External App
2
2
 
3
- Now that you’ve created a Salesforce DX project, what’s next? Here are some documentation resources to get you started.
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
- ## Web app: install, build, and dev server
5
+ ## What's included
6
6
 
7
- From the **SFDX project root** (this directory), run:
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 dependencies in the UI Bundle, builds it, and starts the Vite dev server. Use this after cloning or extracting the project.
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
- ## Set up the org
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
- `npm run setup` configures a target org from this project in one command: it logs in
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
- npm run setup -- --target-org <alias> # or omit --target-org to use the default / pick
91
+ sf project deploy start --source-dir force-app/main/default/classes --target-org <alias>
25
92
  ```
26
93
 
27
- Setup does **not** start the dev server. Once the org is set up, use `dev:preview` to
28
- refresh the GraphQL types against the org and launch the Vite dev server on its own:
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
- npm run dev:preview
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
- ### Setup configuration (`scripts/org-setup.config.json`)
35
-
36
- `org-setup.config.json` controls which steps run and how. Every top-level section is
37
- optional; an absent section hides its step. It is validated against a shared schema
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
- When a `selfRegistration` section is present, setup runs a **license pre-check**
57
- before configuring self-registration: it derives the required `UserLicense` from the
58
- configured `selfRegProfile` (matched on the stable `LicenseDefinitionKey`, not the
59
- display name) and, if the org lacks that license or has no available seats, **warns
60
- and skips** self-registration instead of reporting success — so prospect login can't
61
- silently fail on an under-provisioned org. No separate license field is configured;
62
- the requirement always follows the profile the flow assigns.
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
- ## How Do You Plan to Deploy Your Changes?
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
- Do you want to deploy a set of changes, or create a self-contained application? Choose a [development model](https://developer.salesforce.com/tools/vscode/en/user-guide/development-models).
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.2",
32
- "@salesforce/platform-sdk": "^12.5.2",
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.2"
64
+ "@salesforce/graphiti": "^12.5.4"
65
65
  },
66
66
  "overrides": {
67
67
  "undici": "^7.28.0"
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@salesforce/ui-bundle-template-base-sfdx-project",
3
- "version": "12.5.2",
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.2",
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@salesforce/ui-bundle-template-base-sfdx-project",
3
- "version": "12.5.2",
3
+ "version": "12.5.4",
4
4
  "description": "Base SFDX project template",
5
5
  "license": "SEE LICENSE IN LICENSE.txt",
6
6
  "publishConfig": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@salesforce/ui-bundle-template-app-angular-template-b2x",
3
- "version": "12.5.2",
3
+ "version": "12.5.4",
4
4
  "description": "Salesforce Angular external app template",
5
5
  "license": "SEE LICENSE IN LICENSE.txt",
6
6
  "author": "",