@salesforce/webapp-template-app-react-template-vibe-experimental 1.58.1 → 1.59.1
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/dist/.a4drules/graphql.md +8 -8
- package/dist/.a4drules/react.md +5 -5
- package/dist/.a4drules/typescript.md +2 -2
- package/dist/CHANGELOG.md +27 -0
- package/dist/force-app/main/default/webapplications/appreacttemplatevibe/CHANGELOG.md +10 -0
- package/dist/force-app/main/default/webapplications/appreacttemplatevibe/package-lock.json +48 -61
- package/dist/force-app/main/default/webapplications/appreacttemplatevibe/package.json +2 -2
- package/dist/force-app/main/default/webapplications/appreacttemplatevibe/src/HomePage.tsx +1 -1
- package/dist/force-app/main/default/webapplications/appreacttemplatevibe/src/auth/pages/ChangePassword.tsx +1 -1
- package/dist/force-app/main/default/webapplications/appreacttemplatevibe/src/auth/pages/ForgotPassword.tsx +1 -1
- package/dist/force-app/main/default/webapplications/appreacttemplatevibe/src/auth/pages/Login.tsx +1 -1
- package/dist/force-app/main/default/webapplications/appreacttemplatevibe/src/auth/pages/Profile.tsx +1 -1
- package/dist/force-app/main/default/webapplications/appreacttemplatevibe/src/auth/pages/Register.tsx +1 -1
- package/dist/force-app/main/default/webapplications/appreacttemplatevibe/src/auth/pages/ResetPassword.tsx +1 -1
- package/dist/package.json +1 -1
- package/package.json +2 -2
- package/dist/force-app/main/default/webapplications/appreacttemplatevibe/src/api/graphql-operations-types.ts +0 -116
- package/dist/force-app/main/default/webapplications/appreacttemplatevibe/src/api/utils/accounts.ts +0 -41
- package/dist/force-app/main/default/webapplications/appreacttemplatevibe/src/api/utils/query/highRevenueAccountsQuery.graphql +0 -29
|
@@ -29,10 +29,10 @@ For a GraphQL operation named `GetHighRevenueAccounts`:
|
|
|
29
29
|
## Core Types & Function Signatures
|
|
30
30
|
|
|
31
31
|
### getDataSDK Function
|
|
32
|
-
Available from `@salesforce/
|
|
32
|
+
Available from `@salesforce/sdk-data`:
|
|
33
33
|
|
|
34
34
|
```typescript
|
|
35
|
-
import { getDataSDK } from '@salesforce/
|
|
35
|
+
import { getDataSDK } from '@salesforce/sdk-data';
|
|
36
36
|
|
|
37
37
|
const data = await getDataSDK();
|
|
38
38
|
const response = await data.graphql?.<ResponseType, VariablesType>(query, variables);
|
|
@@ -89,10 +89,10 @@ const result = response?.data;
|
|
|
89
89
|
For mutation-specific partial responses, see `docs/generate-mutation-query.md` which covers `PARTIAL` and `FAILED` status handling workflows.
|
|
90
90
|
|
|
91
91
|
### gql Template Tag
|
|
92
|
-
Also available from `@salesforce/
|
|
92
|
+
Also available from `@salesforce/sdk-data` for inline query definitions:
|
|
93
93
|
|
|
94
94
|
```typescript
|
|
95
|
-
import { gql } from '@salesforce/
|
|
95
|
+
import { gql } from '@salesforce/sdk-data';
|
|
96
96
|
|
|
97
97
|
const MY_QUERY = gql`
|
|
98
98
|
query MyQuery {
|
|
@@ -109,7 +109,7 @@ The `gql` tag is a template literal that allows defining GraphQL queries inline
|
|
|
109
109
|
Extract the node type from a connection (edges/node pattern):
|
|
110
110
|
|
|
111
111
|
```typescript
|
|
112
|
-
import { type NodeOfConnection } from '@salesforce/
|
|
112
|
+
import { type NodeOfConnection } from '@salesforce/sdk-data';
|
|
113
113
|
|
|
114
114
|
// Extract Account node type from the query response
|
|
115
115
|
type AccountNode = NodeOfConnection<
|
|
@@ -180,7 +180,7 @@ This generates types in `graphql-operations-types.ts`:
|
|
|
180
180
|
|
|
181
181
|
#### Step 3: Import and Use
|
|
182
182
|
```typescript
|
|
183
|
-
import { getDataSDK, type NodeOfConnection } from '@salesforce/
|
|
183
|
+
import { getDataSDK, type NodeOfConnection } from '@salesforce/sdk-data';
|
|
184
184
|
import MY_QUERY from './query/myQuery.graphql?raw';
|
|
185
185
|
import type {
|
|
186
186
|
GetMyDataQuery,
|
|
@@ -232,7 +232,7 @@ export async function getMyData(
|
|
|
232
232
|
For simpler queries without variables or when colocation is preferred:
|
|
233
233
|
|
|
234
234
|
```typescript
|
|
235
|
-
import { getDataSDK, gql } from '@salesforce/
|
|
235
|
+
import { getDataSDK, gql } from '@salesforce/sdk-data';
|
|
236
236
|
import { type CurrentUserQuery } from '../graphql-operations-types';
|
|
237
237
|
|
|
238
238
|
const CURRENT_USER_QUERY = gql`
|
|
@@ -359,7 +359,7 @@ fragment ContactFields on Account {
|
|
|
359
359
|
|
|
360
360
|
### Usage
|
|
361
361
|
```typescript
|
|
362
|
-
import { getDataSDK } from '@salesforce/
|
|
362
|
+
import { getDataSDK } from '@salesforce/sdk-data';
|
|
363
363
|
import QUERY from './query/getAccountDetails.graphql?raw';
|
|
364
364
|
import type {
|
|
365
365
|
GetAccountDetailsQuery,
|
package/dist/.a4drules/react.md
CHANGED
|
@@ -123,7 +123,7 @@ Before implementing data access, **MUST** verify `orchestrate_lds_data_requireme
|
|
|
123
123
|
|
|
124
124
|
## Data Access Rules (CRITICAL)
|
|
125
125
|
|
|
126
|
-
- MANDATORY: Use the DataSDK (`getDataSDK()` from `@salesforce/
|
|
126
|
+
- MANDATORY: Use the DataSDK (`getDataSDK()` from `@salesforce/sdk-data`) for all API calls from React. The SDK handles authentication and CSRF token management. Do NOT use `axios` or raw `fetch` for Salesforce API calls.
|
|
127
127
|
|
|
128
128
|
### Data Access Workflow (MANDATORY)
|
|
129
129
|
|
|
@@ -161,7 +161,7 @@ The following code examples serve as reference patterns for React applications.
|
|
|
161
161
|
GraphQL query example:
|
|
162
162
|
|
|
163
163
|
```typescript
|
|
164
|
-
import { getDataSDK, gql } from '@salesforce/
|
|
164
|
+
import { getDataSDK, gql } from '@salesforce/sdk-data';
|
|
165
165
|
|
|
166
166
|
const GET_ACCOUNT = gql`
|
|
167
167
|
query GetAccount($id: ID!) {
|
|
@@ -195,7 +195,7 @@ const account = response?.data;
|
|
|
195
195
|
GraphQL mutation example:
|
|
196
196
|
|
|
197
197
|
```typescript
|
|
198
|
-
import { getDataSDK, gql } from '@salesforce/
|
|
198
|
+
import { getDataSDK, gql } from '@salesforce/sdk-data';
|
|
199
199
|
|
|
200
200
|
const UPDATE_ACCOUNT = gql`
|
|
201
201
|
mutation UpdateAccount($id: ID!, $name: String!) {
|
|
@@ -231,7 +231,7 @@ if (result?.errors?.length) {
|
|
|
231
231
|
UI API example (using the SDK's fetch):
|
|
232
232
|
|
|
233
233
|
```typescript
|
|
234
|
-
import { getDataSDK } from '@salesforce/
|
|
234
|
+
import { getDataSDK } from '@salesforce/sdk-data';
|
|
235
235
|
|
|
236
236
|
async function fetchRecord(recordId: string) {
|
|
237
237
|
const data = await getDataSDK();
|
|
@@ -257,7 +257,7 @@ Einstein LLM Gateway provides AI and generative capabilities for your React appl
|
|
|
257
257
|
### Einstein LLM Gateway Pattern
|
|
258
258
|
|
|
259
259
|
```typescript
|
|
260
|
-
import { getDataSDK } from '@salesforce/
|
|
260
|
+
import { getDataSDK } from '@salesforce/sdk-data';
|
|
261
261
|
|
|
262
262
|
async function callEinsteinGenerations({ prompt, model = 'gpt-4', signal }: {
|
|
263
263
|
prompt: string;
|
|
@@ -136,10 +136,10 @@ interface Account extends SalesforceRecord {
|
|
|
136
136
|
```
|
|
137
137
|
|
|
138
138
|
### GraphQL via DataSDK
|
|
139
|
-
Use `getDataSDK()` from `@salesforce/
|
|
139
|
+
Use `getDataSDK()` from `@salesforce/sdk-data` for all GraphQL operations. The SDK handles authentication and CSRF token management:
|
|
140
140
|
|
|
141
141
|
```typescript
|
|
142
|
-
import { getDataSDK } from '@salesforce/
|
|
142
|
+
import { getDataSDK } from '@salesforce/sdk-data';
|
|
143
143
|
|
|
144
144
|
const data = await getDataSDK();
|
|
145
145
|
const response = await data.graphql?.<GetAccountsQuery>(QUERY, variables);
|
package/dist/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,33 @@
|
|
|
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
|
+
## [1.59.1](https://github.com/salesforce-experience-platform-emu/webapps/compare/v1.59.0...v1.59.1) (2026-02-27)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @salesforce/webapp-template-base-sfdx-project-experimental
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
# [1.59.0](https://github.com/salesforce-experience-platform-emu/webapps/compare/v1.58.2...v1.59.0) (2026-02-27)
|
|
15
|
+
|
|
16
|
+
**Note:** Version bump only for package @salesforce/webapp-template-base-sfdx-project-experimental
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
## [1.58.2](https://github.com/salesforce-experience-platform-emu/webapps/compare/v1.58.1...v1.58.2) (2026-02-26)
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
### Bug Fixes
|
|
26
|
+
|
|
27
|
+
* moving all sdk usages from api to sdk-data @W-21338965 ([#173](https://github.com/salesforce-experience-platform-emu/webapps/issues/173)) ([23c9479](https://github.com/salesforce-experience-platform-emu/webapps/commit/23c94794e0c72e30d85313f908b52274e4a59979))
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
|
|
6
33
|
## [1.58.1](https://github.com/salesforce-experience-platform-emu/webapps/compare/v1.58.0...v1.58.1) (2026-02-26)
|
|
7
34
|
|
|
8
35
|
**Note:** Version bump only for package @salesforce/webapp-template-base-sfdx-project-experimental
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# Change Log
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
|
+
|
|
6
|
+
# [1.59.0](https://github.com/salesforce-experience-platform-emu/webapps/compare/v1.58.2...v1.59.0) (2026-02-27)
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
- auto bump base react app versions and fix issue with base webapplication json ([#175](https://github.com/salesforce-experience-platform-emu/webapps/issues/175)) ([048b5a8](https://github.com/salesforce-experience-platform-emu/webapps/commit/048b5a8449c899fc923aeebc3c76bc5bf1c5e0d4))
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "base-react-app",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.59.0",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "base-react-app",
|
|
9
|
-
"version": "1.
|
|
9
|
+
"version": "1.59.0",
|
|
10
10
|
"dependencies": {
|
|
11
|
-
"@salesforce/agentforce-conversation-client": "^1.58.
|
|
11
|
+
"@salesforce/agentforce-conversation-client": "^1.58.2",
|
|
12
12
|
"@salesforce/sdk-data": "^1.11.2",
|
|
13
13
|
"@salesforce/webapp-experimental": "*",
|
|
14
14
|
"@tailwindcss/vite": "^4.1.17",
|
|
@@ -6027,9 +6027,9 @@
|
|
|
6027
6027
|
]
|
|
6028
6028
|
},
|
|
6029
6029
|
"node_modules/@salesforce/agentforce-conversation-client": {
|
|
6030
|
-
"version": "1.58.
|
|
6031
|
-
"resolved": "https://registry.npmjs.org/@salesforce/agentforce-conversation-client/-/agentforce-conversation-client-1.58.
|
|
6032
|
-
"integrity": "sha512-
|
|
6030
|
+
"version": "1.58.2",
|
|
6031
|
+
"resolved": "https://registry.npmjs.org/@salesforce/agentforce-conversation-client/-/agentforce-conversation-client-1.58.2.tgz",
|
|
6032
|
+
"integrity": "sha512-NoxG3e0kTYJytcm5X7LOXNqXN9+0aUAeeG0OhJwRmJg5tKggN2UyBrmrW9w68h58vDouLq2a8SL3teChvgLdXQ==",
|
|
6033
6033
|
"license": "SEE LICENSE IN LICENSE.txt",
|
|
6034
6034
|
"dependencies": {
|
|
6035
6035
|
"@lightning-out/application": "2.1.1-rc.2"
|
|
@@ -6090,19 +6090,19 @@
|
|
|
6090
6090
|
}
|
|
6091
6091
|
},
|
|
6092
6092
|
"node_modules/@salesforce/sdk-core": {
|
|
6093
|
-
"version": "1.58.
|
|
6094
|
-
"resolved": "https://registry.npmjs.org/@salesforce/sdk-core/-/sdk-core-1.58.
|
|
6095
|
-
"integrity": "sha512-
|
|
6093
|
+
"version": "1.58.2",
|
|
6094
|
+
"resolved": "https://registry.npmjs.org/@salesforce/sdk-core/-/sdk-core-1.58.2.tgz",
|
|
6095
|
+
"integrity": "sha512-vuFmmaWVeIzyrDEBMszbCempzJHCnoZFrljc5ZwFuMNl2j17WHa9aAhIAik46kL7Tj7etdzW9mY5UV6Q4yE2jg==",
|
|
6096
6096
|
"license": "SEE LICENSE IN LICENSE.txt"
|
|
6097
6097
|
},
|
|
6098
6098
|
"node_modules/@salesforce/sdk-data": {
|
|
6099
|
-
"version": "1.58.
|
|
6100
|
-
"resolved": "https://registry.npmjs.org/@salesforce/sdk-data/-/sdk-data-1.58.
|
|
6101
|
-
"integrity": "sha512
|
|
6099
|
+
"version": "1.58.2",
|
|
6100
|
+
"resolved": "https://registry.npmjs.org/@salesforce/sdk-data/-/sdk-data-1.58.2.tgz",
|
|
6101
|
+
"integrity": "sha512-xShV/0u/zt2oVMj4fsQURm/GrnjF18VclGf1sOtVhcxuTxr+jlBWKQH5kYB9BiBSsaBWRqfD+G/ixV4KbedVUA==",
|
|
6102
6102
|
"license": "SEE LICENSE IN LICENSE.txt",
|
|
6103
6103
|
"dependencies": {
|
|
6104
6104
|
"@conduit-client/salesforce-lightning-service-worker": "^3.7.0",
|
|
6105
|
-
"@salesforce/sdk-core": "^1.58.
|
|
6105
|
+
"@salesforce/sdk-core": "^1.58.2"
|
|
6106
6106
|
}
|
|
6107
6107
|
},
|
|
6108
6108
|
"node_modules/@salesforce/ts-types": {
|
|
@@ -6115,15 +6115,15 @@
|
|
|
6115
6115
|
}
|
|
6116
6116
|
},
|
|
6117
6117
|
"node_modules/@salesforce/vite-plugin-webapp-experimental": {
|
|
6118
|
-
"version": "1.58.
|
|
6119
|
-
"resolved": "https://registry.npmjs.org/@salesforce/vite-plugin-webapp-experimental/-/vite-plugin-webapp-experimental-1.58.
|
|
6120
|
-
"integrity": "sha512-
|
|
6118
|
+
"version": "1.58.2",
|
|
6119
|
+
"resolved": "https://registry.npmjs.org/@salesforce/vite-plugin-webapp-experimental/-/vite-plugin-webapp-experimental-1.58.2.tgz",
|
|
6120
|
+
"integrity": "sha512-LJ2Zng5ecp6QuOoTD/1VsYM+3kyXiuoGMLJ0bzlnkGemobdqNz+QAVFiaStgYI/uHkW1lKQJzR3jCfR8EHtfKA==",
|
|
6121
6121
|
"dev": true,
|
|
6122
6122
|
"license": "SEE LICENSE IN LICENSE.txt",
|
|
6123
6123
|
"dependencies": {
|
|
6124
6124
|
"@babel/core": "^7.28.4",
|
|
6125
6125
|
"@babel/helper-plugin-utils": "^7.28.3",
|
|
6126
|
-
"@salesforce/webapp-experimental": "^1.58.
|
|
6126
|
+
"@salesforce/webapp-experimental": "^1.58.2"
|
|
6127
6127
|
},
|
|
6128
6128
|
"engines": {
|
|
6129
6129
|
"node": ">=20.0.0"
|
|
@@ -6133,13 +6133,13 @@
|
|
|
6133
6133
|
}
|
|
6134
6134
|
},
|
|
6135
6135
|
"node_modules/@salesforce/webapp-experimental": {
|
|
6136
|
-
"version": "1.58.
|
|
6137
|
-
"resolved": "https://registry.npmjs.org/@salesforce/webapp-experimental/-/webapp-experimental-1.58.
|
|
6138
|
-
"integrity": "sha512-
|
|
6136
|
+
"version": "1.58.2",
|
|
6137
|
+
"resolved": "https://registry.npmjs.org/@salesforce/webapp-experimental/-/webapp-experimental-1.58.2.tgz",
|
|
6138
|
+
"integrity": "sha512-fodHDcITqPo+4cPH8oG9I/sJMrhDOpaH8WmnctXBEeRyZNHOKC/4y5z+xfu+P3/ujAtSQZEPm3K0wH9Xy0MC8A==",
|
|
6139
6139
|
"license": "SEE LICENSE IN LICENSE.txt",
|
|
6140
6140
|
"dependencies": {
|
|
6141
6141
|
"@salesforce/core": "^8.23.4",
|
|
6142
|
-
"@salesforce/sdk-data": "^1.58.
|
|
6142
|
+
"@salesforce/sdk-data": "^1.58.2",
|
|
6143
6143
|
"axios": "^1.7.7",
|
|
6144
6144
|
"micromatch": "^4.0.8",
|
|
6145
6145
|
"path-to-regexp": "^8.3.0"
|
|
@@ -6663,9 +6663,9 @@
|
|
|
6663
6663
|
}
|
|
6664
6664
|
},
|
|
6665
6665
|
"node_modules/@ts-morph/common/node_modules/brace-expansion": {
|
|
6666
|
-
"version": "5.0.
|
|
6667
|
-
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.
|
|
6668
|
-
"integrity": "sha512-
|
|
6666
|
+
"version": "5.0.4",
|
|
6667
|
+
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.4.tgz",
|
|
6668
|
+
"integrity": "sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg==",
|
|
6669
6669
|
"license": "MIT",
|
|
6670
6670
|
"dependencies": {
|
|
6671
6671
|
"balanced-match": "^4.0.2"
|
|
@@ -6774,9 +6774,9 @@
|
|
|
6774
6774
|
"license": "MIT"
|
|
6775
6775
|
},
|
|
6776
6776
|
"node_modules/@types/node": {
|
|
6777
|
-
"version": "24.10.
|
|
6778
|
-
"resolved": "https://registry.npmjs.org/@types/node/-/node-24.10.
|
|
6779
|
-
"integrity": "sha512-
|
|
6777
|
+
"version": "24.10.15",
|
|
6778
|
+
"resolved": "https://registry.npmjs.org/@types/node/-/node-24.10.15.tgz",
|
|
6779
|
+
"integrity": "sha512-BgjLoRuSr0MTI5wA6gMw9Xy0sFudAaUuvrnjgGx9wZ522fYYLA5SYJ+1Y30vTcJEG+DRCyDHx/gzQVfofYzSdg==",
|
|
6780
6780
|
"devOptional": true,
|
|
6781
6781
|
"license": "MIT",
|
|
6782
6782
|
"dependencies": {
|
|
@@ -7024,9 +7024,9 @@
|
|
|
7024
7024
|
}
|
|
7025
7025
|
},
|
|
7026
7026
|
"node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": {
|
|
7027
|
-
"version": "5.0.
|
|
7028
|
-
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.
|
|
7029
|
-
"integrity": "sha512-
|
|
7027
|
+
"version": "5.0.4",
|
|
7028
|
+
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.4.tgz",
|
|
7029
|
+
"integrity": "sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg==",
|
|
7030
7030
|
"dev": true,
|
|
7031
7031
|
"license": "MIT",
|
|
7032
7032
|
"dependencies": {
|
|
@@ -7850,9 +7850,9 @@
|
|
|
7850
7850
|
}
|
|
7851
7851
|
},
|
|
7852
7852
|
"node_modules/axios": {
|
|
7853
|
-
"version": "1.13.
|
|
7854
|
-
"resolved": "https://registry.npmjs.org/axios/-/axios-1.13.
|
|
7855
|
-
"integrity": "sha512-
|
|
7853
|
+
"version": "1.13.6",
|
|
7854
|
+
"resolved": "https://registry.npmjs.org/axios/-/axios-1.13.6.tgz",
|
|
7855
|
+
"integrity": "sha512-ChTCHMouEe2kn713WHbQGcuYrr6fXTBiu460OTwWrWob16g1bXn4vtz07Ope7ewMozJAnEquLk5lWQWtBig9DQ==",
|
|
7856
7856
|
"license": "MIT",
|
|
7857
7857
|
"dependencies": {
|
|
7858
7858
|
"follow-redirects": "^1.15.11",
|
|
@@ -11176,27 +11176,14 @@
|
|
|
11176
11176
|
"graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0"
|
|
11177
11177
|
}
|
|
11178
11178
|
},
|
|
11179
|
-
"node_modules/graphql-config/node_modules/balanced-match": {
|
|
11180
|
-
"version": "4.0.4",
|
|
11181
|
-
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz",
|
|
11182
|
-
"integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==",
|
|
11183
|
-
"dev": true,
|
|
11184
|
-
"license": "MIT",
|
|
11185
|
-
"engines": {
|
|
11186
|
-
"node": "18 || 20 || >=22"
|
|
11187
|
-
}
|
|
11188
|
-
},
|
|
11189
11179
|
"node_modules/graphql-config/node_modules/brace-expansion": {
|
|
11190
|
-
"version": "
|
|
11191
|
-
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-
|
|
11192
|
-
"integrity": "sha512-
|
|
11180
|
+
"version": "2.0.2",
|
|
11181
|
+
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
|
|
11182
|
+
"integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
|
|
11193
11183
|
"dev": true,
|
|
11194
11184
|
"license": "MIT",
|
|
11195
11185
|
"dependencies": {
|
|
11196
|
-
"balanced-match": "^
|
|
11197
|
-
},
|
|
11198
|
-
"engines": {
|
|
11199
|
-
"node": "18 || 20 || >=22"
|
|
11186
|
+
"balanced-match": "^1.0.0"
|
|
11200
11187
|
}
|
|
11201
11188
|
},
|
|
11202
11189
|
"node_modules/graphql-config/node_modules/cosmiconfig": {
|
|
@@ -11227,13 +11214,13 @@
|
|
|
11227
11214
|
}
|
|
11228
11215
|
},
|
|
11229
11216
|
"node_modules/graphql-config/node_modules/minimatch": {
|
|
11230
|
-
"version": "9.0.
|
|
11231
|
-
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.
|
|
11232
|
-
"integrity": "sha512-
|
|
11217
|
+
"version": "9.0.9",
|
|
11218
|
+
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz",
|
|
11219
|
+
"integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==",
|
|
11233
11220
|
"dev": true,
|
|
11234
11221
|
"license": "ISC",
|
|
11235
11222
|
"dependencies": {
|
|
11236
|
-
"brace-expansion": "^
|
|
11223
|
+
"brace-expansion": "^2.0.2"
|
|
11237
11224
|
},
|
|
11238
11225
|
"engines": {
|
|
11239
11226
|
"node": ">=16 || 14 >=14.17"
|
|
@@ -11473,9 +11460,9 @@
|
|
|
11473
11460
|
}
|
|
11474
11461
|
},
|
|
11475
11462
|
"node_modules/hono": {
|
|
11476
|
-
"version": "4.12.
|
|
11477
|
-
"resolved": "https://registry.npmjs.org/hono/-/hono-4.12.
|
|
11478
|
-
"integrity": "sha512-
|
|
11463
|
+
"version": "4.12.3",
|
|
11464
|
+
"resolved": "https://registry.npmjs.org/hono/-/hono-4.12.3.tgz",
|
|
11465
|
+
"integrity": "sha512-SFsVSjp8sj5UumXOOFlkZOG6XS9SJDKw0TbwFeV+AJ8xlST8kxK5Z/5EYa111UY8732lK2S/xB653ceuaoGwpg==",
|
|
11479
11466
|
"license": "MIT",
|
|
11480
11467
|
"engines": {
|
|
11481
11468
|
"node": ">=16.9.0"
|
|
@@ -16674,12 +16661,12 @@
|
|
|
16674
16661
|
}
|
|
16675
16662
|
},
|
|
16676
16663
|
"node_modules/strip-ansi": {
|
|
16677
|
-
"version": "7.
|
|
16678
|
-
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.
|
|
16679
|
-
"integrity": "sha512-
|
|
16664
|
+
"version": "7.2.0",
|
|
16665
|
+
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz",
|
|
16666
|
+
"integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==",
|
|
16680
16667
|
"license": "MIT",
|
|
16681
16668
|
"dependencies": {
|
|
16682
|
-
"ansi-regex": "^6.
|
|
16669
|
+
"ansi-regex": "^6.2.2"
|
|
16683
16670
|
},
|
|
16684
16671
|
"engines": {
|
|
16685
16672
|
"node": ">=12"
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "base-react-app",
|
|
3
3
|
"private": true,
|
|
4
|
-
"version": "1.
|
|
4
|
+
"version": "1.59.0",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"scripts": {
|
|
7
7
|
"dev": "vite",
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"graphql:schema": "node scripts/get-graphql-schema.mjs"
|
|
16
16
|
},
|
|
17
17
|
"dependencies": {
|
|
18
|
-
"@salesforce/agentforce-conversation-client": "^1.58.
|
|
18
|
+
"@salesforce/agentforce-conversation-client": "^1.58.2",
|
|
19
19
|
"@salesforce/sdk-data": "^1.11.2",
|
|
20
20
|
"@salesforce/webapp-experimental": "*",
|
|
21
21
|
"@tailwindcss/vite": "^4.1.17",
|
|
@@ -190,7 +190,7 @@ Be sure to also change the footer background. Remember to change every component
|
|
|
190
190
|
|
|
191
191
|
6. Limit the query to the first 20 accounts for performance.
|
|
192
192
|
|
|
193
|
-
7. Use getDataSDK() from @salesforce/
|
|
193
|
+
7. Use getDataSDK() from @salesforce/sdk-data, then call data.graphql?.() for the GraphQL query."
|
|
194
194
|
/>
|
|
195
195
|
</PromptHighlight>
|
|
196
196
|
|
|
@@ -4,7 +4,7 @@ import { z } from "zod";
|
|
|
4
4
|
import { CenteredPageLayout } from "../layout/centered-page-layout";
|
|
5
5
|
import { AuthForm } from "../forms/auth-form";
|
|
6
6
|
import { useAppForm } from "../hooks/form";
|
|
7
|
-
import { getDataSDK } from "@salesforce/
|
|
7
|
+
import { getDataSDK } from "@salesforce/sdk-data";
|
|
8
8
|
import { ROUTES, AUTH_PLACEHOLDERS } from "../authenticationConfig";
|
|
9
9
|
import { newPasswordSchema } from "../authHelpers";
|
|
10
10
|
import { handleApiResponse, getErrorMessage } from "../utils/helpers";
|
|
@@ -3,7 +3,7 @@ import { z } from "zod";
|
|
|
3
3
|
import { CenteredPageLayout } from "../layout/centered-page-layout";
|
|
4
4
|
import { AuthForm } from "../forms/auth-form";
|
|
5
5
|
import { useAppForm } from "../hooks/form";
|
|
6
|
-
import { getDataSDK } from "@salesforce/
|
|
6
|
+
import { getDataSDK } from "@salesforce/sdk-data";
|
|
7
7
|
import { ROUTES, AUTH_PLACEHOLDERS } from "../authenticationConfig";
|
|
8
8
|
import { handleApiResponse, getErrorMessage } from "../utils/helpers";
|
|
9
9
|
|
package/dist/force-app/main/default/webapplications/appreacttemplatevibe/src/auth/pages/Login.tsx
CHANGED
|
@@ -4,7 +4,7 @@ import { z } from "zod";
|
|
|
4
4
|
import { CenteredPageLayout } from "../layout/centered-page-layout";
|
|
5
5
|
import { AuthForm } from "../forms/auth-form";
|
|
6
6
|
import { useAppForm } from "../hooks/form";
|
|
7
|
-
import { getDataSDK } from "@salesforce/
|
|
7
|
+
import { getDataSDK } from "@salesforce/sdk-data";
|
|
8
8
|
import { ROUTES } from "../authenticationConfig";
|
|
9
9
|
import { emailSchema, getStartUrl, type AuthResponse } from "../authHelpers";
|
|
10
10
|
import { handleApiResponse, getErrorMessage } from "../utils/helpers";
|
package/dist/force-app/main/default/webapplications/appreacttemplatevibe/src/auth/pages/Profile.tsx
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { useState, useEffect } from "react";
|
|
2
2
|
import { z } from "zod";
|
|
3
3
|
|
|
4
|
-
import { getDataSDK } from "@salesforce/
|
|
4
|
+
import { getDataSDK } from "@salesforce/sdk-data";
|
|
5
5
|
|
|
6
6
|
import { CenteredPageLayout } from "../layout/centered-page-layout";
|
|
7
7
|
import { CardSkeleton } from "../layout/card-skeleton";
|
package/dist/force-app/main/default/webapplications/appreacttemplatevibe/src/auth/pages/Register.tsx
CHANGED
|
@@ -4,7 +4,7 @@ import { z } from "zod";
|
|
|
4
4
|
import { CenteredPageLayout } from "../layout/centered-page-layout";
|
|
5
5
|
import { AuthForm } from "../forms/auth-form";
|
|
6
6
|
import { useAppForm } from "../hooks/form";
|
|
7
|
-
import { getDataSDK } from "@salesforce/
|
|
7
|
+
import { getDataSDK } from "@salesforce/sdk-data";
|
|
8
8
|
import { ROUTES, AUTH_PLACEHOLDERS } from "../authenticationConfig";
|
|
9
9
|
import { emailSchema, passwordSchema, getStartUrl, type AuthResponse } from "../authHelpers";
|
|
10
10
|
import { handleApiResponse, getErrorMessage } from "../utils/helpers";
|
|
@@ -5,7 +5,7 @@ import { CenteredPageLayout } from "../layout/centered-page-layout";
|
|
|
5
5
|
import { AuthForm } from "../forms/auth-form";
|
|
6
6
|
import { StatusAlert } from "../alerts/status-alert";
|
|
7
7
|
import { useAppForm } from "../hooks/form";
|
|
8
|
-
import { getDataSDK } from "@salesforce/
|
|
8
|
+
import { getDataSDK } from "@salesforce/sdk-data";
|
|
9
9
|
import { ROUTES, AUTH_PLACEHOLDERS } from "../authenticationConfig";
|
|
10
10
|
import { newPasswordSchema } from "../authHelpers";
|
|
11
11
|
import { handleApiResponse, getErrorMessage } from "../utils/helpers";
|
package/dist/package.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@salesforce/webapp-template-app-react-template-vibe-experimental",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.59.1",
|
|
4
4
|
"description": "Vibe coding starter app template",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE.txt",
|
|
6
6
|
"author": "",
|
|
@@ -43,5 +43,5 @@
|
|
|
43
43
|
}
|
|
44
44
|
}
|
|
45
45
|
},
|
|
46
|
-
"gitHead": "
|
|
46
|
+
"gitHead": "740f822d2897cd524c245f3c9f94d6e4dae78d93"
|
|
47
47
|
}
|
|
@@ -1,116 +0,0 @@
|
|
|
1
|
-
export type Maybe<T> = T | null;
|
|
2
|
-
export type InputMaybe<T> = Maybe<T>;
|
|
3
|
-
export type Exact<T extends { [key: string]: unknown }> = {
|
|
4
|
-
[K in keyof T]: T[K];
|
|
5
|
-
};
|
|
6
|
-
export type MakeOptional<T, K extends keyof T> = Omit<T, K> & {
|
|
7
|
-
[SubKey in K]?: Maybe<T[SubKey]>;
|
|
8
|
-
};
|
|
9
|
-
export type MakeMaybe<T, K extends keyof T> = Omit<T, K> & {
|
|
10
|
-
[SubKey in K]: Maybe<T[SubKey]>;
|
|
11
|
-
};
|
|
12
|
-
export type MakeEmpty<
|
|
13
|
-
T extends { [key: string]: unknown },
|
|
14
|
-
K extends keyof T,
|
|
15
|
-
> = { [_ in K]?: never };
|
|
16
|
-
export type Incremental<T> =
|
|
17
|
-
| T
|
|
18
|
-
| {
|
|
19
|
-
[P in keyof T]?: P extends ' $fragmentName' | '__typename' ? T[P] : never;
|
|
20
|
-
};
|
|
21
|
-
/** All built-in and custom scalars, mapped to their actual values */
|
|
22
|
-
export type Scalars = {
|
|
23
|
-
ID: { input: string; output: string };
|
|
24
|
-
String: { input: string; output: string };
|
|
25
|
-
Boolean: { input: boolean; output: boolean };
|
|
26
|
-
Int: { input: number; output: number };
|
|
27
|
-
Float: { input: number; output: number };
|
|
28
|
-
Base64: { input: string; output: string };
|
|
29
|
-
Currency: { input: number | string; output: number };
|
|
30
|
-
Date: { input: string; output: string };
|
|
31
|
-
DateTime: { input: string; output: string };
|
|
32
|
-
Double: { input: number | string; output: number };
|
|
33
|
-
Email: { input: string; output: string };
|
|
34
|
-
EncryptedString: { input: string; output: string };
|
|
35
|
-
/** Can be set to an ID or a Reference to the result of another mutation operation. */
|
|
36
|
-
IdOrRef: { input: string; output: string };
|
|
37
|
-
Latitude: { input: number | string; output: number };
|
|
38
|
-
/** A 64-bit signed integer */
|
|
39
|
-
Long: { input: number; output: number };
|
|
40
|
-
LongTextArea: { input: string; output: string };
|
|
41
|
-
Longitude: { input: number | string; output: number };
|
|
42
|
-
MultiPicklist: { input: string; output: string };
|
|
43
|
-
Percent: { input: number | string; output: number };
|
|
44
|
-
PhoneNumber: { input: string; output: string };
|
|
45
|
-
Picklist: { input: string; output: string };
|
|
46
|
-
RichTextArea: { input: string; output: string };
|
|
47
|
-
TextArea: { input: string; output: string };
|
|
48
|
-
Time: { input: string; output: string };
|
|
49
|
-
Url: { input: string; output: string };
|
|
50
|
-
};
|
|
51
|
-
|
|
52
|
-
export enum DataType {
|
|
53
|
-
Address = 'ADDRESS',
|
|
54
|
-
Anytype = 'ANYTYPE',
|
|
55
|
-
Base64 = 'BASE64',
|
|
56
|
-
Boolean = 'BOOLEAN',
|
|
57
|
-
Combobox = 'COMBOBOX',
|
|
58
|
-
Complexvalue = 'COMPLEXVALUE',
|
|
59
|
-
Currency = 'CURRENCY',
|
|
60
|
-
Date = 'DATE',
|
|
61
|
-
Datetime = 'DATETIME',
|
|
62
|
-
Double = 'DOUBLE',
|
|
63
|
-
Email = 'EMAIL',
|
|
64
|
-
Encryptedstring = 'ENCRYPTEDSTRING',
|
|
65
|
-
Int = 'INT',
|
|
66
|
-
Json = 'JSON',
|
|
67
|
-
Junctionidlist = 'JUNCTIONIDLIST',
|
|
68
|
-
Location = 'LOCATION',
|
|
69
|
-
Long = 'LONG',
|
|
70
|
-
Multipicklist = 'MULTIPICKLIST',
|
|
71
|
-
Percent = 'PERCENT',
|
|
72
|
-
Phone = 'PHONE',
|
|
73
|
-
Picklist = 'PICKLIST',
|
|
74
|
-
Reference = 'REFERENCE',
|
|
75
|
-
String = 'STRING',
|
|
76
|
-
Textarea = 'TEXTAREA',
|
|
77
|
-
Time = 'TIME',
|
|
78
|
-
Url = 'URL',
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
export enum FieldExtraTypeInfo {
|
|
82
|
-
ExternalLookup = 'EXTERNAL_LOOKUP',
|
|
83
|
-
ImageUrl = 'IMAGE_URL',
|
|
84
|
-
IndirectLookup = 'INDIRECT_LOOKUP',
|
|
85
|
-
Personname = 'PERSONNAME',
|
|
86
|
-
Plaintextarea = 'PLAINTEXTAREA',
|
|
87
|
-
Richtextarea = 'RICHTEXTAREA',
|
|
88
|
-
SwitchablePersonname = 'SWITCHABLE_PERSONNAME',
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
export enum ResultOrder {
|
|
92
|
-
Asc = 'ASC',
|
|
93
|
-
Desc = 'DESC',
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
export type GetHighRevenueAccountsQueryVariables = Exact<{
|
|
97
|
-
minRevenue?: InputMaybe<Scalars['Currency']['input']>;
|
|
98
|
-
}>;
|
|
99
|
-
|
|
100
|
-
export type GetHighRevenueAccountsQuery = {
|
|
101
|
-
uiapi: {
|
|
102
|
-
query: {
|
|
103
|
-
Account?: {
|
|
104
|
-
edges?: Array<{
|
|
105
|
-
node?: {
|
|
106
|
-
Id: string;
|
|
107
|
-
Name?: { value?: string | null } | null;
|
|
108
|
-
AnnualRevenue?: { value?: number | null } | null;
|
|
109
|
-
Industry?: { value?: string | null } | null;
|
|
110
|
-
Website?: { value?: string | null } | null;
|
|
111
|
-
} | null;
|
|
112
|
-
} | null> | null;
|
|
113
|
-
} | null;
|
|
114
|
-
};
|
|
115
|
-
};
|
|
116
|
-
};
|
package/dist/force-app/main/default/webapplications/appreacttemplatevibe/src/api/utils/accounts.ts
DELETED
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import { getDataSDK } from '@salesforce/webapp-experimental/api';
|
|
2
|
-
import HIGH_REVENUE_ACCOUNTS_QUERY from './query/highRevenueAccountsQuery.graphql?raw';
|
|
3
|
-
import type {
|
|
4
|
-
GetHighRevenueAccountsQuery,
|
|
5
|
-
GetHighRevenueAccountsQueryVariables,
|
|
6
|
-
} from '../graphql-operations-types';
|
|
7
|
-
|
|
8
|
-
type AccountNode = NonNullable<
|
|
9
|
-
NonNullable<
|
|
10
|
-
NonNullable<
|
|
11
|
-
NonNullable<
|
|
12
|
-
GetHighRevenueAccountsQuery['uiapi']['query']['Account']
|
|
13
|
-
>['edges']
|
|
14
|
-
>[number]
|
|
15
|
-
>['node']
|
|
16
|
-
>;
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* Fetch accounts with annual revenue greater than the specified amount
|
|
20
|
-
*
|
|
21
|
-
* @param minRevenue - Minimum annual revenue threshold (default: 100000)
|
|
22
|
-
* @returns Array of accounts matching the criteria
|
|
23
|
-
*/
|
|
24
|
-
export async function getHighRevenueAccounts(
|
|
25
|
-
variables: GetHighRevenueAccountsQueryVariables
|
|
26
|
-
): Promise<(AccountNode | null | undefined)[]> {
|
|
27
|
-
const data = await getDataSDK();
|
|
28
|
-
const response = await data.graphql?.<
|
|
29
|
-
GetHighRevenueAccountsQuery,
|
|
30
|
-
GetHighRevenueAccountsQueryVariables
|
|
31
|
-
>(HIGH_REVENUE_ACCOUNTS_QUERY, variables);
|
|
32
|
-
|
|
33
|
-
if (response?.errors?.length) {
|
|
34
|
-
const errorMessages = response.errors.map(e => e.message).join('; ');
|
|
35
|
-
throw new Error(`GraphQL Error: ${errorMessages}`);
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
return (
|
|
39
|
-
response?.data?.uiapi?.query?.Account?.edges?.map(edge => edge?.node) || []
|
|
40
|
-
);
|
|
41
|
-
}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
query GetHighRevenueAccounts($minRevenue: Currency) {
|
|
2
|
-
uiapi {
|
|
3
|
-
query {
|
|
4
|
-
Account(
|
|
5
|
-
where: { AnnualRevenue: { gt: $minRevenue } }
|
|
6
|
-
orderBy: { AnnualRevenue: { order: DESC } }
|
|
7
|
-
first: 50
|
|
8
|
-
) {
|
|
9
|
-
edges {
|
|
10
|
-
node {
|
|
11
|
-
Id
|
|
12
|
-
Name {
|
|
13
|
-
value
|
|
14
|
-
}
|
|
15
|
-
AnnualRevenue {
|
|
16
|
-
value
|
|
17
|
-
}
|
|
18
|
-
Industry {
|
|
19
|
-
value
|
|
20
|
-
}
|
|
21
|
-
Website {
|
|
22
|
-
value
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
}
|