@salesforce/webapp-template-feature-react-global-search-experimental 1.3.3
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/LICENSE.txt +82 -0
- package/README.md +415 -0
- package/dist/.a4drules/build-validation.md +81 -0
- package/dist/.a4drules/code-quality.md +150 -0
- package/dist/.a4drules/graphql/tools/knowledge/lds-explore-graphql-schema.md +227 -0
- package/dist/.a4drules/graphql/tools/knowledge/lds-generate-graphql-mutationquery.md +211 -0
- package/dist/.a4drules/graphql/tools/knowledge/lds-generate-graphql-readquery.md +185 -0
- package/dist/.a4drules/graphql/tools/knowledge/lds-guide-graphql.md +205 -0
- package/dist/.a4drules/graphql/tools/schemas/shared.graphqls +1150 -0
- package/dist/.a4drules/graphql.md +98 -0
- package/dist/.a4drules/images.md +13 -0
- package/dist/.a4drules/react.md +361 -0
- package/dist/.a4drules/react_image_processing.md +45 -0
- package/dist/.a4drules/typescript.md +224 -0
- package/dist/.forceignore +15 -0
- package/dist/.husky/pre-commit +4 -0
- package/dist/.prettierignore +11 -0
- package/dist/.prettierrc +17 -0
- package/dist/CHANGELOG.md +11 -0
- package/dist/README.md +18 -0
- package/dist/config/project-scratch-def.json +13 -0
- package/dist/force-app/main/default/webapplications/feature-react-global-search/.prettierignore +9 -0
- package/dist/force-app/main/default/webapplications/feature-react-global-search/.prettierrc +11 -0
- package/dist/force-app/main/default/webapplications/feature-react-global-search/eslint.config.js +113 -0
- package/dist/force-app/main/default/webapplications/feature-react-global-search/feature-react-global-search.webapplication-meta.xml +7 -0
- package/dist/force-app/main/default/webapplications/feature-react-global-search/index.html +13 -0
- package/dist/force-app/main/default/webapplications/feature-react-global-search/package.json +42 -0
- package/dist/force-app/main/default/webapplications/feature-react-global-search/src/api/graphql-operations-types.ts +127 -0
- package/dist/force-app/main/default/webapplications/feature-react-global-search/src/api/objectInfoService.ts +229 -0
- package/dist/force-app/main/default/webapplications/feature-react-global-search/src/api/utils/query/highRevenueAccountsQuery.graphql +29 -0
- package/dist/force-app/main/default/webapplications/feature-react-global-search/src/app.tsx +13 -0
- package/dist/force-app/main/default/webapplications/feature-react-global-search/src/appLayout.tsx +9 -0
- package/dist/force-app/main/default/webapplications/feature-react-global-search/src/assets/icons/book.svg +3 -0
- package/dist/force-app/main/default/webapplications/feature-react-global-search/src/assets/icons/copy.svg +4 -0
- package/dist/force-app/main/default/webapplications/feature-react-global-search/src/assets/icons/rocket.svg +3 -0
- package/dist/force-app/main/default/webapplications/feature-react-global-search/src/assets/icons/star.svg +3 -0
- package/dist/force-app/main/default/webapplications/feature-react-global-search/src/assets/images/codey-1.png +0 -0
- package/dist/force-app/main/default/webapplications/feature-react-global-search/src/assets/images/codey-2.png +0 -0
- package/dist/force-app/main/default/webapplications/feature-react-global-search/src/assets/images/codey-3.png +0 -0
- package/dist/force-app/main/default/webapplications/feature-react-global-search/src/assets/images/vibe-codey.svg +194 -0
- package/dist/force-app/main/default/webapplications/feature-react-global-search/src/components/FiltersPanel.tsx +373 -0
- package/dist/force-app/main/default/webapplications/feature-react-global-search/src/components/LoadingFallback.tsx +61 -0
- package/dist/force-app/main/default/webapplications/feature-react-global-search/src/components/SearchResultCard.tsx +127 -0
- package/dist/force-app/main/default/webapplications/feature-react-global-search/src/components/alerts/status-alert.tsx +45 -0
- package/dist/force-app/main/default/webapplications/feature-react-global-search/src/components/detail/DetailFields.tsx +57 -0
- package/dist/force-app/main/default/webapplications/feature-react-global-search/src/components/detail/DetailHeader.tsx +42 -0
- package/dist/force-app/main/default/webapplications/feature-react-global-search/src/components/filters/FilterField.tsx +54 -0
- package/dist/force-app/main/default/webapplications/feature-react-global-search/src/components/filters/FilterInput.tsx +55 -0
- package/dist/force-app/main/default/webapplications/feature-react-global-search/src/components/filters/FilterSelect.tsx +72 -0
- package/dist/force-app/main/default/webapplications/feature-react-global-search/src/components/forms/filters-form.tsx +114 -0
- package/dist/force-app/main/default/webapplications/feature-react-global-search/src/components/forms/submit-button.tsx +47 -0
- package/dist/force-app/main/default/webapplications/feature-react-global-search/src/components/layout/card-layout.tsx +19 -0
- package/dist/force-app/main/default/webapplications/feature-react-global-search/src/components/search/ResultCardFields.tsx +71 -0
- package/dist/force-app/main/default/webapplications/feature-react-global-search/src/components/search/SearchHeader.tsx +23 -0
- package/dist/force-app/main/default/webapplications/feature-react-global-search/src/components/search/SearchPagination.tsx +162 -0
- package/dist/force-app/main/default/webapplications/feature-react-global-search/src/components/search/SearchResultsPanel.tsx +184 -0
- package/dist/force-app/main/default/webapplications/feature-react-global-search/src/components/shared/GlobalSearchInput.tsx +110 -0
- package/dist/force-app/main/default/webapplications/feature-react-global-search/src/components/ui/alert.tsx +65 -0
- package/dist/force-app/main/default/webapplications/feature-react-global-search/src/components/ui/button.tsx +56 -0
- package/dist/force-app/main/default/webapplications/feature-react-global-search/src/components/ui/card.tsx +77 -0
- package/dist/force-app/main/default/webapplications/feature-react-global-search/src/components/ui/field.tsx +111 -0
- package/dist/force-app/main/default/webapplications/feature-react-global-search/src/components/ui/index.ts +71 -0
- package/dist/force-app/main/default/webapplications/feature-react-global-search/src/components/ui/input.tsx +19 -0
- package/dist/force-app/main/default/webapplications/feature-react-global-search/src/components/ui/label.tsx +19 -0
- package/dist/force-app/main/default/webapplications/feature-react-global-search/src/components/ui/pagination.tsx +99 -0
- package/dist/force-app/main/default/webapplications/feature-react-global-search/src/components/ui/select.tsx +151 -0
- package/dist/force-app/main/default/webapplications/feature-react-global-search/src/components/ui/skeleton.tsx +7 -0
- package/dist/force-app/main/default/webapplications/feature-react-global-search/src/components/ui/spinner.tsx +21 -0
- package/dist/force-app/main/default/webapplications/feature-react-global-search/src/components/ui/table.tsx +114 -0
- package/dist/force-app/main/default/webapplications/feature-react-global-search/src/components/ui/tabs.tsx +115 -0
- package/dist/force-app/main/default/webapplications/feature-react-global-search/src/constants.ts +36 -0
- package/dist/force-app/main/default/webapplications/feature-react-global-search/src/features/global-search/index.ts +65 -0
- package/dist/force-app/main/default/webapplications/feature-react-global-search/src/hooks/form.tsx +208 -0
- package/dist/force-app/main/default/webapplications/feature-react-global-search/src/hooks/useObjectSearchData.ts +419 -0
- package/dist/force-app/main/default/webapplications/feature-react-global-search/src/hooks/useRecordDetail.ts +127 -0
- package/dist/force-app/main/default/webapplications/feature-react-global-search/src/lib/utils.ts +6 -0
- package/dist/force-app/main/default/webapplications/feature-react-global-search/src/pages/About.tsx +12 -0
- package/dist/force-app/main/default/webapplications/feature-react-global-search/src/pages/DetailPage.tsx +128 -0
- package/dist/force-app/main/default/webapplications/feature-react-global-search/src/pages/GlobalSearch.tsx +173 -0
- package/dist/force-app/main/default/webapplications/feature-react-global-search/src/pages/Home.tsx +13 -0
- package/dist/force-app/main/default/webapplications/feature-react-global-search/src/pages/NotFound.tsx +18 -0
- package/dist/force-app/main/default/webapplications/feature-react-global-search/src/routes.tsx +50 -0
- package/dist/force-app/main/default/webapplications/feature-react-global-search/src/styles/global.css +108 -0
- package/dist/force-app/main/default/webapplications/feature-react-global-search/src/types/filters/filters.ts +122 -0
- package/dist/force-app/main/default/webapplications/feature-react-global-search/src/types/filters/picklist.ts +32 -0
- package/dist/force-app/main/default/webapplications/feature-react-global-search/src/types/objectInfo/objectInfo.ts +166 -0
- package/dist/force-app/main/default/webapplications/feature-react-global-search/src/types/search/searchResults.ts +228 -0
- package/dist/force-app/main/default/webapplications/feature-react-global-search/src/utils/apiUtils.ts +125 -0
- package/dist/force-app/main/default/webapplications/feature-react-global-search/src/utils/cacheUtils.ts +76 -0
- package/dist/force-app/main/default/webapplications/feature-react-global-search/src/utils/debounce.ts +89 -0
- package/dist/force-app/main/default/webapplications/feature-react-global-search/src/utils/fieldUtils.ts +186 -0
- package/dist/force-app/main/default/webapplications/feature-react-global-search/src/utils/fieldValueExtractor.ts +67 -0
- package/dist/force-app/main/default/webapplications/feature-react-global-search/src/utils/filterUtils.ts +32 -0
- package/dist/force-app/main/default/webapplications/feature-react-global-search/src/utils/formUtils.ts +130 -0
- package/dist/force-app/main/default/webapplications/feature-react-global-search/src/utils/paginationUtils.ts +49 -0
- package/dist/force-app/main/default/webapplications/feature-react-global-search/src/utils/recordUtils.ts +75 -0
- package/dist/force-app/main/default/webapplications/feature-react-global-search/src/utils/sanitizationUtils.ts +49 -0
- package/dist/force-app/main/default/webapplications/feature-react-global-search/tsconfig.json +36 -0
- package/dist/force-app/main/default/webapplications/feature-react-global-search/tsconfig.node.json +13 -0
- package/dist/force-app/main/default/webapplications/feature-react-global-search/vite-env.d.ts +1 -0
- package/dist/force-app/main/default/webapplications/feature-react-global-search/vite.config.ts +82 -0
- package/dist/force-app/main/default/webapplications/feature-react-global-search/vitest-env.d.ts +2 -0
- package/dist/force-app/main/default/webapplications/feature-react-global-search/vitest.config.ts +11 -0
- package/dist/force-app/main/default/webapplications/feature-react-global-search/vitest.setup.ts +1 -0
- package/dist/force-app/main/default/webapplications/feature-react-global-search/webapplication.json +7 -0
- package/dist/jest.config.js +6 -0
- package/dist/package.json +37 -0
- package/dist/scripts/apex/hello.apex +10 -0
- package/dist/scripts/soql/account.soql +6 -0
- package/dist/sfdx-project.json +12 -0
- package/package.json +32 -0
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sanitization Utilities
|
|
3
|
+
*
|
|
4
|
+
* Utility functions for sanitizing user input to prevent injection attacks.
|
|
5
|
+
* These utilities provide basic sanitization for filter values.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Sanitizes a string value by removing potentially dangerous characters
|
|
10
|
+
* and trimming whitespace.
|
|
11
|
+
*
|
|
12
|
+
* This is a basic sanitization - for production, consider using a library like DOMPurify for more
|
|
13
|
+
* comprehensive sanitization.
|
|
14
|
+
* Also, note this is NOT an end-to-end security control.
|
|
15
|
+
* Client-side sanitization can be bypassed by any attacker using `curl` or Postman.
|
|
16
|
+
* To prevent injection attacks (SOSL Injection, XSS):
|
|
17
|
+
* 1. The BACKEND (Salesforce API) handles SOSL injection if parameters are passed correctly.
|
|
18
|
+
* 2. React handles XSS automatically when rendering variables in JSX (e.g., <div>{value}</div>).
|
|
19
|
+
* Do not rely on this function for end-to-end security enforcement.
|
|
20
|
+
*
|
|
21
|
+
* @param value - The string value to sanitize
|
|
22
|
+
* @returns Sanitized string value
|
|
23
|
+
*
|
|
24
|
+
* @remarks
|
|
25
|
+
* - Removes control characters (except newlines, tabs, carriage returns)
|
|
26
|
+
* - Trims leading/trailing whitespace
|
|
27
|
+
* - Limits length to prevent DoS attacks (default: 1000 characters)
|
|
28
|
+
* - Preserves alphanumeric, spaces, and common punctuation
|
|
29
|
+
*
|
|
30
|
+
* @example
|
|
31
|
+
* ```tsx
|
|
32
|
+
* const sanitized = sanitizeFilterValue(userInput);
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
35
|
+
export function sanitizeFilterValue(value: string, maxLength: number = 1000): string {
|
|
36
|
+
if (typeof value !== "string") {
|
|
37
|
+
return "";
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
let sanitized = value.trim();
|
|
41
|
+
|
|
42
|
+
if (sanitized.length > maxLength) {
|
|
43
|
+
sanitized = sanitized.substring(0, maxLength);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
sanitized = sanitized.replace(/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F]/g, "");
|
|
47
|
+
|
|
48
|
+
return sanitized;
|
|
49
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"target": "ES2020",
|
|
4
|
+
"useDefineForClassFields": true,
|
|
5
|
+
"lib": ["ES2020", "DOM", "DOM.Iterable"],
|
|
6
|
+
"module": "ESNext",
|
|
7
|
+
"skipLibCheck": true,
|
|
8
|
+
|
|
9
|
+
/* Bundler mode */
|
|
10
|
+
"moduleResolution": "bundler",
|
|
11
|
+
"allowImportingTsExtensions": true,
|
|
12
|
+
"resolveJsonModule": true,
|
|
13
|
+
"isolatedModules": true,
|
|
14
|
+
"noEmit": true,
|
|
15
|
+
"jsx": "react-jsx",
|
|
16
|
+
|
|
17
|
+
/* Linting */
|
|
18
|
+
"strict": true,
|
|
19
|
+
"noUnusedLocals": true,
|
|
20
|
+
"noUnusedParameters": true,
|
|
21
|
+
"noFallthroughCasesInSwitch": true,
|
|
22
|
+
|
|
23
|
+
/* Path mapping */
|
|
24
|
+
"baseUrl": ".",
|
|
25
|
+
"paths": {
|
|
26
|
+
"@/*": ["./src/*"],
|
|
27
|
+
"@api/*": ["./src/api/*"],
|
|
28
|
+
"@components/*": ["./src/components/*"],
|
|
29
|
+
"@utils/*": ["./src/utils/*"],
|
|
30
|
+
"@styles/*": ["./src/styles/*"],
|
|
31
|
+
"@assets/*": ["./src/assets/*"]
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
"include": ["src", "vite-env.d.ts", "vitest-env.d.ts"],
|
|
35
|
+
"references": [{ "path": "./tsconfig.node.json" }]
|
|
36
|
+
}
|
package/dist/force-app/main/default/webapplications/feature-react-global-search/tsconfig.node.json
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"composite": true,
|
|
4
|
+
"tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo",
|
|
5
|
+
"skipLibCheck": true,
|
|
6
|
+
"module": "ESNext",
|
|
7
|
+
"moduleResolution": "bundler",
|
|
8
|
+
"allowSyntheticDefaultImports": true,
|
|
9
|
+
"strict": true,
|
|
10
|
+
"outDir": "./build"
|
|
11
|
+
},
|
|
12
|
+
"include": ["vite.config.ts"]
|
|
13
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
/// <reference types="vite/client" />
|
package/dist/force-app/main/default/webapplications/feature-react-global-search/vite.config.ts
ADDED
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { defineConfig } from 'vite';
|
|
2
|
+
import react from '@vitejs/plugin-react';
|
|
3
|
+
import path from 'path';
|
|
4
|
+
import { resolve } from 'path';
|
|
5
|
+
import tailwindcss from '@tailwindcss/vite';
|
|
6
|
+
import salesforce from '@salesforce/vite-plugin-webapp-experimental';
|
|
7
|
+
|
|
8
|
+
export default defineConfig(({ mode }) => {
|
|
9
|
+
return {
|
|
10
|
+
plugins: [tailwindcss(), react(), salesforce()],
|
|
11
|
+
|
|
12
|
+
// Build configuration for MPA
|
|
13
|
+
build: {
|
|
14
|
+
outDir: resolve(__dirname, 'dist'),
|
|
15
|
+
assetsDir: 'assets',
|
|
16
|
+
sourcemap: false,
|
|
17
|
+
},
|
|
18
|
+
|
|
19
|
+
// Resolve aliases (shared between build and test)
|
|
20
|
+
resolve: {
|
|
21
|
+
alias: {
|
|
22
|
+
'@': path.resolve(__dirname, './src'),
|
|
23
|
+
'@api': path.resolve(__dirname, './src/api'),
|
|
24
|
+
'@components': path.resolve(__dirname, './src/components'),
|
|
25
|
+
'@utils': path.resolve(__dirname, './src/utils'),
|
|
26
|
+
'@styles': path.resolve(__dirname, './src/styles'),
|
|
27
|
+
'@assets': path.resolve(__dirname, './src/assets'),
|
|
28
|
+
},
|
|
29
|
+
},
|
|
30
|
+
|
|
31
|
+
// Vitest configuration
|
|
32
|
+
test: {
|
|
33
|
+
// Override root for tests (build uses src/pages as root)
|
|
34
|
+
root: resolve(__dirname),
|
|
35
|
+
|
|
36
|
+
// Use jsdom environment for React component testing
|
|
37
|
+
environment: 'jsdom',
|
|
38
|
+
|
|
39
|
+
// Setup files to run before each test
|
|
40
|
+
setupFiles: ['./src/test/setup.ts'],
|
|
41
|
+
|
|
42
|
+
// Global test patterns
|
|
43
|
+
include: [
|
|
44
|
+
'src/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}',
|
|
45
|
+
'src/**/__tests__/**/*.{js,mjs,cjs,ts,mts,cts,jsx,tsx}',
|
|
46
|
+
],
|
|
47
|
+
|
|
48
|
+
// Coverage configuration
|
|
49
|
+
coverage: {
|
|
50
|
+
provider: 'v8',
|
|
51
|
+
reporter: ['text', 'html', 'clover', 'json'],
|
|
52
|
+
exclude: [
|
|
53
|
+
'node_modules/',
|
|
54
|
+
'src/test/',
|
|
55
|
+
'src/**/*.d.ts',
|
|
56
|
+
'src/main.tsx',
|
|
57
|
+
'src/vite-env.d.ts',
|
|
58
|
+
'src/components/**/index.ts',
|
|
59
|
+
'**/*.config.ts',
|
|
60
|
+
'build/',
|
|
61
|
+
'dist/',
|
|
62
|
+
'coverage/',
|
|
63
|
+
'eslint.config.js',
|
|
64
|
+
],
|
|
65
|
+
thresholds: {
|
|
66
|
+
global: {
|
|
67
|
+
branches: 85,
|
|
68
|
+
functions: 85,
|
|
69
|
+
lines: 85,
|
|
70
|
+
statements: 85,
|
|
71
|
+
},
|
|
72
|
+
},
|
|
73
|
+
},
|
|
74
|
+
|
|
75
|
+
// Test timeout
|
|
76
|
+
testTimeout: 10000,
|
|
77
|
+
|
|
78
|
+
// Globals for easier testing
|
|
79
|
+
globals: true,
|
|
80
|
+
},
|
|
81
|
+
};
|
|
82
|
+
});
|
package/dist/force-app/main/default/webapplications/feature-react-global-search/vitest.setup.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import '@testing-library/jest-dom/vitest';
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@salesforce/webapp-template-base-sfdx-project-experimental",
|
|
3
|
+
"version": "1.3.3",
|
|
4
|
+
"description": "Base SFDX project template",
|
|
5
|
+
"private": true,
|
|
6
|
+
"files": [
|
|
7
|
+
"dist"
|
|
8
|
+
],
|
|
9
|
+
"scripts": {
|
|
10
|
+
"build": "echo 'No build required for base-sfdx-project'",
|
|
11
|
+
"clean": "echo 'No clean required for base-sfdx-project'",
|
|
12
|
+
"lint": "eslint **/{aura,lwc}/**/*.js",
|
|
13
|
+
"test": "npm run test:unit",
|
|
14
|
+
"test:unit": "sfdx-lwc-jest -- --passWithNoTests",
|
|
15
|
+
"test:unit:watch": "sfdx-lwc-jest --watch",
|
|
16
|
+
"test:unit:debug": "sfdx-lwc-jest --debug",
|
|
17
|
+
"test:unit:coverage": "sfdx-lwc-jest --coverage",
|
|
18
|
+
"prettier": "prettier --write \"**/*.{cls,cmp,component,css,html,js,json,md,page,trigger,xml,yaml,yml}\"",
|
|
19
|
+
"prettier:verify": "prettier --check \"**/*.{cls,cmp,component,css,html,js,json,md,page,trigger,xml,yaml,yml}\"",
|
|
20
|
+
"precommit": "lint-staged"
|
|
21
|
+
},
|
|
22
|
+
"devDependencies": {
|
|
23
|
+
"@lwc/eslint-plugin-lwc": "^2.0.0",
|
|
24
|
+
"@prettier/plugin-xml": "^3.2.2",
|
|
25
|
+
"@salesforce/eslint-config-lwc": "^3.2.3",
|
|
26
|
+
"@salesforce/eslint-plugin-aura": "^2.0.0",
|
|
27
|
+
"@salesforce/eslint-plugin-lightning": "^1.0.0",
|
|
28
|
+
"@salesforce/sfdx-lwc-jest": "^7.0.1",
|
|
29
|
+
"eslint": "8.57.1",
|
|
30
|
+
"eslint-plugin-import": "^2.25.4",
|
|
31
|
+
"eslint-plugin-jest": "^28.8.1",
|
|
32
|
+
"husky": "^9.1.5",
|
|
33
|
+
"lint-staged": "^15.1.0",
|
|
34
|
+
"prettier": "^3.1.0",
|
|
35
|
+
"prettier-plugin-apex": "^2.0.1"
|
|
36
|
+
}
|
|
37
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
// Use .apex files to store anonymous Apex.
|
|
2
|
+
// You can execute anonymous Apex in VS Code by selecting the
|
|
3
|
+
// apex text and running the command:
|
|
4
|
+
// SFDX: Execute Anonymous Apex with Currently Selected Text
|
|
5
|
+
// You can also execute the entire file by running the command:
|
|
6
|
+
// SFDX: Execute Anonymous Apex with Editor Contents
|
|
7
|
+
|
|
8
|
+
string tempvar = 'Enter_your_name_here';
|
|
9
|
+
System.debug('Hello World!');
|
|
10
|
+
System.debug('My name is ' + tempvar);
|
package/package.json
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@salesforce/webapp-template-feature-react-global-search-experimental",
|
|
3
|
+
"version": "1.3.3",
|
|
4
|
+
"description": "Global search feature for Salesforce objects with filtering and pagination",
|
|
5
|
+
"license": "ISC",
|
|
6
|
+
"author": "",
|
|
7
|
+
"type": "module",
|
|
8
|
+
"main": "index.js",
|
|
9
|
+
"files": [
|
|
10
|
+
"dist"
|
|
11
|
+
],
|
|
12
|
+
"publishConfig": {
|
|
13
|
+
"access": "public"
|
|
14
|
+
},
|
|
15
|
+
"scripts": {
|
|
16
|
+
"dev": "cd dist/force-app/main/default/webapplications/feature-react-global-search && npm install && npm run dev",
|
|
17
|
+
"clean": "rm -rf dist",
|
|
18
|
+
"build": "npx tsx ../../cli/src/index.ts apply-patches packages/template/feature/feature-react-global-search packages/template/base-app/base-react-app packages/template/feature/feature-react-global-search/dist --reset --skip-dependency-changes",
|
|
19
|
+
"watch": "npx tsx ../../cli/src/index.ts watch-patches packages/template/feature/feature-react-global-search packages/template/base-app/base-react-app packages/template/feature/feature-react-global-search/dist"
|
|
20
|
+
},
|
|
21
|
+
"devDependencies": {
|
|
22
|
+
"@types/react": "^19.2.7",
|
|
23
|
+
"@types/react-dom": "^19.2.3",
|
|
24
|
+
"@types/react-router-dom": "^5.3.3",
|
|
25
|
+
"lucide-react": "^0.468.0",
|
|
26
|
+
"react-dom": "^19.2.1",
|
|
27
|
+
"react-router": "^7.10.1",
|
|
28
|
+
"react-router-dom": "^7.10.1",
|
|
29
|
+
"zod": "^3.24.1"
|
|
30
|
+
},
|
|
31
|
+
"gitHead": "80d16bc3ec3fc1ed55b8059f6389cf89eb464385"
|
|
32
|
+
}
|