@salesforce/afv-skills 1.8.0 → 1.9.0

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 (488) hide show
  1. package/package.json +1 -1
  2. package/skills/activating-datacloud/CREDITS.md +5 -0
  3. package/skills/activating-datacloud/README.md +39 -0
  4. package/skills/activating-datacloud/SKILL.md +118 -0
  5. package/skills/analyzing-omnistudio-dependencies/CREDITS.md +5 -0
  6. package/skills/analyzing-omnistudio-dependencies/SKILL.md +477 -0
  7. package/skills/analyzing-omnistudio-dependencies/references/dependency-patterns.md +508 -0
  8. package/skills/analyzing-omnistudio-dependencies/references/namespace-guide.md +300 -0
  9. package/skills/building-omnistudio-callable-apex/CREDITS.md +9 -0
  10. package/skills/building-omnistudio-callable-apex/README.md +80 -0
  11. package/skills/building-omnistudio-callable-apex/SKILL.md +276 -0
  12. package/skills/building-omnistudio-callable-apex/assets/pattern_callable_openinterface.cls +40 -0
  13. package/skills/building-omnistudio-callable-apex/assets/pattern_callable_vanilla.cls +32 -0
  14. package/skills/building-omnistudio-callable-apex/assets/pattern_migration.cls +54 -0
  15. package/skills/building-omnistudio-callable-apex/assets/pattern_openinterface.cls +45 -0
  16. package/skills/building-omnistudio-callable-apex/assets/pattern_test_class.cls +65 -0
  17. package/skills/building-omnistudio-callable-apex/examples/Test_QuoteByProductCallable/IndustriesCallableException.cls +7 -0
  18. package/skills/building-omnistudio-callable-apex/examples/Test_QuoteByProductCallable/Industries_QuoteByProductCallable.cls +115 -0
  19. package/skills/building-omnistudio-callable-apex/examples/Test_QuoteByProductCallable/Industries_QuoteByProductCallableTest.cls +189 -0
  20. package/skills/building-omnistudio-callable-apex/examples/Test_QuoteByProductCallable/TRANSCRIPT.md +115 -0
  21. package/skills/building-omnistudio-callable-apex/examples/Test_VlocityOpenInterface2Conversion/IndustriesCallableException.cls +7 -0
  22. package/skills/building-omnistudio-callable-apex/examples/Test_VlocityOpenInterface2Conversion/MyCustomCallable.cls +74 -0
  23. package/skills/building-omnistudio-callable-apex/examples/Test_VlocityOpenInterface2Conversion/MyCustomCallableTest.cls +146 -0
  24. package/skills/building-omnistudio-callable-apex/examples/Test_VlocityOpenInterface2Conversion/MyCustomRemoteClass.cls +16 -0
  25. package/skills/building-omnistudio-callable-apex/examples/Test_VlocityOpenInterface2Conversion/TRANSCRIPT.md +120 -0
  26. package/skills/building-omnistudio-callable-apex/examples/Test_VlocityOpenInterfaceConversion/IndustriesCallableException.cls +7 -0
  27. package/skills/building-omnistudio-callable-apex/examples/Test_VlocityOpenInterfaceConversion/MyCustomCallable.cls +73 -0
  28. package/skills/building-omnistudio-callable-apex/examples/Test_VlocityOpenInterfaceConversion/MyCustomCallableTest.cls +128 -0
  29. package/skills/building-omnistudio-callable-apex/examples/Test_VlocityOpenInterfaceConversion/MyCustomVlocityOpenInterface2.cls +23 -0
  30. package/skills/building-omnistudio-callable-apex/examples/Test_VlocityOpenInterfaceConversion/TRANSCRIPT.md +75 -0
  31. package/skills/building-omnistudio-datamapper/CREDITS.md +5 -0
  32. package/skills/building-omnistudio-datamapper/SKILL.md +270 -0
  33. package/skills/building-omnistudio-datamapper/assets/completion-summary-template.md +28 -0
  34. package/skills/building-omnistudio-datamapper/assets/omni-data-transform-extract.json +6 -0
  35. package/skills/building-omnistudio-datamapper/assets/omni-data-transform-item.json +12 -0
  36. package/skills/building-omnistudio-datamapper/assets/omni-data-transform-load.json +6 -0
  37. package/skills/building-omnistudio-datamapper/assets/omni-data-transform-transform.json +6 -0
  38. package/skills/building-omnistudio-datamapper/references/best-practices.md +277 -0
  39. package/skills/building-omnistudio-datamapper/references/naming-conventions.md +145 -0
  40. package/skills/building-omnistudio-flexcard/CREDITS.md +5 -0
  41. package/skills/building-omnistudio-flexcard/SKILL.md +325 -0
  42. package/skills/building-omnistudio-flexcard/assets/omni-ui-card.json +10 -0
  43. package/skills/building-omnistudio-flexcard/references/best-practices.md +291 -0
  44. package/skills/building-omnistudio-flexcard/references/data-binding-guide.md +311 -0
  45. package/skills/building-omnistudio-flexcard/references/scoring-rubric.md +66 -0
  46. package/skills/building-omnistudio-flexcard/scripts/flexcard-commands.sh +24 -0
  47. package/skills/building-omnistudio-integration-procedure/CREDITS.md +5 -0
  48. package/skills/building-omnistudio-integration-procedure/SKILL.md +275 -0
  49. package/skills/building-omnistudio-integration-procedure/assets/omni-process-element-dr-extract.json +10 -0
  50. package/skills/building-omnistudio-integration-procedure/assets/omni-process-element-set-values.json +10 -0
  51. package/skills/building-omnistudio-integration-procedure/assets/omni-process-ip.json +12 -0
  52. package/skills/building-omnistudio-integration-procedure/assets/scoring-report-format.txt +14 -0
  53. package/skills/building-omnistudio-integration-procedure/references/best-practices.md +388 -0
  54. package/skills/building-omnistudio-integration-procedure/references/element-types.md +588 -0
  55. package/skills/building-omnistudio-integration-procedure/scripts/cli-commands.sh +18 -0
  56. package/skills/building-omnistudio-omniscript/CREDITS.md +5 -0
  57. package/skills/building-omnistudio-omniscript/SKILL.md +367 -0
  58. package/skills/building-omnistudio-omniscript/assets/omni-process-element-step.json +10 -0
  59. package/skills/building-omnistudio-omniscript/assets/omni-process-element-text-block.json +11 -0
  60. package/skills/building-omnistudio-omniscript/assets/omni-process-omniscript.json +12 -0
  61. package/skills/building-omnistudio-omniscript/references/best-practices.md +480 -0
  62. package/skills/building-omnistudio-omniscript/references/element-types.md +1172 -0
  63. package/skills/building-omnistudio-omniscript/scripts/check-duplicate-omniscript.sh +13 -0
  64. package/skills/building-omnistudio-omniscript/scripts/cli-reference.sh +21 -0
  65. package/skills/building-omnistudio-omniscript/scripts/deploy-omniscript.sh +29 -0
  66. package/skills/building-sf-integrations/CREDITS.md +5 -0
  67. package/skills/building-sf-integrations/README.md +95 -0
  68. package/skills/building-sf-integrations/SKILL.md +192 -0
  69. package/skills/building-sf-integrations/assets/callouts/callout-retry-handler.cls +167 -0
  70. package/skills/building-sf-integrations/assets/callouts/http-response-handler.cls +257 -0
  71. package/skills/building-sf-integrations/assets/callouts/rest-queueable-callout.cls +262 -0
  72. package/skills/building-sf-integrations/assets/callouts/rest-sync-callout.cls +211 -0
  73. package/skills/building-sf-integrations/assets/cdc/cdc-handler.cls +246 -0
  74. package/skills/building-sf-integrations/assets/cdc/cdc-subscriber-trigger.trigger +139 -0
  75. package/skills/building-sf-integrations/assets/endpoint-security/example.cspTrustedSite-meta.xml +58 -0
  76. package/skills/building-sf-integrations/assets/endpoint-security/example.remoteSite-meta.xml +39 -0
  77. package/skills/building-sf-integrations/assets/external-credentials/jwt-external-credential.externalCredential-meta.xml +90 -0
  78. package/skills/building-sf-integrations/assets/external-credentials/oauth-external-credential.externalCredential-meta.xml +87 -0
  79. package/skills/building-sf-integrations/assets/external-services/external-service-operations.md +221 -0
  80. package/skills/building-sf-integrations/assets/external-services/openapi-registration.externalServiceRegistration-meta.xml +193 -0
  81. package/skills/building-sf-integrations/assets/named-credentials/certificate-auth.namedCredential-meta.xml +62 -0
  82. package/skills/building-sf-integrations/assets/named-credentials/custom-auth.namedCredential-meta.xml +71 -0
  83. package/skills/building-sf-integrations/assets/named-credentials/oauth-client-credentials.namedCredential-meta.xml +51 -0
  84. package/skills/building-sf-integrations/assets/named-credentials/oauth-jwt-bearer.namedCredential-meta.xml +67 -0
  85. package/skills/building-sf-integrations/assets/platform-events/event-publisher.cls +191 -0
  86. package/skills/building-sf-integrations/assets/platform-events/event-subscriber-action.cls +295 -0
  87. package/skills/building-sf-integrations/assets/platform-events/event-subscriber-trigger.trigger +108 -0
  88. package/skills/building-sf-integrations/assets/platform-events/platform-event-definition.object-meta.xml +124 -0
  89. package/skills/building-sf-integrations/assets/soap/soap-callout-service.cls +186 -0
  90. package/skills/building-sf-integrations/assets/soap/wsdl2apex-guide.md +213 -0
  91. package/skills/building-sf-integrations/hooks/scripts/suggest_credential_setup.py +271 -0
  92. package/skills/building-sf-integrations/hooks/scripts/validate_integration.py +363 -0
  93. package/skills/building-sf-integrations/references/callout-patterns.md +719 -0
  94. package/skills/building-sf-integrations/references/cdc-guide.md +288 -0
  95. package/skills/building-sf-integrations/references/cli-reference.md +94 -0
  96. package/skills/building-sf-integrations/references/event-driven-architecture-guide.md +266 -0
  97. package/skills/building-sf-integrations/references/event-patterns.md +838 -0
  98. package/skills/building-sf-integrations/references/external-services-guide.md +303 -0
  99. package/skills/building-sf-integrations/references/messaging-api-v2.md +609 -0
  100. package/skills/building-sf-integrations/references/named-credentials-automation.md +201 -0
  101. package/skills/building-sf-integrations/references/named-credentials-guide.md +173 -0
  102. package/skills/building-sf-integrations/references/platform-events-guide.md +288 -0
  103. package/skills/building-sf-integrations/references/rest-callout-patterns.md +288 -0
  104. package/skills/building-sf-integrations/references/scoring-rubric.md +59 -0
  105. package/skills/building-sf-integrations/references/security-best-practices.md +248 -0
  106. package/skills/building-sf-integrations/scripts/README.md +100 -0
  107. package/skills/building-sf-integrations/scripts/configure-named-credential.sh +236 -0
  108. package/skills/building-sf-integrations/scripts/set-api-credential.sh +146 -0
  109. package/skills/building-sf-integrations/scripts/templates/setup-credentials-with-csp.sh +158 -0
  110. package/skills/configuring-connected-apps/CREDITS.md +3 -0
  111. package/skills/configuring-connected-apps/README.md +99 -0
  112. package/skills/configuring-connected-apps/SKILL.md +224 -0
  113. package/skills/configuring-connected-apps/assets/connected-app-basic.xml +29 -0
  114. package/skills/configuring-connected-apps/assets/connected-app-canvas.xml +62 -0
  115. package/skills/configuring-connected-apps/assets/connected-app-jwt.xml +49 -0
  116. package/skills/configuring-connected-apps/assets/connected-app-oauth.xml +65 -0
  117. package/skills/configuring-connected-apps/assets/eca-global-oauth.xml +36 -0
  118. package/skills/configuring-connected-apps/assets/eca-oauth-settings.xml +36 -0
  119. package/skills/configuring-connected-apps/assets/eca-policies.xml +36 -0
  120. package/skills/configuring-connected-apps/assets/external-client-app.xml +35 -0
  121. package/skills/configuring-connected-apps/references/example-usage.md +256 -0
  122. package/skills/configuring-connected-apps/references/migration-guide.md +328 -0
  123. package/skills/configuring-connected-apps/references/oauth-flows-reference.md +660 -0
  124. package/skills/configuring-connected-apps/references/security-checklist.md +209 -0
  125. package/skills/configuring-connected-apps/references/testing-validation-guide.md +275 -0
  126. package/skills/connecting-datacloud/CREDITS.md +5 -0
  127. package/skills/connecting-datacloud/README.md +59 -0
  128. package/skills/connecting-datacloud/SKILL.md +155 -0
  129. package/skills/connecting-datacloud/examples/connections/heroku-postgres.json +15 -0
  130. package/skills/connecting-datacloud/examples/connections/ingest-api-connection.json +5 -0
  131. package/skills/connecting-datacloud/examples/connections/ingest-api-schema.json +31 -0
  132. package/skills/connecting-datacloud/examples/connections/redshift.json +16 -0
  133. package/skills/connecting-datacloud/examples/connections/sharepoint-unstructured.json +20 -0
  134. package/skills/connecting-datacloud/examples/connections/snowflake-connection.json +42 -0
  135. package/skills/debugging-apex-logs/CREDITS.md +22 -0
  136. package/skills/debugging-apex-logs/README.md +74 -0
  137. package/skills/debugging-apex-logs/SKILL.md +172 -0
  138. package/skills/debugging-apex-logs/assets/benchmarking-template.cls +327 -0
  139. package/skills/debugging-apex-logs/assets/cpu-heap-optimization.cls +307 -0
  140. package/skills/debugging-apex-logs/assets/dml-in-loop-fix.cls +219 -0
  141. package/skills/debugging-apex-logs/assets/null-pointer-fix.cls +252 -0
  142. package/skills/debugging-apex-logs/assets/soql-in-loop-fix.cls +157 -0
  143. package/skills/debugging-apex-logs/references/analysis-playbook.md +53 -0
  144. package/skills/debugging-apex-logs/references/benchmarking-guide.md +287 -0
  145. package/skills/debugging-apex-logs/references/cli-commands.md +368 -0
  146. package/skills/debugging-apex-logs/references/common-issues.md +68 -0
  147. package/skills/debugging-apex-logs/references/debug-log-reference.md +328 -0
  148. package/skills/debugging-apex-logs/references/log-analysis-tools.md +248 -0
  149. package/skills/debugging-apex-logs/references/scoring-rubric.md +21 -0
  150. package/skills/deploying-metadata/CREDITS.md +25 -0
  151. package/skills/deploying-metadata/README.md +104 -0
  152. package/skills/deploying-metadata/SKILL.md +214 -0
  153. package/skills/deploying-metadata/assets/destructiveChanges.xml +143 -0
  154. package/skills/deploying-metadata/assets/package.xml +121 -0
  155. package/skills/deploying-metadata/references/agent-deployment-guide.md +628 -0
  156. package/skills/deploying-metadata/references/deploy.sh +73 -0
  157. package/skills/deploying-metadata/references/deployment-report-template.md +89 -0
  158. package/skills/deploying-metadata/references/deployment-workflows.md +395 -0
  159. package/skills/deploying-metadata/references/orchestration.md +183 -0
  160. package/skills/deploying-metadata/references/trigger-deployment-safety.md +376 -0
  161. package/skills/deploying-omnistudio-datapacks/CREDITS.md +5 -0
  162. package/skills/deploying-omnistudio-datapacks/README.md +88 -0
  163. package/skills/deploying-omnistudio-datapacks/SKILL.md +174 -0
  164. package/skills/deploying-omnistudio-datapacks/examples/business-internet-plus-bundle/TRANSCRIPT.md +124 -0
  165. package/skills/deploying-omnistudio-datapacks/examples/business-internet-plus-bundle/deploy-business-internet-plus-bundle.yaml +11 -0
  166. package/skills/deploying-omnistudio-datapacks/examples/business-internet-plus-bundle-deploy/TRANSCRIPT.md +142 -0
  167. package/skills/deploying-omnistudio-datapacks/examples/business-internet-plus-bundle-deploy/deploy-business-internet-plus-bundle.yaml +10 -0
  168. package/skills/deploying-omnistudio-datapacks/references/job-file-template.md +42 -0
  169. package/skills/deploying-omnistudio-datapacks/references/troubleshooting-matrix.md +24 -0
  170. package/skills/developing-agentforce/assets/metadata/http-callout-flow.flow-meta.xml +1 -1
  171. package/skills/developing-agentforce/references/actions-reference.md +8 -8
  172. package/skills/fetching-salesforce-docs/README.md +66 -0
  173. package/skills/fetching-salesforce-docs/SKILL.md +209 -0
  174. package/skills/fetching-salesforce-docs/requirements.txt +2 -0
  175. package/skills/fetching-salesforce-docs/scripts/extract_help_salesforce.py +497 -0
  176. package/skills/fetching-salesforce-docs/scripts/extract_salesforce_doc.py +357 -0
  177. package/skills/fetching-salesforce-docs/scripts/runtime_bootstrap.py +58 -0
  178. package/skills/generating-apex/CREDITS.md +1 -26
  179. package/skills/generating-apex-test/CREDITS.md +2 -27
  180. package/skills/generating-lwc-components/CREDITS.md +5 -0
  181. package/skills/generating-lwc-components/README.md +126 -0
  182. package/skills/generating-lwc-components/SKILL.md +191 -0
  183. package/skills/generating-lwc-components/assets/apex-controller/LwcController.cls +327 -0
  184. package/skills/generating-lwc-components/assets/basic-component/basicComponent.css +72 -0
  185. package/skills/generating-lwc-components/assets/basic-component/basicComponent.html +111 -0
  186. package/skills/generating-lwc-components/assets/basic-component/basicComponent.js +163 -0
  187. package/skills/generating-lwc-components/assets/basic-component/basicComponent.js-meta.xml +137 -0
  188. package/skills/generating-lwc-components/assets/datatable-component/datatableComponent.html +111 -0
  189. package/skills/generating-lwc-components/assets/datatable-component/datatableComponent.js +367 -0
  190. package/skills/generating-lwc-components/assets/flow-screen-component/flowScreenComponent.css +63 -0
  191. package/skills/generating-lwc-components/assets/flow-screen-component/flowScreenComponent.html +154 -0
  192. package/skills/generating-lwc-components/assets/flow-screen-component/flowScreenComponent.js +348 -0
  193. package/skills/generating-lwc-components/assets/flow-screen-component/flowScreenComponent.js-meta.xml +87 -0
  194. package/skills/generating-lwc-components/assets/form-component/formComponent.html +165 -0
  195. package/skills/generating-lwc-components/assets/form-component/formComponent.js +275 -0
  196. package/skills/generating-lwc-components/assets/graphql-component/graphqlComponent.html +100 -0
  197. package/skills/generating-lwc-components/assets/graphql-component/graphqlComponent.js +336 -0
  198. package/skills/generating-lwc-components/assets/jest-test/componentName.test.js.example +371 -0
  199. package/skills/generating-lwc-components/assets/message-channel/RecordSelected.messageChannel-meta.xml +71 -0
  200. package/skills/generating-lwc-components/assets/message-channel/lmsPublisher.js +103 -0
  201. package/skills/generating-lwc-components/assets/message-channel/lmsSubscriber.js +181 -0
  202. package/skills/generating-lwc-components/assets/modal-component/modalComponent.html +85 -0
  203. package/skills/generating-lwc-components/assets/modal-component/modalComponent.js +199 -0
  204. package/skills/generating-lwc-components/assets/record-picker/recordPicker.html +55 -0
  205. package/skills/generating-lwc-components/assets/record-picker/recordPicker.js +199 -0
  206. package/skills/generating-lwc-components/assets/state-store/store.js +282 -0
  207. package/skills/generating-lwc-components/assets/typescript-component/typescriptComponent.css +65 -0
  208. package/skills/generating-lwc-components/assets/typescript-component/typescriptComponent.html +95 -0
  209. package/skills/generating-lwc-components/assets/typescript-component/typescriptComponent.js-meta.xml +75 -0
  210. package/skills/generating-lwc-components/assets/typescript-component/typescriptComponent.test.ts.example +301 -0
  211. package/skills/generating-lwc-components/assets/typescript-component/typescriptComponent.ts +295 -0
  212. package/skills/generating-lwc-components/assets/workspace-api/workspaceComponent.html +71 -0
  213. package/skills/generating-lwc-components/assets/workspace-api/workspaceComponent.js +316 -0
  214. package/skills/generating-lwc-components/hooks/scripts/lwc-lsp-validate.py +295 -0
  215. package/skills/generating-lwc-components/hooks/scripts/post-tool-validate.py +347 -0
  216. package/skills/generating-lwc-components/hooks/scripts/slds_data/deprecated_patterns.json +74 -0
  217. package/skills/generating-lwc-components/hooks/scripts/slds_data/styling_hooks.json +111 -0
  218. package/skills/generating-lwc-components/hooks/scripts/slds_data/valid_slds_classes.json +127 -0
  219. package/skills/generating-lwc-components/hooks/scripts/slds_linter_wrapper.py +294 -0
  220. package/skills/generating-lwc-components/hooks/scripts/slds_rules/__init__.py +22 -0
  221. package/skills/generating-lwc-components/hooks/scripts/template_validator.py +332 -0
  222. package/skills/generating-lwc-components/hooks/scripts/validate_slds.py +595 -0
  223. package/skills/generating-lwc-components/references/accessibility-guide.md +843 -0
  224. package/skills/generating-lwc-components/references/advanced-features.md +108 -0
  225. package/skills/generating-lwc-components/references/async-notification-patterns.md +661 -0
  226. package/skills/generating-lwc-components/references/cli-commands.md +545 -0
  227. package/skills/generating-lwc-components/references/component-patterns.md +1476 -0
  228. package/skills/generating-lwc-components/references/flow-integration-guide.md +675 -0
  229. package/skills/generating-lwc-components/references/jest-testing.md +1011 -0
  230. package/skills/generating-lwc-components/references/lms-guide.md +860 -0
  231. package/skills/generating-lwc-components/references/lwc-best-practices.md +1310 -0
  232. package/skills/generating-lwc-components/references/performance-guide.md +861 -0
  233. package/skills/generating-lwc-components/references/scoring-and-testing.md +116 -0
  234. package/skills/generating-lwc-components/references/slds-blueprints.json +14389 -0
  235. package/skills/generating-lwc-components/references/slds-design-guide.md +166 -0
  236. package/skills/generating-lwc-components/references/state-management.md +642 -0
  237. package/skills/generating-lwc-components/references/template-anti-patterns.md +948 -0
  238. package/skills/generating-lwc-components/references/triangle-pattern.md +365 -0
  239. package/skills/generating-lwc-components/scripts/local-dev-preview.sh +34 -0
  240. package/skills/generating-mermaid-diagrams/CREDITS.md +46 -0
  241. package/skills/generating-mermaid-diagrams/README.md +114 -0
  242. package/skills/generating-mermaid-diagrams/SKILL.md +218 -0
  243. package/skills/generating-mermaid-diagrams/assets/agentforce/agent-flow.md +313 -0
  244. package/skills/generating-mermaid-diagrams/assets/architecture/system-landscape.md +351 -0
  245. package/skills/generating-mermaid-diagrams/assets/datamodel/b2b-commerce-erd.md +317 -0
  246. package/skills/generating-mermaid-diagrams/assets/datamodel/campaigns-erd.md +195 -0
  247. package/skills/generating-mermaid-diagrams/assets/datamodel/consent-erd.md +262 -0
  248. package/skills/generating-mermaid-diagrams/assets/datamodel/files-erd.md +266 -0
  249. package/skills/generating-mermaid-diagrams/assets/datamodel/forecasting-erd.md +261 -0
  250. package/skills/generating-mermaid-diagrams/assets/datamodel/fsl-erd.md +332 -0
  251. package/skills/generating-mermaid-diagrams/assets/datamodel/party-model-erd.md +237 -0
  252. package/skills/generating-mermaid-diagrams/assets/datamodel/quote-order-erd.md +277 -0
  253. package/skills/generating-mermaid-diagrams/assets/datamodel/revenue-cloud-erd.md +343 -0
  254. package/skills/generating-mermaid-diagrams/assets/datamodel/sales-cloud-erd.md +192 -0
  255. package/skills/generating-mermaid-diagrams/assets/datamodel/salesforce-erd.md +209 -0
  256. package/skills/generating-mermaid-diagrams/assets/datamodel/scheduler-erd.md +276 -0
  257. package/skills/generating-mermaid-diagrams/assets/datamodel/service-cloud-erd.md +217 -0
  258. package/skills/generating-mermaid-diagrams/assets/datamodel/territory-management-erd.md +241 -0
  259. package/skills/generating-mermaid-diagrams/assets/integration/api-sequence.md +387 -0
  260. package/skills/generating-mermaid-diagrams/assets/oauth/authorization-code-pkce.md +197 -0
  261. package/skills/generating-mermaid-diagrams/assets/oauth/authorization-code.md +152 -0
  262. package/skills/generating-mermaid-diagrams/assets/oauth/client-credentials.md +233 -0
  263. package/skills/generating-mermaid-diagrams/assets/oauth/device-authorization.md +295 -0
  264. package/skills/generating-mermaid-diagrams/assets/oauth/jwt-bearer.md +256 -0
  265. package/skills/generating-mermaid-diagrams/assets/oauth/refresh-token.md +281 -0
  266. package/skills/generating-mermaid-diagrams/assets/oauth/user-agent-social-sign-on.md +281 -0
  267. package/skills/generating-mermaid-diagrams/assets/role-hierarchy/user-hierarchy.md +322 -0
  268. package/skills/generating-mermaid-diagrams/references/color-palette.md +464 -0
  269. package/skills/generating-mermaid-diagrams/references/diagram-conventions.md +313 -0
  270. package/skills/generating-mermaid-diagrams/references/erd-conventions.md +320 -0
  271. package/skills/generating-mermaid-diagrams/references/mermaid-reference.md +434 -0
  272. package/skills/generating-mermaid-diagrams/references/mermaid-styling.md +81 -0
  273. package/skills/generating-mermaid-diagrams/references/preview-guide.md +49 -0
  274. package/skills/generating-mermaid-diagrams/references/usage-examples.md +340 -0
  275. package/skills/generating-mermaid-diagrams/scripts/README.md +160 -0
  276. package/skills/generating-mermaid-diagrams/scripts/mermaid_preview.py +654 -0
  277. package/skills/generating-mermaid-diagrams/scripts/query-org-metadata.py +293 -0
  278. package/skills/generating-visual-diagrams/CREDITS.md +80 -0
  279. package/skills/generating-visual-diagrams/README.md +83 -0
  280. package/skills/generating-visual-diagrams/SKILL.md +208 -0
  281. package/skills/generating-visual-diagrams/assets/architecture/integration-flow.md +55 -0
  282. package/skills/generating-visual-diagrams/assets/erd/core-objects.md +131 -0
  283. package/skills/generating-visual-diagrams/assets/erd/custom-objects.md +60 -0
  284. package/skills/generating-visual-diagrams/assets/lwc/dashboard-card.md +45 -0
  285. package/skills/generating-visual-diagrams/assets/lwc/data-table.md +57 -0
  286. package/skills/generating-visual-diagrams/assets/lwc/record-form.md +60 -0
  287. package/skills/generating-visual-diagrams/assets/review/apex-review.md +57 -0
  288. package/skills/generating-visual-diagrams/assets/review/lwc-review.md +48 -0
  289. package/skills/generating-visual-diagrams/references/architect-aesthetic-guide.md +257 -0
  290. package/skills/generating-visual-diagrams/references/examples-index.md +35 -0
  291. package/skills/generating-visual-diagrams/references/gemini-cli-setup.md +65 -0
  292. package/skills/generating-visual-diagrams/references/interview-questions.md +529 -0
  293. package/skills/generating-visual-diagrams/references/iteration-workflow.md +173 -0
  294. package/skills/generating-visual-diagrams/scripts/check-prerequisites.sh +101 -0
  295. package/skills/generating-visual-diagrams/scripts/generate_image.py +243 -0
  296. package/skills/handling-sf-data/CREDITS.md +5 -0
  297. package/skills/handling-sf-data/README.md +112 -0
  298. package/skills/handling-sf-data/SKILL.md +235 -0
  299. package/skills/handling-sf-data/assets/bulk/bulk-insert-10000.apex +293 -0
  300. package/skills/handling-sf-data/assets/bulk/bulk-insert-200.apex +208 -0
  301. package/skills/handling-sf-data/assets/bulk/bulk-insert-500.apex +219 -0
  302. package/skills/handling-sf-data/assets/bulk/bulk-upsert-external-id.apex +324 -0
  303. package/skills/handling-sf-data/assets/cleanup/delete-by-created-date.apex +319 -0
  304. package/skills/handling-sf-data/assets/cleanup/delete-by-name.apex +240 -0
  305. package/skills/handling-sf-data/assets/cleanup/delete-test-data.apex +311 -0
  306. package/skills/handling-sf-data/assets/cleanup/rollback-transaction.apex +266 -0
  307. package/skills/handling-sf-data/assets/csv/account-import.csv +11 -0
  308. package/skills/handling-sf-data/assets/csv/contact-import.csv +11 -0
  309. package/skills/handling-sf-data/assets/csv/custom-object-import.csv +11 -0
  310. package/skills/handling-sf-data/assets/csv/opportunity-import.csv +11 -0
  311. package/skills/handling-sf-data/assets/factories/account-factory.apex +165 -0
  312. package/skills/handling-sf-data/assets/factories/case-factory.apex +237 -0
  313. package/skills/handling-sf-data/assets/factories/contact-factory.apex +168 -0
  314. package/skills/handling-sf-data/assets/factories/custom-object-factory.apex +260 -0
  315. package/skills/handling-sf-data/assets/factories/event-factory.apex +275 -0
  316. package/skills/handling-sf-data/assets/factories/hierarchy-factory.apex +372 -0
  317. package/skills/handling-sf-data/assets/factories/lead-factory.apex +190 -0
  318. package/skills/handling-sf-data/assets/factories/opportunity-factory.apex +206 -0
  319. package/skills/handling-sf-data/assets/factories/task-factory.apex +246 -0
  320. package/skills/handling-sf-data/assets/factories/user-factory.apex +278 -0
  321. package/skills/handling-sf-data/assets/json/account-contact-tree.json +130 -0
  322. package/skills/handling-sf-data/assets/json/account-opportunity-tree.json +110 -0
  323. package/skills/handling-sf-data/assets/json/full-hierarchy-tree.json +188 -0
  324. package/skills/handling-sf-data/assets/soql/aggregate.soql +226 -0
  325. package/skills/handling-sf-data/assets/soql/child-to-parent.soql +162 -0
  326. package/skills/handling-sf-data/assets/soql/parent-to-child.soql +153 -0
  327. package/skills/handling-sf-data/assets/soql/polymorphic.soql +198 -0
  328. package/skills/handling-sf-data/assets/soql/subquery.soql +287 -0
  329. package/skills/handling-sf-data/references/anonymous-apex-guide.md +98 -0
  330. package/skills/handling-sf-data/references/bulk-operations-guide.md +94 -0
  331. package/skills/handling-sf-data/references/bulk-testing-example.md +194 -0
  332. package/skills/handling-sf-data/references/cleanup-rollback-example.md +322 -0
  333. package/skills/handling-sf-data/references/cleanup-rollback-guide.md +84 -0
  334. package/skills/handling-sf-data/references/crud-workflow-example.md +183 -0
  335. package/skills/handling-sf-data/references/governor-limits-reference.md +74 -0
  336. package/skills/handling-sf-data/references/orchestration.md +174 -0
  337. package/skills/handling-sf-data/references/relationship-query-examples.md +249 -0
  338. package/skills/handling-sf-data/references/sf-cli-data-commands.md +158 -0
  339. package/skills/handling-sf-data/references/soql-relationship-guide.md +84 -0
  340. package/skills/handling-sf-data/references/test-data-best-practices.md +104 -0
  341. package/skills/handling-sf-data/references/test-data-factory-usage.md +290 -0
  342. package/skills/handling-sf-data/references/test-data-patterns.md +98 -0
  343. package/skills/handling-sf-data/scripts/soql_validator.py +292 -0
  344. package/skills/handling-sf-data/scripts/validate_data_operation.py +379 -0
  345. package/skills/harmonizing-datacloud/CREDITS.md +3 -0
  346. package/skills/harmonizing-datacloud/README.md +31 -0
  347. package/skills/harmonizing-datacloud/SKILL.md +117 -0
  348. package/skills/modeling-omnistudio-epc-catalog/CREDITS.md +14 -0
  349. package/skills/modeling-omnistudio-epc-catalog/README.md +89 -0
  350. package/skills/modeling-omnistudio-epc-catalog/SKILL.md +395 -0
  351. package/skills/modeling-omnistudio-epc-catalog/assets/attribute-assignment-template.json +402 -0
  352. package/skills/modeling-omnistudio-epc-catalog/assets/compiled-attribute-overrides-template.json +43 -0
  353. package/skills/modeling-omnistudio-epc-catalog/assets/completion-block-template.txt +8 -0
  354. package/skills/modeling-omnistudio-epc-catalog/assets/decomposition-relationships-template.json +233 -0
  355. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_AttributeAssignments.json +514 -0
  356. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_CompiledAttributeOverrides.json +21 -0
  357. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_DataPack.json +649 -0
  358. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_DecompositionRelationships.json +200 -0
  359. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_ObjectFieldAttributes.json +138 -0
  360. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_OrchestrationScenarios.json +54 -0
  361. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_OverrideDefinitions.json +266 -0
  362. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_ParentKeys.json +23 -0
  363. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_PriceListEntries.json +54 -0
  364. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_PricebookEntries.json +35 -0
  365. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_ProductChildItems.json +34 -0
  366. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_RuleAssignments.json +21 -0
  367. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-pro-vpl-simple-offer/Business-Internet-Pro-VPL_AttributeAssignments.json +410 -0
  368. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-pro-vpl-simple-offer/Business-Internet-Pro-VPL_DataPack.json +535 -0
  369. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-pro-vpl-simple-offer/Business-Internet-Pro-VPL_DecompositionRelationships.json +35 -0
  370. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-pro-vpl-simple-offer/Business-Internet-Pro-VPL_ObjectFieldAttributes.json +138 -0
  371. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-pro-vpl-simple-offer/Business-Internet-Pro-VPL_OrchestrationScenarios.json +28 -0
  372. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-pro-vpl-simple-offer/Business-Internet-Pro-VPL_ParentKeys.json +23 -0
  373. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-pro-vpl-simple-offer/Business-Internet-Pro-VPL_PriceListEntries.json +220 -0
  374. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-pro-vpl-simple-offer/Business-Internet-Pro-VPL_PricebookEntries.json +35 -0
  375. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-pro-vpl-simple-offer/Business-Internet-Pro-VPL_ProductChildItems.json +414 -0
  376. package/skills/modeling-omnistudio-epc-catalog/assets/examples/samsung-galaxy-s22-bundle/Samsung-Galaxy-S22-Bundle_AttributeAssignments.json +382 -0
  377. package/skills/modeling-omnistudio-epc-catalog/assets/examples/samsung-galaxy-s22-bundle/Samsung-Galaxy-S22-Bundle_DataPack.json +565 -0
  378. package/skills/modeling-omnistudio-epc-catalog/assets/examples/samsung-galaxy-s22-bundle/Samsung-Galaxy-S22-Bundle_DecompositionRelationships.json +35 -0
  379. package/skills/modeling-omnistudio-epc-catalog/assets/examples/samsung-galaxy-s22-bundle/Samsung-Galaxy-S22-Bundle_ObjectFieldAttributes.json +104 -0
  380. package/skills/modeling-omnistudio-epc-catalog/assets/examples/samsung-galaxy-s22-bundle/Samsung-Galaxy-S22-Bundle_OrchestrationScenarios.json +28 -0
  381. package/skills/modeling-omnistudio-epc-catalog/assets/examples/samsung-galaxy-s22-bundle/Samsung-Galaxy-S22-Bundle_ParentKeys.json +13 -0
  382. package/skills/modeling-omnistudio-epc-catalog/assets/examples/samsung-galaxy-s22-bundle/Samsung-Galaxy-S22-Bundle_PriceListEntries.json +106 -0
  383. package/skills/modeling-omnistudio-epc-catalog/assets/examples/samsung-galaxy-s22-bundle/Samsung-Galaxy-S22-Bundle_PricebookEntries.json +35 -0
  384. package/skills/modeling-omnistudio-epc-catalog/assets/examples/samsung-galaxy-s22-bundle/Samsung-Galaxy-S22-Bundle_ProductChildItems.json +72 -0
  385. package/skills/modeling-omnistudio-epc-catalog/assets/examples/static-ip-simple-offer/Static-IP_AttributeAssignments.json +142 -0
  386. package/skills/modeling-omnistudio-epc-catalog/assets/examples/static-ip-simple-offer/Static-IP_DataPack.json +377 -0
  387. package/skills/modeling-omnistudio-epc-catalog/assets/examples/static-ip-simple-offer/Static-IP_DecompositionRelationships.json +35 -0
  388. package/skills/modeling-omnistudio-epc-catalog/assets/examples/static-ip-simple-offer/Static-IP_ObjectFieldAttributes.json +36 -0
  389. package/skills/modeling-omnistudio-epc-catalog/assets/examples/static-ip-simple-offer/Static-IP_ParentKeys.json +8 -0
  390. package/skills/modeling-omnistudio-epc-catalog/assets/examples/static-ip-simple-offer/Static-IP_PriceListEntries.json +54 -0
  391. package/skills/modeling-omnistudio-epc-catalog/assets/examples/static-ip-simple-offer/Static-IP_PricebookEntries.json +35 -0
  392. package/skills/modeling-omnistudio-epc-catalog/assets/examples/static-ip-simple-offer/Static-IP_ProductChildItems.json +34 -0
  393. package/skills/modeling-omnistudio-epc-catalog/assets/object-field-attributes-template.json +138 -0
  394. package/skills/modeling-omnistudio-epc-catalog/assets/orchestration-scenarios-template.json +54 -0
  395. package/skills/modeling-omnistudio-epc-catalog/assets/override-definitions-template.json +134 -0
  396. package/skills/modeling-omnistudio-epc-catalog/assets/parent-keys-template.json +29 -0
  397. package/skills/modeling-omnistudio-epc-catalog/assets/price-list-entries-template.json +158 -0
  398. package/skills/modeling-omnistudio-epc-catalog/assets/pricebook-entries-template.json +35 -0
  399. package/skills/modeling-omnistudio-epc-catalog/assets/product-child-item-template.json +338 -0
  400. package/skills/modeling-omnistudio-epc-catalog/assets/product2-offer-template.json +527 -0
  401. package/skills/modeling-omnistudio-epc-catalog/examples/.gitkeep +1 -0
  402. package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/Business-Internet-Plus_AttributeAssignments.json +95 -0
  403. package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/Business-Internet-Plus_CompiledAttributeOverrides.json +1 -0
  404. package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/Business-Internet-Plus_DataPack.json +214 -0
  405. package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/Business-Internet-Plus_DecompositionRelationships.json +28 -0
  406. package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/Business-Internet-Plus_ObjectFieldAttributes.json +98 -0
  407. package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/Business-Internet-Plus_OrchestrationScenarios.json +22 -0
  408. package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/Business-Internet-Plus_OverrideDefinitions.json +1 -0
  409. package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/Business-Internet-Plus_ParentKeys.json +13 -0
  410. package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/Business-Internet-Plus_PriceListEntries.json +35 -0
  411. package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/Business-Internet-Plus_PricebookEntries.json +28 -0
  412. package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/Business-Internet-Plus_ProductChildItems.json +110 -0
  413. package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/TRANSCRIPT.md +58 -0
  414. package/skills/modeling-omnistudio-epc-catalog/references/epc-field-guide.md +90 -0
  415. package/skills/modeling-omnistudio-epc-catalog/references/naming-conventions.md +80 -0
  416. package/skills/modeling-omnistudio-epc-catalog/references/scoring-model.md +57 -0
  417. package/skills/modeling-omnistudio-epc-catalog/scripts/cli-validation-commands.sh +19 -0
  418. package/skills/modeling-omnistudio-epc-catalog/scripts/sample-invocations.sh +18 -0
  419. package/skills/orchestrating-datacloud/CREDITS.md +15 -0
  420. package/skills/orchestrating-datacloud/README.md +129 -0
  421. package/skills/orchestrating-datacloud/SKILL.md +236 -0
  422. package/skills/orchestrating-datacloud/UPSTREAM.md +45 -0
  423. package/skills/orchestrating-datacloud/assets/definitions/activation-target.template.json +5 -0
  424. package/skills/orchestrating-datacloud/assets/definitions/activation.template.json +7 -0
  425. package/skills/orchestrating-datacloud/assets/definitions/calculated-insight.template.json +7 -0
  426. package/skills/orchestrating-datacloud/assets/definitions/data-action-target.template.json +5 -0
  427. package/skills/orchestrating-datacloud/assets/definitions/data-action.template.json +5 -0
  428. package/skills/orchestrating-datacloud/assets/definitions/data-graph.template.json +21 -0
  429. package/skills/orchestrating-datacloud/assets/definitions/data-stream.template.json +55 -0
  430. package/skills/orchestrating-datacloud/assets/definitions/dmo.template.json +17 -0
  431. package/skills/orchestrating-datacloud/assets/definitions/identity-resolution.template.json +30 -0
  432. package/skills/orchestrating-datacloud/assets/definitions/mapping.template.json +14 -0
  433. package/skills/orchestrating-datacloud/assets/definitions/relationship.template.json +12 -0
  434. package/skills/orchestrating-datacloud/assets/definitions/search-index.template.json +9 -0
  435. package/skills/orchestrating-datacloud/assets/definitions/segment.template.json +16 -0
  436. package/skills/orchestrating-datacloud/references/feature-readiness.md +157 -0
  437. package/skills/orchestrating-datacloud/references/plugin-setup.md +140 -0
  438. package/skills/orchestrating-datacloud/scripts/bootstrap-plugin.sh +53 -0
  439. package/skills/orchestrating-datacloud/scripts/diagnose-org.mjs +511 -0
  440. package/skills/orchestrating-datacloud/scripts/generate-manifest.mjs +68 -0
  441. package/skills/orchestrating-datacloud/scripts/verify-plugin.sh +58 -0
  442. package/skills/preparing-datacloud/CREDITS.md +7 -0
  443. package/skills/preparing-datacloud/README.md +51 -0
  444. package/skills/preparing-datacloud/SKILL.md +191 -0
  445. package/skills/preparing-datacloud/examples/ingestion-api/.env.example +8 -0
  446. package/skills/preparing-datacloud/examples/ingestion-api/README.md +48 -0
  447. package/skills/preparing-datacloud/examples/ingestion-api/send-data.py +144 -0
  448. package/skills/querying-soql/CREDITS.md +21 -0
  449. package/skills/querying-soql/README.md +41 -0
  450. package/skills/querying-soql/SKILL.md +143 -0
  451. package/skills/querying-soql/assets/aggregate-queries.soql +242 -0
  452. package/skills/querying-soql/assets/basic-queries.soql +188 -0
  453. package/skills/querying-soql/assets/bulkified-query-pattern.cls +280 -0
  454. package/skills/querying-soql/assets/optimization-patterns.soql +259 -0
  455. package/skills/querying-soql/assets/relationship-queries.soql +203 -0
  456. package/skills/querying-soql/assets/selector-class.cls +219 -0
  457. package/skills/querying-soql/references/anti-patterns.md +348 -0
  458. package/skills/querying-soql/references/cli-commands.md +358 -0
  459. package/skills/querying-soql/references/field-coverage-rules.md +514 -0
  460. package/skills/querying-soql/references/query-optimization.md +142 -0
  461. package/skills/querying-soql/references/selector-patterns.md +479 -0
  462. package/skills/querying-soql/references/soql-reference.md +227 -0
  463. package/skills/querying-soql/references/soql-syntax-reference.md +208 -0
  464. package/skills/querying-soql/scripts/post-tool-validate.py +322 -0
  465. package/skills/retrieving-datacloud/CREDITS.md +7 -0
  466. package/skills/retrieving-datacloud/README.md +44 -0
  467. package/skills/retrieving-datacloud/SKILL.md +120 -0
  468. package/skills/retrieving-datacloud/examples/search-indexes/hybrid-structured.json +44 -0
  469. package/skills/retrieving-datacloud/examples/search-indexes/vector-knowledge.json +43 -0
  470. package/skills/running-apex-tests/CREDITS.md +22 -0
  471. package/skills/running-apex-tests/README.md +94 -0
  472. package/skills/running-apex-tests/SKILL.md +158 -0
  473. package/skills/running-apex-tests/assets/basic-test.cls +169 -0
  474. package/skills/running-apex-tests/assets/bulk-test.cls +255 -0
  475. package/skills/running-apex-tests/assets/dml-mock.cls +339 -0
  476. package/skills/running-apex-tests/assets/mock-callout-test.cls +353 -0
  477. package/skills/running-apex-tests/assets/stub-provider-example.cls +364 -0
  478. package/skills/running-apex-tests/assets/test-data-factory.cls +328 -0
  479. package/skills/running-apex-tests/hooks/scripts/parse-test-results.py +364 -0
  480. package/skills/running-apex-tests/references/cli-commands.md +289 -0
  481. package/skills/running-apex-tests/references/mocking-patterns.md +500 -0
  482. package/skills/running-apex-tests/references/performance-optimization.md +283 -0
  483. package/skills/running-apex-tests/references/test-fix-loop.md +49 -0
  484. package/skills/running-apex-tests/references/test-patterns.md +154 -0
  485. package/skills/running-apex-tests/references/testing-best-practices.md +509 -0
  486. package/skills/segmenting-datacloud/CREDITS.md +3 -0
  487. package/skills/segmenting-datacloud/README.md +36 -0
  488. package/skills/segmenting-datacloud/SKILL.md +115 -0
@@ -0,0 +1,108 @@
1
+ /**
2
+ * @description Platform Event Subscriber Trigger for {{EventName}}__e
3
+ *
4
+ * Use Case: React to published Platform Events
5
+ * - Process incoming events from other systems
6
+ * - Sync data based on events
7
+ * - Trigger downstream processes
8
+ *
9
+ * Key Concepts:
10
+ * - Platform Event triggers run in their own execution context
11
+ * - Events are processed in batches (up to 2000 for High Volume)
12
+ * - ReplayId enables resuming from failures
13
+ * - SetResumeCheckpoint ensures durability
14
+ *
15
+ * IMPORTANT:
16
+ * - Triggers on Platform Events only fire on AFTER INSERT
17
+ * - Events are immutable (cannot be updated or deleted)
18
+ * - Triggers run as Automated Process user
19
+ *
20
+ * @author {{Author}}
21
+ * @date {{Date}}
22
+ */
23
+ trigger {{EventName}}Subscriber on {{EventName}}__e (after insert) {
24
+
25
+ // Track last processed replay ID for durability
26
+ String lastReplayId = '';
27
+
28
+ // Process each event
29
+ for ({{EventName}}__e event : Trigger.new) {
30
+ // Store replay ID for checkpoint
31
+ lastReplayId = event.ReplayId;
32
+
33
+ try {
34
+ // Log event receipt
35
+ System.debug(LoggingLevel.DEBUG,
36
+ 'Processing event: ' + event.Correlation_Id__c +
37
+ ' Operation: ' + event.Operation__c +
38
+ ' ReplayId: ' + event.ReplayId);
39
+
40
+ // Route to handler based on operation
41
+ switch on event.Operation__c {
42
+ when 'CREATE' {
43
+ {{EventName}}Handler.handleCreate(event);
44
+ }
45
+ when 'UPDATE' {
46
+ {{EventName}}Handler.handleUpdate(event);
47
+ }
48
+ when 'DELETE' {
49
+ {{EventName}}Handler.handleDelete(event);
50
+ }
51
+ when else {
52
+ // Unknown operation - log and continue
53
+ System.debug(LoggingLevel.WARN,
54
+ 'Unknown operation: ' + event.Operation__c +
55
+ ' for event: ' + event.Correlation_Id__c);
56
+ }
57
+ }
58
+
59
+ } catch (Exception e) {
60
+ // Log error but continue processing other events
61
+ // Don't throw - that would cause retry of ALL events in batch
62
+ System.debug(LoggingLevel.ERROR,
63
+ 'Error processing event ' + event.Correlation_Id__c + ': ' + e.getMessage());
64
+ System.debug(LoggingLevel.ERROR, 'Stack: ' + e.getStackTraceString());
65
+
66
+ // Consider: Create error log record for monitoring
67
+ // {{EventName}}ErrorLogger.logError(event, e);
68
+ }
69
+ }
70
+
71
+ // Set resume checkpoint for durability
72
+ // If trigger fails after this point, processing resumes from this ReplayId
73
+ if (String.isNotBlank(lastReplayId)) {
74
+ EventBus.TriggerContext.currentContext().setResumeCheckpoint(lastReplayId);
75
+ }
76
+ }
77
+
78
+ /*
79
+ * ============================================================================
80
+ * PLATFORM EVENT TRIGGER BEST PRACTICES
81
+ * ============================================================================
82
+ *
83
+ * 1. ALWAYS set resume checkpoint
84
+ * - Call setResumeCheckpoint() with the last processed ReplayId
85
+ * - Ensures events aren't lost if trigger fails mid-batch
86
+ *
87
+ * 2. DON'T throw exceptions
88
+ * - Unhandled exceptions cause entire batch to retry
89
+ * - Catch errors per-event and log them
90
+ * - Continue processing remaining events
91
+ *
92
+ * 3. Keep processing lightweight
93
+ * - Avoid SOQL/DML in loops
94
+ * - Collect data, then do bulk DML outside loop
95
+ * - Consider queueing heavy work via Queueable
96
+ *
97
+ * 4. Handle duplicates
98
+ * - At-least-once delivery means duplicates possible
99
+ * - Use Correlation_Id__c to detect/dedupe
100
+ * - Design handlers to be idempotent
101
+ *
102
+ * 5. Monitor failures
103
+ * - Log errors to custom object for visibility
104
+ * - Set up alerts for processing failures
105
+ * - Review Event Delivery Failures in Setup
106
+ *
107
+ * ============================================================================
108
+ */
@@ -0,0 +1,124 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!--
3
+ Platform Event Definition Template
4
+
5
+ Use Case: Asynchronous, event-driven communication
6
+ - Real-time notifications
7
+ - Decoupled system integrations
8
+ - High-volume data streaming
9
+ - Trigger external processes
10
+
11
+ Event Types:
12
+ - StandardVolume: ~2,000 events/hour, standard delivery
13
+ - HighVolume: Millions/day, at-least-once delivery, 24-hour retention
14
+
15
+ Publish Behaviors:
16
+ - PublishAfterCommit: Event published after transaction commits (default)
17
+ - PublishImmediately: Event published immediately (use for rollback scenarios)
18
+
19
+ Setup Steps:
20
+ 1. Replace all {{placeholder}} values
21
+ 2. Add fields as needed
22
+ 3. Deploy to org
23
+ 4. Create publisher (Apex, Flow, Process Builder)
24
+ 5. Create subscriber (Trigger, Flow, External via CometD)
25
+
26
+ File Location: force-app/main/default/objects/{{EventName}}__e/{{EventName}}__e.object-meta.xml
27
+ -->
28
+ <CustomObject xmlns="http://soap.sforce.com/2006/04/metadata">
29
+ <!-- Deployment status -->
30
+ <deploymentStatus>Deployed</deploymentStatus>
31
+
32
+ <!--
33
+ Event Type:
34
+ - StandardVolume: Up to 2,000 events per hour (included in licenses)
35
+ - HighVolume: Up to millions per day (may require additional entitlement)
36
+
37
+ Use HighVolume for:
38
+ - Large-scale integrations
39
+ - IoT data streaming
40
+ - High-throughput scenarios
41
+ -->
42
+ <eventType>HighVolume</eventType>
43
+
44
+ <!-- Display labels -->
45
+ <label>{{EventLabel}}</label>
46
+ <pluralLabel>{{EventPluralLabel}}</pluralLabel>
47
+
48
+ <!--
49
+ Publish Behavior:
50
+ - PublishAfterCommit: Publish when transaction commits (RECOMMENDED)
51
+ Ensures event only fires if data save succeeds
52
+ - PublishImmediately: Publish right away
53
+ Use when you need event even if transaction rolls back
54
+ -->
55
+ <publishBehavior>PublishAfterCommit</publishBehavior>
56
+
57
+ <!-- Event Fields -->
58
+
59
+ <!-- Record ID field - link to triggering record -->
60
+ <fields>
61
+ <fullName>Record_Id__c</fullName>
62
+ <label>Record ID</label>
63
+ <description>ID of the Salesforce record that triggered this event</description>
64
+ <type>Text</type>
65
+ <length>18</length>
66
+ <externalId>false</externalId>
67
+ </fields>
68
+
69
+ <!-- Operation type field -->
70
+ <fields>
71
+ <fullName>Operation__c</fullName>
72
+ <label>Operation</label>
73
+ <description>The operation that occurred: CREATE, UPDATE, DELETE</description>
74
+ <type>Text</type>
75
+ <length>20</length>
76
+ <externalId>false</externalId>
77
+ </fields>
78
+
79
+ <!-- Payload field - JSON data -->
80
+ <fields>
81
+ <fullName>Payload__c</fullName>
82
+ <label>Payload</label>
83
+ <description>JSON payload containing event data</description>
84
+ <type>LongTextArea</type>
85
+ <length>131072</length>
86
+ <visibleLines>5</visibleLines>
87
+ </fields>
88
+
89
+ <!-- Correlation ID for tracking -->
90
+ <fields>
91
+ <fullName>Correlation_Id__c</fullName>
92
+ <label>Correlation ID</label>
93
+ <description>Unique ID for tracking related events across systems</description>
94
+ <type>Text</type>
95
+ <length>50</length>
96
+ <externalId>true</externalId>
97
+ </fields>
98
+
99
+ <!-- Timestamp field -->
100
+ <fields>
101
+ <fullName>Event_Timestamp__c</fullName>
102
+ <label>Event Timestamp</label>
103
+ <description>When the event occurred</description>
104
+ <type>DateTime</type>
105
+ </fields>
106
+
107
+ <!--
108
+ Add more fields as needed for your use case.
109
+
110
+ Field Types Supported:
111
+ - Text (up to 255 chars)
112
+ - LongTextArea (up to 131,072 chars)
113
+ - Number
114
+ - Checkbox
115
+ - DateTime
116
+ - Date
117
+
118
+ NOT Supported:
119
+ - Lookup/Master-Detail (no relationships)
120
+ - Formula
121
+ - Roll-up Summary
122
+ - Picklist (use Text instead)
123
+ -->
124
+ </CustomObject>
@@ -0,0 +1,186 @@
1
+ /**
2
+ * @description SOAP Web Service Callout Service
3
+ *
4
+ * Use Case: Integrations with SOAP/XML-based web services
5
+ * - Legacy enterprise systems
6
+ * - Government APIs
7
+ * - Financial services (often SOAP-based)
8
+ *
9
+ * Prerequisites:
10
+ * 1. Generate Apex from WSDL (Setup → Apex Classes → Generate from WSDL)
11
+ * 2. Configure Named Credential or Remote Site Setting for endpoint
12
+ *
13
+ * This template wraps WSDL-generated stub classes with:
14
+ * - Error handling
15
+ * - Timeout configuration
16
+ * - Logging
17
+ *
18
+ * @author {{Author}}
19
+ * @date {{Date}}
20
+ */
21
+ public with sharing class {{ServiceName}}SoapService {
22
+
23
+ // Named Credential for SOAP endpoint (recommended over Remote Site Setting)
24
+ private static final String NAMED_CREDENTIAL = 'callout:{{NamedCredentialName}}';
25
+
26
+ // Timeout in milliseconds (max 120000)
27
+ private static final Integer TIMEOUT_MS = 120000;
28
+
29
+ /**
30
+ * @description Call SOAP operation with request object
31
+ *
32
+ * Replace {{WsdlStubClass}} with your WSDL-generated class name
33
+ * Replace {{PortType}} with the port/binding type from WSDL
34
+ * Replace {{OperationName}} with the SOAP operation to call
35
+ *
36
+ * @param request Request object (WSDL-generated type)
37
+ * @return Response object (WSDL-generated type)
38
+ * @throws SoapCalloutException on errors
39
+ */
40
+ public static {{ResponseType}} callService({{RequestType}} request) {
41
+ try {
42
+ // Instantiate the WSDL-generated stub
43
+ {{WsdlStubClass}}.{{PortType}} stub = new {{WsdlStubClass}}.{{PortType}}();
44
+
45
+ // Configure endpoint
46
+ // Option 1: Use Named Credential (recommended)
47
+ stub.endpoint_x = NAMED_CREDENTIAL;
48
+
49
+ // Option 2: Direct endpoint (requires Remote Site Setting)
50
+ // stub.endpoint_x = '{{SoapEndpoint}}';
51
+
52
+ // Set timeout
53
+ stub.timeout_x = TIMEOUT_MS;
54
+
55
+ // Set custom SOAP headers if needed
56
+ // stub.inputHttpHeaders_x = new Map<String, String>{
57
+ // 'X-Custom-Header' => 'value'
58
+ // };
59
+
60
+ // Make the SOAP call
61
+ {{ResponseType}} response = stub.{{OperationName}}(request);
62
+
63
+ // Log success
64
+ System.debug(LoggingLevel.DEBUG, 'SOAP call successful: {{OperationName}}');
65
+
66
+ return response;
67
+
68
+ } catch (CalloutException e) {
69
+ // Network/timeout error
70
+ System.debug(LoggingLevel.ERROR, 'SOAP CalloutException: ' + e.getMessage());
71
+ throw new SoapCalloutException('Connection error: ' + e.getMessage(), e);
72
+
73
+ } catch (Exception e) {
74
+ // SOAP fault or other error
75
+ System.debug(LoggingLevel.ERROR, 'SOAP Error: ' + e.getMessage());
76
+ System.debug(LoggingLevel.ERROR, 'Stack: ' + e.getStackTraceString());
77
+ throw new SoapCalloutException('SOAP service error: ' + e.getMessage(), e);
78
+ }
79
+ }
80
+
81
+ /**
82
+ * @description Async SOAP call via Queueable
83
+ * Use this when calling from DML context (triggers)
84
+ * @param request Request object
85
+ * @param callbackId Optional ID for tracking the async job
86
+ */
87
+ public static void callServiceAsync({{RequestType}} request, Id callbackId) {
88
+ System.enqueueJob(new SoapCalloutQueueable(request, callbackId));
89
+ }
90
+
91
+ /**
92
+ * @description Queueable implementation for async SOAP calls
93
+ */
94
+ public class SoapCalloutQueueable implements Queueable, Database.AllowsCallouts {
95
+ private {{RequestType}} request;
96
+ private Id callbackId;
97
+
98
+ public SoapCalloutQueueable({{RequestType}} request, Id callbackId) {
99
+ this.request = request;
100
+ this.callbackId = callbackId;
101
+ }
102
+
103
+ public void execute(QueueableContext context) {
104
+ try {
105
+ {{ResponseType}} response = callService(request);
106
+
107
+ // Process response and update Salesforce record if needed
108
+ if (callbackId != null) {
109
+ processCallback(response, callbackId);
110
+ }
111
+
112
+ } catch (Exception e) {
113
+ System.debug(LoggingLevel.ERROR, 'Async SOAP call failed: ' + e.getMessage());
114
+ // Consider: create error log, send notification
115
+ }
116
+ }
117
+ }
118
+
119
+ /**
120
+ * @description Process async callback result
121
+ * @param response SOAP response
122
+ * @param callbackId Record ID to update with result
123
+ */
124
+ private static void processCallback({{ResponseType}} response, Id callbackId) {
125
+ // TODO: Implement callback processing
126
+ // Example: Update a record with the response data
127
+ /*
128
+ SObject record = callbackId.getSObjectType().newSObject(callbackId);
129
+ record.put('Integration_Status__c', 'Complete');
130
+ record.put('Integration_Response__c', JSON.serialize(response));
131
+ update record;
132
+ */
133
+ }
134
+
135
+ /**
136
+ * @description Custom exception for SOAP callout errors
137
+ */
138
+ public class SoapCalloutException extends Exception {}
139
+ }
140
+
141
+ /*
142
+ * ============================================================================
143
+ * WSDL2APEX GENERATION GUIDE
144
+ * ============================================================================
145
+ *
146
+ * Step 1: Obtain WSDL
147
+ * -------------------
148
+ * Get the WSDL file from the external system. It should be an XML file
149
+ * defining the service, operations, and data types.
150
+ *
151
+ * Step 2: Generate Apex Classes
152
+ * -----------------------------
153
+ * 1. Go to Setup → Apex Classes
154
+ * 2. Click "Generate from WSDL"
155
+ * 3. Upload the WSDL file
156
+ * 4. Choose a namespace (or accept default)
157
+ * 5. Click "Generate Apex code"
158
+ *
159
+ * Step 3: Review Generated Classes
160
+ * --------------------------------
161
+ * Salesforce generates:
162
+ * - Stub class ({{WsdlStubClass}}) with methods for each operation
163
+ * - Request/Response wrapper classes
164
+ * - Data type classes matching WSDL schema
165
+ *
166
+ * Step 4: Configure Access
167
+ * ------------------------
168
+ * Option A: Named Credential (Recommended)
169
+ * - Create Named Credential with SOAP endpoint
170
+ * - Set stub.endpoint_x = 'callout:NamedCredentialName'
171
+ *
172
+ * Option B: Remote Site Setting
173
+ * - Create Remote Site Setting with SOAP endpoint domain
174
+ * - Set stub.endpoint_x to full URL
175
+ *
176
+ * Step 5: Test the Integration
177
+ * ----------------------------
178
+ * Execute anonymous Apex:
179
+ *
180
+ * {{RequestType}} req = new {{RequestType}}();
181
+ * req.field1 = 'value';
182
+ * {{ResponseType}} resp = {{ServiceName}}SoapService.callService(req);
183
+ * System.debug(resp);
184
+ *
185
+ * ============================================================================
186
+ */
@@ -0,0 +1,213 @@
1
+ # WSDL to Apex Generation Guide
2
+
3
+ ## Overview
4
+
5
+ Salesforce can automatically generate Apex classes from WSDL (Web Services Description Language) files, enabling integration with SOAP-based web services.
6
+
7
+ ## Step-by-Step Process
8
+
9
+ ### 1. Obtain the WSDL File
10
+
11
+ Get the WSDL from your external system. Common sources:
12
+ - API documentation portal
13
+ - Endpoint URL with `?wsdl` suffix (e.g., `https://api.example.com/service?wsdl`)
14
+ - Direct download from vendor
15
+
16
+ ### 2. Review WSDL for Compatibility
17
+
18
+ Salesforce WSDL2Apex has limitations. Check for:
19
+
20
+ **Supported:**
21
+ - Document/literal and RPC/encoded styles
22
+ - Simple types (string, integer, boolean, date, etc.)
23
+ - Complex types (objects with properties)
24
+ - Arrays and lists
25
+ - Basic SOAP headers
26
+
27
+ **Not Supported / Problematic:**
28
+ - Very large WSDLs (may hit Apex class size limits)
29
+ - Certain complex inheritance patterns
30
+ - Some advanced XSD features
31
+ - WS-Security (requires manual implementation)
32
+
33
+ ### 3. Generate Apex Classes
34
+
35
+ 1. Navigate to **Setup → Apex Classes**
36
+ 2. Click **Generate from WSDL**
37
+ 3. Click **Choose File** and upload the WSDL
38
+ 4. Review the parse results
39
+ 5. Modify class names if needed (keep them short to avoid limits)
40
+ 6. Click **Generate Apex code**
41
+
42
+ ### 4. Generated Class Structure
43
+
44
+ For a WSDL defining `CustomerService` with operation `getCustomer`:
45
+
46
+ ```
47
+ AsyncCustomerService.cls - Async version of service
48
+ CustomerService.cls - Main stub class with methods
49
+ GetCustomerRequest.cls - Request wrapper
50
+ GetCustomerResponse.cls - Response wrapper
51
+ Customer.cls - Data type from schema
52
+ Address.cls - Nested data type
53
+ ```
54
+
55
+ ### 5. Configure Endpoint Access
56
+
57
+ **Option A: Named Credential (Recommended)**
58
+
59
+ 1. Create Named Credential in Setup
60
+ 2. Set endpoint to SOAP service URL
61
+ 3. Configure authentication (Basic, Certificate, OAuth)
62
+ 4. In Apex: `stub.endpoint_x = 'callout:MyNamedCredential';`
63
+
64
+ **Option B: Remote Site Setting**
65
+
66
+ 1. Create Remote Site Setting with domain
67
+ 2. In Apex: `stub.endpoint_x = 'https://api.example.com/service';`
68
+
69
+ ### 6. Basic Usage Example
70
+
71
+ ```apex
72
+ public class CustomerServiceCaller {
73
+
74
+ public static Customer getCustomer(String customerId) {
75
+ // Instantiate the generated stub
76
+ CustomerService.CustomerServicePort stub = new CustomerService.CustomerServicePort();
77
+
78
+ // Configure endpoint (Named Credential)
79
+ stub.endpoint_x = 'callout:CustomerServiceNC';
80
+
81
+ // Set timeout (max 120 seconds)
82
+ stub.timeout_x = 120000;
83
+
84
+ // Create request
85
+ GetCustomerRequest request = new GetCustomerRequest();
86
+ request.customerId = customerId;
87
+
88
+ // Make the call
89
+ GetCustomerResponse response = stub.getCustomer(request);
90
+
91
+ return response.customer;
92
+ }
93
+ }
94
+ ```
95
+
96
+ ### 7. Error Handling
97
+
98
+ ```apex
99
+ try {
100
+ GetCustomerResponse response = stub.getCustomer(request);
101
+ // Process response
102
+
103
+ } catch (CalloutException e) {
104
+ // Network error, timeout, SSL issues
105
+ System.debug('Callout failed: ' + e.getMessage());
106
+
107
+ } catch (Exception e) {
108
+ // SOAP fault (error from service)
109
+ // The exception message contains SOAP fault details
110
+ System.debug('SOAP error: ' + e.getMessage());
111
+ }
112
+ ```
113
+
114
+ ### 8. Common Issues and Solutions
115
+
116
+ | Issue | Cause | Solution |
117
+ |-------|-------|----------|
118
+ | `Web service callout failed` | Network/SSL issue | Check Remote Site Setting, verify endpoint |
119
+ | `Read timed out` | Service slow to respond | Increase `timeout_x` (max 120000ms) |
120
+ | `Apex class size limit` | WSDL too large | Split WSDL, use fewer operations |
121
+ | `Unable to parse callout response` | Response doesn't match WSDL | Check service version, update WSDL |
122
+ | `Methods defined as Webservice` | Conflict with reserved keywords | Rename operations in WSDL or generated class |
123
+
124
+ ### 9. Testing SOAP Callouts
125
+
126
+ Use `Test.setMock()` with `WebServiceMock`:
127
+
128
+ ```apex
129
+ @isTest
130
+ public class CustomerServiceTest {
131
+
132
+ @isTest
133
+ static void testGetCustomer() {
134
+ // Set mock
135
+ Test.setMock(WebServiceMock.class, new CustomerServiceMock());
136
+
137
+ // Call service
138
+ Test.startTest();
139
+ Customer result = CustomerServiceCaller.getCustomer('CUST001');
140
+ Test.stopTest();
141
+
142
+ // Assert
143
+ System.assertEquals('Test Customer', result.name);
144
+ }
145
+
146
+ // Mock implementation
147
+ public class CustomerServiceMock implements WebServiceMock {
148
+ public void doInvoke(
149
+ Object stub,
150
+ Object request,
151
+ Map<String, Object> response,
152
+ String endpoint,
153
+ String soapAction,
154
+ String requestName,
155
+ String responseNS,
156
+ String responseName,
157
+ String responseType
158
+ ) {
159
+ // Create mock response
160
+ GetCustomerResponse mockResponse = new GetCustomerResponse();
161
+ mockResponse.customer = new Customer();
162
+ mockResponse.customer.name = 'Test Customer';
163
+
164
+ response.put('response_x', mockResponse);
165
+ }
166
+ }
167
+ }
168
+ ```
169
+
170
+ ### 10. Async SOAP Calls
171
+
172
+ For calls from triggers or after DML:
173
+
174
+ ```apex
175
+ public class CustomerSyncQueueable implements Queueable, Database.AllowsCallouts {
176
+
177
+ private String customerId;
178
+
179
+ public CustomerSyncQueueable(String customerId) {
180
+ this.customerId = customerId;
181
+ }
182
+
183
+ public void execute(QueueableContext context) {
184
+ try {
185
+ Customer customer = CustomerServiceCaller.getCustomer(customerId);
186
+ // Process result
187
+ } catch (Exception e) {
188
+ // Log error
189
+ }
190
+ }
191
+ }
192
+
193
+ // Usage in trigger:
194
+ System.enqueueJob(new CustomerSyncQueueable(accountId));
195
+ ```
196
+
197
+ ## Best Practices
198
+
199
+ 1. **Always use Named Credentials** for authentication instead of hardcoding credentials
200
+ 2. **Set appropriate timeouts** - default may be too short
201
+ 3. **Implement error handling** - SOAP services can fail in many ways
202
+ 4. **Log requests and responses** for debugging
203
+ 5. **Use async patterns** when calling from DML contexts
204
+ 6. **Test with mocks** - don't call real services in tests
205
+ 7. **Monitor governor limits** - especially for large responses
206
+
207
+ ## Limitations
208
+
209
+ - Maximum 100 callouts per transaction
210
+ - Maximum 120 second timeout per callout
211
+ - Response body limit: 6MB
212
+ - Apex code size limits may prevent large WSDL imports
213
+ - Some WSDL features not supported (WS-Security, MTOM, etc.)