@salesforce/templates 66.13.5 → 66.13.7

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.
Files changed (281) hide show
  1. package/lib/templates/project/angularextapp/CHANGELOG.md +258 -0
  2. package/lib/templates/project/angularextapp/_p_/_m_/_w_/_a_/angular.json +1 -1
  3. package/lib/templates/project/angularextapp/_p_/_m_/_w_/_a_/eslint-plugin-angular-graphql.js +148 -0
  4. package/lib/templates/project/angularextapp/_p_/_m_/_w_/_a_/eslint.config.js +9 -1
  5. package/lib/templates/project/angularextapp/_p_/_m_/_w_/_a_/package-lock.json +680 -408
  6. package/lib/templates/project/angularextapp/_p_/_m_/_w_/_a_/package.json +2 -2
  7. package/lib/templates/project/angularextapp/package.json +1 -1
  8. package/lib/templates/project/angularextapp/scripts/org-setup-config-schema.mjs +17 -0
  9. package/lib/templates/project/angularextapp/scripts/org-setup-utils.mjs +33 -3
  10. package/lib/templates/project/angularextapp/scripts/org-setup.mjs +535 -3
  11. package/lib/templates/project/angularintapp/CHANGELOG.md +266 -0
  12. package/lib/templates/project/angularintapp/_p_/_m_/_w_/_a_/angular.json +1 -1
  13. package/lib/templates/project/angularintapp/_p_/_m_/_w_/_a_/eslint-plugin-angular-graphql.js +148 -0
  14. package/lib/templates/project/angularintapp/_p_/_m_/_w_/_a_/eslint.config.js +9 -1
  15. package/lib/templates/project/angularintapp/_p_/_m_/_w_/_a_/package-lock.json +690 -418
  16. package/lib/templates/project/angularintapp/_p_/_m_/_w_/_a_/package.json +2 -2
  17. package/lib/templates/project/angularintapp/_p_/_m_/_w_/_a_/src/app/features/agentforce/agentforce-embed.service.ts +6 -1
  18. package/lib/templates/project/angularintapp/package.json +1 -1
  19. package/lib/templates/project/angularintapp/scripts/org-setup-config-schema.mjs +17 -0
  20. package/lib/templates/project/angularintapp/scripts/org-setup-utils.mjs +33 -3
  21. package/lib/templates/project/angularintapp/scripts/org-setup.mjs +535 -3
  22. package/lib/templates/project/reactexternalapp/CHANGELOG.md +1409 -0
  23. package/lib/templates/project/reactexternalapp/PRD.md +38 -0
  24. package/lib/templates/project/reactexternalapp/README.md +14 -10
  25. package/lib/templates/project/reactexternalapp/_p_/_m_/_ps_/reactexternalapp_Guest_User_Api_Access.permissionset-meta.xml +25 -0
  26. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/package-lock.json +953 -714
  27. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/package.json +9 -7
  28. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/scripts/get-graphql-schema.mjs +8 -5
  29. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/_ls_/LanguageSwitcher.tsx +116 -0
  30. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/_ls_/__examples__/language-switcher-example.tsx +36 -0
  31. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/_ls_/__examples__/vite-config-site-example.ts +44 -0
  32. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/_ls_/buildLanguageUrl.ts +158 -0
  33. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/_ls_/index.ts +28 -0
  34. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/_ls_/languages.ts +46 -0
  35. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/authentication/components/SocialLogin.tsx +141 -0
  36. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/authentication/pages/Login.tsx +2 -0
  37. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/search/README.md +246 -0
  38. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/search/adapters/cms/api/apiUtils.ts +56 -0
  39. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/search/adapters/cms/api/orgApiVersionService.ts +37 -0
  40. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/search/adapters/cms/api/searchableContentTypesService.ts +116 -0
  41. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/search/adapters/cms/channelResolver.ts +40 -0
  42. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/search/adapters/cms/cmsQueryFragment.ts +97 -0
  43. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/search/adapters/cms/contentTypeSessionCache.ts +134 -0
  44. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/search/adapters/cms/contentTypeUtils.ts +38 -0
  45. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/search/adapters/cms/hooks/useSearchableContentTypes.ts +128 -0
  46. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/search/adapters/cms/index.ts +54 -0
  47. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/search/adapters/cms/parseResponse.ts +65 -0
  48. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/search/adapters/cms/searchChannel.ts +15 -0
  49. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/search/adapters/cms/types.ts +66 -0
  50. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/search/adapters/registry.ts +38 -0
  51. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/search/adapters/sobject/index.ts +19 -0
  52. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/search/adapters/sobject/parseResponse.ts +56 -0
  53. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/search/adapters/sobject/queryFragment.ts +141 -0
  54. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/search/adapters/types.ts +101 -0
  55. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/search/api/distinctValuesService.ts +84 -0
  56. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/search/api/searchService.ts +136 -0
  57. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/search/components/GlobalSearchBox.tsx +98 -0
  58. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/search/components/MergedSearchResults.tsx +294 -0
  59. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/search/components/Search.tsx +203 -0
  60. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/search/components/SearchResults.tsx +88 -0
  61. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/search/components/SourceSection.tsx +187 -0
  62. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/search/components/controls/PaginationControls.tsx +185 -0
  63. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/search/components/controls/ScopeSelector.tsx +107 -0
  64. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/search/components/controls/SearchBar.tsx +55 -0
  65. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/search/components/controls/SortControl.tsx +62 -0
  66. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/search/components/filters/ActiveFilters.tsx +61 -0
  67. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/search/components/filters/DefaultFilterPanel.tsx +125 -0
  68. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/{_os_/components → search/components/filters}/FilterContext.tsx +7 -20
  69. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/search/components/filters/inputs/BooleanFilter.tsx +50 -0
  70. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/search/components/filters/inputs/DateRangeFilter.tsx +160 -0
  71. package/lib/templates/project/{reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/components/filters → reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/search/components/filters/inputs}/FilterFieldWrapper.tsx +11 -6
  72. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/search/components/filters/inputs/MultiSelectFilter.tsx +89 -0
  73. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/search/components/filters/inputs/NumericRangeFilter.tsx +108 -0
  74. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/search/components/filters/inputs/SelectFilter.tsx +46 -0
  75. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/search/components/filters/inputs/TextFilter.tsx +52 -0
  76. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/search/components/results/CmsResultRow.tsx +101 -0
  77. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/search/components/results/DefaultResultRow.tsx +109 -0
  78. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/search/components/results/resolveResultRenderer.ts +49 -0
  79. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/search/config.json +88 -0
  80. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/search/constants.ts +8 -0
  81. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/{_os_ → search}/hooks/useAsyncData.ts +3 -10
  82. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/search/hooks/useDistinctValues.ts +59 -0
  83. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/search/hooks/useSearch.ts +966 -0
  84. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/search/index.ts +115 -0
  85. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/search/loadConfig.ts +14 -0
  86. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/search/queryBuilder.ts +100 -0
  87. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/search/types.ts +376 -0
  88. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/search/utils/debounce.ts +17 -0
  89. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/search/utils/fieldUtils.ts +14 -0
  90. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/search/utils/filterUtils.ts +285 -0
  91. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/search/utils/sortUtils.ts +34 -0
  92. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/api/graphqlClient.ts +24 -8
  93. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/appLayout.tsx +7 -0
  94. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/components/CustomerWebClientChat.tsx +74 -0
  95. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/{_f_/_os_/components → components}/ObjectBreadcrumb.tsx +7 -2
  96. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/components/ui/button.tsx +1 -1
  97. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/components/ui/datePicker.tsx +2 -2
  98. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/components/ui/table.tsx +9 -2
  99. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/index.ts +8 -0
  100. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/pages/AccountObjectDetailPage.tsx +53 -18
  101. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/pages/Home.tsx +3 -27
  102. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/pages/TestChatPage.tsx +26 -0
  103. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/routes.tsx +21 -8
  104. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/types/chat.ts +36 -0
  105. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/types/globals.d.ts +23 -0
  106. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/{_f_/_os_/utils/fieldUtils.ts → utils/accountFields.ts} +9 -0
  107. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/tsconfig.json +2 -2
  108. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/tsconfig.tsbuildinfo +1 -0
  109. package/lib/templates/project/reactexternalapp/_p_/_m_/classes/UIBundleSocialLoginConfig.cls +133 -0
  110. package/lib/templates/project/reactexternalapp/_p_/_m_/classes/UIBundleSocialLoginConfig.cls-meta.xml +5 -0
  111. package/lib/templates/project/reactexternalapp/_p_/_m_/classes/UIBundleSocialLoginConfig_Test.cls +101 -0
  112. package/lib/templates/project/reactexternalapp/_p_/_m_/classes/UIBundleSocialLoginConfig_Test.cls-meta.xml +5 -0
  113. package/lib/templates/project/reactexternalapp/_p_/_m_/package.xml +4 -0
  114. package/lib/templates/project/reactexternalapp/package.json +8 -2
  115. package/lib/templates/project/reactexternalapp/scripts/org-setup-config-schema.mjs +120 -0
  116. package/lib/templates/project/reactexternalapp/scripts/org-setup-dev.mjs +87 -0
  117. package/lib/templates/project/reactexternalapp/scripts/org-setup-utils.mjs +569 -0
  118. package/lib/templates/project/reactexternalapp/scripts/org-setup-xml.mjs +182 -0
  119. package/lib/templates/project/reactexternalapp/scripts/org-setup.config.json +6 -2
  120. package/lib/templates/project/reactexternalapp/scripts/org-setup.mjs +1509 -328
  121. package/lib/templates/project/reactexternalapp/scripts/validate-org-setup-config.mjs +38 -0
  122. package/lib/templates/project/reactinternalapp/CHANGELOG.md +1223 -0
  123. package/lib/templates/project/reactinternalapp/PRD.md +35 -0
  124. package/lib/templates/project/reactinternalapp/README.md +14 -10
  125. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/package-lock.json +813 -538
  126. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/package.json +10 -9
  127. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/search/README.md +246 -0
  128. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/search/adapters/cms/api/apiUtils.ts +56 -0
  129. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/search/adapters/cms/api/orgApiVersionService.ts +37 -0
  130. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/search/adapters/cms/api/searchableContentTypesService.ts +116 -0
  131. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/search/adapters/cms/channelResolver.ts +40 -0
  132. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/search/adapters/cms/cmsQueryFragment.ts +97 -0
  133. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/search/adapters/cms/contentTypeSessionCache.ts +134 -0
  134. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/search/adapters/cms/contentTypeUtils.ts +38 -0
  135. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/search/adapters/cms/hooks/useSearchableContentTypes.ts +128 -0
  136. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/search/adapters/cms/index.ts +54 -0
  137. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/search/adapters/cms/parseResponse.ts +65 -0
  138. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/search/adapters/cms/searchChannel.ts +15 -0
  139. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/search/adapters/cms/types.ts +66 -0
  140. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/search/adapters/registry.ts +38 -0
  141. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/search/adapters/sobject/index.ts +19 -0
  142. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/search/adapters/sobject/parseResponse.ts +56 -0
  143. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/search/adapters/sobject/queryFragment.ts +141 -0
  144. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/search/adapters/types.ts +101 -0
  145. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/search/api/distinctValuesService.ts +84 -0
  146. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/search/api/searchService.ts +136 -0
  147. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/search/components/GlobalSearchBox.tsx +98 -0
  148. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/search/components/MergedSearchResults.tsx +294 -0
  149. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/search/components/Search.tsx +203 -0
  150. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/search/components/SearchResults.tsx +88 -0
  151. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/search/components/SourceSection.tsx +187 -0
  152. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/search/components/controls/PaginationControls.tsx +185 -0
  153. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/search/components/controls/ScopeSelector.tsx +107 -0
  154. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/search/components/controls/SearchBar.tsx +55 -0
  155. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/search/components/controls/SortControl.tsx +62 -0
  156. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/search/components/filters/ActiveFilters.tsx +61 -0
  157. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/search/components/filters/DefaultFilterPanel.tsx +125 -0
  158. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/{_os_/components → search/components/filters}/FilterContext.tsx +7 -20
  159. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/search/components/filters/inputs/BooleanFilter.tsx +50 -0
  160. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/search/components/filters/inputs/DateRangeFilter.tsx +160 -0
  161. package/lib/templates/project/{reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/components/filters → reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/search/components/filters/inputs}/FilterFieldWrapper.tsx +11 -6
  162. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/search/components/filters/inputs/MultiSelectFilter.tsx +89 -0
  163. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/search/components/filters/inputs/NumericRangeFilter.tsx +108 -0
  164. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/search/components/filters/inputs/SelectFilter.tsx +46 -0
  165. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/search/components/filters/inputs/TextFilter.tsx +52 -0
  166. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/search/components/results/CmsResultRow.tsx +101 -0
  167. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/search/components/results/DefaultResultRow.tsx +109 -0
  168. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/search/components/results/resolveResultRenderer.ts +49 -0
  169. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/search/config.json +88 -0
  170. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/search/constants.ts +8 -0
  171. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/{_os_ → search}/hooks/useAsyncData.ts +3 -10
  172. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/search/hooks/useDistinctValues.ts +59 -0
  173. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/search/hooks/useSearch.ts +966 -0
  174. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/search/index.ts +115 -0
  175. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/search/loadConfig.ts +14 -0
  176. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/search/queryBuilder.ts +100 -0
  177. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/search/types.ts +376 -0
  178. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/search/utils/debounce.ts +17 -0
  179. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/search/utils/fieldUtils.ts +14 -0
  180. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/search/utils/filterUtils.ts +285 -0
  181. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/search/utils/sortUtils.ts +34 -0
  182. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/components/AgentforceConversationClient.tsx +16 -132
  183. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/{_f_/_os_/components → components}/ObjectBreadcrumb.tsx +7 -2
  184. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/components/ui/button.tsx +1 -1
  185. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/components/ui/datePicker.tsx +2 -2
  186. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/components/ui/table.tsx +9 -2
  187. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/pages/AccountObjectDetailPage.tsx +49 -16
  188. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/pages/Home.tsx +3 -27
  189. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/routes.tsx +12 -5
  190. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/{_f_/_os_/utils/fieldUtils.ts → utils/accountFields.ts} +9 -0
  191. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/tsconfig.json +2 -2
  192. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/tsconfig.tsbuildinfo +1 -0
  193. package/lib/templates/project/reactinternalapp/package.json +4 -2
  194. package/lib/templates/project/reactinternalapp/scripts/org-setup-config-schema.mjs +24 -0
  195. package/lib/templates/project/reactinternalapp/scripts/org-setup-dev.mjs +87 -0
  196. package/lib/templates/project/reactinternalapp/scripts/org-setup-utils.mjs +569 -0
  197. package/lib/templates/project/reactinternalapp/scripts/org-setup-xml.mjs +182 -0
  198. package/lib/templates/project/reactinternalapp/scripts/org-setup.mjs +1162 -214
  199. package/lib/templates/uiBundles/angularbasic/angular.json +1 -1
  200. package/lib/templates/uiBundles/angularbasic/eslint-plugin-angular-graphql.js +148 -0
  201. package/lib/templates/uiBundles/angularbasic/eslint.config.js +9 -1
  202. package/lib/templates/uiBundles/angularbasic/package-lock.json +680 -408
  203. package/lib/templates/uiBundles/angularbasic/package.json +2 -2
  204. package/lib/templates/uiBundles/reactbasic/package-lock.json +738 -440
  205. package/lib/utils/template-placeholders.js +14 -0
  206. package/lib/utils/template-placeholders.js.map +1 -1
  207. package/lib/utils/uiBundleTemplateUtils.d.ts +5 -1
  208. package/lib/utils/uiBundleTemplateUtils.js +7 -1
  209. package/lib/utils/uiBundleTemplateUtils.js.map +1 -1
  210. package/package.json +7 -7
  211. package/lib/templates/project/reactexternalapp/AGENT.md +0 -252
  212. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/_ex_/api/accountSearchService.ts +0 -46
  213. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/_ex_/api/query/distinctAccountIndustries.graphql +0 -19
  214. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/_ex_/api/query/distinctAccountTypes.graphql +0 -19
  215. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/_ex_/api/query/getAccountDetail.graphql +0 -121
  216. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/_ex_/api/query/searchAccounts.graphql +0 -51
  217. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/_ex_/pages/AccountObjectDetailPage.tsx +0 -355
  218. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/_ex_/pages/AccountSearch.tsx +0 -304
  219. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/_ex_/pages/Home.tsx +0 -34
  220. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/api/objectSearchService.ts +0 -82
  221. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/components/ActiveFilters.tsx +0 -89
  222. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/components/PaginationControls.tsx +0 -109
  223. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/components/SearchBar.tsx +0 -41
  224. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/components/SortControl.tsx +0 -143
  225. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/components/filters/BooleanFilter.tsx +0 -78
  226. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/components/filters/DateFilter.tsx +0 -128
  227. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/components/filters/DateRangeFilter.tsx +0 -70
  228. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/components/filters/MultiSelectFilter.tsx +0 -97
  229. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/components/filters/NumericRangeFilter.tsx +0 -167
  230. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/components/filters/SearchFilter.tsx +0 -52
  231. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/components/filters/SelectFilter.tsx +0 -97
  232. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/components/filters/TextFilter.tsx +0 -93
  233. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/hooks/useDebouncedCallback.ts +0 -34
  234. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/hooks/useObjectSearchParams.ts +0 -254
  235. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/utils/debounce.ts +0 -25
  236. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/utils/filterUtils.ts +0 -404
  237. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/utils/sortUtils.ts +0 -38
  238. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/api/account/accountSearchService.ts +0 -46
  239. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/api/account/query/distinctAccountIndustries.graphql +0 -19
  240. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/api/account/query/distinctAccountTypes.graphql +0 -19
  241. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/api/account/query/searchAccounts.graphql +0 -51
  242. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/api/graphql-operations-types.ts +0 -11260
  243. package/lib/templates/project/reactexternalapp/_p_/_m_/_w_/_a_/src/pages/AccountSearch.tsx +0 -297
  244. package/lib/templates/project/reactexternalapp/scripts/prepare-import-unique-fields.js +0 -122
  245. package/lib/templates/project/reactinternalapp/AGENT.md +0 -252
  246. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/_ex_/api/accountSearchService.ts +0 -46
  247. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/_ex_/api/query/distinctAccountIndustries.graphql +0 -19
  248. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/_ex_/api/query/distinctAccountTypes.graphql +0 -19
  249. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/_ex_/api/query/getAccountDetail.graphql +0 -121
  250. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/_ex_/api/query/searchAccounts.graphql +0 -51
  251. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/_ex_/pages/AccountObjectDetailPage.tsx +0 -355
  252. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/_ex_/pages/AccountSearch.tsx +0 -304
  253. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/_ex_/pages/Home.tsx +0 -34
  254. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/api/objectSearchService.ts +0 -82
  255. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/components/ActiveFilters.tsx +0 -89
  256. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/components/PaginationControls.tsx +0 -109
  257. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/components/SearchBar.tsx +0 -41
  258. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/components/SortControl.tsx +0 -143
  259. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/components/filters/BooleanFilter.tsx +0 -78
  260. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/components/filters/DateFilter.tsx +0 -128
  261. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/components/filters/DateRangeFilter.tsx +0 -70
  262. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/components/filters/MultiSelectFilter.tsx +0 -97
  263. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/components/filters/NumericRangeFilter.tsx +0 -167
  264. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/components/filters/SearchFilter.tsx +0 -52
  265. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/components/filters/SelectFilter.tsx +0 -97
  266. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/components/filters/TextFilter.tsx +0 -93
  267. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/hooks/useDebouncedCallback.ts +0 -34
  268. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/hooks/useObjectSearchParams.ts +0 -254
  269. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/utils/debounce.ts +0 -25
  270. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/utils/filterUtils.ts +0 -404
  271. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/_f_/_os_/utils/sortUtils.ts +0 -38
  272. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/api/account/accountSearchService.ts +0 -46
  273. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/api/account/query/distinctAccountIndustries.graphql +0 -19
  274. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/api/account/query/distinctAccountTypes.graphql +0 -19
  275. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/api/account/query/searchAccounts.graphql +0 -51
  276. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/api/graphql-operations-types.ts +0 -11260
  277. package/lib/templates/project/reactinternalapp/_p_/_m_/_w_/_a_/src/pages/AccountSearch.tsx +0 -297
  278. package/lib/templates/project/reactinternalapp/scripts/prepare-import-unique-fields.js +0 -122
  279. /package/lib/templates/project/angularextapp/_p_/_m_/{permissionsets → _ps_}/angularextapp_Guest_User_Api_Access.permissionset-meta.xml +0 -0
  280. /package/lib/templates/project/angularintapp/_p_/_m_/{permissionsets → _ps_}/angularintapp_Access.permissionset-meta.xml +0 -0
  281. /package/lib/templates/project/reactinternalapp/_p_/_m_/{permissionsets → _ps_}/reactinternalapp_Access.permissionset-meta.xml +0 -0
@@ -3,6 +3,264 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [11.49.2](https://github.com/salesforce-experience-platform-emu/webapps/compare/v11.49.1...v11.49.2) (2026-08-05)
7
+
8
+ **Note:** Version bump only for package @salesforce/ui-bundle-template-base-sfdx-project
9
+
10
+
11
+
12
+
13
+
14
+ ## [11.49.1](https://github.com/salesforce-experience-platform-emu/webapps/compare/v11.49.0...v11.49.1) (2026-08-05)
15
+
16
+ **Note:** Version bump only for package @salesforce/ui-bundle-template-base-sfdx-project
17
+
18
+
19
+
20
+
21
+
22
+ ## [11.49.0](https://github.com/salesforce-experience-platform-emu/webapps/compare/v11.48.0...v11.49.0) (2026-08-05)
23
+
24
+ **Note:** Version bump only for package @salesforce/ui-bundle-template-base-sfdx-project
25
+
26
+
27
+
28
+
29
+
30
+ ## [11.48.0](https://github.com/salesforce-experience-platform-emu/webapps/compare/v11.47.1...v11.48.0) (2026-08-05)
31
+
32
+
33
+ ### Features
34
+
35
+ * **auth:** upmerge React authentication feature (IDP/SSO + MFA) from webapps-develop @W-23707015 ([#846](https://github.com/salesforce-experience-platform-emu/webapps/issues/846)) ([4179304](https://github.com/salesforce-experience-platform-emu/webapps/commit/4179304b8a36eeca6ae599398fa7e73ee1bbb266))
36
+
37
+
38
+
39
+ ## [11.47.1](https://github.com/salesforce-experience-platform-emu/webapps/compare/v11.47.0...v11.47.1) (2026-08-05)
40
+
41
+ **Note:** Version bump only for package @salesforce/ui-bundle-template-base-sfdx-project
42
+
43
+
44
+
45
+
46
+
47
+ ## [11.47.0](https://github.com/salesforce-experience-platform-emu/webapps/compare/v11.46.1...v11.47.0) (2026-08-04)
48
+
49
+ **Note:** Version bump only for package @salesforce/ui-bundle-template-base-sfdx-project
50
+
51
+
52
+
53
+
54
+
55
+ ## [11.46.1](https://github.com/salesforce-experience-platform-emu/webapps/compare/v11.46.0...v11.46.1) (2026-08-04)
56
+
57
+ **Note:** Version bump only for package @salesforce/ui-bundle-template-base-sfdx-project
58
+
59
+
60
+
61
+
62
+
63
+ ## [11.46.0](https://github.com/salesforce-experience-platform-emu/webapps/compare/v11.45.11...v11.46.0) (2026-08-04)
64
+
65
+ **Note:** Version bump only for package @salesforce/ui-bundle-template-base-sfdx-project
66
+
67
+
68
+
69
+
70
+
71
+ ## [11.45.11](https://github.com/salesforce-experience-platform-emu/webapps/compare/v11.45.10...v11.45.11) (2026-08-03)
72
+
73
+ **Note:** Version bump only for package @salesforce/ui-bundle-template-base-sfdx-project
74
+
75
+
76
+
77
+
78
+
79
+ ## [11.45.10](https://github.com/salesforce-experience-platform-emu/webapps/compare/v11.45.9...v11.45.10) (2026-08-03)
80
+
81
+ **Note:** Version bump only for package @salesforce/ui-bundle-template-base-sfdx-project
82
+
83
+
84
+
85
+
86
+
87
+ ## [11.45.9](https://github.com/salesforce-experience-platform-emu/webapps/compare/v11.45.8...v11.45.9) (2026-07-31)
88
+
89
+ **Note:** Version bump only for package @salesforce/ui-bundle-template-base-sfdx-project
90
+
91
+
92
+
93
+
94
+
95
+ ## [11.45.8](https://github.com/salesforce-experience-platform-emu/webapps/compare/v11.45.7...v11.45.8) (2026-07-31)
96
+
97
+ **Note:** Version bump only for package @salesforce/ui-bundle-template-base-sfdx-project
98
+
99
+
100
+
101
+
102
+
103
+ ## [11.45.7](https://github.com/salesforce-experience-platform-emu/webapps/compare/v11.45.6...v11.45.7) (2026-07-31)
104
+
105
+ **Note:** Version bump only for package @salesforce/ui-bundle-template-base-sfdx-project
106
+
107
+
108
+
109
+
110
+
111
+ ## [11.45.6](https://github.com/salesforce-experience-platform-emu/webapps/compare/v11.45.5...v11.45.6) (2026-07-30)
112
+
113
+ **Note:** Version bump only for package @salesforce/ui-bundle-template-base-sfdx-project
114
+
115
+
116
+
117
+
118
+
119
+ ## [11.45.5](https://github.com/salesforce-experience-platform-emu/webapps/compare/v11.45.4...v11.45.5) (2026-07-30)
120
+
121
+ **Note:** Version bump only for package @salesforce/ui-bundle-template-base-sfdx-project
122
+
123
+
124
+
125
+
126
+
127
+ ## [11.45.4](https://github.com/salesforce-experience-platform-emu/webapps/compare/v11.45.3...v11.45.4) (2026-07-30)
128
+
129
+ **Note:** Version bump only for package @salesforce/ui-bundle-template-base-sfdx-project
130
+
131
+
132
+
133
+
134
+
135
+ ## [11.45.3](https://github.com/salesforce-experience-platform-emu/webapps/compare/v11.45.2...v11.45.3) (2026-07-29)
136
+
137
+ **Note:** Version bump only for package @salesforce/ui-bundle-template-base-sfdx-project
138
+
139
+
140
+
141
+
142
+
143
+ ## [11.45.2](https://github.com/salesforce-experience-platform-emu/webapps/compare/v11.45.1...v11.45.2) (2026-07-29)
144
+
145
+ **Note:** Version bump only for package @salesforce/ui-bundle-template-base-sfdx-project
146
+
147
+
148
+
149
+
150
+
151
+ ## [11.45.1](https://github.com/salesforce-experience-platform-emu/webapps/compare/v11.45.0...v11.45.1) (2026-07-29)
152
+
153
+ **Note:** Version bump only for package @salesforce/ui-bundle-template-base-sfdx-project
154
+
155
+
156
+
157
+
158
+
159
+ ## [11.45.0](https://github.com/salesforce-experience-platform-emu/webapps/compare/v11.44.5...v11.45.0) (2026-07-29)
160
+
161
+ **Note:** Version bump only for package @salesforce/ui-bundle-template-base-sfdx-project
162
+
163
+
164
+
165
+
166
+
167
+ ## [11.44.5](https://github.com/salesforce-experience-platform-emu/webapps/compare/v11.44.4...v11.44.5) (2026-07-29)
168
+
169
+ **Note:** Version bump only for package @salesforce/ui-bundle-template-base-sfdx-project
170
+
171
+
172
+
173
+
174
+
175
+ ## [11.44.4](https://github.com/salesforce-experience-platform-emu/webapps/compare/v11.44.3...v11.44.4) (2026-07-29)
176
+
177
+ **Note:** Version bump only for package @salesforce/ui-bundle-template-base-sfdx-project
178
+
179
+
180
+
181
+
182
+
183
+ ## [11.44.3](https://github.com/salesforce-experience-platform-emu/webapps/compare/v11.44.2...v11.44.3) (2026-07-29)
184
+
185
+
186
+ ### Bug Fixes
187
+
188
+ * data import JSON parsing fails due to debug log format - @W-23626126@ ([#817](https://github.com/salesforce-experience-platform-emu/webapps/issues/817)) ([17fd9d7](https://github.com/salesforce-experience-platform-emu/webapps/commit/17fd9d77e76ca7385c40df03976492ed77d01ace))
189
+
190
+
191
+
192
+ ## [11.44.2](https://github.com/salesforce-experience-platform-emu/webapps/compare/v11.44.1...v11.44.2) (2026-07-29)
193
+
194
+ **Note:** Version bump only for package @salesforce/ui-bundle-template-base-sfdx-project
195
+
196
+
197
+
198
+
199
+
200
+ ## [11.44.1](https://github.com/salesforce-experience-platform-emu/webapps/compare/v11.44.0...v11.44.1) (2026-07-29)
201
+
202
+ **Note:** Version bump only for package @salesforce/ui-bundle-template-base-sfdx-project
203
+
204
+
205
+
206
+
207
+
208
+ ## [11.44.0](https://github.com/salesforce-experience-platform-emu/webapps/compare/v11.43.2...v11.44.0) (2026-07-28)
209
+
210
+ **Note:** Version bump only for package @salesforce/ui-bundle-template-base-sfdx-project
211
+
212
+
213
+
214
+
215
+
216
+ ## [11.43.2](https://github.com/salesforce-experience-platform-emu/webapps/compare/v11.43.1...v11.43.2) (2026-07-28)
217
+
218
+ **Note:** Version bump only for package @salesforce/ui-bundle-template-base-sfdx-project
219
+
220
+
221
+
222
+
223
+
224
+ ## [11.43.1](https://github.com/salesforce-experience-platform-emu/webapps/compare/v11.43.0...v11.43.1) (2026-07-28)
225
+
226
+ **Note:** Version bump only for package @salesforce/ui-bundle-template-base-sfdx-project
227
+
228
+
229
+
230
+
231
+
232
+ ## [11.43.0](https://github.com/salesforce-experience-platform-emu/webapps/compare/v11.42.2...v11.43.0) (2026-07-28)
233
+
234
+ **Note:** Version bump only for package @salesforce/ui-bundle-template-base-sfdx-project
235
+
236
+
237
+
238
+
239
+
240
+ ## [11.42.2](https://github.com/salesforce-experience-platform-emu/webapps/compare/v11.42.1...v11.42.2) (2026-07-27)
241
+
242
+ **Note:** Version bump only for package @salesforce/ui-bundle-template-base-sfdx-project
243
+
244
+
245
+
246
+
247
+
248
+ ## [11.42.1](https://github.com/salesforce-experience-platform-emu/webapps/compare/v11.42.0...v11.42.1) (2026-07-27)
249
+
250
+ **Note:** Version bump only for package @salesforce/ui-bundle-template-base-sfdx-project
251
+
252
+
253
+
254
+
255
+
256
+ ## [11.42.0](https://github.com/salesforce-experience-platform-emu/webapps/compare/v11.41.0...v11.42.0) (2026-07-27)
257
+
258
+ **Note:** Version bump only for package @salesforce/ui-bundle-template-base-sfdx-project
259
+
260
+
261
+
262
+
263
+
6
264
  ## [11.41.0](https://github.com/salesforce-experience-platform-emu/webapps/compare/v11.40.0...v11.41.0) (2026-07-24)
7
265
 
8
266
  **Note:** Version bump only for package @salesforce/ui-bundle-template-base-sfdx-project
@@ -94,7 +94,7 @@
94
94
  "lint": {
95
95
  "builder": "@angular-eslint/builder:lint",
96
96
  "options": {
97
- "lintFilePatterns": ["src/**/*.ts", "src/**/*.html"]
97
+ "lintFilePatterns": ["src/**/*.ts", "src/**/*.html", "src/**/*.graphql"]
98
98
  }
99
99
  }
100
100
  }
@@ -0,0 +1,148 @@
1
+ /**
2
+ * eslint-plugin-angular-graphql.js
3
+ *
4
+ * Custom ESLint plugin with composite processor that enables BOTH:
5
+ * - Angular inline template linting (processInlineTemplates)
6
+ * - GraphQL tagged template literal linting (@graphql-eslint processor)
7
+ *
8
+ * ESLint only allows one processor per file type. This plugin calls both
9
+ * processors under the hood, returning the source code only once to avoid
10
+ * duplicate TypeScript lint messages.
11
+ *
12
+ * Usage:
13
+ * import { createPlugin } from './eslint-plugin-angular-graphql.js';
14
+ * const plugin = createPlugin({ schemaPath: '/absolute/path/to/schema.graphql' });
15
+ *
16
+ * Safety assumptions (verified against source):
17
+ * - Neither processor clones source messages in postprocess (object identity dedup works)
18
+ * - gql tags do not appear inside inline template strings (autofix ranges non-overlapping)
19
+ * - Both processors store internal state keyed by filePath (or derived from it)
20
+ */
21
+ import { existsSync } from 'node:fs';
22
+ import angular from 'angular-eslint';
23
+ import graphqlPlugin from '@graphql-eslint/eslint-plugin';
24
+
25
+ const angularProcessor = angular.processInlineTemplates;
26
+ const graphqlProcessor = graphqlPlugin.processor;
27
+
28
+ // Track block counts per file for postprocess message routing
29
+ const blockCountsMap = new Map();
30
+
31
+ const compositeProcessor = {
32
+ meta: {
33
+ name: 'angular-graphql/composite',
34
+ version: '1.0.0',
35
+ },
36
+ supportsAutofix: true,
37
+
38
+ preprocess(code, filePath) {
39
+ // Call both preprocessors — this populates their internal state maps
40
+ // Angular returns: [source, ...htmlBlocks] (source FIRST)
41
+ const angularResult = angularProcessor.preprocess(code, filePath);
42
+ // GraphQL returns: [...gqlBlocks, source] (source LAST)
43
+ const graphqlResult = graphqlProcessor.preprocess(code, filePath);
44
+
45
+ // Extract blocks (excluding source) from each
46
+ const htmlBlocks = angularResult.length > 1 ? angularResult.slice(1) : [];
47
+ const gqlBlocks = graphqlResult.length > 1 ? graphqlResult.slice(0, -1) : [];
48
+
49
+ // Store counts for postprocess routing
50
+ blockCountsMap.set(filePath, {
51
+ gqlCount: gqlBlocks.length,
52
+ htmlCount: htmlBlocks.length,
53
+ });
54
+
55
+ // Return unified: [gqlBlocks..., htmlBlocks..., source]
56
+ // Source appears exactly ONCE at the end
57
+ return [...gqlBlocks, ...htmlBlocks, code];
58
+ },
59
+
60
+ postprocess(messages, filePath) {
61
+ const { gqlCount, htmlCount } = blockCountsMap.get(filePath) || { gqlCount: 0, htmlCount: 0 };
62
+ blockCountsMap.delete(filePath);
63
+
64
+ const sourceIndex = gqlCount + htmlCount;
65
+ const sourceMessages = messages[sourceIndex] || [];
66
+
67
+ // Short-circuit: neither processor extracted blocks
68
+ if (gqlCount === 0 && htmlCount === 0) {
69
+ return sourceMessages;
70
+ }
71
+
72
+ // Short-circuit: only Angular had blocks
73
+ if (gqlCount === 0) {
74
+ const angularMessages = [sourceMessages, ...messages.slice(0, htmlCount)];
75
+ return angularProcessor.postprocess(angularMessages, filePath);
76
+ }
77
+
78
+ // Short-circuit: only GraphQL had blocks
79
+ if (htmlCount === 0) {
80
+ const gqlMessages = [...messages.slice(0, gqlCount), sourceMessages];
81
+ return graphqlProcessor.postprocess(gqlMessages, filePath);
82
+ }
83
+
84
+ // Both had blocks — route to each postprocess and merge
85
+ // GraphQL expects: [gqlBlock0Msgs, ..., gqlBlockNMsgs, sourceMessages]
86
+ const gqlInput = [...messages.slice(0, gqlCount), sourceMessages];
87
+ const gqlResult = graphqlProcessor.postprocess(gqlInput, filePath);
88
+
89
+ // Angular expects: [sourceMessages, htmlBlock0Msgs, ..., htmlBlockMMsgs]
90
+ const angularInput = [sourceMessages, ...messages.slice(gqlCount, gqlCount + htmlCount)];
91
+ const angularResult = angularProcessor.postprocess(angularInput, filePath);
92
+
93
+ // Deduplicate source messages (both postprocessors pass them through by reference)
94
+ const sourceSet = new Set(sourceMessages);
95
+ const gqlOnly = gqlResult.filter((m) => !sourceSet.has(m));
96
+
97
+ // angularResult = [...sourceMessages, ...adjustedHtmlMessages]
98
+ // gqlOnly = [...adjustedGqlMessages] (source messages filtered out)
99
+ return [...angularResult, ...gqlOnly].sort((a, b) => a.line - b.line || a.column - b.column);
100
+ },
101
+ };
102
+
103
+ /**
104
+ * Factory: pass schemaPath, get back a plugin with configs ready to spread.
105
+ * - If schema exists → composite processor (Angular + GraphQL) + GraphQL rules
106
+ * - If no schema → Angular-only inline template processor, no GraphQL rules
107
+ */
108
+ export function createPlugin({ schemaPath } = {}) {
109
+ const schemaExists = !!(schemaPath && existsSync(schemaPath));
110
+
111
+ const configs = [
112
+ {
113
+ files: ['**/*.ts'],
114
+ processor: schemaExists ? compositeProcessor : angularProcessor,
115
+ },
116
+ ...(schemaExists
117
+ ? [
118
+ {
119
+ files: ['**/*.graphql'],
120
+ languageOptions: {
121
+ parser: graphqlPlugin.parser,
122
+ parserOptions: {
123
+ graphQLConfig: {
124
+ schema: schemaPath,
125
+ documents: 'src/**/*.ts',
126
+ },
127
+ },
128
+ },
129
+ plugins: {
130
+ '@graphql-eslint': graphqlPlugin,
131
+ },
132
+ rules: {
133
+ '@graphql-eslint/no-anonymous-operations': 'error',
134
+ '@graphql-eslint/no-duplicate-fields': 'error',
135
+ '@graphql-eslint/known-fragment-names': 'error',
136
+ '@graphql-eslint/no-undefined-variables': 'error',
137
+ '@graphql-eslint/no-unused-variables': 'error',
138
+ },
139
+ },
140
+ ]
141
+ : []),
142
+ ];
143
+
144
+ return {
145
+ meta: { name: 'eslint-plugin-angular-graphql', version: '1.0.0' },
146
+ configs,
147
+ };
148
+ }
@@ -1,6 +1,13 @@
1
+ import { dirname, resolve } from 'node:path';
2
+ import { fileURLToPath } from 'node:url';
1
3
  import js from '@eslint/js';
2
4
  import angular from 'angular-eslint';
3
5
  import tseslint from 'typescript-eslint';
6
+ import { createPlugin } from './eslint-plugin-angular-graphql.js';
7
+
8
+ const __dirname = dirname(fileURLToPath(import.meta.url));
9
+ const schemaPath = resolve(__dirname, '../../../../../schema.graphql');
10
+ const angularGraphqlPlugin = createPlugin({ schemaPath });
4
11
 
5
12
  export default tseslint.config(
6
13
  // Global ignores
@@ -15,7 +22,6 @@ export default tseslint.config(
15
22
  ...tseslint.configs.recommended,
16
23
  ...angular.configs.tsRecommended,
17
24
  ],
18
- processor: angular.processInlineTemplates,
19
25
  rules: {
20
26
  '@angular-eslint/directive-selector': [
21
27
  'error',
@@ -57,4 +63,6 @@ export default tseslint.config(
57
63
  extends: [...angular.configs.templateRecommended, ...angular.configs.templateAccessibility],
58
64
  rules: {},
59
65
  },
66
+ // Inline template processor + GraphQL rules (plugin handles schema detection)
67
+ ...angularGraphqlPlugin.configs,
60
68
  );