sfdx-hardis 5.15.4 → 5.16.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 (92) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/defaults/ci/.github/workflows/check-deploy.yml +1 -0
  3. package/defaults/ci/.gitlab-ci.yml +1 -0
  4. package/defaults/ci/Jenkinsfile +1 -0
  5. package/defaults/ci/azure-pipelines-checks.yml +1 -0
  6. package/defaults/ci/bitbucket-pipelines.yml +1 -0
  7. package/lib/commands/hardis/doc/extract/permsetgroups.js +2 -1
  8. package/lib/commands/hardis/doc/extract/permsetgroups.js.map +1 -1
  9. package/lib/commands/hardis/doc/project2markdown.d.ts +11 -0
  10. package/lib/commands/hardis/doc/project2markdown.js +175 -16
  11. package/lib/commands/hardis/doc/project2markdown.js.map +1 -1
  12. package/lib/commands/hardis/lint/access.js +7 -6
  13. package/lib/commands/hardis/lint/access.js.map +1 -1
  14. package/lib/commands/hardis/package/mergexml.js +2 -1
  15. package/lib/commands/hardis/package/mergexml.js.map +1 -1
  16. package/lib/commands/hardis/project/audit/callincallout.js +2 -1
  17. package/lib/commands/hardis/project/audit/callincallout.js.map +1 -1
  18. package/lib/commands/hardis/project/audit/remotesites.js +2 -1
  19. package/lib/commands/hardis/project/audit/remotesites.js.map +1 -1
  20. package/lib/commands/hardis/project/clean/emptyitems.js +2 -1
  21. package/lib/commands/hardis/project/clean/emptyitems.js.map +1 -1
  22. package/lib/commands/hardis/project/clean/flowpositions.js +2 -1
  23. package/lib/commands/hardis/project/clean/flowpositions.js.map +1 -1
  24. package/lib/commands/hardis/project/clean/hiddenitems.js +2 -1
  25. package/lib/commands/hardis/project/clean/hiddenitems.js.map +1 -1
  26. package/lib/commands/hardis/project/clean/listviews.js +2 -1
  27. package/lib/commands/hardis/project/clean/listviews.js.map +1 -1
  28. package/lib/commands/hardis/project/clean/manageditems.js +3 -2
  29. package/lib/commands/hardis/project/clean/manageditems.js.map +1 -1
  30. package/lib/commands/hardis/project/clean/minimizeprofiles.js +2 -1
  31. package/lib/commands/hardis/project/clean/minimizeprofiles.js.map +1 -1
  32. package/lib/commands/hardis/project/clean/orgmissingitems.js +2 -0
  33. package/lib/commands/hardis/project/clean/orgmissingitems.js.map +1 -1
  34. package/lib/commands/hardis/project/clean/references.js +7 -4
  35. package/lib/commands/hardis/project/clean/references.js.map +1 -1
  36. package/lib/commands/hardis/project/clean/sensitive-metadatas.js +2 -1
  37. package/lib/commands/hardis/project/clean/sensitive-metadatas.js.map +1 -1
  38. package/lib/commands/hardis/project/clean/standarditems.js +3 -2
  39. package/lib/commands/hardis/project/clean/standarditems.js.map +1 -1
  40. package/lib/commands/hardis/project/clean/systemdebug.js +2 -1
  41. package/lib/commands/hardis/project/clean/systemdebug.js.map +1 -1
  42. package/lib/commands/hardis/project/clean/xml.js +2 -1
  43. package/lib/commands/hardis/project/clean/xml.js.map +1 -1
  44. package/lib/commands/hardis/project/deploy/notify.js +59 -6
  45. package/lib/commands/hardis/project/deploy/notify.js.map +1 -1
  46. package/lib/commands/hardis/project/fix/profiletabs.js +2 -1
  47. package/lib/commands/hardis/project/fix/profiletabs.js.map +1 -1
  48. package/lib/commands/hardis/project/fix/v53flexipages.js +2 -1
  49. package/lib/commands/hardis/project/fix/v53flexipages.js.map +1 -1
  50. package/lib/commands/hardis/project/generate/flow-git-diff.js +1 -1
  51. package/lib/commands/hardis/project/metadata/findduplicates.js +2 -1
  52. package/lib/commands/hardis/project/metadata/findduplicates.js.map +1 -1
  53. package/lib/common/aiProvider/agentforceProvider.d.ts +10 -0
  54. package/lib/common/aiProvider/agentforceProvider.js +66 -0
  55. package/lib/common/aiProvider/agentforceProvider.js.map +1 -0
  56. package/lib/common/aiProvider/index.d.ts +1 -1
  57. package/lib/common/aiProvider/index.js +17 -1
  58. package/lib/common/aiProvider/index.js.map +1 -1
  59. package/lib/common/aiProvider/promptTemplates.d.ts +13 -5
  60. package/lib/common/aiProvider/promptTemplates.js +86 -44
  61. package/lib/common/aiProvider/promptTemplates.js.map +1 -1
  62. package/lib/common/aiProvider/utils.d.ts +11 -0
  63. package/lib/common/aiProvider/utils.js +50 -0
  64. package/lib/common/aiProvider/utils.js.map +1 -1
  65. package/lib/common/gitProvider/utilsMarkdown.d.ts +1 -0
  66. package/lib/common/gitProvider/utilsMarkdown.js +6 -0
  67. package/lib/common/gitProvider/utilsMarkdown.js.map +1 -1
  68. package/lib/common/metadata-utils/index.js +3 -2
  69. package/lib/common/metadata-utils/index.js.map +1 -1
  70. package/lib/common/utils/branchStrategyMermaidBuilder.d.ts +4 -0
  71. package/lib/common/utils/branchStrategyMermaidBuilder.js +84 -70
  72. package/lib/common/utils/branchStrategyMermaidBuilder.js.map +1 -1
  73. package/lib/common/utils/deployTipJson.js +1 -1
  74. package/lib/common/utils/deployTipJson.js.map +1 -1
  75. package/lib/common/utils/deployTips.js +1 -1
  76. package/lib/common/utils/deployTips.js.map +1 -1
  77. package/lib/common/utils/deployUtils.js +3 -2
  78. package/lib/common/utils/deployUtils.js.map +1 -1
  79. package/lib/common/utils/docUtils.d.ts +3 -0
  80. package/lib/common/utils/docUtils.js +76 -0
  81. package/lib/common/utils/docUtils.js.map +1 -1
  82. package/lib/common/utils/mermaidUtils.js +71 -75
  83. package/lib/common/utils/mermaidUtils.js.map +1 -1
  84. package/lib/common/utils/orgConfigUtils.js +2 -1
  85. package/lib/common/utils/orgConfigUtils.js.map +1 -1
  86. package/lib/common/utils/projectUtils.js +1 -1
  87. package/lib/common/utils/projectUtils.js.map +1 -1
  88. package/lib/common/utils/workaroundUtils.js +2 -1
  89. package/lib/common/utils/workaroundUtils.js.map +1 -1
  90. package/oclif.lock +103 -72
  91. package/oclif.manifest.json +51 -51
  92. package/package.json +5 -5
package/CHANGELOG.md CHANGED
@@ -4,6 +4,29 @@
4
4
 
5
5
  Note: Can be used with `sfdx plugins:install sfdx-hardis@beta` and docker image `hardisgroupcom/sfdx-hardis@beta`
6
6
 
7
+ ## [5.16.0] 2025-01-19
8
+
9
+ - New AI Provider: Agentforce
10
+ - Create Objects AI-powered documentation
11
+ - Summary
12
+ - Relationships with other objects
13
+ - Fields
14
+ - Validation rules
15
+ - Related flows
16
+ - Handle prompts multilingualism (ex: `PROMPTS_LANGUAGE=fr`)
17
+ - Handle prompts cache to save tokens
18
+ - Add `SFDX_DISABLE_FLOW_DIFF: false` in default CI/CD pipelines (must be set to true during CI/CD setup)
19
+ - Enhance branches & orgs CI/CD strategy mermaid diagram
20
+ - Improve performances by using `GLOB_IGNORE_PATTERNS` for all calls to glob
21
+
22
+ ## [5.15.5] 2025-01-16
23
+
24
+ - Flow Visual Diff enhancements
25
+ - Display full node fields table when it contains updated elements
26
+ - Fix removed long links
27
+ - Handle cases where Flow has been added or deleted
28
+ - Update [hardis:project:deploy:notify](https://sfdx-hardis.cloudity.com/hardis/project/deploy/notify/) documentation
29
+
7
30
  ## [5.15.4] 2025-01-15
8
31
 
9
32
  - Allow to disable calls to AI prompts API using DISABLE_AI=true
@@ -76,6 +76,7 @@ jobs:
76
76
  JIRA_TICKET_REGEX: ${{ secrets.JIRA_TICKET_REGEX }}
77
77
  OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
78
78
  FORCE_COLOR: "1"
79
+ SFDX_DISABLE_FLOW_DIFF: false # Set to true to disable Flow doc during CI/CD
79
80
  run: |
80
81
  echo "Simulate SFDX deployment using Hardis against \"$CONFIG_BRANCH\""
81
82
  sf hardis:auth:login
@@ -81,6 +81,7 @@ check_deploy_to_target_branch_org:
81
81
  variables:
82
82
  CONFIG_BRANCH: $CI_MERGE_REQUEST_TARGET_BRANCH_NAME
83
83
  ORG_ALIAS: $CI_MERGE_REQUEST_TARGET_BRANCH_NAME
84
+ SFDX_DISABLE_FLOW_DIFF: false # Set to true to disable Flow doc during CI/CD setup
84
85
  script:
85
86
  - '[ -z "$CI_MERGE_REQUEST_TARGET_BRANCH_NAME" ] && exit 0;' # Skip this job if it is launched from web UI and we are not in merge request context
86
87
  - sf hardis:auth:login
@@ -25,6 +25,7 @@ pipeline {
25
25
  CONFIG_BRANCH = "${GIT_BRANCH}"
26
26
  CI_COMMIT_REF_NAME = "${GIT_BRANCH}"
27
27
  ORG_ALIAS = "${GIT_BRANCH}"
28
+ SFDX_DISABLE_FLOW_DIFF = 'false' // Set to true to disable Flow doc during CI/CD setup
28
29
  }
29
30
 
30
31
  //Stage of the job
@@ -94,6 +94,7 @@ jobs:
94
94
  BUILD_REPOSITORYNAME: $(Build.Repository.Name)
95
95
  BUILD_SOURCEBRANCHNAME: $(Build.SourceBranchName)
96
96
  BUILD_BUILD_ID: $(Build.BuildId)
97
+ SFDX_DISABLE_FLOW_DIFF: false # Set to true to disable Flow doc during CI/CD setup
97
98
  displayName: "Simulate deploy to org"
98
99
 
99
100
  # Run MegaLinter to detect linting and security issues
@@ -32,6 +32,7 @@ pipelines:
32
32
  - export ORG_ALIAS=$BRANCH_NAME
33
33
  - export CONFIG_BRANCH=$BRANCH_NAME
34
34
  - export FORCE_COLOR=1
35
+ - export SFDX_DISABLE_FLOW_DIFF=false # Set to true to disable Flow doc during CI/CD setup
35
36
  - sf hardis:auth:login
36
37
  - sf hardis:project:deploy:smart --check
37
38
 
@@ -10,6 +10,7 @@ import { uxLog } from '../../../../common/utils/index.js';
10
10
  import { parseXmlFile } from '../../../../common/utils/xmlUtils.js';
11
11
  import { getReportDirectory } from '../../../../config/index.js';
12
12
  import { WebSocketClient } from '../../../../common/websocketClient.js';
13
+ import { GLOB_IGNORE_PATTERNS } from '../../../../common/utils/projectUtils.js';
13
14
  Messages.importMessagesDirectoryFromMetaUrl(import.meta.url);
14
15
  const messages = Messages.loadMessages('sfdx-hardis', 'org');
15
16
  export default class ExtractPermSetGroups extends SfCommand {
@@ -46,7 +47,7 @@ export default class ExtractPermSetGroups extends SfCommand {
46
47
  /* jscpd:ignore-end */
47
48
  const psgList = [];
48
49
  const globPatternPSG = process.cwd() + `/**/*.permissionsetgroup-meta.xml`;
49
- const psgFiles = await glob(globPatternPSG);
50
+ const psgFiles = await glob(globPatternPSG, { ignore: GLOB_IGNORE_PATTERNS });
50
51
  uxLog(this, c.grey(`Found ${psgFiles.length} permission set groups`));
51
52
  for (const psgFile of psgFiles) {
52
53
  const psgName = (psgFile.replace(/\\/g, '/').split('/').pop() || '').replace('.permissionsetgroup-meta.xml', '');
@@ -1 +1 @@
1
- {"version":3,"file":"permsetgroups.js","sourceRoot":"","sources":["../../../../../src/commands/hardis/doc/extract/permsetgroups.ts"],"names":[],"mappings":"AAAA,wBAAwB;AACxB,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,OAAO,CAAC,MAAM,OAAO,CAAC;AACtB,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,GAAG,MAAM,cAAc,CAAC;AAC/B,OAAO,EAAE,KAAK,EAAE,MAAM,mCAAmC,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAExE,QAAQ,CAAC,kCAAkC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7D,MAAM,QAAQ,GAAG,QAAQ,CAAC,YAAY,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;AAE7D,MAAM,CAAC,OAAO,OAAO,oBAAqB,SAAQ,SAAc;IACvD,MAAM,CAAC,KAAK,GAAG,gCAAgC,CAAC;IAEhD,MAAM,CAAC,WAAW,GAAG,oDAAoD,CAAC;IAE1E,MAAM,CAAC,QAAQ,GAAG,CAAC,uCAAuC,CAAC,CAAC;IAE5D,MAAM,CAAC,KAAK,GAAQ;QACzB,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC;YACvB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,mEAAmE;SACjF,CAAC;QACF,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC;YACnB,IAAI,EAAE,GAAG;YACT,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC;SAC9C,CAAC;QACF,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC;YACtB,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC;SAC9C,CAAC;QACF,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC;YACtB,WAAW,EAAE,+DAA+D;SAC7E,CAAC;KACH,CAAC;IAEF,uGAAuG;IAChG,MAAM,CAAC,eAAe,GAAG,IAAI,CAAC;IAE3B,UAAU,CAAC;IACX,SAAS,GAAG,KAAK,CAAC;IAErB,KAAK,CAAC,GAAG;QACd,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;QACzD,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,IAAI,IAAI,CAAC;QAC3C,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC;QACtC,uCAAuC;QACvC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,0FAA0F,CAAC,CAAC,CAAC;QAChH,sBAAsB;QAEtB,MAAM,OAAO,GAAU,EAAE,CAAC;QAC1B,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,mCAAmC,CAAC;QAC3E,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,CAAC;QAC5C,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,QAAQ,CAAC,MAAM,wBAAwB,CAAC,CAAC,CAAC;QACtE,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,MAAM,OAAO,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,8BAA8B,EAAE,EAAE,CAAC,CAAC;YACjH,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC;YACxC,MAAM,OAAO,GAAG;gBACd,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,GAAG,CAAC,kBAAkB,CAAC,KAAK;gBACnC,WAAW,EAAE,GAAG,CAAC,kBAAkB,CAAC,WAAW;gBAC/C,mBAAmB,EAAE,GAAG,CAAC,kBAAkB,CAAC,cAAc;aAC3D,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACxB,CAAC;QAED,YAAY;QACZ,MAAM,QAAQ,GAAU,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,CAAC,sBAAsB,EAAE,iBAAiB,CAAC,CAAC;QAC3D,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACtB,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;YAC1B,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC3B,OAAO,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACvD,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACzB,CAAC;QAED,wBAAwB;QACxB,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,EAAE,CAAC;YAC5B,qEAAqE;YACrE,MAAM,SAAS,GAAG,MAAM,kBAAkB,EAAE,CAAC;YAC7C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,2BAA2B,CAAC,CAAC;QACtE,CAAC;aAAM,CAAC;YACN,2DAA2D;YAC3D,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QACpD,CAAC;QACD,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5D,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;YACrD,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACvG,uDAAuD;YACvD,eAAe,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACnD,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,wCAAwC,GAAI,CAAW,CAAC,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACxG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACzB,CAAC;QAED,sBAAsB;QACtB,MAAM,KAAK,GAAG,CAAC,yBAAyB,EAAE,EAAE,EAAE,cAAc,EAAE,kBAAkB,CAAC,CAAC;QAClF,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;YAC1B,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,KAAK,EAAE,EAAE,EAAE,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC;YAC1E,KAAK,MAAM,MAAM,IAAI,GAAG,CAAC,mBAAmB,EAAE,CAAC;gBAC7C,KAAK,CAAC,IAAI,CAAC,OAAO,MAAM,GAAG,CAAC,CAAC;YAC/B,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC;QACD,MAAM,OAAO,GAAG,+BAA+B,CAAC;QAChD,MAAM,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC3B,IAAI,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjC,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAClC,MAAM,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QAC/C,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACpG,uDAAuD;QACvD,eAAe,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAEzC,+CAA+C;QAC/C,OAAO,EAAE,YAAY,EAAE,+CAA+C,EAAE,CAAC;IAC3E,CAAC"}
1
+ {"version":3,"file":"permsetgroups.js","sourceRoot":"","sources":["../../../../../src/commands/hardis/doc/extract/permsetgroups.ts"],"names":[],"mappings":"AAAA,wBAAwB;AACxB,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,OAAO,CAAC,MAAM,OAAO,CAAC;AACtB,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,GAAG,MAAM,cAAc,CAAC;AAC/B,OAAO,EAAE,KAAK,EAAE,MAAM,mCAAmC,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AACxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0CAA0C,CAAC;AAEhF,QAAQ,CAAC,kCAAkC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7D,MAAM,QAAQ,GAAG,QAAQ,CAAC,YAAY,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;AAE7D,MAAM,CAAC,OAAO,OAAO,oBAAqB,SAAQ,SAAc;IACvD,MAAM,CAAC,KAAK,GAAG,gCAAgC,CAAC;IAEhD,MAAM,CAAC,WAAW,GAAG,oDAAoD,CAAC;IAE1E,MAAM,CAAC,QAAQ,GAAG,CAAC,uCAAuC,CAAC,CAAC;IAE5D,MAAM,CAAC,KAAK,GAAQ;QACzB,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC;YACvB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,mEAAmE;SACjF,CAAC;QACF,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC;YACnB,IAAI,EAAE,GAAG;YACT,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC;SAC9C,CAAC;QACF,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC;YACtB,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC;SAC9C,CAAC;QACF,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC;YACtB,WAAW,EAAE,+DAA+D;SAC7E,CAAC;KACH,CAAC;IAEF,uGAAuG;IAChG,MAAM,CAAC,eAAe,GAAG,IAAI,CAAC;IAE3B,UAAU,CAAC;IACX,SAAS,GAAG,KAAK,CAAC;IAErB,KAAK,CAAC,GAAG;QACd,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;QACzD,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,IAAI,IAAI,CAAC;QAC3C,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC;QACtC,uCAAuC;QACvC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,0FAA0F,CAAC,CAAC,CAAC;QAChH,sBAAsB;QAEtB,MAAM,OAAO,GAAU,EAAE,CAAC;QAC1B,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,mCAAmC,CAAC;QAC3E,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,oBAAoB,EAAE,CAAC,CAAC;QAC9E,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,QAAQ,CAAC,MAAM,wBAAwB,CAAC,CAAC,CAAC;QACtE,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,MAAM,OAAO,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,8BAA8B,EAAE,EAAE,CAAC,CAAC;YACjH,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC;YACxC,MAAM,OAAO,GAAG;gBACd,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,GAAG,CAAC,kBAAkB,CAAC,KAAK;gBACnC,WAAW,EAAE,GAAG,CAAC,kBAAkB,CAAC,WAAW;gBAC/C,mBAAmB,EAAE,GAAG,CAAC,kBAAkB,CAAC,cAAc;aAC3D,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACxB,CAAC;QAED,YAAY;QACZ,MAAM,QAAQ,GAAU,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,CAAC,sBAAsB,EAAE,iBAAiB,CAAC,CAAC;QAC3D,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACtB,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;YAC1B,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC3B,OAAO,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACvD,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACzB,CAAC;QAED,wBAAwB;QACxB,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,EAAE,CAAC;YAC5B,qEAAqE;YACrE,MAAM,SAAS,GAAG,MAAM,kBAAkB,EAAE,CAAC;YAC7C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,2BAA2B,CAAC,CAAC;QACtE,CAAC;aAAM,CAAC;YACN,2DAA2D;YAC3D,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QACpD,CAAC;QACD,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5D,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;YACrD,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACvG,uDAAuD;YACvD,eAAe,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACnD,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,wCAAwC,GAAI,CAAW,CAAC,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACxG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACzB,CAAC;QAED,sBAAsB;QACtB,MAAM,KAAK,GAAG,CAAC,yBAAyB,EAAE,EAAE,EAAE,cAAc,EAAE,kBAAkB,CAAC,CAAC;QAClF,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;YAC1B,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,KAAK,EAAE,EAAE,EAAE,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC;YAC1E,KAAK,MAAM,MAAM,IAAI,GAAG,CAAC,mBAAmB,EAAE,CAAC;gBAC7C,KAAK,CAAC,IAAI,CAAC,OAAO,MAAM,GAAG,CAAC,CAAC;YAC/B,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC;QACD,MAAM,OAAO,GAAG,+BAA+B,CAAC;QAChD,MAAM,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC3B,IAAI,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjC,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAClC,MAAM,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QAC/C,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACpG,uDAAuD;QACvD,eAAe,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAEzC,+CAA+C;QAC/C,OAAO,EAAE,YAAY,EAAE,+CAA+C,EAAE,CAAC;IAC3E,CAAC"}
@@ -18,11 +18,22 @@ export default class Project2Markdown extends SfCommand<any> {
18
18
  protected withHistory: boolean;
19
19
  protected debugMode: boolean;
20
20
  protected footer: string;
21
+ protected flowDescriptions: any[];
22
+ protected objectDescriptions: any[];
23
+ protected objectFiles: string[];
24
+ protected allObjectsNames: string[];
25
+ protected tempDir: string;
21
26
  run(): Promise<AnyJson>;
22
27
  private buildMkDocsYml;
28
+ private generateObjectsDocumentation;
29
+ private buildAttributesTables;
30
+ private generateLinksInfo;
23
31
  private generateFlowsDocumentation;
24
32
  private humanDisplay;
25
33
  private buildFlowsTable;
34
+ private buildObjectsTable;
35
+ private buildCustomFieldsTable;
36
+ private buildValidationRulesTable;
26
37
  private buildInstalledPackages;
27
38
  private buildSfdxHardisParams;
28
39
  private buildMajorBranchesAndOrgs;
@@ -3,20 +3,23 @@ import { SfCommand, Flags, optionalOrgFlagWithDeprecations } from '@salesforce/s
3
3
  import fs from 'fs-extra';
4
4
  import c from "chalk";
5
5
  import * as path from "path";
6
+ import { XMLBuilder, XMLParser } from "fast-xml-parser";
6
7
  import sortArray from 'sort-array';
7
8
  import { Messages } from '@salesforce/core';
8
9
  import { WebSocketClient } from '../../../common/websocketClient.js';
9
- import { generatePackageXmlMarkdown, readMkDocsFile, writeMkDocsFile } from '../../../common/utils/docUtils.js';
10
+ import { completeAttributesDescriptionWithAi, generateObjectMarkdown, generatePackageXmlMarkdown, readMkDocsFile, replaceInFile, writeMkDocsFile } from '../../../common/utils/docUtils.js';
10
11
  import { countPackageXmlItems, parseXmlFile } from '../../../common/utils/xmlUtils.js';
11
- import { bool2emoji, execSfdxJson, getCurrentGitBranch, getGitRepoName, uxLog } from '../../../common/utils/index.js';
12
+ import { bool2emoji, createTempDir, execCommand, execSfdxJson, getCurrentGitBranch, getGitRepoName, uxLog } from '../../../common/utils/index.js';
12
13
  import { CONSTANTS, getConfig } from '../../../config/index.js';
13
14
  import { listMajorOrgs } from '../../../common/utils/orgConfigUtils.js';
14
15
  import { glob } from 'glob';
15
- import { listFlowFiles } from '../../../common/utils/projectUtils.js';
16
+ import { GLOB_IGNORE_PATTERNS, listFlowFiles } from '../../../common/utils/projectUtils.js';
16
17
  import { generateFlowMarkdownFile, generateHistoryDiffMarkdown, generateMarkdownFileWithMermaid } from '../../../common/utils/mermaidUtils.js';
17
18
  import { MetadataUtils } from '../../../common/metadata-utils/index.js';
18
19
  import { PACKAGE_ROOT_DIR } from '../../../settings.js';
19
20
  import { BranchStrategyMermaidBuilder } from '../../../common/utils/branchStrategyMermaidBuilder.js';
21
+ import { mdTableCell } from '../../../common/gitProvider/utilsMarkdown.js';
22
+ import { prettifyFieldName } from '../../../common/utils/flowVisualiser/nodeFormatUtils.js';
20
23
  Messages.importMessagesDirectoryFromMetaUrl(import.meta.url);
21
24
  const messages = Messages.loadMessages('sfdx-hardis', 'org');
22
25
  export default class Project2Markdown extends SfCommand {
@@ -114,12 +117,18 @@ ${this.htmlInstructions}
114
117
  withHistory = false;
115
118
  debugMode = false;
116
119
  footer;
120
+ flowDescriptions = [];
121
+ objectDescriptions = [];
122
+ objectFiles;
123
+ allObjectsNames;
124
+ tempDir;
117
125
  /* jscpd:ignore-end */
118
126
  async run() {
119
127
  const { flags } = await this.parse(Project2Markdown);
120
128
  this.diffOnly = flags["diff-only"] === true ? true : false;
121
129
  this.withHistory = flags["with-history"] === true ? true : false;
122
130
  this.debugMode = flags.debug || false;
131
+ globalThis.jsForceConn = flags['target-org']?.getConnection(); // Required for some notifications providers like Email, or for Agentforce
123
132
  await fs.ensureDir(this.outputMarkdownRoot);
124
133
  const currentBranch = await getCurrentGitBranch();
125
134
  this.footer = `_Documentation generated from branch ${currentBranch} with [sfdx-hardis](${CONSTANTS.DOC_URL_ROOT}) by [Cloudity](${CONSTANTS.WEBSITE_URL}) command [\`sf hardis:doc:project2markdown\`](https://sfdx-hardis.cloudity.com/hardis/doc/project2markdown/)_`;
@@ -157,10 +166,19 @@ ${this.htmlInstructions}
157
166
  this.mdLines.push(...installedPackages);
158
167
  await fs.writeFile(path.join(this.outputMarkdownRoot, "installed-packages.md"), installedPackages.join("\n") + `\n${this.footer}\n`);
159
168
  this.mkDocsNavNodes["Installed Packages"] = "installed-packages.md";
169
+ this.tempDir = await createTempDir();
170
+ // Convert source to metadata API format to build prompts
171
+ await execCommand(`sf project convert source --metadata CustomObject --output-dir ${this.tempDir}`, this, { fail: true, output: true, debug: this.debugMode });
172
+ this.objectFiles = (await glob("**/*.object", { cwd: this.tempDir, ignore: GLOB_IGNORE_PATTERNS })).sort();
173
+ this.allObjectsNames = this.objectFiles.map(object => path.basename(object, ".object"));
160
174
  // List flows & generate doc
161
175
  if (!(process?.env?.GENERATE_FLOW_DOC === 'false')) {
162
176
  await this.generateFlowsDocumentation();
163
177
  }
178
+ // List flows & generate doc
179
+ if (!(process?.env?.GENERATE_OBJECTS_DOC === 'false')) {
180
+ await this.generateObjectsDocumentation();
181
+ }
164
182
  // Write output index file
165
183
  await fs.ensureDir(path.dirname(this.outputMarkdownIndexFile));
166
184
  await fs.writeFile(this.outputMarkdownIndexFile, this.mdLines.join("\n") + "\n\n" + Project2Markdown.htmlInstructions + `\n\n${this.footer}\n`);
@@ -219,6 +237,80 @@ ${Project2Markdown.htmlInstructions}
219
237
  await writeMkDocsFile(mkdocsYmlFile, mkdocsYml);
220
238
  uxLog(this, c.cyan(`To generate a HTML WebSite with this documentation with a single command, see instructions at ${CONSTANTS.DOC_URL_ROOT}/hardis/doc/project2markdown/`));
221
239
  }
240
+ async generateObjectsDocumentation() {
241
+ uxLog(this, c.cyan("Generating Objects AI documentation... (if you don't want it, define GENERATE_OBJECTS_DOC=false in your environment variables)"));
242
+ const objectLinksInfo = await this.generateLinksInfo();
243
+ const objectsForMenu = { "All objects": "objects/index.md" };
244
+ await fs.ensureDir(path.join(this.outputMarkdownRoot, "objects"));
245
+ for (const objectFile of this.objectFiles) {
246
+ const objectName = path.basename(objectFile, ".object");
247
+ uxLog(this, c.grey(`Generating markdown for Object ${objectFile}...`));
248
+ const objectXml = (await fs.readFile(path.join(this.tempDir, objectFile), "utf8")).toString();
249
+ const objectMdFile = path.join(this.outputMarkdownRoot, "objects", objectName + ".md");
250
+ // Remove picklist values from Record Types to save tokens
251
+ const objectXmlParsed = new XMLParser().parse(objectXml);
252
+ if (objectXmlParsed?.CustomObject?.recordTypes) {
253
+ for (const recordType of objectXmlParsed.CustomObject.recordTypes || []) {
254
+ delete recordType.picklistValues;
255
+ }
256
+ }
257
+ // Remove actionOverrides with formFactors to save tokens
258
+ if (objectXmlParsed?.CustomObject?.actionOverrides) {
259
+ objectXmlParsed.CustomObject.actionOverrides = objectXmlParsed.CustomObject.actionOverrides.filter(actionOverride => !actionOverride.formFactor);
260
+ }
261
+ // Remove compact layouts to save tokens
262
+ delete objectXmlParsed.CustomObject?.compactLayouts;
263
+ // Build filtered XML
264
+ const objectXmlStripped = new XMLBuilder().build(objectXmlParsed);
265
+ // Main AI markdown
266
+ await generateObjectMarkdown(objectName, objectXmlStripped, this.allObjectsNames.join(","), objectLinksInfo, objectMdFile);
267
+ // Fields table
268
+ await this.buildAttributesTables(objectName, objectXmlParsed, objectMdFile);
269
+ // Flows Tables
270
+ const relatedObjectFlowsTable = await this.buildFlowsTable('../flows/', objectName);
271
+ await replaceInFile(objectMdFile, '<!-- Flows table -->', relatedObjectFlowsTable.join("\n"));
272
+ this.objectDescriptions.push({
273
+ name: objectName,
274
+ label: objectXmlParsed?.CustomObject?.label || "",
275
+ description: objectXmlParsed?.CustomObject?.description || "",
276
+ });
277
+ objectsForMenu[objectName] = "objects/" + objectName + ".md";
278
+ }
279
+ this.mkDocsNavNodes["Objects"] = objectsForMenu;
280
+ // Write table on doc index
281
+ const objectsTableLines = await this.buildObjectsTable('objects/');
282
+ this.mdLines.push(...objectsTableLines);
283
+ this.mdLines.push(...["___", ""]);
284
+ // Write index file for objects folder
285
+ await fs.ensureDir(path.join(this.outputMarkdownRoot, "objects"));
286
+ const objectsTableLinesForIndex = await this.buildObjectsTable('');
287
+ const objectsIndexFile = path.join(this.outputMarkdownRoot, "objects", "index.md");
288
+ await fs.writeFile(objectsIndexFile, objectsTableLinesForIndex.join("\n") + `\n${this.footer}\n`);
289
+ }
290
+ async buildAttributesTables(objectName, objectXmlParsed, objectMdFile) {
291
+ const fieldsTable = await this.buildCustomFieldsTable(objectXmlParsed?.CustomObject?.fields || []);
292
+ const validationRulesTable = await this.buildValidationRulesTable(objectXmlParsed?.CustomObject?.validationRules || []);
293
+ const attributesLines = [...fieldsTable, ...validationRulesTable];
294
+ const attributesMarkdown = await completeAttributesDescriptionWithAi(attributesLines.join("\n"), objectName);
295
+ await replaceInFile(objectMdFile, '<!-- Attributes tables -->', attributesMarkdown);
296
+ }
297
+ async generateLinksInfo() {
298
+ uxLog(this, c.cyan("Generate MasterDetail and Lookup infos to provide context to AI prompt"));
299
+ const findFieldsPattern = `**/objects/**/fields/**.field-meta.xml`;
300
+ const matchingFieldFiles = (await glob(findFieldsPattern, { cwd: process.cwd(), ignore: GLOB_IGNORE_PATTERNS })).map(file => file.replace(/\\/g, '/'));
301
+ const customFieldsLinks = [];
302
+ for (const fieldFile of matchingFieldFiles) {
303
+ const fieldXml = fs.readFileSync(fieldFile, "utf8").toString();
304
+ const fieldDetail = new XMLParser().parse(fieldXml);
305
+ if (fieldDetail?.CustomField?.type === "MasterDetail" || fieldDetail?.CustomField?.type === "Lookup") {
306
+ const fieldName = path.basename(fieldFile, ".field-meta.xml");
307
+ const objectName = fieldFile.substring(fieldFile.indexOf('objects/')).split("/")[1];
308
+ const linkDescription = `- ${fieldDetail.CustomField.type} field "${fieldName}" defined on object ${objectName}, with target object reference to ${fieldDetail.CustomField.referenceTo} (relationship name: "${fieldDetail.CustomField.relationshipName}", label: "${fieldDetail.CustomField.label}", description: "${fieldDetail.CustomField?.description || ''}")`;
309
+ customFieldsLinks.push(linkDescription);
310
+ }
311
+ }
312
+ return customFieldsLinks.join("\n") + "\n";
313
+ }
222
314
  async generateFlowsDocumentation() {
223
315
  uxLog(this, c.cyan("Generating Flows Visual documentation... (if you don't want it, define GENERATE_FLOW_DOC=false in your environment variables)"));
224
316
  const flowsForMenu = { "All flows": "flows/index.md" };
@@ -231,17 +323,18 @@ ${Project2Markdown.htmlInstructions}
231
323
  const flowErrors = [];
232
324
  const flowWarnings = [];
233
325
  const flowSkips = [];
234
- const flowDescriptions = [];
326
+ this.flowDescriptions = [];
235
327
  for (const flowFile of flowFiles) {
236
328
  const flowName = path.basename(flowFile, ".flow-meta.xml");
237
329
  uxLog(this, c.grey(`Generating markdown for Flow ${flowFile}...`));
238
330
  const flowXml = (await fs.readFile(flowFile, "utf8")).toString();
239
331
  const flowContent = await parseXmlFile(flowFile);
240
- flowDescriptions.push({
332
+ this.flowDescriptions.push({
241
333
  name: flowName,
242
334
  description: flowContent?.Flow?.description?.[0] || "",
243
335
  type: flowContent?.Flow?.processType?.[0] === "Flow" ? "ScreenFlow" : flowContent?.Flow?.start?.[0]?.triggerType?.[0] ?? (flowContent?.Flow?.processType?.[0] || "ERROR (Unknown)"),
244
- object: flowContent?.Flow?.start?.[0]?.object?.[0] || flowContent?.Flow?.processMetadataValues?.filter(pmv => pmv.name[0] === "ObjectType")?.[0]?.value?.[0]?.stringValue?.[0] || ""
336
+ object: flowContent?.Flow?.start?.[0]?.object?.[0] || flowContent?.Flow?.processMetadataValues?.filter(pmv => pmv.name[0] === "ObjectType")?.[0]?.value?.[0]?.stringValue?.[0] || "",
337
+ impactedObjects: this.allObjectsNames.filter(objectName => flowXml.includes(`>${objectName}<`)).join(", ")
245
338
  });
246
339
  flowsForMenu[flowName] = "flows/" + flowName + ".md";
247
340
  const outputFlowMdFile = path.join(this.outputMarkdownRoot, "flows", flowName + ".md");
@@ -263,6 +356,7 @@ ${Project2Markdown.htmlInstructions}
263
356
  continue;
264
357
  }
265
358
  }
359
+ this.flowDescriptions = sortArray(this.flowDescriptions, { by: ['object', 'name'], order: ['asc', 'asc'] });
266
360
  if (flowSkips.length > 0) {
267
361
  uxLog(this, c.yellow(`Skipped generation for ${flowSkips.length} Flows that have not been updated: ${this.humanDisplay(flowSkips)}`));
268
362
  }
@@ -286,12 +380,12 @@ ${Project2Markdown.htmlInstructions}
286
380
  }
287
381
  }
288
382
  // Write table on doc index
289
- const flowTableLines = await this.buildFlowsTable(flowDescriptions, 'flows/');
383
+ const flowTableLines = await this.buildFlowsTable('flows/');
290
384
  this.mdLines.push(...flowTableLines);
291
385
  this.mdLines.push(...["___", ""]);
292
386
  // Write index file for flow folder
293
387
  await fs.ensureDir(path.join(this.outputMarkdownRoot, "flows"));
294
- const flowTableLinesForIndex = await this.buildFlowsTable(flowDescriptions, '');
388
+ const flowTableLinesForIndex = await this.buildFlowsTable('');
295
389
  const flowIndexFile = path.join(this.outputMarkdownRoot, "flows", "index.md");
296
390
  await fs.writeFile(flowIndexFile, flowTableLinesForIndex.join("\n") + `\n${this.footer}\n`);
297
391
  this.mkDocsNavNodes["Flows"] = flowsForMenu;
@@ -300,21 +394,86 @@ ${Project2Markdown.htmlInstructions}
300
394
  humanDisplay(flows) {
301
395
  return flows.map(flow => path.basename(flow, ".flow-meta.xml")).join(", ");
302
396
  }
303
- async buildFlowsTable(flowDescriptions, prefix) {
397
+ async buildFlowsTable(prefix, filterObject = null) {
398
+ const filteredFlows = filterObject ? this.flowDescriptions.filter(flow => flow.object === filterObject || flow.impactedObjects.includes(filterObject)) : this.flowDescriptions;
399
+ if (filteredFlows.length === 0) {
400
+ return [];
401
+ }
304
402
  const lines = [];
305
403
  lines.push(...[
306
- "## Flows",
404
+ filterObject ? "## Related Flows" : "## Flows",
307
405
  "",
308
406
  "| Object | Name | Type | Description |",
309
407
  "| :---- | :-------- | :--: | :---------- | "
310
408
  ]);
311
- for (const flow of sortArray(flowDescriptions, { by: ['object', 'name'], order: ['asc', 'asc'] })) {
409
+ for (const flow of filteredFlows) {
312
410
  const outputFlowHistoryMdFile = path.join(this.outputMarkdownRoot, "flows", flow.name + "-history.md");
313
411
  const flowNameCell = fs.existsSync(outputFlowHistoryMdFile) ?
314
412
  `[${flow.name}](${prefix}${flow.name}.md) [🕒](${prefix}${flow.name}-history.md)` :
315
413
  `[${flow.name}](${prefix}${flow.name}.md)`;
316
414
  lines.push(...[
317
- `| ${flow.object || "💻"} | ${flowNameCell} | ${flow.type} | ${flow.description.replace(/\n/gm, "<br/>".replace(/\|/gm, ""))} |`
415
+ `| ${flow.object || "💻"} | ${flowNameCell} | ${prettifyFieldName(flow.type)} | ${mdTableCell(flow.description)} |`
416
+ ]);
417
+ }
418
+ lines.push("");
419
+ return lines;
420
+ }
421
+ async buildObjectsTable(prefix) {
422
+ const lines = [];
423
+ lines.push(...[
424
+ "## Objects",
425
+ "",
426
+ "| Name | Label | Description |",
427
+ "| :-------- | :---- | :---------- | "
428
+ ]);
429
+ for (const objectDescription of this.objectDescriptions) {
430
+ const objectNameCell = `[${objectDescription.name}](${prefix}${objectDescription.name}.md)`;
431
+ lines.push(...[
432
+ `| ${objectNameCell} | ${objectDescription.label || ""} | ${mdTableCell(objectDescription.description)} |`
433
+ ]);
434
+ }
435
+ lines.push("");
436
+ return lines;
437
+ }
438
+ async buildCustomFieldsTable(fields) {
439
+ if (!Array.isArray(fields)) {
440
+ fields = [fields];
441
+ }
442
+ if (fields.length === 0) {
443
+ return [];
444
+ }
445
+ const lines = [];
446
+ lines.push(...[
447
+ "## Fields",
448
+ "",
449
+ "| Name | Label | Type | Description |",
450
+ "| :-------- | :---- | :--: | :---------- | "
451
+ ]);
452
+ for (const field of fields) {
453
+ lines.push(...[
454
+ `| ${field.fullName} | ${field.label || ""} | ${field.type || ""} | ${mdTableCell(field.description)} |`
455
+ ]);
456
+ }
457
+ lines.push("");
458
+ return lines;
459
+ }
460
+ async buildValidationRulesTable(validationRules) {
461
+ if (!Array.isArray(validationRules)) {
462
+ validationRules = [validationRules];
463
+ }
464
+ if (validationRules.length === 0) {
465
+ return [];
466
+ }
467
+ const lines = [];
468
+ lines.push(...[
469
+ "## Validation Rules",
470
+ "",
471
+ "| Rule | Active | Description | Formula |",
472
+ "| :-------- | :---- | :---------- | :------ |"
473
+ ]);
474
+ for (const rule of validationRules) {
475
+ lines.push(...[
476
+ `| ${rule.fullName} | ${rule.active ? "Yes" : "No ⚠️"} | ${rule.description || ""} | \`${rule.errorConditionFormula}\` |`
318
477
  ]);
319
478
  }
320
479
  lines.push("");
@@ -328,7 +487,7 @@ ${Project2Markdown.htmlInstructions}
328
487
  const packageFolder = path.join(process.cwd(), 'installedPackages');
329
488
  if (packages.length === 0 && fs.existsSync(packageFolder)) {
330
489
  const findManagedPattern = "**/*.json";
331
- const matchingPackageFiles = await glob(findManagedPattern, { cwd: packageFolder });
490
+ const matchingPackageFiles = await glob(findManagedPattern, { cwd: packageFolder, ignore: GLOB_IGNORE_PATTERNS });
332
491
  for (const packageFile of matchingPackageFiles) {
333
492
  const packageFileFull = path.join(packageFolder, packageFile);
334
493
  if (!fs.existsSync(packageFileFull)) {
@@ -368,11 +527,11 @@ ${Project2Markdown.htmlInstructions}
368
527
  "| :--------- | :---- | :---------- |"
369
528
  ]);
370
529
  const installPackagesDuringCheckDeploy = this.sfdxHardisConfig?.installPackagesDuringCheckDeploy ?? false;
371
- sfdxParamsTableLines.push(`| installPackagesDuringCheckDeploy | ${bool2emoji(installPackagesDuringCheckDeploy)} | [Install 1GP & 2GP packages during deployment check CI/CD job](https://sfdx-hardis.cloudity.com/hardis/project/deploy/smart/#packages-installation) |`);
530
+ sfdxParamsTableLines.push(`| Install Packages During Check Deploy | ${bool2emoji(installPackagesDuringCheckDeploy)} | [Install 1GP & 2GP packages during deployment check CI/CD job](https://sfdx-hardis.cloudity.com/hardis/project/deploy/smart/#packages-installation) |`);
372
531
  const useDeltaDeployment = this.sfdxHardisConfig?.useDeltaDeployment ?? false;
373
- sfdxParamsTableLines.push(`| useDeltaDeployment | ${bool2emoji(useDeltaDeployment)} | [Deploys only updated metadatas , only when a MR/PR is from a minor branch to a major branch](https://sfdx-hardis.cloudity.com/salesforce-ci-cd-config-delta-deployment/#delta-mode) |`);
532
+ sfdxParamsTableLines.push(`| Use Delta Deployment | ${bool2emoji(useDeltaDeployment)} | [Deploys only updated metadatas , only when a MR/PR is from a minor branch to a major branch](https://sfdx-hardis.cloudity.com/salesforce-ci-cd-config-delta-deployment/#delta-mode) |`);
374
533
  const useSmartDeploymentTests = this.sfdxHardisConfig?.useSmartDeploymentTests ?? false;
375
- sfdxParamsTableLines.push(`| useSmartDeploymentTests | ${bool2emoji(useSmartDeploymentTests)} | [Skip Apex test cases if delta metadatas can not impact them, only when a MR/PR is from a minor branch to a major branch](https://sfdx-hardis.cloudity.com/hardis/project/deploy/smart/#smart-deployments-tests) |`);
534
+ sfdxParamsTableLines.push(`| Use Smart Deployment Tests | ${bool2emoji(useSmartDeploymentTests)} | [Skip Apex test cases if delta metadatas can not impact them, only when a MR/PR is from a minor branch to a major branch](https://sfdx-hardis.cloudity.com/hardis/project/deploy/smart/#smart-deployments-tests) |`);
376
535
  sfdxParamsTableLines.push("");
377
536
  sfdxParamsTableLines.push("___");
378
537
  sfdxParamsTableLines.push("");
@@ -1 +1 @@
1
- {"version":3,"file":"project2markdown.js","sourceRoot":"","sources":["../../../../src/commands/hardis/doc/project2markdown.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"project2markdown.js","sourceRoot":"","sources":["../../../../src/commands/hardis/doc/project2markdown.ts"],"names":[],"mappings":"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"}
@@ -18,6 +18,7 @@ import { Parser } from 'xml2js';
18
18
  // Config
19
19
  import { CONSTANTS, getConfig } from '../../../config/index.js';
20
20
  import { getBranchMarkdown, getNotificationButtons, getSeverityIcon } from '../../../common/utils/notifUtils.js';
21
+ import { GLOB_IGNORE_PATTERNS } from '../../../common/utils/projectUtils.js';
21
22
  Messages.importMessagesDirectoryFromMetaUrl(import.meta.url);
22
23
  const messages = Messages.loadMessages('sfdx-hardis', 'org');
23
24
  export default class LintAccess extends SfCommand {
@@ -137,7 +138,7 @@ This command is part of [sfdx-hardis Monitoring](${CONSTANTS.DOC_URL_ROOT}/sales
137
138
  continue;
138
139
  }
139
140
  const findManagedPattern = rootFolder + sourceElement['regex'];
140
- const matchedElements = await glob(findManagedPattern, { cwd: process.cwd() });
141
+ const matchedElements = await glob(findManagedPattern, { cwd: process.cwd(), ignore: GLOB_IGNORE_PATTERNS });
141
142
  switch (sourceElement.type) {
142
143
  case 'CustomField':
143
144
  elementsToCheckByType.field = await this.retrieveElementToCheck(matchedElements, sourceElement.xmlField, sourceElement.ignore.elements);
@@ -268,14 +269,14 @@ This command is part of [sfdx-hardis Monitoring](${CONSTANTS.DOC_URL_ROOT}/sales
268
269
  return otherElementsToCheck;
269
270
  }
270
271
  async listElementIfNotInProfileOrPermission(rootFolder, elementsToCheckByType) {
271
- const profilesFiles = await glob(rootFolder + this.profiles['regex'], { cwd: process.cwd() });
272
+ const profilesFiles = await glob(rootFolder + this.profiles['regex'], { cwd: process.cwd(), ignore: GLOB_IGNORE_PATTERNS });
272
273
  let remainingElements = elementsToCheckByType;
273
274
  //CHECK PROFILES FIRST
274
275
  if (!this.profiles.isIgnoredAll) {
275
276
  remainingElements = await this.retrieveElementsWithoutRights(this.profiles.name, profilesFiles, elementsToCheckByType);
276
277
  }
277
278
  if (this.hasRemainingElementsToCheck(remainingElements) && !this.permissionSet.isIgnoredAll) {
278
- const permissionSetFiles = await glob(rootFolder + this.permissionSet['regex'], { cwd: process.cwd() });
279
+ const permissionSetFiles = await glob(rootFolder + this.permissionSet['regex'], { cwd: process.cwd(), ignore: GLOB_IGNORE_PATTERNS });
279
280
  remainingElements = await this.retrieveElementsWithoutRights(this.permissionSet.name, permissionSetFiles, remainingElements);
280
281
  }
281
282
  if (!this.hasRemainingElementsToCheck(remainingElements)) {
@@ -462,7 +463,7 @@ This command is part of [sfdx-hardis Monitoring](${CONSTANTS.DOC_URL_ROOT}/sales
462
463
  }
463
464
  async listLocalCustomSettings() {
464
465
  const globPatternObjects = process.cwd() + `/**/*.object-meta.xml`;
465
- const objectFiles = await glob(globPatternObjects);
466
+ const objectFiles = await glob(globPatternObjects, { ignore: GLOB_IGNORE_PATTERNS });
466
467
  const csList = [];
467
468
  for (const objectFile of objectFiles) {
468
469
  const objectXml = await parseXmlFile(objectFile);
@@ -474,7 +475,7 @@ This command is part of [sfdx-hardis Monitoring](${CONSTANTS.DOC_URL_ROOT}/sales
474
475
  }
475
476
  async listLocalPermissionSets() {
476
477
  const globPatternPS = process.cwd() + `/**/*.permissionset-meta.xml`;
477
- const psFiles = await glob(globPatternPS);
478
+ const psFiles = await glob(globPatternPS, { ignore: GLOB_IGNORE_PATTERNS });
478
479
  const psList = [];
479
480
  for (const ps of psFiles) {
480
481
  psList.push({ name: path.basename(ps).replace('.permissionset-meta.xml', ''), filePath: ps });
@@ -546,7 +547,7 @@ This command is part of [sfdx-hardis Monitoring](${CONSTANTS.DOC_URL_ROOT}/sales
546
547
  return parser.parseStringPromise(xml);
547
548
  }
548
549
  async verifyMultipleObjectsInPermissionSets(permissionsetsDirectory) {
549
- const permissionFiles = await glob(permissionsetsDirectory, { cwd: process.cwd() });
550
+ const permissionFiles = await glob(permissionsetsDirectory, { cwd: process.cwd(), ignore: GLOB_IGNORE_PATTERNS });
550
551
  for (const permissionFile of permissionFiles) {
551
552
  const content = await this.readFile(permissionFile);
552
553
  const parsedContent = await this.parseString(content);