@salesforce/templates 66.5.6 → 66.6.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/lib/generators/projectGenerator.d.ts +1 -1
- package/lib/generators/projectGenerator.js +3 -3
- package/lib/generators/projectGenerator.js.map +1 -1
- package/lib/templates/project/{reactb2e → reactexternalapp}/AGENT.md +6 -10
- package/lib/templates/project/{reactb2e → reactexternalapp}/CHANGELOG.md +59 -0
- package/lib/templates/project/{reactb2x → reactexternalapp}/README.md +14 -14
- package/lib/templates/project/{reactb2x/_p_/_m_/_d_/_s_/_a1_/appreacttemplateb2x1.digitalExperience-meta.xml → reactexternalapp/_p_/_m_/_d_/_s_/_a1_/reactexternalapp1.digitalExperience-meta.xml} +1 -1
- package/lib/templates/project/{reactb2x/_p_/_m_/_d_/_s_/_a1_/sfdc_cms__site/appreacttemplateb2x1 → reactexternalapp/_p_/_m_/_d_/_s_/_a1_/sfdc_cms__site/reactexternalapp1}/_meta.json +1 -1
- package/lib/templates/project/{reactb2x/_p_/_m_/_d_/_s_/_a1_/sfdc_cms__site/appreacttemplateb2x1 → reactexternalapp/_p_/_m_/_d_/_s_/_a1_/sfdc_cms__site/reactexternalapp1}/content.json +3 -3
- package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/_w_/_a_/README.md +2 -2
- package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/_w_/_a_/package.json +3 -3
- package/lib/templates/project/{reactb2x/_p_/_m_/_w_/_a_/appreacttemplateb2x.webapplication-meta.xml → reactexternalapp/_p_/_m_/_w_/_a_/reactexternalapp.webapplication-meta.xml} +1 -1
- package/lib/templates/project/{reactb2e/_p_/_m_/_w_/_a_/src/_f_/_os_/__examples__ → reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/_ex_}/pages/AccountSearch.tsx +82 -54
- package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/components/FilterContext.tsx +73 -0
- package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/components/PaginationControls.tsx +109 -0
- package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/_os_/components/filters/BooleanFilter.tsx +16 -36
- package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/components/filters/DateFilter.tsx +121 -0
- package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/_os_/components/filters/DateRangeFilter.tsx +14 -23
- package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/_os_/components/filters/MultiSelectFilter.tsx +18 -26
- package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/_os_/components/filters/NumericRangeFilter.tsx +22 -39
- package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/components/filters/SearchFilter.tsx +37 -0
- package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/_os_/components/filters/SelectFilter.tsx +30 -34
- package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/components/filters/TextFilter.tsx +74 -0
- package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/_os_/hooks/useAsyncData.ts +1 -0
- package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/_os_/hooks/useCachedAsyncData.ts +1 -0
- package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/_os_/hooks/useObjectSearchParams.ts +22 -0
- package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/api/graphqlClient.ts +25 -0
- package/lib/templates/project/{reactb2x/_p_/_m_/digitalExperienceConfigs/appreacttemplateb2x1.digitalExperienceConfig → reactexternalapp/_p_/_m_/digitalExperienceConfigs/reactexternalapp1.digitalExperienceConfig} +3 -3
- package/lib/templates/project/{reactb2x/_p_/_m_/networks/appreacttemplateb2x.network → reactexternalapp/_p_/_m_/networks/reactexternalapp.network} +4 -4
- package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/package.xml +4 -4
- package/lib/templates/project/{reactb2x/_p_/_m_/sites/appreacttemplateb2x.site → reactexternalapp/_p_/_m_/sites/reactexternalapp.site} +2 -2
- package/lib/templates/project/{reactb2e → reactexternalapp}/_r_/webapp-data.md +5 -5
- package/lib/templates/project/{reactb2x → reactexternalapp}/_r_/webapp-ui.md +2 -2
- package/lib/templates/project/{reactb2e → reactexternalapp}/package-lock.json +2 -2
- package/lib/templates/project/{reactb2e → reactexternalapp}/package.json +1 -1
- package/lib/templates/project/{reactb2x/_r_/skills/using-salesforce-data → reactexternalapp/scripts}/graphql-search.sh +73 -21
- package/lib/templates/project/{reactb2x → reactinternalapp}/AGENT.md +6 -10
- package/lib/templates/project/{reactb2x → reactinternalapp}/CHANGELOG.md +59 -0
- package/lib/templates/project/{reactb2e → reactinternalapp}/README.md +9 -9
- package/lib/templates/project/{reactb2e → reactinternalapp}/_p_/_m_/_w_/_a_/README.md +2 -2
- package/lib/templates/project/{reactb2e → reactinternalapp}/_p_/_m_/_w_/_a_/package.json +3 -3
- package/lib/templates/project/{reactb2e/_p_/_m_/_w_/_a_/appreacttemplateb2e.webapplication-meta.xml → reactinternalapp/_p_/_m_/_w_/_a_/reactinternalapp.webapplication-meta.xml} +1 -1
- package/lib/templates/project/{reactb2x/_p_/_m_/_w_/_a_/src/_f_/_os_/__examples__ → reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/_ex_}/pages/AccountSearch.tsx +82 -54
- package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/components/FilterContext.tsx +73 -0
- package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/components/PaginationControls.tsx +109 -0
- package/lib/templates/project/{reactb2e → reactinternalapp}/_p_/_m_/_w_/_a_/src/_f_/_os_/components/filters/BooleanFilter.tsx +16 -36
- package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/components/filters/DateFilter.tsx +121 -0
- package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/_f_/_os_/components/filters/DateRangeFilter.tsx +14 -23
- package/lib/templates/project/{reactb2e → reactinternalapp}/_p_/_m_/_w_/_a_/src/_f_/_os_/components/filters/MultiSelectFilter.tsx +18 -26
- package/lib/templates/project/{reactb2e → reactinternalapp}/_p_/_m_/_w_/_a_/src/_f_/_os_/components/filters/NumericRangeFilter.tsx +22 -39
- package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/components/filters/SearchFilter.tsx +37 -0
- package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/_f_/_os_/components/filters/SelectFilter.tsx +30 -34
- package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/components/filters/TextFilter.tsx +74 -0
- package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/_f_/_os_/hooks/useAsyncData.ts +1 -0
- package/lib/templates/project/{reactb2e → reactinternalapp}/_p_/_m_/_w_/_a_/src/_f_/_os_/hooks/useCachedAsyncData.ts +1 -0
- package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/_f_/_os_/hooks/useObjectSearchParams.ts +22 -0
- package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/api/graphqlClient.ts +25 -0
- package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/routes.tsx +21 -0
- package/lib/templates/project/{reactb2x → reactinternalapp}/_r_/webapp-data.md +5 -5
- package/lib/templates/project/{reactb2e → reactinternalapp}/_r_/webapp-ui.md +2 -2
- package/lib/templates/project/{reactb2x → reactinternalapp}/package-lock.json +2 -2
- package/lib/templates/project/{reactb2x → reactinternalapp}/package.json +1 -1
- package/lib/templates/project/{reactb2e/_r_/skills/using-salesforce-data → reactinternalapp/scripts}/graphql-search.sh +73 -21
- package/lib/templates/webapplication/reactbasic/package.json +3 -3
- package/lib/templates/webapplication/reactbasic/src/api/graphqlClient.ts +25 -0
- package/lib/utils/template-placeholders.js +8 -1
- package/lib/utils/template-placeholders.js.map +1 -1
- package/lib/utils/types.d.ts +1 -1
- package/lib/utils/webappTemplateUtils.d.ts +12 -4
- package/lib/utils/webappTemplateUtils.js +46 -14
- package/lib/utils/webappTemplateUtils.js.map +1 -1
- package/package.json +5 -5
- package/lib/templates/project/reactb2e/_p_/_m_/_w_/_a_/src/_f_/_os_/components/FilterPanel.tsx +0 -127
- package/lib/templates/project/reactb2e/_p_/_m_/_w_/_a_/src/_f_/_os_/components/PaginationControls.tsx +0 -151
- package/lib/templates/project/reactb2e/_p_/_m_/_w_/_a_/src/_f_/_os_/components/filters/DateFilter.tsx +0 -165
- package/lib/templates/project/reactb2e/_p_/_m_/_w_/_a_/src/_f_/_os_/components/filters/SearchFilter.tsx +0 -40
- package/lib/templates/project/reactb2e/_p_/_m_/_w_/_a_/src/_f_/_os_/components/filters/TextFilter.tsx +0 -77
- package/lib/templates/project/reactb2e/_p_/_m_/_w_/_a_/src/pages/TestAccPage.tsx +0 -19
- package/lib/templates/project/reactb2e/_p_/_m_/_w_/_a_/src/routes.tsx +0 -38
- package/lib/templates/project/reactb2e/_r_/skills/building-data-visualization/SKILL.md +0 -72
- package/lib/templates/project/reactb2e/_r_/skills/building-data-visualization/implementation/bar-line-chart.md +0 -316
- package/lib/templates/project/reactb2e/_r_/skills/building-data-visualization/implementation/dashboard-layout.md +0 -189
- package/lib/templates/project/reactb2e/_r_/skills/building-data-visualization/implementation/donut-chart.md +0 -181
- package/lib/templates/project/reactb2e/_r_/skills/building-data-visualization/implementation/stat-card.md +0 -150
- package/lib/templates/project/reactb2e/_r_/skills/building-react-components/SKILL.md +0 -96
- package/lib/templates/project/reactb2e/_r_/skills/building-react-components/implementation/component.md +0 -78
- package/lib/templates/project/reactb2e/_r_/skills/building-react-components/implementation/header-footer.md +0 -132
- package/lib/templates/project/reactb2e/_r_/skills/building-react-components/implementation/page.md +0 -93
- package/lib/templates/project/reactb2e/_r_/skills/configuring-csp-trusted-sites/SKILL.md +0 -90
- package/lib/templates/project/reactb2e/_r_/skills/configuring-csp-trusted-sites/implementation/metadata-format.md +0 -281
- package/lib/templates/project/reactb2e/_r_/skills/configuring-webapp-metadata/SKILL.md +0 -158
- package/lib/templates/project/reactb2e/_r_/skills/creating-webapp/SKILL.md +0 -140
- package/lib/templates/project/reactb2e/_r_/skills/deploying-to-salesforce/SKILL.md +0 -226
- package/lib/templates/project/reactb2e/_r_/skills/implementing-file-upload/SKILL.md +0 -396
- package/lib/templates/project/reactb2e/_r_/skills/installing-webapp-features/SKILL.md +0 -210
- package/lib/templates/project/reactb2e/_r_/skills/managing-agentforce-conversation-client/SKILL.md +0 -186
- package/lib/templates/project/reactb2e/_r_/skills/managing-agentforce-conversation-client/references/constraints.md +0 -134
- package/lib/templates/project/reactb2e/_r_/skills/managing-agentforce-conversation-client/references/examples.md +0 -132
- package/lib/templates/project/reactb2e/_r_/skills/managing-agentforce-conversation-client/references/style-tokens.md +0 -101
- package/lib/templates/project/reactb2e/_r_/skills/managing-agentforce-conversation-client/references/troubleshooting.md +0 -57
- package/lib/templates/project/reactb2e/_r_/skills/using-salesforce-data/SKILL.md +0 -363
- package/lib/templates/project/reactb2x/_p_/_m_/_w_/_a_/src/_f_/_os_/components/FilterPanel.tsx +0 -127
- package/lib/templates/project/reactb2x/_p_/_m_/_w_/_a_/src/_f_/_os_/components/PaginationControls.tsx +0 -151
- package/lib/templates/project/reactb2x/_p_/_m_/_w_/_a_/src/_f_/_os_/components/filters/DateFilter.tsx +0 -165
- package/lib/templates/project/reactb2x/_p_/_m_/_w_/_a_/src/_f_/_os_/components/filters/SearchFilter.tsx +0 -40
- package/lib/templates/project/reactb2x/_p_/_m_/_w_/_a_/src/_f_/_os_/components/filters/TextFilter.tsx +0 -77
- package/lib/templates/project/reactb2x/_r_/skills/building-data-visualization/SKILL.md +0 -72
- package/lib/templates/project/reactb2x/_r_/skills/building-data-visualization/implementation/bar-line-chart.md +0 -316
- package/lib/templates/project/reactb2x/_r_/skills/building-data-visualization/implementation/dashboard-layout.md +0 -189
- package/lib/templates/project/reactb2x/_r_/skills/building-data-visualization/implementation/donut-chart.md +0 -181
- package/lib/templates/project/reactb2x/_r_/skills/building-data-visualization/implementation/stat-card.md +0 -150
- package/lib/templates/project/reactb2x/_r_/skills/building-react-components/SKILL.md +0 -96
- package/lib/templates/project/reactb2x/_r_/skills/building-react-components/implementation/component.md +0 -78
- package/lib/templates/project/reactb2x/_r_/skills/building-react-components/implementation/header-footer.md +0 -132
- package/lib/templates/project/reactb2x/_r_/skills/building-react-components/implementation/page.md +0 -93
- package/lib/templates/project/reactb2x/_r_/skills/configuring-csp-trusted-sites/SKILL.md +0 -90
- package/lib/templates/project/reactb2x/_r_/skills/configuring-csp-trusted-sites/implementation/metadata-format.md +0 -281
- package/lib/templates/project/reactb2x/_r_/skills/configuring-webapp-metadata/SKILL.md +0 -158
- package/lib/templates/project/reactb2x/_r_/skills/creating-webapp/SKILL.md +0 -140
- package/lib/templates/project/reactb2x/_r_/skills/deploying-to-salesforce/SKILL.md +0 -226
- package/lib/templates/project/reactb2x/_r_/skills/implementing-file-upload/SKILL.md +0 -396
- package/lib/templates/project/reactb2x/_r_/skills/installing-webapp-features/SKILL.md +0 -210
- package/lib/templates/project/reactb2x/_r_/skills/managing-agentforce-conversation-client/SKILL.md +0 -186
- package/lib/templates/project/reactb2x/_r_/skills/managing-agentforce-conversation-client/references/constraints.md +0 -134
- package/lib/templates/project/reactb2x/_r_/skills/managing-agentforce-conversation-client/references/examples.md +0 -132
- package/lib/templates/project/reactb2x/_r_/skills/managing-agentforce-conversation-client/references/style-tokens.md +0 -101
- package/lib/templates/project/reactb2x/_r_/skills/managing-agentforce-conversation-client/references/troubleshooting.md +0 -57
- package/lib/templates/project/reactb2x/_r_/skills/using-salesforce-data/SKILL.md +0 -363
- /package/lib/templates/project/{reactb2e → reactexternalapp}/.forceignore +0 -0
- /package/lib/templates/project/{reactb2e → reactexternalapp}/.husky/pre-commit +0 -0
- /package/lib/templates/project/{reactb2e → reactexternalapp}/.prettierignore +0 -0
- /package/lib/templates/project/{reactb2e → reactexternalapp}/.prettierrc +0 -0
- /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/.forceignore +0 -0
- /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/.graphqlrc.yml +0 -0
- /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/.prettierignore +0 -0
- /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/.prettierrc +0 -0
- /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/CHANGELOG.md +0 -0
- /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/codegen.yml +0 -0
- /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/components.json +0 -0
- /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/e2e/app.spec.ts +0 -0
- /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/eslint.config.js +0 -0
- /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/index.html +0 -0
- /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/playwright.config.ts +0 -0
- /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/scripts/get-graphql-schema.mjs +0 -0
- /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/scripts/rewrite-e2e-assets.mjs +0 -0
- /package/lib/templates/project/{reactb2e/_p_/_m_/_w_/_a_/src/_f_/_os_/__examples__ → reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/_ex_}/api/accountSearchService.ts +0 -0
- /package/lib/templates/project/{reactb2e/_p_/_m_/_w_/_a_/src/_f_/_os_/__examples__ → reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/_ex_}/api/query/distinctAccountIndustries.graphql +0 -0
- /package/lib/templates/project/{reactb2e/_p_/_m_/_w_/_a_/src/_f_/_os_/__examples__ → reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/_ex_}/api/query/distinctAccountTypes.graphql +0 -0
- /package/lib/templates/project/{reactb2e/_p_/_m_/_w_/_a_/src/_f_/_os_/__examples__ → reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/_ex_}/api/query/getAccountDetail.graphql +0 -0
- /package/lib/templates/project/{reactb2e/_p_/_m_/_w_/_a_/src/_f_/_os_/__examples__ → reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/_ex_}/api/query/searchAccounts.graphql +0 -0
- /package/lib/templates/project/{reactb2e/_p_/_m_/_w_/_a_/src/_f_/_os_/__examples__ → reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/_ex_}/pages/AccountObjectDetailPage.tsx +0 -0
- /package/lib/templates/project/{reactb2e/_p_/_m_/_w_/_a_/src/_f_/_os_/__examples__ → reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/_ex_}/pages/Home.tsx +0 -0
- /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/_os_/api/objectSearchService.ts +0 -0
- /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/_os_/components/ActiveFilters.tsx +0 -0
- /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/_os_/components/ObjectBreadcrumb.tsx +0 -0
- /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/_os_/components/SearchBar.tsx +0 -0
- /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/_os_/components/SortControl.tsx +0 -0
- /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/_os_/utils/debounce.ts +0 -0
- /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/_os_/utils/fieldUtils.ts +0 -0
- /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/_os_/utils/filterUtils.ts +0 -0
- /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/_os_/utils/sortUtils.ts +0 -0
- /package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/authentication/api/userProfileApi.ts +0 -0
- /package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/authentication/authHelpers.ts +0 -0
- /package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/authentication/authenticationConfig.ts +0 -0
- /package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/authentication/context/AuthContext.tsx +0 -0
- /package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/authentication/footers/footer-link.tsx +0 -0
- /package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/authentication/forms/auth-form.tsx +0 -0
- /package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/authentication/forms/submit-button.tsx +0 -0
- /package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/authentication/hooks/form.tsx +0 -0
- /package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/authentication/hooks/useCountdownTimer.ts +0 -0
- /package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/authentication/hooks/useRetryWithBackoff.ts +0 -0
- /package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/authentication/layout/card-skeleton.tsx +0 -0
- /package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/authentication/layout/centered-page-layout.tsx +0 -0
- /package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/authentication/layouts/AuthAppLayout.tsx +0 -0
- /package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/authentication/layouts/authenticationRouteLayout.tsx +0 -0
- /package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/authentication/layouts/privateRouteLayout.tsx +0 -0
- /package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/authentication/pages/ChangePassword.tsx +0 -0
- /package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/authentication/pages/ForgotPassword.tsx +0 -0
- /package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/authentication/pages/Login.tsx +0 -0
- /package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/authentication/pages/Profile.tsx +0 -0
- /package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/authentication/pages/Register.tsx +0 -0
- /package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/authentication/pages/ResetPassword.tsx +0 -0
- /package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/authentication/sessionTimeout/SessionTimeoutValidator.tsx +0 -0
- /package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/authentication/sessionTimeout/sessionTimeService.ts +0 -0
- /package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/authentication/sessionTimeout/sessionTimeoutConfig.ts +0 -0
- /package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/_w_/_a_/src/_f_/authentication/utils/helpers.ts +0 -0
- /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/api/graphql-operations-types.ts +0 -0
- /package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/_w_/_a_/src/app.tsx +0 -0
- /package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/_w_/_a_/src/appLayout.tsx +0 -0
- /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/assets/icons/book.svg +0 -0
- /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/assets/icons/copy.svg +0 -0
- /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/assets/icons/rocket.svg +0 -0
- /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/assets/icons/star.svg +0 -0
- /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/assets/images/codey-1.png +0 -0
- /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/assets/images/codey-2.png +0 -0
- /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/assets/images/codey-3.png +0 -0
- /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/assets/images/vibe-codey.svg +0 -0
- /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/components/alerts/status-alert.tsx +0 -0
- /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/components/layouts/card-layout.tsx +0 -0
- /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/components/ui/alert.tsx +0 -0
- /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/components/ui/badge.tsx +0 -0
- /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/components/ui/breadcrumb.tsx +0 -0
- /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/components/ui/button.tsx +0 -0
- /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/components/ui/calendar.tsx +0 -0
- /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/components/ui/card.tsx +0 -0
- /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/components/ui/checkbox.tsx +0 -0
- /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/components/ui/collapsible.tsx +0 -0
- /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/components/ui/datePicker.tsx +0 -0
- /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/components/ui/dialog.tsx +0 -0
- /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/components/ui/field.tsx +0 -0
- /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/components/ui/index.ts +0 -0
- /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/components/ui/input.tsx +0 -0
- /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/components/ui/label.tsx +0 -0
- /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/components/ui/pagination.tsx +0 -0
- /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/components/ui/popover.tsx +0 -0
- /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/components/ui/select.tsx +0 -0
- /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/components/ui/separator.tsx +0 -0
- /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/components/ui/skeleton.tsx +0 -0
- /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/components/ui/sonner.tsx +0 -0
- /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/components/ui/spinner.tsx +0 -0
- /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/components/ui/table.tsx +0 -0
- /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/components/ui/tabs.tsx +0 -0
- /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/lib/utils.ts +0 -0
- /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/navigationMenu.tsx +0 -0
- /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/pages/Home.tsx +0 -0
- /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/pages/NotFound.tsx +0 -0
- /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/router-utils.tsx +0 -0
- /package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/_w_/_a_/src/routes.tsx +0 -0
- /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/src/styles/global.css +0 -0
- /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/tsconfig.json +0 -0
- /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/tsconfig.node.json +0 -0
- /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/vite-env.d.ts +0 -0
- /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/vite.config.ts +0 -0
- /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/vitest-env.d.ts +0 -0
- /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/vitest.config.ts +0 -0
- /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/vitest.setup.ts +0 -0
- /package/lib/templates/project/{reactb2e → reactexternalapp}/_p_/_m_/_w_/_a_/webapplication.json +0 -0
- /package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/classes/WebAppAuthUtils.cls +0 -0
- /package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/classes/WebAppAuthUtils.cls-meta.xml +0 -0
- /package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/classes/WebAppChangePassword.cls +0 -0
- /package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/classes/WebAppChangePassword.cls-meta.xml +0 -0
- /package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/classes/WebAppForgotPassword.cls +0 -0
- /package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/classes/WebAppForgotPassword.cls-meta.xml +0 -0
- /package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/classes/WebAppLogin.cls +0 -0
- /package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/classes/WebAppLogin.cls-meta.xml +0 -0
- /package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/classes/WebAppRegistration.cls +0 -0
- /package/lib/templates/project/{reactb2x → reactexternalapp}/_p_/_m_/classes/WebAppRegistration.cls-meta.xml +0 -0
- /package/lib/templates/project/{reactb2e → reactexternalapp}/config/project-scratch-def.json +0 -0
- /package/lib/templates/project/{reactb2e → reactexternalapp}/eslint.config.js +0 -0
- /package/lib/templates/project/{reactb2e → reactexternalapp}/jest.config.js +0 -0
- /package/lib/templates/project/{reactb2e → reactexternalapp}/scripts/apex/hello.apex +0 -0
- /package/lib/templates/project/{reactb2e → reactexternalapp}/scripts/prepare-import-unique-fields.js +0 -0
- /package/lib/templates/project/{reactb2e → reactexternalapp}/scripts/setup-cli.mjs +0 -0
- /package/lib/templates/project/{reactb2e → reactexternalapp}/scripts/sf-project-setup.mjs +0 -0
- /package/lib/templates/project/{reactb2e → reactexternalapp}/scripts/soql/account.soql +0 -0
- /package/lib/templates/project/{reactb2e → reactexternalapp}/sfdx-project.json +0 -0
- /package/lib/templates/project/{reactb2x → reactinternalapp}/.forceignore +0 -0
- /package/lib/templates/project/{reactb2x → reactinternalapp}/.husky/pre-commit +0 -0
- /package/lib/templates/project/{reactb2x → reactinternalapp}/.prettierignore +0 -0
- /package/lib/templates/project/{reactb2x → reactinternalapp}/.prettierrc +0 -0
- /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/.forceignore +0 -0
- /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/.graphqlrc.yml +0 -0
- /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/.prettierignore +0 -0
- /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/.prettierrc +0 -0
- /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/CHANGELOG.md +0 -0
- /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/codegen.yml +0 -0
- /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/components.json +0 -0
- /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/e2e/app.spec.ts +0 -0
- /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/eslint.config.js +0 -0
- /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/index.html +0 -0
- /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/playwright.config.ts +0 -0
- /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/scripts/get-graphql-schema.mjs +0 -0
- /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/scripts/rewrite-e2e-assets.mjs +0 -0
- /package/lib/templates/project/{reactb2x/_p_/_m_/_w_/_a_/src/_f_/_os_/__examples__ → reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/_ex_}/api/accountSearchService.ts +0 -0
- /package/lib/templates/project/{reactb2x/_p_/_m_/_w_/_a_/src/_f_/_os_/__examples__ → reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/_ex_}/api/query/distinctAccountIndustries.graphql +0 -0
- /package/lib/templates/project/{reactb2x/_p_/_m_/_w_/_a_/src/_f_/_os_/__examples__ → reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/_ex_}/api/query/distinctAccountTypes.graphql +0 -0
- /package/lib/templates/project/{reactb2x/_p_/_m_/_w_/_a_/src/_f_/_os_/__examples__ → reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/_ex_}/api/query/getAccountDetail.graphql +0 -0
- /package/lib/templates/project/{reactb2x/_p_/_m_/_w_/_a_/src/_f_/_os_/__examples__ → reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/_ex_}/api/query/searchAccounts.graphql +0 -0
- /package/lib/templates/project/{reactb2x/_p_/_m_/_w_/_a_/src/_f_/_os_/__examples__ → reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/_ex_}/pages/AccountObjectDetailPage.tsx +0 -0
- /package/lib/templates/project/{reactb2x/_p_/_m_/_w_/_a_/src/_f_/_os_/__examples__ → reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/_ex_}/pages/Home.tsx +0 -0
- /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/_f_/_os_/api/objectSearchService.ts +0 -0
- /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/_f_/_os_/components/ActiveFilters.tsx +0 -0
- /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/_f_/_os_/components/ObjectBreadcrumb.tsx +0 -0
- /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/_f_/_os_/components/SearchBar.tsx +0 -0
- /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/_f_/_os_/components/SortControl.tsx +0 -0
- /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/_f_/_os_/utils/debounce.ts +0 -0
- /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/_f_/_os_/utils/fieldUtils.ts +0 -0
- /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/_f_/_os_/utils/filterUtils.ts +0 -0
- /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/_f_/_os_/utils/sortUtils.ts +0 -0
- /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/api/graphql-operations-types.ts +0 -0
- /package/lib/templates/project/{reactb2e → reactinternalapp}/_p_/_m_/_w_/_a_/src/app.tsx +0 -0
- /package/lib/templates/project/{reactb2e → reactinternalapp}/_p_/_m_/_w_/_a_/src/appLayout.tsx +0 -0
- /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/assets/icons/book.svg +0 -0
- /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/assets/icons/copy.svg +0 -0
- /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/assets/icons/rocket.svg +0 -0
- /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/assets/icons/star.svg +0 -0
- /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/assets/images/codey-1.png +0 -0
- /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/assets/images/codey-2.png +0 -0
- /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/assets/images/codey-3.png +0 -0
- /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/assets/images/vibe-codey.svg +0 -0
- /package/lib/templates/project/{reactb2e → reactinternalapp}/_p_/_m_/_w_/_a_/src/components/AgentforceConversationClient.tsx +0 -0
- /package/lib/templates/project/{reactb2e → reactinternalapp}/_p_/_m_/_w_/_a_/src/components/__inherit_AgentforceConversationClient.tsx +0 -0
- /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/components/alerts/status-alert.tsx +0 -0
- /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/components/layouts/card-layout.tsx +0 -0
- /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/components/ui/alert.tsx +0 -0
- /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/components/ui/badge.tsx +0 -0
- /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/components/ui/breadcrumb.tsx +0 -0
- /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/components/ui/button.tsx +0 -0
- /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/components/ui/calendar.tsx +0 -0
- /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/components/ui/card.tsx +0 -0
- /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/components/ui/checkbox.tsx +0 -0
- /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/components/ui/collapsible.tsx +0 -0
- /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/components/ui/datePicker.tsx +0 -0
- /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/components/ui/dialog.tsx +0 -0
- /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/components/ui/field.tsx +0 -0
- /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/components/ui/index.ts +0 -0
- /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/components/ui/input.tsx +0 -0
- /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/components/ui/label.tsx +0 -0
- /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/components/ui/pagination.tsx +0 -0
- /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/components/ui/popover.tsx +0 -0
- /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/components/ui/select.tsx +0 -0
- /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/components/ui/separator.tsx +0 -0
- /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/components/ui/skeleton.tsx +0 -0
- /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/components/ui/sonner.tsx +0 -0
- /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/components/ui/spinner.tsx +0 -0
- /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/components/ui/table.tsx +0 -0
- /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/components/ui/tabs.tsx +0 -0
- /package/lib/templates/project/{reactb2e → reactinternalapp}/_p_/_m_/_w_/_a_/src/index.ts +0 -0
- /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/lib/utils.ts +0 -0
- /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/navigationMenu.tsx +0 -0
- /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/pages/Home.tsx +0 -0
- /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/pages/NotFound.tsx +0 -0
- /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/router-utils.tsx +0 -0
- /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/src/styles/global.css +0 -0
- /package/lib/templates/project/{reactb2e → reactinternalapp}/_p_/_m_/_w_/_a_/src/types/conversation.ts +0 -0
- /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/tsconfig.json +0 -0
- /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/tsconfig.node.json +0 -0
- /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/vite-env.d.ts +0 -0
- /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/vite.config.ts +0 -0
- /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/vitest-env.d.ts +0 -0
- /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/vitest.config.ts +0 -0
- /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/vitest.setup.ts +0 -0
- /package/lib/templates/project/{reactb2x → reactinternalapp}/_p_/_m_/_w_/_a_/webapplication.json +0 -0
- /package/lib/templates/project/{reactb2x → reactinternalapp}/config/project-scratch-def.json +0 -0
- /package/lib/templates/project/{reactb2x → reactinternalapp}/eslint.config.js +0 -0
- /package/lib/templates/project/{reactb2x → reactinternalapp}/jest.config.js +0 -0
- /package/lib/templates/project/{reactb2x → reactinternalapp}/scripts/apex/hello.apex +0 -0
- /package/lib/templates/project/{reactb2x → reactinternalapp}/scripts/prepare-import-unique-fields.js +0 -0
- /package/lib/templates/project/{reactb2x → reactinternalapp}/scripts/setup-cli.mjs +0 -0
- /package/lib/templates/project/{reactb2x → reactinternalapp}/scripts/sf-project-setup.mjs +0 -0
- /package/lib/templates/project/{reactb2x → reactinternalapp}/scripts/soql/account.soql +0 -0
- /package/lib/templates/project/{reactb2x → reactinternalapp}/sfdx-project.json +0 -0
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Thin GraphQL client: createDataSDK + data.graphql with centralized error handling.
|
|
3
|
+
* Use with gql-tagged queries and generated operation types for type-safe calls.
|
|
4
|
+
*/
|
|
5
|
+
import { createDataSDK } from '@salesforce/sdk-data';
|
|
6
|
+
|
|
7
|
+
export async function executeGraphQL<TData, TVariables>(
|
|
8
|
+
query: string,
|
|
9
|
+
variables?: TVariables
|
|
10
|
+
): Promise<TData> {
|
|
11
|
+
const data = await createDataSDK();
|
|
12
|
+
// SDK types graphql() first param as string; at runtime it may accept gql DocumentNode too
|
|
13
|
+
const response = await data.graphql?.<TData, TVariables>(query, variables);
|
|
14
|
+
|
|
15
|
+
if (!response) {
|
|
16
|
+
throw new Error('GraphQL response is undefined');
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
if (response?.errors?.length) {
|
|
20
|
+
const msg = response.errors.map(e => e.message).join('; ');
|
|
21
|
+
throw new Error(`GraphQL Error: ${msg}`);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
return response.data;
|
|
25
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { RouteObject } from 'react-router';
|
|
2
|
+
import AppLayout from './appLayout';
|
|
3
|
+
import Home from './features/object-search/__examples__/pages/Home';
|
|
4
|
+
import NotFound from './pages/NotFound';
|
|
5
|
+
export const routes: RouteObject[] = [
|
|
6
|
+
{
|
|
7
|
+
path: "/",
|
|
8
|
+
element: <AppLayout />,
|
|
9
|
+
children: [
|
|
10
|
+
{
|
|
11
|
+
index: true,
|
|
12
|
+
element: <Home />,
|
|
13
|
+
handle: { showInNavigation: true, label: "Home" }
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
path: '*',
|
|
17
|
+
element: <NotFound />
|
|
18
|
+
}
|
|
19
|
+
]
|
|
20
|
+
}
|
|
21
|
+
];
|
|
@@ -74,10 +74,10 @@ Map user intent to PascalCase names ("accounts" → `Account`), then **run the s
|
|
|
74
74
|
|
|
75
75
|
```bash
|
|
76
76
|
# From project root — look up all relevant schema info for one or more entities
|
|
77
|
-
bash
|
|
77
|
+
bash scripts/graphql-search.sh Account
|
|
78
78
|
|
|
79
79
|
# Multiple entities at once
|
|
80
|
-
bash
|
|
80
|
+
bash scripts/graphql-search.sh Account Contact Opportunity
|
|
81
81
|
```
|
|
82
82
|
|
|
83
83
|
The script outputs five sections per entity:
|
|
@@ -213,7 +213,7 @@ const fields = response?.data?.uiapi?.objectInfos?.[0]?.fields ?? [];
|
|
|
213
213
|
|
|
214
214
|
```bash
|
|
215
215
|
# From project root — re-check the entity that caused the error
|
|
216
|
-
bash
|
|
216
|
+
bash scripts/graphql-search.sh <EntityName>
|
|
217
217
|
```
|
|
218
218
|
|
|
219
219
|
Then fix the query using the exact names from the script output.
|
|
@@ -310,7 +310,7 @@ const response = await sdk.graphql?.(GET_CURRENT_USER);
|
|
|
310
310
|
|---------|----------|-----|
|
|
311
311
|
| `npm run graphql:schema` | webapp dir | Script in webapp's package.json |
|
|
312
312
|
| `npx eslint <file>` | webapp dir | Reads eslint.config.js |
|
|
313
|
-
| `bash
|
|
313
|
+
| `bash scripts/graphql-search.sh <Entity>` | project root | Schema lookup |
|
|
314
314
|
| `sf api request rest` | project root | Needs sfdx-project.json |
|
|
315
315
|
|
|
316
316
|
---
|
|
@@ -322,7 +322,7 @@ const response = await sdk.graphql?.(GET_CURRENT_USER);
|
|
|
322
322
|
Run the search script to get all relevant schema info in one step:
|
|
323
323
|
|
|
324
324
|
```bash
|
|
325
|
-
bash
|
|
325
|
+
bash scripts/graphql-search.sh <EntityName>
|
|
326
326
|
```
|
|
327
327
|
|
|
328
328
|
| Script Output Section | Used For |
|
|
@@ -8,9 +8,9 @@ When any task involves creating a new UI, frontend, page, dashboard, form, or us
|
|
|
8
8
|
2. The app must live under `<sfdx-source>/webapplications/<AppName>/` as a WebApplication bundle.
|
|
9
9
|
3. Do not build new UIs as LWC components, Aura components, or Visualforce pages.
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
For setup from the project root, use `node scripts/setup-cli.mjs --help` and the options documented there.
|
|
12
12
|
|
|
13
13
|
## Data Access (MUST FOLLOW)
|
|
14
14
|
|
|
15
15
|
- **Never hardcode data in the app.** All data displayed in the UI must come from live Salesforce data fetching — no static arrays, mock objects, or placeholder values in production code.
|
|
16
|
-
- **
|
|
16
|
+
- **Follow `.a4drules/webapp-data.md`** before writing any data access code. All implementation must match those rules (Data SDK, supported APIs, GraphQL workflow).
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@salesforce/webapp-template-base-sfdx-project-experimental",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.114.0",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "@salesforce/webapp-template-base-sfdx-project-experimental",
|
|
9
|
-
"version": "1.
|
|
9
|
+
"version": "1.114.0",
|
|
10
10
|
"license": "SEE LICENSE IN LICENSE.txt",
|
|
11
11
|
"devDependencies": {
|
|
12
12
|
"@lwc/eslint-plugin-lwc": "^3.3.0",
|
|
@@ -1,20 +1,23 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
|
+
set -euo pipefail # exit on error (-e), undefined vars (-u), and propagate pipeline failures (-o pipefail)
|
|
2
3
|
# graphql-search.sh — Look up one or more Salesforce entities in schema.graphql.
|
|
3
4
|
#
|
|
4
5
|
# Run from the SFDX project root (where schema.graphql lives):
|
|
5
|
-
# bash
|
|
6
|
-
# bash
|
|
6
|
+
# bash scripts/graphql-search.sh Account
|
|
7
|
+
# bash scripts/graphql-search.sh Account Contact Opportunity
|
|
7
8
|
#
|
|
8
9
|
# Pass a custom schema path with -s / --schema:
|
|
9
|
-
# bash
|
|
10
|
-
# bash
|
|
10
|
+
# bash scripts/graphql-search.sh -s /path/to/schema.graphql Account
|
|
11
|
+
# bash scripts/graphql-search.sh --schema ./other/schema.graphql Account Contact
|
|
11
12
|
#
|
|
12
13
|
# Output sections per entity:
|
|
13
|
-
# 1. Type definition
|
|
14
|
-
# 2. Filter options
|
|
15
|
-
# 3. Sort options
|
|
16
|
-
# 4. Create
|
|
17
|
-
# 5.
|
|
14
|
+
# 1. Type definition — all fields and relationships
|
|
15
|
+
# 2. Filter options — <Entity>_Filter input (for `where:`)
|
|
16
|
+
# 3. Sort options — <Entity>_OrderBy input (for `orderBy:`)
|
|
17
|
+
# 4. Create mutation wrapper — <Entity>CreateInput
|
|
18
|
+
# 5. Create mutation fields — <Entity>CreateRepresentation (for create mutations)
|
|
19
|
+
# 6. Update mutation wrapper — <Entity>UpdateInput
|
|
20
|
+
# 7. Update mutation fields — <Entity>UpdateRepresentation (for update mutations)
|
|
18
21
|
|
|
19
22
|
SCHEMA="./schema.graphql"
|
|
20
23
|
|
|
@@ -62,6 +65,19 @@ if [ ! -f "$SCHEMA" ]; then
|
|
|
62
65
|
exit 1
|
|
63
66
|
fi
|
|
64
67
|
|
|
68
|
+
if [ ! -r "$SCHEMA" ]; then
|
|
69
|
+
echo "ERROR: schema.graphql is not readable at $SCHEMA"
|
|
70
|
+
echo " Check file permissions: ls -la $SCHEMA"
|
|
71
|
+
exit 1
|
|
72
|
+
fi
|
|
73
|
+
|
|
74
|
+
if [ ! -s "$SCHEMA" ]; then
|
|
75
|
+
echo "ERROR: schema.graphql is empty at $SCHEMA"
|
|
76
|
+
echo " Regenerate it from the webapp dir:"
|
|
77
|
+
echo " cd force-app/main/default/webapplications/<app-name> && npm run graphql:schema"
|
|
78
|
+
exit 1
|
|
79
|
+
fi
|
|
80
|
+
|
|
65
81
|
# ── Helper: extract lines from a grep match through the closing brace ────────
|
|
66
82
|
# Prints up to MAX_LINES lines after (and including) the first match of PATTERN.
|
|
67
83
|
# Uses a generous line count — blocks are always closed by a "}" line.
|
|
@@ -72,68 +88,104 @@ extract_block() {
|
|
|
72
88
|
local max_lines="$3"
|
|
73
89
|
|
|
74
90
|
local match
|
|
75
|
-
|
|
91
|
+
local grep_exit=0
|
|
92
|
+
match=$(grep -nE "$pattern" "$SCHEMA" | head -1) || grep_exit=$?
|
|
93
|
+
|
|
94
|
+
if [ "$grep_exit" -eq 2 ]; then
|
|
95
|
+
echo " ERROR: grep failed on pattern: $pattern" >&2
|
|
96
|
+
return 1
|
|
97
|
+
fi
|
|
76
98
|
|
|
77
99
|
if [ -z "$match" ]; then
|
|
78
100
|
echo " (not found: $pattern)"
|
|
79
|
-
return
|
|
101
|
+
return 3
|
|
80
102
|
fi
|
|
81
103
|
|
|
82
104
|
echo "### $label"
|
|
83
105
|
grep -E "$pattern" "$SCHEMA" -A "$max_lines" | \
|
|
84
106
|
awk '/^\}$/{print; exit} {print}' | \
|
|
85
|
-
head -n "$max_lines"
|
|
107
|
+
head -n "$max_lines" || true
|
|
86
108
|
echo ""
|
|
87
109
|
}
|
|
88
110
|
|
|
89
111
|
# ── Main loop ────────────────────────────────────────────────────────────────
|
|
90
112
|
|
|
91
113
|
for ENTITY in "$@"; do
|
|
114
|
+
# Validate entity name: must be a valid PascalCase identifier (letters, digits, underscores)
|
|
115
|
+
if [[ ! "$ENTITY" =~ ^[A-Za-z_][A-Za-z0-9_]*$ ]]; then
|
|
116
|
+
echo "ERROR: Invalid entity name: '$ENTITY'"
|
|
117
|
+
echo " Entity names must start with a letter or underscore, followed by letters, digits, or underscores."
|
|
118
|
+
echo " Examples: Account, My_Custom_Object__c"
|
|
119
|
+
continue
|
|
120
|
+
fi
|
|
121
|
+
|
|
92
122
|
echo ""
|
|
93
123
|
echo "======================================================================"
|
|
94
124
|
echo " SCHEMA LOOKUP: $ENTITY"
|
|
95
125
|
echo "======================================================================"
|
|
96
126
|
echo ""
|
|
97
127
|
|
|
128
|
+
found=0
|
|
129
|
+
|
|
130
|
+
# Helper: call extract_block, track matches, surface errors
|
|
131
|
+
try_extract() {
|
|
132
|
+
local rc=0
|
|
133
|
+
extract_block "$@" || rc=$?
|
|
134
|
+
if [ "$rc" -eq 0 ]; then
|
|
135
|
+
found=$((found + 1))
|
|
136
|
+
elif [ "$rc" -eq 1 ]; then
|
|
137
|
+
echo " Aborting lookup for '$ENTITY' due to grep error" >&2
|
|
138
|
+
fi
|
|
139
|
+
# rc=3 is not-found — continue silently (already printed by extract_block)
|
|
140
|
+
}
|
|
141
|
+
|
|
98
142
|
# 1. Type definition — all fields and relationships
|
|
99
|
-
|
|
143
|
+
try_extract \
|
|
100
144
|
"Type definition — fields and relationships" \
|
|
101
145
|
"^type ${ENTITY} implements Record" \
|
|
102
146
|
200
|
|
103
147
|
|
|
104
148
|
# 2. Filter input — used in `where:` arguments
|
|
105
|
-
|
|
149
|
+
try_extract \
|
|
106
150
|
"Filter options — use in where: { ... }" \
|
|
107
151
|
"^input ${ENTITY}_Filter" \
|
|
108
152
|
100
|
|
109
153
|
|
|
110
154
|
# 3. OrderBy input — used in `orderBy:` arguments
|
|
111
|
-
|
|
155
|
+
try_extract \
|
|
112
156
|
"Sort options — use in orderBy: { ... }" \
|
|
113
157
|
"^input ${ENTITY}_OrderBy" \
|
|
114
158
|
60
|
|
115
159
|
|
|
116
|
-
# 4. Create mutation
|
|
117
|
-
|
|
160
|
+
# 4. Create mutation wrapper
|
|
161
|
+
try_extract \
|
|
118
162
|
"Create mutation wrapper — ${ENTITY}CreateInput" \
|
|
119
163
|
"^input ${ENTITY}CreateInput" \
|
|
120
164
|
10
|
|
121
165
|
|
|
122
|
-
|
|
166
|
+
# 5. Create mutation fields
|
|
167
|
+
try_extract \
|
|
123
168
|
"Create mutation fields — ${ENTITY}CreateRepresentation" \
|
|
124
169
|
"^input ${ENTITY}CreateRepresentation" \
|
|
125
170
|
100
|
|
126
171
|
|
|
127
|
-
#
|
|
128
|
-
|
|
172
|
+
# 6. Update mutation wrapper
|
|
173
|
+
try_extract \
|
|
129
174
|
"Update mutation wrapper — ${ENTITY}UpdateInput" \
|
|
130
175
|
"^input ${ENTITY}UpdateInput" \
|
|
131
176
|
10
|
|
132
177
|
|
|
133
|
-
|
|
178
|
+
# 7. Update mutation fields
|
|
179
|
+
try_extract \
|
|
134
180
|
"Update mutation fields — ${ENTITY}UpdateRepresentation" \
|
|
135
181
|
"^input ${ENTITY}UpdateRepresentation" \
|
|
136
182
|
100
|
|
137
183
|
|
|
184
|
+
if [ "$found" -eq 0 ]; then
|
|
185
|
+
echo "WARNING: No schema entries found for '$ENTITY'."
|
|
186
|
+
echo " - Names are PascalCase (e.g., 'Account' not 'account')"
|
|
187
|
+
echo " - Custom objects may need deployment first"
|
|
188
|
+
fi
|
|
189
|
+
|
|
138
190
|
echo ""
|
|
139
191
|
done
|
|
@@ -15,8 +15,8 @@
|
|
|
15
15
|
"graphql:schema": "node scripts/get-graphql-schema.mjs"
|
|
16
16
|
},
|
|
17
17
|
"dependencies": {
|
|
18
|
-
"@salesforce/sdk-data": "^1.
|
|
19
|
-
"@salesforce/webapp-experimental": "^1.
|
|
18
|
+
"@salesforce/sdk-data": "^1.114.0",
|
|
19
|
+
"@salesforce/webapp-experimental": "^1.114.0",
|
|
20
20
|
"@tailwindcss/vite": "^4.1.17",
|
|
21
21
|
"class-variance-authority": "^0.7.1",
|
|
22
22
|
"clsx": "^2.1.1",
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
"@graphql-eslint/eslint-plugin": "^4.1.0",
|
|
42
42
|
"@graphql-tools/utils": "^11.0.0",
|
|
43
43
|
"@playwright/test": "^1.49.0",
|
|
44
|
-
"@salesforce/vite-plugin-webapp-experimental": "^1.
|
|
44
|
+
"@salesforce/vite-plugin-webapp-experimental": "^1.114.0",
|
|
45
45
|
"@testing-library/jest-dom": "^6.6.3",
|
|
46
46
|
"@testing-library/react": "^16.1.0",
|
|
47
47
|
"@testing-library/user-event": "^14.5.2",
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Thin GraphQL client: createDataSDK + data.graphql with centralized error handling.
|
|
3
|
+
* Use with gql-tagged queries and generated operation types for type-safe calls.
|
|
4
|
+
*/
|
|
5
|
+
import { createDataSDK } from '@salesforce/sdk-data';
|
|
6
|
+
|
|
7
|
+
export async function executeGraphQL<TData, TVariables>(
|
|
8
|
+
query: string,
|
|
9
|
+
variables?: TVariables
|
|
10
|
+
): Promise<TData> {
|
|
11
|
+
const data = await createDataSDK();
|
|
12
|
+
// SDK types graphql() first param as string; at runtime it may accept gql DocumentNode too
|
|
13
|
+
const response = await data.graphql?.<TData, TVariables>(query, variables);
|
|
14
|
+
|
|
15
|
+
if (!response) {
|
|
16
|
+
throw new Error('GraphQL response is undefined');
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
if (response?.errors?.length) {
|
|
20
|
+
const msg = response.errors.map(e => e.message).join('; ');
|
|
21
|
+
throw new Error(`GraphQL Error: ${msg}`);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
return response.data;
|
|
25
|
+
}
|
|
@@ -62,7 +62,7 @@ exports.default = [
|
|
|
62
62
|
toPath: 'skills/_k_',
|
|
63
63
|
replacement: 'feature-react-agentforce-conversation-client-embedded-agent',
|
|
64
64
|
},
|
|
65
|
-
// Path shortening under app folder (
|
|
65
|
+
// Path shortening under app folder (reactinternalapp/reactexternalapp) for Windows path length.
|
|
66
66
|
{
|
|
67
67
|
key: 'FEATURES_PLACEHOLDER',
|
|
68
68
|
placeholder: '_f_',
|
|
@@ -78,6 +78,13 @@ exports.default = [
|
|
|
78
78
|
parent: '_f_',
|
|
79
79
|
replacement: 'object-search',
|
|
80
80
|
},
|
|
81
|
+
{
|
|
82
|
+
key: 'EXAMPLES_PLACEHOLDER',
|
|
83
|
+
placeholder: '_ex_',
|
|
84
|
+
dirInNpm: '__examples__',
|
|
85
|
+
parent: '_os_',
|
|
86
|
+
replacement: '__examples__',
|
|
87
|
+
},
|
|
81
88
|
{
|
|
82
89
|
key: 'GLOBAL_SEARCH_PLACEHOLDER',
|
|
83
90
|
placeholder: '_gs_',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template-placeholders.js","sourceRoot":"","sources":["../../src/utils/template-placeholders.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAEH;;;GAGG;AACH,kBAAe;IACb;QACE,GAAG,EAAE,yBAAyB;QAC9B,WAAW,EAAE,KAAK;QAClB,QAAQ,EAAE,WAAW;QACrB,MAAM,EAAE,MAAM;QACd,WAAW,EAAE,mBAAmB;KACjC;IACD;QACE,GAAG,EAAE,0BAA0B;QAC/B,WAAW,EAAE,KAAK;QAClB,QAAQ,EAAE,cAAc;QACxB,MAAM,EAAE,KAAK;QACb,kBAAkB,EAAE,MAAM;QAC1B,WAAW,EAAE,cAAc;KAC5B;IACD;QACE,GAAG,EAAE,6BAA6B;QAClC,WAAW,EAAE,KAAK;QAClB,QAAQ,EAAE,iBAAiB;QAC3B,MAAM,EAAE,KAAK;QACb,WAAW,EAAE,iBAAiB;KAC/B;IACD;QACE,GAAG,EAAE,iCAAiC;QACtC,WAAW,EAAE,KAAK;QAClB,QAAQ,EAAE,oBAAoB;QAC9B,MAAM,EAAE,KAAK;QACb,WAAW,EAAE,oBAAoB;KAClC;IACD;QACE,GAAG,EAAE,kBAAkB;QACvB,WAAW,EAAE,KAAK;QAClB,QAAQ,EAAE,MAAM;QAChB,MAAM,EAAE,KAAK;QACb,WAAW,EAAE,MAAM;KACpB;IACD;QACE,GAAG,EAAE,sBAAsB;QAC3B,WAAW,EAAE,KAAK;QAClB,QAAQ,EAAE,WAAW;QACrB,MAAM,EAAE,MAAM;QACd,WAAW,EAAE,WAAW;KACzB;IACD;QACE,GAAG,EAAE,kCAAkC;QACvC,WAAW,EAAE,KAAK;QAClB,QAAQ,EACN,oEAAoE;QACtE,MAAM,EAAE,KAAK;QACb,MAAM,EAAE,YAAY;QACpB,WAAW,EAAE,6DAA6D;KAC3E;IACD,
|
|
1
|
+
{"version":3,"file":"template-placeholders.js","sourceRoot":"","sources":["../../src/utils/template-placeholders.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAEH;;;GAGG;AACH,kBAAe;IACb;QACE,GAAG,EAAE,yBAAyB;QAC9B,WAAW,EAAE,KAAK;QAClB,QAAQ,EAAE,WAAW;QACrB,MAAM,EAAE,MAAM;QACd,WAAW,EAAE,mBAAmB;KACjC;IACD;QACE,GAAG,EAAE,0BAA0B;QAC/B,WAAW,EAAE,KAAK;QAClB,QAAQ,EAAE,cAAc;QACxB,MAAM,EAAE,KAAK;QACb,kBAAkB,EAAE,MAAM;QAC1B,WAAW,EAAE,cAAc;KAC5B;IACD;QACE,GAAG,EAAE,6BAA6B;QAClC,WAAW,EAAE,KAAK;QAClB,QAAQ,EAAE,iBAAiB;QAC3B,MAAM,EAAE,KAAK;QACb,WAAW,EAAE,iBAAiB;KAC/B;IACD;QACE,GAAG,EAAE,iCAAiC;QACtC,WAAW,EAAE,KAAK;QAClB,QAAQ,EAAE,oBAAoB;QAC9B,MAAM,EAAE,KAAK;QACb,WAAW,EAAE,oBAAoB;KAClC;IACD;QACE,GAAG,EAAE,kBAAkB;QACvB,WAAW,EAAE,KAAK;QAClB,QAAQ,EAAE,MAAM;QAChB,MAAM,EAAE,KAAK;QACb,WAAW,EAAE,MAAM;KACpB;IACD;QACE,GAAG,EAAE,sBAAsB;QAC3B,WAAW,EAAE,KAAK;QAClB,QAAQ,EAAE,WAAW;QACrB,MAAM,EAAE,MAAM;QACd,WAAW,EAAE,WAAW;KACzB;IACD;QACE,GAAG,EAAE,kCAAkC;QACvC,WAAW,EAAE,KAAK;QAClB,QAAQ,EACN,oEAAoE;QACtE,MAAM,EAAE,KAAK;QACb,MAAM,EAAE,YAAY;QACpB,WAAW,EAAE,6DAA6D;KAC3E;IACD,gGAAgG;IAChG;QACE,GAAG,EAAE,sBAAsB;QAC3B,WAAW,EAAE,KAAK;QAClB,QAAQ,EAAE,UAAU;QACpB,MAAM,EAAE,KAAK;QACb,OAAO,EAAE,KAAK;QACd,WAAW,EAAE,UAAU;KACxB;IACD;QACE,GAAG,EAAE,2BAA2B;QAChC,WAAW,EAAE,MAAM;QACnB,QAAQ,EAAE,eAAe;QACzB,MAAM,EAAE,KAAK;QACb,WAAW,EAAE,eAAe;KAC7B;IACD;QACE,GAAG,EAAE,sBAAsB;QAC3B,WAAW,EAAE,MAAM;QACnB,QAAQ,EAAE,cAAc;QACxB,MAAM,EAAE,MAAM;QACd,WAAW,EAAE,cAAc;KAC5B;IACD;QACE,GAAG,EAAE,2BAA2B;QAChC,WAAW,EAAE,MAAM;QACnB,QAAQ,EAAE,eAAe;QACzB,MAAM,EAAE,KAAK;QACb,WAAW,EAAE,eAAe;KAC7B;IACD;QACE,GAAG,EAAE,wBAAwB;QAC7B,WAAW,EAAE,KAAK;QAClB,QAAQ,EAAE,YAAY;QACtB,MAAM,EAAE,MAAM;QACd,WAAW,EAAE,YAAY;KAC1B;IACD;QACE,GAAG,EAAE,oBAAoB;QACzB,WAAW,EAAE,OAAO;QACpB,QAAQ,EAAE,QAAQ;QAClB,MAAM,EAAE,KAAK;QACb,WAAW,EAAE,QAAQ;KACtB;IACD;QACE,GAAG,EAAE,uBAAuB;QAC5B,WAAW,EAAE,OAAO;QACpB,QAAQ,EAAE,WAAW;QACrB,MAAM,EAAE,OAAO;QACf,WAAW,EAAE,WAAW;KACzB;CACF,CAAC"}
|
package/lib/utils/types.d.ts
CHANGED
|
@@ -113,7 +113,7 @@ export interface ProjectOptions extends TemplateOptions {
|
|
|
113
113
|
* Note that namespace is a reserved keyword for yeoman generator
|
|
114
114
|
*/
|
|
115
115
|
ns: string;
|
|
116
|
-
template: 'standard' | 'empty' | 'analytics' | '
|
|
116
|
+
template: 'standard' | 'empty' | 'analytics' | 'reactinternalapp' | 'reactexternalapp' | 'agent' | 'nativemobile';
|
|
117
117
|
manifest: boolean;
|
|
118
118
|
loginurl: string;
|
|
119
119
|
}
|
|
@@ -56,6 +56,8 @@ export declare const A4D_SKILL_AGENTFORCE_PLACEHOLDER = "_k_";
|
|
|
56
56
|
export declare const FEATURES_PLACEHOLDER = "_f_";
|
|
57
57
|
/** Replaced with literal "object-search". */
|
|
58
58
|
export declare const OBJECT_SEARCH_PLACEHOLDER = "_os_";
|
|
59
|
+
/** Replaced with literal "__examples__". */
|
|
60
|
+
export declare const EXAMPLES_PLACEHOLDER = "_ex_";
|
|
59
61
|
/** Replaced with literal "global-search". */
|
|
60
62
|
export declare const GLOBAL_SEARCH_PLACEHOLDER = "_gs_";
|
|
61
63
|
/** Replaced with literal "components". */
|
|
@@ -65,12 +67,18 @@ export declare const DETAIL_PLACEHOLDER = "_det_";
|
|
|
65
67
|
/** Replaced with literal "formatted". */
|
|
66
68
|
export declare const FORMATTED_PLACEHOLDER = "_fmt_";
|
|
67
69
|
/** All placeholder keys; used by tests to assert sync with copy-templates.js */
|
|
68
|
-
export declare const PLACEHOLDER_KEYS: readonly ["PACKAGE_DIR_PLACEHOLDER", "MAIN_DEFAULT_PLACEHOLDER", "WEBAPPLICATIONS_PLACEHOLDER", "APP_PLACEHOLDER", "DIGITAL_EXPERIENCES_PLACEHOLDER", "SITE_PLACEHOLDER", "APP_SUFFIX_PLACEHOLDER", "A4DRULES_PLACEHOLDER", "A4D_SKILL_AGENTFORCE_PLACEHOLDER", "FEATURES_PLACEHOLDER", "OBJECT_SEARCH_PLACEHOLDER", "GLOBAL_SEARCH_PLACEHOLDER", "COMPONENTS_PLACEHOLDER", "DETAIL_PLACEHOLDER", "FORMATTED_PLACEHOLDER"];
|
|
70
|
+
export declare const PLACEHOLDER_KEYS: readonly ["PACKAGE_DIR_PLACEHOLDER", "MAIN_DEFAULT_PLACEHOLDER", "WEBAPPLICATIONS_PLACEHOLDER", "APP_PLACEHOLDER", "DIGITAL_EXPERIENCES_PLACEHOLDER", "SITE_PLACEHOLDER", "APP_SUFFIX_PLACEHOLDER", "A4DRULES_PLACEHOLDER", "A4D_SKILL_AGENTFORCE_PLACEHOLDER", "FEATURES_PLACEHOLDER", "OBJECT_SEARCH_PLACEHOLDER", "EXAMPLES_PLACEHOLDER", "GLOBAL_SEARCH_PLACEHOLDER", "COMPONENTS_PLACEHOLDER", "DETAIL_PLACEHOLDER", "FORMATTED_PLACEHOLDER"];
|
|
69
71
|
/**
|
|
70
72
|
* Returns a string containing only alphanumeric characters [A-Za-z0-9].
|
|
71
73
|
* Used for folder and file names under webapplications, which must be alphanumeric.
|
|
72
74
|
*/
|
|
73
75
|
export declare function toAlphanumericForPath(name: string): string;
|
|
76
|
+
/**
|
|
77
|
+
* For sfdc_cms__site content.json files, the urlName must be lowercase.
|
|
78
|
+
* Name replacements preserve casing from the project name, so we need to
|
|
79
|
+
* post-process the JSON to enforce this constraint.
|
|
80
|
+
*/
|
|
81
|
+
export declare function ensureLowercaseUrlName(content: string, destPath: string): string;
|
|
74
82
|
/** Heuristic: treat as text if no null byte in the first chunk and decodable as UTF-8 */
|
|
75
83
|
export declare function isLikelyText(filename: string, buffer: Buffer): boolean;
|
|
76
84
|
/** Renders an EJS template file with the given data (stateless, no generator dependency). */
|
|
@@ -88,7 +96,7 @@ export type GenerateBuiltInFullTemplateOptions = {
|
|
|
88
96
|
onFileCreated: (destPath: string) => void;
|
|
89
97
|
};
|
|
90
98
|
/**
|
|
91
|
-
* Generate project files from a built-in full template (e.g.
|
|
99
|
+
* Generate project files from a built-in full template (e.g. reactinternalapp, reactexternalapp).
|
|
92
100
|
* Builds template vars and name replacements and delegates to generateFromProjectTemplateDir.
|
|
93
101
|
*/
|
|
94
102
|
export declare function generateBuiltInFullTemplate(template: string, projectname: string, options: GenerateBuiltInFullTemplateOptions): Promise<void>;
|
|
@@ -101,8 +109,8 @@ export type GenerateFromProjectTemplateDirOptions = {
|
|
|
101
109
|
onFileCreated: (destPath: string) => void;
|
|
102
110
|
};
|
|
103
111
|
/**
|
|
104
|
-
* Recursively walk a full project template directory (e.g.
|
|
112
|
+
* Recursively walk a full project template directory (e.g. reactinternalapp, reactexternalapp),
|
|
105
113
|
* rendering EJS for text files and copying the rest. Renames template default app/site
|
|
106
|
-
* names (e.g.
|
|
114
|
+
* names (e.g. reactinternalapp) to the project name in paths and file contents.
|
|
107
115
|
*/
|
|
108
116
|
export declare function generateFromProjectTemplateDir(sourceDir: string, destDir: string, templateVars: Record<string, unknown>, options: GenerateFromProjectTemplateDirOptions): Promise<void>;
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.PLACEHOLDER_KEYS = exports.FORMATTED_PLACEHOLDER = exports.DETAIL_PLACEHOLDER = exports.COMPONENTS_PLACEHOLDER = exports.GLOBAL_SEARCH_PLACEHOLDER = exports.OBJECT_SEARCH_PLACEHOLDER = exports.FEATURES_PLACEHOLDER = exports.A4D_SKILL_AGENTFORCE_PLACEHOLDER = exports.A4DRULES_PLACEHOLDER = exports.APP_SUFFIX_PLACEHOLDER = exports.SITE_PLACEHOLDER = exports.DIGITAL_EXPERIENCES_PLACEHOLDER = exports.APP_PLACEHOLDER = exports.WEBAPPLICATIONS_PLACEHOLDER = exports.MAIN_DEFAULT_PLACEHOLDER = exports.PACKAGE_DIR_PLACEHOLDER = exports.WINDOWS_MAX_ALLOWABLE_PATH_LENGTH = exports.FULL_TEMPLATE_SKIP_DIRS = exports.FULL_TEMPLATE_DEFAULT_NAMES = exports.BUILT_IN_FULL_TEMPLATES = exports.EJS_EXTENSIONS = void 0;
|
|
3
|
+
exports.PLACEHOLDER_KEYS = exports.FORMATTED_PLACEHOLDER = exports.DETAIL_PLACEHOLDER = exports.COMPONENTS_PLACEHOLDER = exports.GLOBAL_SEARCH_PLACEHOLDER = exports.EXAMPLES_PLACEHOLDER = exports.OBJECT_SEARCH_PLACEHOLDER = exports.FEATURES_PLACEHOLDER = exports.A4D_SKILL_AGENTFORCE_PLACEHOLDER = exports.A4DRULES_PLACEHOLDER = exports.APP_SUFFIX_PLACEHOLDER = exports.SITE_PLACEHOLDER = exports.DIGITAL_EXPERIENCES_PLACEHOLDER = exports.APP_PLACEHOLDER = exports.WEBAPPLICATIONS_PLACEHOLDER = exports.MAIN_DEFAULT_PLACEHOLDER = exports.PACKAGE_DIR_PLACEHOLDER = exports.WINDOWS_MAX_ALLOWABLE_PATH_LENGTH = exports.FULL_TEMPLATE_SKIP_DIRS = exports.FULL_TEMPLATE_DEFAULT_NAMES = exports.BUILT_IN_FULL_TEMPLATES = exports.EJS_EXTENSIONS = void 0;
|
|
4
4
|
exports.copyTreeSanitized = copyTreeSanitized;
|
|
5
5
|
exports.toAlphanumericForPath = toAlphanumericForPath;
|
|
6
|
+
exports.ensureLowercaseUrlName = ensureLowercaseUrlName;
|
|
6
7
|
exports.isLikelyText = isLikelyText;
|
|
7
8
|
exports.renderEjsFile = renderEjsFile;
|
|
8
9
|
exports.generateBuiltInFullTemplate = generateBuiltInFullTemplate;
|
|
@@ -82,19 +83,22 @@ exports.EJS_EXTENSIONS = new Set([
|
|
|
82
83
|
'.config.ts',
|
|
83
84
|
]);
|
|
84
85
|
/** Templates that have a full folder under src/templates/project/ (populated at build time from npm) */
|
|
85
|
-
exports.BUILT_IN_FULL_TEMPLATES = new Set([
|
|
86
|
+
exports.BUILT_IN_FULL_TEMPLATES = new Set([
|
|
87
|
+
'reactinternalapp',
|
|
88
|
+
'reactexternalapp',
|
|
89
|
+
]);
|
|
86
90
|
/**
|
|
87
91
|
* Default app/site names embedded in each full template; all are renamed to the project name.
|
|
88
92
|
* Order matters: replace longer (suffix) first to avoid partial replacements.
|
|
89
93
|
*/
|
|
90
94
|
exports.FULL_TEMPLATE_DEFAULT_NAMES = {
|
|
91
|
-
|
|
92
|
-
base: '
|
|
93
|
-
withSuffix: '
|
|
95
|
+
reactinternalapp: {
|
|
96
|
+
base: 'reactinternalapp',
|
|
97
|
+
withSuffix: 'reactinternalapp1',
|
|
94
98
|
},
|
|
95
|
-
|
|
96
|
-
base: '
|
|
97
|
-
withSuffix: '
|
|
99
|
+
reactexternalapp: {
|
|
100
|
+
base: 'reactexternalapp',
|
|
101
|
+
withSuffix: 'reactexternalapp1',
|
|
98
102
|
},
|
|
99
103
|
};
|
|
100
104
|
/** Directories to skip when walking a full template dir (e.g. node_modules) */
|
|
@@ -133,6 +137,8 @@ exports.A4D_SKILL_AGENTFORCE_PLACEHOLDER = '_k_';
|
|
|
133
137
|
exports.FEATURES_PLACEHOLDER = '_f_';
|
|
134
138
|
/** Replaced with literal "object-search". */
|
|
135
139
|
exports.OBJECT_SEARCH_PLACEHOLDER = '_os_';
|
|
140
|
+
/** Replaced with literal "__examples__". */
|
|
141
|
+
exports.EXAMPLES_PLACEHOLDER = '_ex_';
|
|
136
142
|
/** Replaced with literal "global-search". */
|
|
137
143
|
exports.GLOBAL_SEARCH_PLACEHOLDER = '_gs_';
|
|
138
144
|
/** Replaced with literal "components". */
|
|
@@ -154,6 +160,7 @@ exports.PLACEHOLDER_KEYS = [
|
|
|
154
160
|
'A4D_SKILL_AGENTFORCE_PLACEHOLDER',
|
|
155
161
|
'FEATURES_PLACEHOLDER',
|
|
156
162
|
'OBJECT_SEARCH_PLACEHOLDER',
|
|
163
|
+
'EXAMPLES_PLACEHOLDER',
|
|
157
164
|
'GLOBAL_SEARCH_PLACEHOLDER',
|
|
158
165
|
'COMPONENTS_PLACEHOLDER',
|
|
159
166
|
'DETAIL_PLACEHOLDER',
|
|
@@ -179,6 +186,31 @@ function resolveReplacement(replacement, ctx) {
|
|
|
179
186
|
function toAlphanumericForPath(name) {
|
|
180
187
|
return name.replace(/[^A-Za-z0-9]/g, '');
|
|
181
188
|
}
|
|
189
|
+
/**
|
|
190
|
+
* For sfdc_cms__site content.json files, the urlName must be lowercase.
|
|
191
|
+
* Name replacements preserve casing from the project name, so we need to
|
|
192
|
+
* post-process the JSON to enforce this constraint.
|
|
193
|
+
*/
|
|
194
|
+
function ensureLowercaseUrlName(content, destPath) {
|
|
195
|
+
if (path.basename(destPath) !== 'content.json' ||
|
|
196
|
+
!destPath.includes(`sfdc_cms__site${path.sep}`)) {
|
|
197
|
+
return content;
|
|
198
|
+
}
|
|
199
|
+
try {
|
|
200
|
+
const parsed = JSON.parse(content);
|
|
201
|
+
if (typeof parsed.urlName === 'string') {
|
|
202
|
+
const lower = parsed.urlName.toLowerCase();
|
|
203
|
+
if (lower !== parsed.urlName) {
|
|
204
|
+
parsed.urlName = lower;
|
|
205
|
+
return JSON.stringify(parsed, null, 2) + '\n';
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
catch (_a) {
|
|
210
|
+
// not valid JSON, return as-is
|
|
211
|
+
}
|
|
212
|
+
return content;
|
|
213
|
+
}
|
|
182
214
|
/** Heuristic: treat as text if no null byte in the first chunk and decodable as UTF-8 */
|
|
183
215
|
function isLikelyText(filename, buffer) {
|
|
184
216
|
const ext = path.extname(filename).toLowerCase();
|
|
@@ -228,7 +260,7 @@ function renderEjsFile(sourcePath, data) {
|
|
|
228
260
|
});
|
|
229
261
|
}
|
|
230
262
|
/**
|
|
231
|
-
* Generate project files from a built-in full template (e.g.
|
|
263
|
+
* Generate project files from a built-in full template (e.g. reactinternalapp, reactexternalapp).
|
|
232
264
|
* Builds template vars and name replacements and delegates to generateFromProjectTemplateDir.
|
|
233
265
|
*/
|
|
234
266
|
function generateBuiltInFullTemplate(template, projectname, options) {
|
|
@@ -266,9 +298,9 @@ function generateBuiltInFullTemplate(template, projectname, options) {
|
|
|
266
298
|
});
|
|
267
299
|
}
|
|
268
300
|
/**
|
|
269
|
-
* Recursively walk a full project template directory (e.g.
|
|
301
|
+
* Recursively walk a full project template directory (e.g. reactinternalapp, reactexternalapp),
|
|
270
302
|
* rendering EJS for text files and copying the rest. Renames template default app/site
|
|
271
|
-
* names (e.g.
|
|
303
|
+
* names (e.g. reactinternalapp) to the project name in paths and file contents.
|
|
272
304
|
*/
|
|
273
305
|
function generateFromProjectTemplateDir(sourceDir, destDir, templateVars, options) {
|
|
274
306
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
@@ -313,7 +345,7 @@ function generateFromProjectTemplateDir(sourceDir, destDir, templateVars, option
|
|
|
313
345
|
if (isEjsTemplate) {
|
|
314
346
|
try {
|
|
315
347
|
const rendered = yield renderEjs(sourcePath, templateVars);
|
|
316
|
-
const content = applyReplacements(rendered);
|
|
348
|
+
const content = ensureLowercaseUrlName(applyReplacements(rendered), destPath);
|
|
317
349
|
yield (0, promises_1.mkdir)(path.dirname(destPath), { recursive: true });
|
|
318
350
|
yield (0, promises_1.writeFile)(destPath, content, 'utf8');
|
|
319
351
|
onFileCreated(destPath);
|
|
@@ -321,7 +353,7 @@ function generateFromProjectTemplateDir(sourceDir, destDir, templateVars, option
|
|
|
321
353
|
catch (_a) {
|
|
322
354
|
const raw = yield (0, promises_1.readFile)(sourcePath);
|
|
323
355
|
const str = raw.toString('utf8');
|
|
324
|
-
const content = applyReplacements(str);
|
|
356
|
+
const content = ensureLowercaseUrlName(applyReplacements(str), destPath);
|
|
325
357
|
yield (0, promises_1.mkdir)(path.dirname(destPath), { recursive: true });
|
|
326
358
|
yield (0, promises_1.writeFile)(destPath, content, 'utf8');
|
|
327
359
|
onFileCreated(destPath);
|
|
@@ -333,7 +365,7 @@ function generateFromProjectTemplateDir(sourceDir, destDir, templateVars, option
|
|
|
333
365
|
const isText = isLikelyText(entry.name, content);
|
|
334
366
|
if (isText && (nameReplacements === null || nameReplacements === void 0 ? void 0 : nameReplacements.length)) {
|
|
335
367
|
const str = content.toString('utf8');
|
|
336
|
-
const replaced = applyReplacements(str);
|
|
368
|
+
const replaced = ensureLowercaseUrlName(applyReplacements(str), destPath);
|
|
337
369
|
yield (0, promises_1.writeFile)(destPath, replaced, 'utf8');
|
|
338
370
|
}
|
|
339
371
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webappTemplateUtils.js","sourceRoot":"","sources":["../../src/utils/webappTemplateUtils.ts"],"names":[],"mappings":";;;AAqCA,8CAqBC;
|
|
1
|
+
{"version":3,"file":"webappTemplateUtils.js","sourceRoot":"","sources":["../../src/utils/webappTemplateUtils.ts"],"names":[],"mappings":"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"}
|