@peernova/cuneiform-sf 1.0.2 → 1.0.4-beta.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +81 -30
- package/README.md +59 -95
- package/lib/adapters/connection-facade.d.ts +458 -0
- package/lib/adapters/connection-facade.js +379 -0
- package/lib/adapters/connection-facade.js.map +1 -0
- package/lib/adapters/errors.d.ts +547 -0
- package/lib/adapters/errors.js +937 -0
- package/lib/adapters/errors.js.map +1 -0
- package/lib/adapters/index.d.ts +33 -0
- package/lib/adapters/index.js +50 -0
- package/lib/adapters/index.js.map +1 -0
- package/lib/adapters/lifecycle.d.ts +119 -0
- package/lib/adapters/lifecycle.js +94 -0
- package/lib/adapters/lifecycle.js.map +1 -0
- package/lib/adapters/rest/cache.d.ts +69 -0
- package/lib/adapters/rest/cache.js +133 -0
- package/lib/adapters/rest/cache.js.map +1 -0
- package/lib/adapters/rest/index.d.ts +11 -0
- package/lib/adapters/rest/index.js +18 -0
- package/lib/adapters/rest/index.js.map +1 -0
- package/lib/adapters/rest/profiling-rest-client.d.ts +137 -0
- package/lib/adapters/rest/profiling-rest-client.js +115 -0
- package/lib/adapters/rest/profiling-rest-client.js.map +1 -0
- package/lib/adapters/rest/rest-api-adapter.d.ts +389 -0
- package/lib/adapters/rest/rest-api-adapter.js +747 -0
- package/lib/adapters/rest/rest-api-adapter.js.map +1 -0
- package/lib/adapters/rest/types.d.ts +34 -0
- package/lib/adapters/rest/types.js +9 -0
- package/lib/adapters/rest/types.js.map +1 -0
- package/lib/adapters/retry.d.ts +91 -0
- package/lib/adapters/retry.js +215 -0
- package/lib/adapters/retry.js.map +1 -0
- package/lib/adapters/soql/cuneiform-query-builder.d.ts +391 -0
- package/lib/adapters/soql/cuneiform-query-builder.js +559 -0
- package/lib/adapters/soql/cuneiform-query-builder.js.map +1 -0
- package/lib/adapters/soql/index.d.ts +13 -0
- package/lib/adapters/soql/index.js +21 -0
- package/lib/adapters/soql/index.js.map +1 -0
- package/lib/adapters/soql/soql-query-adapter.d.ts +141 -0
- package/lib/adapters/soql/soql-query-adapter.js +259 -0
- package/lib/adapters/soql/soql-query-adapter.js.map +1 -0
- package/lib/adapters/soql/types.d.ts +37 -0
- package/lib/adapters/soql/types.js +19 -0
- package/lib/adapters/soql/types.js.map +1 -0
- package/lib/adapters/testing/index.d.ts +37 -0
- package/lib/adapters/testing/index.js +20 -0
- package/lib/adapters/testing/index.js.map +1 -0
- package/lib/adapters/testing/mock-connection.d.ts +77 -0
- package/lib/adapters/testing/mock-connection.js +207 -0
- package/lib/adapters/testing/mock-connection.js.map +1 -0
- package/lib/adapters/testing/mock-logger.d.ts +29 -0
- package/lib/adapters/testing/mock-logger.js +57 -0
- package/lib/adapters/testing/mock-logger.js.map +1 -0
- package/lib/adapters/testing/mock-mcp-adapters.d.ts +32 -0
- package/lib/adapters/testing/mock-mcp-adapters.js +52 -0
- package/lib/adapters/testing/mock-mcp-adapters.js.map +1 -0
- package/lib/adapters/testing/mock-oclif-config.d.ts +22 -0
- package/lib/adapters/testing/mock-oclif-config.js +90 -0
- package/lib/adapters/testing/mock-oclif-config.js.map +1 -0
- package/lib/adapters/testing/mock-rest-adapter.d.ts +26 -0
- package/lib/adapters/testing/mock-rest-adapter.js +243 -0
- package/lib/adapters/testing/mock-rest-adapter.js.map +1 -0
- package/lib/adapters/testing/mock-salesforce-connection.d.ts +40 -0
- package/lib/adapters/testing/mock-salesforce-connection.js +61 -0
- package/lib/adapters/testing/mock-salesforce-connection.js.map +1 -0
- package/lib/adapters/testing/mock-soql-adapter.d.ts +30 -0
- package/lib/adapters/testing/mock-soql-adapter.js +120 -0
- package/lib/adapters/testing/mock-soql-adapter.js.map +1 -0
- package/lib/adapters/testing/mock-tooling-adapter.d.ts +24 -0
- package/lib/adapters/testing/mock-tooling-adapter.js +163 -0
- package/lib/adapters/testing/mock-tooling-adapter.js.map +1 -0
- package/lib/adapters/testing/stub-connection.d.ts +93 -0
- package/lib/adapters/testing/stub-connection.js +97 -0
- package/lib/adapters/testing/stub-connection.js.map +1 -0
- package/lib/adapters/testing/stub-rest-adapter.d.ts +52 -0
- package/lib/adapters/testing/stub-rest-adapter.js +58 -0
- package/lib/adapters/testing/stub-rest-adapter.js.map +1 -0
- package/lib/adapters/testing/stub-soql-adapter.d.ts +56 -0
- package/lib/adapters/testing/stub-soql-adapter.js +50 -0
- package/lib/adapters/testing/stub-soql-adapter.js.map +1 -0
- package/lib/adapters/testing/types.d.ts +71 -0
- package/lib/adapters/testing/types.js +9 -0
- package/lib/adapters/testing/types.js.map +1 -0
- package/lib/adapters/tooling/index.d.ts +10 -0
- package/lib/adapters/tooling/index.js +17 -0
- package/lib/adapters/tooling/index.js.map +1 -0
- package/lib/adapters/tooling/tooling-api-adapter.d.ts +157 -0
- package/lib/adapters/tooling/tooling-api-adapter.js +339 -0
- package/lib/adapters/tooling/tooling-api-adapter.js.map +1 -0
- package/lib/adapters/tooling/types.d.ts +81 -0
- package/lib/adapters/tooling/types.js +9 -0
- package/lib/adapters/tooling/types.js.map +1 -0
- package/lib/adapters/types.d.ts +112 -0
- package/lib/adapters/types.js +169 -0
- package/lib/adapters/types.js.map +1 -0
- package/lib/base/cuneiform-command.d.ts +152 -0
- package/lib/base/cuneiform-command.js +243 -0
- package/lib/base/cuneiform-command.js.map +1 -0
- package/lib/commands/cuneiform/compatibility/check.d.ts +43 -0
- package/lib/commands/cuneiform/compatibility/check.js +114 -0
- package/lib/commands/cuneiform/compatibility/check.js.map +1 -0
- package/lib/commands/cuneiform/definition/create.d.ts +119 -0
- package/lib/commands/cuneiform/definition/create.js +693 -0
- package/lib/commands/cuneiform/definition/create.js.map +1 -0
- package/lib/commands/cuneiform/definition/export.d.ts +57 -0
- package/lib/commands/cuneiform/definition/export.js +133 -0
- package/lib/commands/cuneiform/definition/export.js.map +1 -0
- package/lib/commands/cuneiform/definition/get.d.ts +86 -0
- package/lib/commands/cuneiform/definition/get.js +270 -0
- package/lib/commands/cuneiform/definition/get.js.map +1 -0
- package/lib/commands/cuneiform/definition/import.d.ts +54 -0
- package/lib/commands/cuneiform/definition/import.js +118 -0
- package/lib/commands/cuneiform/definition/import.js.map +1 -0
- package/lib/commands/cuneiform/definition/list.d.ts +110 -0
- package/lib/commands/cuneiform/definition/list.js +344 -0
- package/lib/commands/cuneiform/definition/list.js.map +1 -0
- package/lib/commands/cuneiform/definition/purge.d.ts +105 -0
- package/lib/commands/cuneiform/definition/purge.js +533 -0
- package/lib/commands/cuneiform/definition/purge.js.map +1 -0
- package/lib/commands/cuneiform/definition/update.d.ts +58 -0
- package/lib/commands/cuneiform/definition/update.js +206 -0
- package/lib/commands/cuneiform/definition/update.js.map +1 -0
- package/lib/commands/cuneiform/mcp/serve.d.ts +56 -0
- package/lib/commands/cuneiform/mcp/serve.js +109 -0
- package/lib/commands/cuneiform/mcp/serve.js.map +1 -0
- package/lib/commands/cuneiform/object/describe.d.ts +61 -0
- package/lib/commands/cuneiform/object/describe.js +461 -0
- package/lib/commands/cuneiform/object/describe.js.map +1 -0
- package/lib/commands/cuneiform/object/list.d.ts +111 -0
- package/lib/commands/cuneiform/object/list.js +239 -0
- package/lib/commands/cuneiform/object/list.js.map +1 -0
- package/lib/commands/cuneiform/org/details.d.ts +99 -0
- package/lib/commands/cuneiform/org/details.js +521 -0
- package/lib/commands/cuneiform/org/details.js.map +1 -0
- package/lib/commands/cuneiform/org/reset.d.ts +46 -0
- package/lib/commands/cuneiform/org/reset.js +135 -0
- package/lib/commands/cuneiform/org/reset.js.map +1 -0
- package/lib/commands/cuneiform/profile/request/cancel.d.ts +59 -0
- package/lib/commands/cuneiform/profile/request/cancel.js +202 -0
- package/lib/commands/cuneiform/profile/request/cancel.js.map +1 -0
- package/lib/commands/cuneiform/profile/request/delete.d.ts +59 -0
- package/lib/commands/cuneiform/profile/request/delete.js +223 -0
- package/lib/commands/cuneiform/profile/request/delete.js.map +1 -0
- package/lib/commands/cuneiform/profile/request/list.d.ts +35 -0
- package/lib/commands/cuneiform/profile/request/list.js +102 -0
- package/lib/commands/cuneiform/profile/request/list.js.map +1 -0
- package/lib/commands/cuneiform/profile.d.ts +90 -0
- package/lib/commands/cuneiform/profile.js +322 -0
- package/lib/commands/cuneiform/profile.js.map +1 -0
- package/lib/commands/cuneiform/summary/purge.d.ts +77 -0
- package/lib/commands/cuneiform/summary/purge.js +429 -0
- package/lib/commands/cuneiform/summary/purge.js.map +1 -0
- package/lib/commands/cuneiform/summary/reprofile.d.ts +60 -0
- package/lib/commands/cuneiform/summary/reprofile.js +236 -0
- package/lib/commands/cuneiform/summary/reprofile.js.map +1 -0
- package/lib/commands/cuneiform/summary/stop.d.ts +59 -0
- package/lib/commands/cuneiform/summary/stop.js +234 -0
- package/lib/commands/cuneiform/summary/stop.js.map +1 -0
- package/lib/commands/cuneiform/user/details.d.ts +73 -0
- package/lib/commands/cuneiform/user/details.js +391 -0
- package/lib/commands/cuneiform/user/details.js.map +1 -0
- package/lib/constants/index.d.ts +8 -0
- package/lib/constants/index.js +16 -0
- package/lib/constants/index.js.map +1 -0
- package/lib/constants/namespace-constants.d.ts +91 -0
- package/lib/constants/namespace-constants.js +211 -0
- package/lib/constants/namespace-constants.js.map +1 -0
- package/lib/debug/command-debug-proxy.d.ts +101 -0
- package/lib/debug/command-debug-proxy.js +171 -0
- package/lib/debug/command-debug-proxy.js.map +1 -0
- package/lib/debug/debug-logger.d.ts +85 -0
- package/lib/debug/debug-logger.js +133 -0
- package/lib/debug/debug-logger.js.map +1 -0
- package/lib/debug/index.d.ts +12 -0
- package/lib/debug/index.js +20 -0
- package/lib/debug/index.js.map +1 -0
- package/lib/debug/service-debug-proxy.d.ts +30 -0
- package/lib/debug/service-debug-proxy.js +102 -0
- package/lib/debug/service-debug-proxy.js.map +1 -0
- package/lib/hooks/prerun.d.ts +25 -0
- package/lib/hooks/prerun.js +47 -0
- package/lib/hooks/prerun.js.map +1 -0
- package/lib/mcp/config/mcp-config.d.ts +55 -0
- package/lib/mcp/config/mcp-config.js +51 -0
- package/lib/mcp/config/mcp-config.js.map +1 -0
- package/lib/mcp/config/pagination.d.ts +96 -0
- package/lib/mcp/config/pagination.js +108 -0
- package/lib/mcp/config/pagination.js.map +1 -0
- package/lib/mcp/config/system-prompts.d.ts +18 -0
- package/lib/mcp/config/system-prompts.js +92 -0
- package/lib/mcp/config/system-prompts.js.map +1 -0
- package/lib/mcp/errors.d.ts +23 -0
- package/lib/mcp/errors.js +27 -0
- package/lib/mcp/errors.js.map +1 -0
- package/lib/mcp/schemas/input-schemas.d.ts +327 -0
- package/lib/mcp/schemas/input-schemas.js +302 -0
- package/lib/mcp/schemas/input-schemas.js.map +1 -0
- package/lib/mcp/server.d.ts +40 -0
- package/lib/mcp/server.js +316 -0
- package/lib/mcp/server.js.map +1 -0
- package/lib/mcp/tools/contactpoint-tools.d.ts +14 -0
- package/lib/mcp/tools/contactpoint-tools.js +34 -0
- package/lib/mcp/tools/contactpoint-tools.js.map +1 -0
- package/lib/mcp/tools/definition-io-tools.d.ts +19 -0
- package/lib/mcp/tools/definition-io-tools.js +152 -0
- package/lib/mcp/tools/definition-io-tools.js.map +1 -0
- package/lib/mcp/tools/definition-tools.d.ts +51 -0
- package/lib/mcp/tools/definition-tools.js +199 -0
- package/lib/mcp/tools/definition-tools.js.map +1 -0
- package/lib/mcp/tools/index.d.ts +37 -0
- package/lib/mcp/tools/index.js +88 -0
- package/lib/mcp/tools/index.js.map +1 -0
- package/lib/mcp/tools/object-tools.d.ts +22 -0
- package/lib/mcp/tools/object-tools.js +306 -0
- package/lib/mcp/tools/object-tools.js.map +1 -0
- package/lib/mcp/tools/org-tools.d.ts +14 -0
- package/lib/mcp/tools/org-tools.js +177 -0
- package/lib/mcp/tools/org-tools.js.map +1 -0
- package/lib/mcp/tools/profile-tools.d.ts +59 -0
- package/lib/mcp/tools/profile-tools.js +213 -0
- package/lib/mcp/tools/profile-tools.js.map +1 -0
- package/lib/mcp/tools/summary-tools.d.ts +14 -0
- package/lib/mcp/tools/summary-tools.js +38 -0
- package/lib/mcp/tools/summary-tools.js.map +1 -0
- package/lib/mcp/tools/tool-factory.d.ts +63 -0
- package/lib/mcp/tools/tool-factory.js +146 -0
- package/lib/mcp/tools/tool-factory.js.map +1 -0
- package/lib/mcp/tools/user-tools.d.ts +25 -0
- package/lib/mcp/tools/user-tools.js +167 -0
- package/lib/mcp/tools/user-tools.js.map +1 -0
- package/lib/models/date-literal.d.ts +211 -0
- package/lib/models/date-literal.js +615 -0
- package/lib/models/date-literal.js.map +1 -0
- package/lib/models/object-describe-types.d.ts +173 -0
- package/lib/models/object-describe-types.js +9 -0
- package/lib/models/object-describe-types.js.map +1 -0
- package/lib/models/profile-request-types.d.ts +118 -0
- package/lib/models/profile-request-types.js +23 -0
- package/lib/models/profile-request-types.js.map +1 -0
- package/lib/models/profiling-execution-types.d.ts +154 -0
- package/lib/models/profiling-execution-types.js +14 -0
- package/lib/models/profiling-execution-types.js.map +1 -0
- package/lib/models/service-result.d.ts +114 -0
- package/lib/models/service-result.js +81 -0
- package/lib/models/service-result.js.map +1 -0
- package/lib/models/sfdmu-types.d.ts +53 -0
- package/lib/models/sfdmu-types.js +23 -0
- package/lib/models/sfdmu-types.js.map +1 -0
- package/lib/models/status-types.d.ts +38 -0
- package/lib/models/status-types.js +12 -0
- package/lib/models/status-types.js.map +1 -0
- package/lib/models/summary-bulk-types.d.ts +61 -0
- package/lib/models/summary-bulk-types.js +23 -0
- package/lib/models/summary-bulk-types.js.map +1 -0
- package/lib/models/user-details-types.d.ts +163 -0
- package/lib/models/user-details-types.js +9 -0
- package/lib/models/user-details-types.js.map +1 -0
- package/lib/models/year-range.d.ts +78 -0
- package/lib/models/year-range.js +153 -0
- package/lib/models/year-range.js.map +1 -0
- package/lib/operations/CompatibilityCheckOperation.d.ts +62 -0
- package/lib/operations/CompatibilityCheckOperation.js +102 -0
- package/lib/operations/CompatibilityCheckOperation.js.map +1 -0
- package/lib/operations/DefinitionCreateOperation.d.ts +411 -0
- package/lib/operations/DefinitionCreateOperation.js +1121 -0
- package/lib/operations/DefinitionCreateOperation.js.map +1 -0
- package/lib/operations/DefinitionExportOperation.d.ts +155 -0
- package/lib/operations/DefinitionExportOperation.js +281 -0
- package/lib/operations/DefinitionExportOperation.js.map +1 -0
- package/lib/operations/DefinitionImportOperation.d.ts +144 -0
- package/lib/operations/DefinitionImportOperation.js +357 -0
- package/lib/operations/DefinitionImportOperation.js.map +1 -0
- package/lib/operations/DefinitionListOperation.d.ts +66 -0
- package/lib/operations/DefinitionListOperation.js +108 -0
- package/lib/operations/DefinitionListOperation.js.map +1 -0
- package/lib/operations/DefinitionPurgeOperation.d.ts +199 -0
- package/lib/operations/DefinitionPurgeOperation.js +465 -0
- package/lib/operations/DefinitionPurgeOperation.js.map +1 -0
- package/lib/operations/DefinitionUpdateOperation.d.ts +78 -0
- package/lib/operations/DefinitionUpdateOperation.js +142 -0
- package/lib/operations/DefinitionUpdateOperation.js.map +1 -0
- package/lib/operations/OrgDetailsOperation.d.ts +253 -0
- package/lib/operations/OrgDetailsOperation.js +456 -0
- package/lib/operations/OrgDetailsOperation.js.map +1 -0
- package/lib/operations/OrgResetOperation.d.ts +114 -0
- package/lib/operations/OrgResetOperation.js +209 -0
- package/lib/operations/OrgResetOperation.js.map +1 -0
- package/lib/operations/ProfileOperation.d.ts +187 -0
- package/lib/operations/ProfileOperation.js +373 -0
- package/lib/operations/ProfileOperation.js.map +1 -0
- package/lib/operations/ProfileRequestCancelOperation.d.ts +59 -0
- package/lib/operations/ProfileRequestCancelOperation.js +137 -0
- package/lib/operations/ProfileRequestCancelOperation.js.map +1 -0
- package/lib/operations/ProfileRequestDeleteOperation.d.ts +64 -0
- package/lib/operations/ProfileRequestDeleteOperation.js +134 -0
- package/lib/operations/ProfileRequestDeleteOperation.js.map +1 -0
- package/lib/operations/ProfileRequestListOperation.d.ts +39 -0
- package/lib/operations/ProfileRequestListOperation.js +61 -0
- package/lib/operations/ProfileRequestListOperation.js.map +1 -0
- package/lib/operations/SummaryPurgeOperation.d.ts +134 -0
- package/lib/operations/SummaryPurgeOperation.js +257 -0
- package/lib/operations/SummaryPurgeOperation.js.map +1 -0
- package/lib/operations/SummaryReprofileOperation.d.ts +88 -0
- package/lib/operations/SummaryReprofileOperation.js +174 -0
- package/lib/operations/SummaryReprofileOperation.js.map +1 -0
- package/lib/operations/SummaryStopOperation.d.ts +87 -0
- package/lib/operations/SummaryStopOperation.js +175 -0
- package/lib/operations/SummaryStopOperation.js.map +1 -0
- package/lib/services/BulkExecutionService.d.ts +120 -0
- package/lib/services/BulkExecutionService.js +535 -0
- package/lib/services/BulkExecutionService.js.map +1 -0
- package/lib/services/CompatibilityService.d.ts +81 -0
- package/lib/services/CompatibilityService.js +118 -0
- package/lib/services/CompatibilityService.js.map +1 -0
- package/lib/services/ConfigureMode.d.ts +85 -0
- package/lib/services/ConfigureMode.js +390 -0
- package/lib/services/ConfigureMode.js.map +1 -0
- package/lib/services/ContactPointService.d.ts +111 -0
- package/lib/services/ContactPointService.js +286 -0
- package/lib/services/ContactPointService.js.map +1 -0
- package/lib/services/DataAvailabilityService.d.ts +81 -0
- package/lib/services/DataAvailabilityService.js +128 -0
- package/lib/services/DataAvailabilityService.js.map +1 -0
- package/lib/services/DefinitionFieldGenerationService.d.ts +309 -0
- package/lib/services/DefinitionFieldGenerationService.js +795 -0
- package/lib/services/DefinitionFieldGenerationService.js.map +1 -0
- package/lib/services/DefinitionQueryBuilder.d.ts +59 -0
- package/lib/services/DefinitionQueryBuilder.js +234 -0
- package/lib/services/DefinitionQueryBuilder.js.map +1 -0
- package/lib/services/ObjectDescribeService.d.ts +436 -0
- package/lib/services/ObjectDescribeService.js +869 -0
- package/lib/services/ObjectDescribeService.js.map +1 -0
- package/lib/services/ObjectFilteringService.d.ts +400 -0
- package/lib/services/ObjectFilteringService.js +878 -0
- package/lib/services/ObjectFilteringService.js.map +1 -0
- package/lib/services/ObjectListCommandService.d.ts +429 -0
- package/lib/services/ObjectListCommandService.js +873 -0
- package/lib/services/ObjectListCommandService.js.map +1 -0
- package/lib/services/ObjectListService.d.ts +201 -0
- package/lib/services/ObjectListService.js +345 -0
- package/lib/services/ObjectListService.js.map +1 -0
- package/lib/services/OrgInfoService.d.ts +485 -0
- package/lib/services/OrgInfoService.js +1122 -0
- package/lib/services/OrgInfoService.js.map +1 -0
- package/lib/services/PollingService.d.ts +105 -0
- package/lib/services/PollingService.js +117 -0
- package/lib/services/PollingService.js.map +1 -0
- package/lib/services/ProfileRequestService.d.ts +186 -0
- package/lib/services/ProfileRequestService.js +555 -0
- package/lib/services/ProfileRequestService.js.map +1 -0
- package/lib/services/ProfilingDefinitionService.d.ts +535 -0
- package/lib/services/ProfilingDefinitionService.js +981 -0
- package/lib/services/ProfilingDefinitionService.js.map +1 -0
- package/lib/services/ProfilingExecutionService.d.ts +122 -0
- package/lib/services/ProfilingExecutionService.js +320 -0
- package/lib/services/ProfilingExecutionService.js.map +1 -0
- package/lib/services/ProfilingSummaryService.d.ts +292 -0
- package/lib/services/ProfilingSummaryService.js +685 -0
- package/lib/services/ProfilingSummaryService.js.map +1 -0
- package/lib/services/RecordTypeService.d.ts +129 -0
- package/lib/services/RecordTypeService.js +284 -0
- package/lib/services/RecordTypeService.js.map +1 -0
- package/lib/services/SFDMUService.d.ts +133 -0
- package/lib/services/SFDMUService.js +295 -0
- package/lib/services/SFDMUService.js.map +1 -0
- package/lib/services/TabDetectionService.d.ts +105 -0
- package/lib/services/TabDetectionService.js +206 -0
- package/lib/services/TabDetectionService.js.map +1 -0
- package/lib/services/UnconfigureMode.d.ts +74 -0
- package/lib/services/UnconfigureMode.js +378 -0
- package/lib/services/UnconfigureMode.js.map +1 -0
- package/lib/services/UserConfigurationService.d.ts +155 -0
- package/lib/services/UserConfigurationService.js +573 -0
- package/lib/services/UserConfigurationService.js.map +1 -0
- package/lib/services/UserConfigurationTypes.d.ts +181 -0
- package/lib/services/UserConfigurationTypes.js +14 -0
- package/lib/services/UserConfigurationTypes.js.map +1 -0
- package/lib/services/UserReadinessService.d.ts +330 -0
- package/lib/services/UserReadinessService.js +831 -0
- package/lib/services/UserReadinessService.js.map +1 -0
- package/lib/services/constants.d.ts +53 -0
- package/lib/services/constants.js +71 -0
- package/lib/services/constants.js.map +1 -0
- package/lib/services/namespace-constants.d.ts +1 -0
- package/lib/services/namespace-constants.js +11 -0
- package/lib/services/namespace-constants.js.map +1 -0
- package/lib/services/validation.d.ts +47 -0
- package/lib/services/validation.js +119 -0
- package/lib/services/validation.js.map +1 -0
- package/lib/utils/batch-processor.d.ts +13 -0
- package/lib/utils/batch-processor.js +39 -0
- package/lib/utils/batch-processor.js.map +1 -0
- package/lib/utils/formatting/availability-grid.d.ts +81 -0
- package/lib/utils/formatting/availability-grid.js +94 -0
- package/lib/utils/formatting/availability-grid.js.map +1 -0
- package/lib/utils/formatting/business-process-grid.d.ts +51 -0
- package/lib/utils/formatting/business-process-grid.js +58 -0
- package/lib/utils/formatting/business-process-grid.js.map +1 -0
- package/lib/utils/formatting/command-display.d.ts +154 -0
- package/lib/utils/formatting/command-display.js +154 -0
- package/lib/utils/formatting/command-display.js.map +1 -0
- package/lib/utils/formatting/definition-create-display.d.ts +118 -0
- package/lib/utils/formatting/definition-create-display.js +231 -0
- package/lib/utils/formatting/definition-create-display.js.map +1 -0
- package/lib/utils/formatting/empty-states.d.ts +35 -0
- package/lib/utils/formatting/empty-states.js +70 -0
- package/lib/utils/formatting/empty-states.js.map +1 -0
- package/lib/utils/formatting/errors.d.ts +33 -0
- package/lib/utils/formatting/errors.js +72 -0
- package/lib/utils/formatting/errors.js.map +1 -0
- package/lib/utils/formatting/field-types.d.ts +32 -0
- package/lib/utils/formatting/field-types.js +88 -0
- package/lib/utils/formatting/field-types.js.map +1 -0
- package/lib/utils/formatting/index.d.ts +29 -0
- package/lib/utils/formatting/index.js +28 -0
- package/lib/utils/formatting/index.js.map +1 -0
- package/lib/utils/formatting/indicators.d.ts +113 -0
- package/lib/utils/formatting/indicators.js +161 -0
- package/lib/utils/formatting/indicators.js.map +1 -0
- package/lib/utils/formatting/loading-messages.d.ts +37 -0
- package/lib/utils/formatting/loading-messages.js +50 -0
- package/lib/utils/formatting/loading-messages.js.map +1 -0
- package/lib/utils/formatting/namespace-display.d.ts +31 -0
- package/lib/utils/formatting/namespace-display.js +64 -0
- package/lib/utils/formatting/namespace-display.js.map +1 -0
- package/lib/utils/formatting/numbers.d.ts +73 -0
- package/lib/utils/formatting/numbers.js +187 -0
- package/lib/utils/formatting/numbers.js.map +1 -0
- package/lib/utils/formatting/object-describe-display.d.ts +114 -0
- package/lib/utils/formatting/object-describe-display.js +440 -0
- package/lib/utils/formatting/object-describe-display.js.map +1 -0
- package/lib/utils/formatting/object-list-display.d.ts +213 -0
- package/lib/utils/formatting/object-list-display.js +672 -0
- package/lib/utils/formatting/object-list-display.js.map +1 -0
- package/lib/utils/formatting/org-identity.d.ts +15 -0
- package/lib/utils/formatting/org-identity.js +28 -0
- package/lib/utils/formatting/org-identity.js.map +1 -0
- package/lib/utils/formatting/record-age-grid.d.ts +41 -0
- package/lib/utils/formatting/record-age-grid.js +56 -0
- package/lib/utils/formatting/record-age-grid.js.map +1 -0
- package/lib/utils/formatting/sections.d.ts +108 -0
- package/lib/utils/formatting/sections.js +150 -0
- package/lib/utils/formatting/sections.js.map +1 -0
- package/lib/utils/formatting/tables.d.ts +90 -0
- package/lib/utils/formatting/tables.js +113 -0
- package/lib/utils/formatting/tables.js.map +1 -0
- package/lib/utils/formatting/user-details-display.d.ts +101 -0
- package/lib/utils/formatting/user-details-display.js +425 -0
- package/lib/utils/formatting/user-details-display.js.map +1 -0
- package/lib/utils/pagination/index.d.ts +11 -0
- package/lib/utils/pagination/index.js +18 -0
- package/lib/utils/pagination/index.js.map +1 -0
- package/lib/utils/pagination/keypress-reader.d.ts +20 -0
- package/lib/utils/pagination/keypress-reader.js +63 -0
- package/lib/utils/pagination/keypress-reader.js.map +1 -0
- package/lib/utils/pagination/paginate-output.d.ts +48 -0
- package/lib/utils/pagination/paginate-output.js +136 -0
- package/lib/utils/pagination/paginate-output.js.map +1 -0
- package/messages/compatibility.check.md +71 -0
- package/messages/cuneiform.access.md +138 -0
- package/messages/definition.create.md +511 -0
- package/messages/definition.export.md +84 -0
- package/messages/definition.get.md +147 -0
- package/messages/definition.import.md +65 -0
- package/messages/definition.list.md +264 -0
- package/messages/definition.purge.md +318 -0
- package/messages/definition.update.md +118 -0
- package/messages/mcp.serve.md +66 -0
- package/messages/object.describe.md +201 -0
- package/messages/object.list.md +443 -0
- package/messages/org.details.md +386 -0
- package/messages/org.reset.md +71 -0
- package/messages/profile.md +231 -0
- package/messages/profile.request.cancel.md +143 -0
- package/messages/profile.request.delete.md +139 -0
- package/messages/profile.request.list.md +89 -0
- package/messages/summary.purge.md +218 -0
- package/messages/summary.reprofile.md +150 -0
- package/messages/summary.stop.md +157 -0
- package/messages/user.details.md +501 -0
- package/oclif.lock +2887 -2149
- package/oclif.manifest.json +2813 -31
- package/package.json +94 -19
- package/lib/commands/cuneiform/about.d.ts +0 -13
- package/lib/commands/cuneiform/about.js +0 -26
- package/lib/commands/cuneiform/about.js.map +0 -1
- package/lib/commands/hello/world.d.ts +0 -14
- package/lib/commands/hello/world.js +0 -27
- package/lib/commands/hello/world.js.map +0 -1
- package/lib/index.d.ts +0 -2
- package/lib/index.js +0 -2
- package/lib/index.js.map +0 -1
- package/messages/cuneiform.about.md +0 -19
- package/messages/hello.world.md +0 -29
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProfilingSummaryService.js","sourceRoot":"","sources":["../../src/services/ProfilingSummaryService.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import type { ISoqlQueryAdapter } from '../adapters/soql/soql-query-adapter.js';
|
|
2
|
+
import type { ServiceResult } from '../models/service-result.js';
|
|
3
|
+
/**
|
|
4
|
+
* Represents a Salesforce RecordType with formatted reference information.
|
|
5
|
+
*/
|
|
6
|
+
export type RecordTypeInfo = {
|
|
7
|
+
/** The RecordType ID */
|
|
8
|
+
id: string;
|
|
9
|
+
/** The RecordType display name */
|
|
10
|
+
name: string;
|
|
11
|
+
/** The RecordType developer name (API name) */
|
|
12
|
+
developerName: string;
|
|
13
|
+
/** The SObject type this RecordType belongs to */
|
|
14
|
+
sobjectType: string;
|
|
15
|
+
/** Whether this is a Person Account record type */
|
|
16
|
+
isPersonType: boolean;
|
|
17
|
+
/** Whether this RecordType is active */
|
|
18
|
+
isActive: boolean;
|
|
19
|
+
/** Whether this is the default RecordType */
|
|
20
|
+
isDefault: boolean;
|
|
21
|
+
/** Formatted reference string, e.g. 'Case.Support' or 'PersonAccount.Patient' */
|
|
22
|
+
formattedReference: string;
|
|
23
|
+
/** The associated BusinessProcess ID (only for Opportunity, Case, Lead) */
|
|
24
|
+
businessProcessId?: string;
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* Record type distribution entry with count.
|
|
28
|
+
*/
|
|
29
|
+
export type RecordTypeDistribution = {
|
|
30
|
+
/** The RecordType ID */
|
|
31
|
+
readonly recordTypeId: string;
|
|
32
|
+
/** The RecordType developer name */
|
|
33
|
+
readonly developerName: string;
|
|
34
|
+
/** The RecordType display name */
|
|
35
|
+
readonly name: string;
|
|
36
|
+
/** Number of records with this record type */
|
|
37
|
+
readonly recordCount: number;
|
|
38
|
+
/** Percentage of total records (0-100) */
|
|
39
|
+
readonly percentage: number;
|
|
40
|
+
};
|
|
41
|
+
/**
|
|
42
|
+
* Configuration for RecordTypeService.
|
|
43
|
+
*/
|
|
44
|
+
export type IRecordTypeServiceConfig = {
|
|
45
|
+
/** SOQL query adapter for executing queries */
|
|
46
|
+
soqlAdapter: ISoqlQueryAdapter;
|
|
47
|
+
/** Optional logger for debug output */
|
|
48
|
+
logger?: Console;
|
|
49
|
+
};
|
|
50
|
+
/**
|
|
51
|
+
* Domain service for retrieving Salesforce RecordType information.
|
|
52
|
+
*
|
|
53
|
+
* Provides methods to query record types for a given SObject, with support
|
|
54
|
+
* for filtering active record types and formatting PersonAccount references.
|
|
55
|
+
*
|
|
56
|
+
* @design
|
|
57
|
+
* **IsPersonType Fallback**: The `IsPersonType` field only exists on RecordType
|
|
58
|
+
* when Person Accounts are enabled in the target org. To support both configurations,
|
|
59
|
+
* queries first try with IsPersonType and fall back to exclude it on INVALID_FIELD
|
|
60
|
+
* errors. This ensures cross-org compatibility without requiring org introspection.
|
|
61
|
+
*
|
|
62
|
+
* @example
|
|
63
|
+
* ```typescript
|
|
64
|
+
* const service = new RecordTypeService({ soqlAdapter });
|
|
65
|
+
* const result = await service.getRecordTypes('Account');
|
|
66
|
+
* if (result.success) {
|
|
67
|
+
* result.data.forEach(rt => console.log(rt.formattedReference));
|
|
68
|
+
* }
|
|
69
|
+
* ```
|
|
70
|
+
*/
|
|
71
|
+
export declare class RecordTypeService {
|
|
72
|
+
private readonly soqlAdapter;
|
|
73
|
+
private readonly logger?;
|
|
74
|
+
constructor(config: IRecordTypeServiceConfig);
|
|
75
|
+
/**
|
|
76
|
+
* Formats a record type reference string.
|
|
77
|
+
*
|
|
78
|
+
* Uses PersonAccount as the object prefix when IsPersonType is true,
|
|
79
|
+
* otherwise uses the SobjectType.
|
|
80
|
+
*
|
|
81
|
+
* @param recordType - The RecordTypeInfo to format
|
|
82
|
+
* @returns Formatted reference string (e.g., 'Case.Support', 'PersonAccount.Patient')
|
|
83
|
+
*/
|
|
84
|
+
static formatRecordTypeReference(recordType: RecordTypeInfo): string;
|
|
85
|
+
/**
|
|
86
|
+
* Maps a raw Salesforce RecordType record to a RecordTypeInfo.
|
|
87
|
+
*
|
|
88
|
+
* @param record - The raw SOQL query result record
|
|
89
|
+
* @returns Mapped RecordTypeInfo with formatted reference
|
|
90
|
+
*/
|
|
91
|
+
private static mapToRecordTypeInfo;
|
|
92
|
+
/**
|
|
93
|
+
* Retrieves all record types for the specified SObject.
|
|
94
|
+
*
|
|
95
|
+
* @param objectName - The Salesforce object API name (e.g., 'Account', 'Case')
|
|
96
|
+
* @returns ServiceResult containing an array of RecordTypeInfo, or empty array if none exist
|
|
97
|
+
*/
|
|
98
|
+
getRecordTypes(objectName: string): Promise<ServiceResult<RecordTypeInfo[]>>;
|
|
99
|
+
/**
|
|
100
|
+
* Retrieves record count distribution across record types for an object.
|
|
101
|
+
*
|
|
102
|
+
* Queries the actual object records grouped by RecordTypeId, then enriches
|
|
103
|
+
* with record type metadata (names, developer names).
|
|
104
|
+
*
|
|
105
|
+
* @param objectName - The Salesforce object API name
|
|
106
|
+
* @returns ServiceResult containing array of RecordTypeDistribution
|
|
107
|
+
*/
|
|
108
|
+
getRecordTypeDistribution(objectName: string): Promise<ServiceResult<RecordTypeDistribution[]>>;
|
|
109
|
+
/**
|
|
110
|
+
* Retrieves only active record types for the specified SObject.
|
|
111
|
+
*
|
|
112
|
+
* @param objectName - The Salesforce object API name (e.g., 'Account', 'Case')
|
|
113
|
+
* @returns ServiceResult containing an array of active RecordTypeInfo
|
|
114
|
+
*/
|
|
115
|
+
getActiveRecordTypes(objectName: string): Promise<ServiceResult<RecordTypeInfo[]>>;
|
|
116
|
+
/**
|
|
117
|
+
* Retrieves record types for the specified SObject filtered by activity status.
|
|
118
|
+
*
|
|
119
|
+
* @param objectName - The Salesforce object API name (e.g., 'Account', 'Case')
|
|
120
|
+
* @param status - Filter: 'active' (default), 'all', or 'inactive'
|
|
121
|
+
* @returns ServiceResult containing an array of filtered RecordTypeInfo
|
|
122
|
+
*/
|
|
123
|
+
getRecordTypesByStatus(objectName: string, status?: 'active' | 'all' | 'inactive'): Promise<ServiceResult<RecordTypeInfo[]>>;
|
|
124
|
+
/**
|
|
125
|
+
* Executes the RecordType SOQL query, falling back to exclude IsPersonType
|
|
126
|
+
* when Person Accounts are not enabled in the target org.
|
|
127
|
+
*/
|
|
128
|
+
private queryRecordTypes;
|
|
129
|
+
}
|
|
@@ -0,0 +1,284 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2026, PeerNova, Inc. All Rights Reserved.
|
|
3
|
+
* PROPRIETARY AND CONFIDENTIAL. Unauthorized copying, modification,
|
|
4
|
+
* or distribution is strictly prohibited. Use is governed by the
|
|
5
|
+
* Master Subscription Agreement (MSA) between PeerNova, Inc. and the
|
|
6
|
+
* licensee. See LICENSE file in the repo root.
|
|
7
|
+
*/
|
|
8
|
+
import { createSuccessResult, createFailureResult } from '../models/service-result.js';
|
|
9
|
+
import { ServiceErrorCodes } from '../adapters/errors.js';
|
|
10
|
+
import { CuneiformQueryBuilder } from '../adapters/soql/cuneiform-query-builder.js';
|
|
11
|
+
import { validateObjectName, validateRequiredString } from './validation.js';
|
|
12
|
+
/**
|
|
13
|
+
* Domain service for retrieving Salesforce RecordType information.
|
|
14
|
+
*
|
|
15
|
+
* Provides methods to query record types for a given SObject, with support
|
|
16
|
+
* for filtering active record types and formatting PersonAccount references.
|
|
17
|
+
*
|
|
18
|
+
* @design
|
|
19
|
+
* **IsPersonType Fallback**: The `IsPersonType` field only exists on RecordType
|
|
20
|
+
* when Person Accounts are enabled in the target org. To support both configurations,
|
|
21
|
+
* queries first try with IsPersonType and fall back to exclude it on INVALID_FIELD
|
|
22
|
+
* errors. This ensures cross-org compatibility without requiring org introspection.
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* ```typescript
|
|
26
|
+
* const service = new RecordTypeService({ soqlAdapter });
|
|
27
|
+
* const result = await service.getRecordTypes('Account');
|
|
28
|
+
* if (result.success) {
|
|
29
|
+
* result.data.forEach(rt => console.log(rt.formattedReference));
|
|
30
|
+
* }
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
export class RecordTypeService {
|
|
34
|
+
soqlAdapter;
|
|
35
|
+
logger;
|
|
36
|
+
constructor(config) {
|
|
37
|
+
this.soqlAdapter = config.soqlAdapter;
|
|
38
|
+
this.logger = config.logger;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Formats a record type reference string.
|
|
42
|
+
*
|
|
43
|
+
* Uses PersonAccount as the object prefix when IsPersonType is true,
|
|
44
|
+
* otherwise uses the SobjectType.
|
|
45
|
+
*
|
|
46
|
+
* @param recordType - The RecordTypeInfo to format
|
|
47
|
+
* @returns Formatted reference string (e.g., 'Case.Support', 'PersonAccount.Patient')
|
|
48
|
+
*/
|
|
49
|
+
static formatRecordTypeReference(recordType) {
|
|
50
|
+
const objectPrefix = recordType.isPersonType ? 'PersonAccount' : recordType.sobjectType;
|
|
51
|
+
return `${objectPrefix}.${recordType.developerName}`;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Maps a raw Salesforce RecordType record to a RecordTypeInfo.
|
|
55
|
+
*
|
|
56
|
+
* @param record - The raw SOQL query result record
|
|
57
|
+
* @returns Mapped RecordTypeInfo with formatted reference
|
|
58
|
+
*/
|
|
59
|
+
static mapToRecordTypeInfo(record) {
|
|
60
|
+
const isPersonType = record.IsPersonType ?? false;
|
|
61
|
+
const objectPrefix = isPersonType ? 'PersonAccount' : record.SobjectType;
|
|
62
|
+
return {
|
|
63
|
+
id: record.Id,
|
|
64
|
+
name: record.Name,
|
|
65
|
+
developerName: record.DeveloperName,
|
|
66
|
+
sobjectType: record.SobjectType,
|
|
67
|
+
isPersonType,
|
|
68
|
+
isActive: record.IsActive,
|
|
69
|
+
// 'Master' is Salesforce's reserved DeveloperName for the default record type
|
|
70
|
+
isDefault: record.DeveloperName === 'Master',
|
|
71
|
+
formattedReference: `${objectPrefix}.${record.DeveloperName}`,
|
|
72
|
+
businessProcessId: record.BusinessProcessId ?? undefined,
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Retrieves all record types for the specified SObject.
|
|
77
|
+
*
|
|
78
|
+
* @param objectName - The Salesforce object API name (e.g., 'Account', 'Case')
|
|
79
|
+
* @returns ServiceResult containing an array of RecordTypeInfo, or empty array if none exist
|
|
80
|
+
*/
|
|
81
|
+
async getRecordTypes(objectName) {
|
|
82
|
+
const startTime = Date.now();
|
|
83
|
+
const emptyResult = [];
|
|
84
|
+
// Validate required
|
|
85
|
+
const requiredError = validateRequiredString(objectName, 'Object name');
|
|
86
|
+
if (requiredError) {
|
|
87
|
+
return createFailureResult(emptyResult, ServiceErrorCodes.RECORD_TYPE_OBJECT_NAME_REQUIRED, requiredError, {
|
|
88
|
+
metadata: { duration: Date.now() - startTime },
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
// Validate format
|
|
92
|
+
const formatError = validateObjectName(objectName);
|
|
93
|
+
if (formatError) {
|
|
94
|
+
return createFailureResult(emptyResult, ServiceErrorCodes.RECORD_TYPE_INVALID_OBJECT_NAME, formatError, {
|
|
95
|
+
metadata: { duration: Date.now() - startTime },
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
try {
|
|
99
|
+
const queryResult = await this.queryRecordTypes(objectName);
|
|
100
|
+
if (!queryResult.success) {
|
|
101
|
+
return createFailureResult(emptyResult, ServiceErrorCodes.RECORD_TYPE_QUERY_FAILED, queryResult.message ?? 'Record type query failed', { metadata: { duration: Date.now() - startTime } });
|
|
102
|
+
}
|
|
103
|
+
const recordTypes = queryResult.data.records.map((record) => RecordTypeService.mapToRecordTypeInfo(record));
|
|
104
|
+
const duration = Date.now() - startTime;
|
|
105
|
+
this.logger?.log(`Found ${recordTypes.length} record types for ${objectName}`);
|
|
106
|
+
return createSuccessResult(recordTypes, {
|
|
107
|
+
message: `Found ${recordTypes.length} record types for ${objectName}`,
|
|
108
|
+
metadata: { duration },
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
catch (error) {
|
|
112
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
113
|
+
this.logger?.log(`Record type query failed: ${errorMessage}`);
|
|
114
|
+
return createFailureResult(emptyResult, ServiceErrorCodes.RECORD_TYPE_QUERY_FAILED, errorMessage, {
|
|
115
|
+
metadata: { duration: Date.now() - startTime },
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Retrieves record count distribution across record types for an object.
|
|
121
|
+
*
|
|
122
|
+
* Queries the actual object records grouped by RecordTypeId, then enriches
|
|
123
|
+
* with record type metadata (names, developer names).
|
|
124
|
+
*
|
|
125
|
+
* @param objectName - The Salesforce object API name
|
|
126
|
+
* @returns ServiceResult containing array of RecordTypeDistribution
|
|
127
|
+
*/
|
|
128
|
+
async getRecordTypeDistribution(objectName) {
|
|
129
|
+
const startTime = Date.now();
|
|
130
|
+
const emptyResult = [];
|
|
131
|
+
// Validate required
|
|
132
|
+
const requiredError = validateRequiredString(objectName, 'Object name');
|
|
133
|
+
if (requiredError) {
|
|
134
|
+
return createFailureResult(emptyResult, ServiceErrorCodes.RECORD_TYPE_OBJECT_NAME_REQUIRED, requiredError, {
|
|
135
|
+
metadata: { duration: Date.now() - startTime },
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
// Validate format
|
|
139
|
+
const formatError = validateObjectName(objectName);
|
|
140
|
+
if (formatError) {
|
|
141
|
+
return createFailureResult(emptyResult, ServiceErrorCodes.RECORD_TYPE_INVALID_OBJECT_NAME, formatError, {
|
|
142
|
+
metadata: { duration: Date.now() - startTime },
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
try {
|
|
146
|
+
// Step 1: Get existing record types for metadata enrichment
|
|
147
|
+
const recordTypesResult = await this.getRecordTypes(objectName);
|
|
148
|
+
if (!recordTypesResult.success) {
|
|
149
|
+
return createFailureResult(emptyResult, ServiceErrorCodes.RECORD_TYPE_QUERY_FAILED, recordTypesResult.message ?? 'Record type query failed', {
|
|
150
|
+
metadata: { duration: Date.now() - startTime },
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
// If no record types exist, return empty array
|
|
154
|
+
if (recordTypesResult.data.length === 0) {
|
|
155
|
+
return createSuccessResult(emptyResult, {
|
|
156
|
+
message: `No record types found for ${objectName}`,
|
|
157
|
+
metadata: { duration: Date.now() - startTime },
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
// Step 2: Query record counts grouped by RecordTypeId
|
|
161
|
+
const countSoql = new CuneiformQueryBuilder()
|
|
162
|
+
.select(['RecordTypeId', 'COUNT(Id) cnt'])
|
|
163
|
+
.from(objectName)
|
|
164
|
+
.groupBy(['RecordTypeId'])
|
|
165
|
+
.toSOQL();
|
|
166
|
+
const countResult = await this.soqlAdapter.query(countSoql);
|
|
167
|
+
if (!countResult.success) {
|
|
168
|
+
return createFailureResult(emptyResult, ServiceErrorCodes.RECORD_TYPE_QUERY_FAILED, countResult.message ?? 'Record count query failed', {
|
|
169
|
+
metadata: { duration: Date.now() - startTime },
|
|
170
|
+
});
|
|
171
|
+
}
|
|
172
|
+
// Step 3: Compute total and build distribution
|
|
173
|
+
const countRecords = countResult.data.records;
|
|
174
|
+
const total = countRecords.reduce((sum, record) => sum + record.cnt, 0);
|
|
175
|
+
// Build a lookup map from record type ID to metadata
|
|
176
|
+
const recordTypeMap = new Map();
|
|
177
|
+
for (const rt of recordTypesResult.data) {
|
|
178
|
+
recordTypeMap.set(rt.id, rt);
|
|
179
|
+
}
|
|
180
|
+
// Step 4: Enrich with record type names and compute percentages
|
|
181
|
+
const distribution = countRecords
|
|
182
|
+
.map((record) => {
|
|
183
|
+
const rtInfo = recordTypeMap.get(record.RecordTypeId);
|
|
184
|
+
return {
|
|
185
|
+
recordTypeId: record.RecordTypeId,
|
|
186
|
+
developerName: rtInfo?.developerName ?? 'Unknown',
|
|
187
|
+
name: rtInfo?.name ?? 'Unknown',
|
|
188
|
+
recordCount: record.cnt,
|
|
189
|
+
percentage: total > 0 ? Math.round((record.cnt / total) * 10_000) / 100 : 0,
|
|
190
|
+
};
|
|
191
|
+
})
|
|
192
|
+
// Step 5: Sort by recordCount descending
|
|
193
|
+
.sort((a, b) => b.recordCount - a.recordCount);
|
|
194
|
+
const duration = Date.now() - startTime;
|
|
195
|
+
this.logger?.log(`Found ${distribution.length} record type distributions for ${objectName}`);
|
|
196
|
+
return createSuccessResult(distribution, {
|
|
197
|
+
message: `Found ${distribution.length} record type distributions for ${objectName}`,
|
|
198
|
+
metadata: { duration },
|
|
199
|
+
});
|
|
200
|
+
}
|
|
201
|
+
catch (error) {
|
|
202
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
203
|
+
this.logger?.log(`Record type distribution query failed: ${errorMessage}`);
|
|
204
|
+
return createFailureResult(emptyResult, ServiceErrorCodes.RECORD_TYPE_QUERY_FAILED, errorMessage, {
|
|
205
|
+
metadata: { duration: Date.now() - startTime },
|
|
206
|
+
});
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Retrieves only active record types for the specified SObject.
|
|
211
|
+
*
|
|
212
|
+
* @param objectName - The Salesforce object API name (e.g., 'Account', 'Case')
|
|
213
|
+
* @returns ServiceResult containing an array of active RecordTypeInfo
|
|
214
|
+
*/
|
|
215
|
+
async getActiveRecordTypes(objectName) {
|
|
216
|
+
return this.getRecordTypesByStatus(objectName, 'active');
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Retrieves record types for the specified SObject filtered by activity status.
|
|
220
|
+
*
|
|
221
|
+
* @param objectName - The Salesforce object API name (e.g., 'Account', 'Case')
|
|
222
|
+
* @param status - Filter: 'active' (default), 'all', or 'inactive'
|
|
223
|
+
* @returns ServiceResult containing an array of filtered RecordTypeInfo
|
|
224
|
+
*/
|
|
225
|
+
async getRecordTypesByStatus(objectName, status = 'active') {
|
|
226
|
+
const result = await this.getRecordTypes(objectName);
|
|
227
|
+
if (!result.success) {
|
|
228
|
+
return result;
|
|
229
|
+
}
|
|
230
|
+
let filtered;
|
|
231
|
+
let label;
|
|
232
|
+
switch (status) {
|
|
233
|
+
case 'all':
|
|
234
|
+
filtered = result.data;
|
|
235
|
+
label = 'total';
|
|
236
|
+
break;
|
|
237
|
+
case 'inactive':
|
|
238
|
+
filtered = result.data.filter((rt) => !rt.isActive);
|
|
239
|
+
label = 'inactive';
|
|
240
|
+
break;
|
|
241
|
+
default:
|
|
242
|
+
filtered = result.data.filter((rt) => rt.isActive);
|
|
243
|
+
label = 'active';
|
|
244
|
+
break;
|
|
245
|
+
}
|
|
246
|
+
return createSuccessResult(filtered, {
|
|
247
|
+
message: `Found ${filtered.length} ${label} record types for ${objectName}`,
|
|
248
|
+
metadata: result.metadata,
|
|
249
|
+
});
|
|
250
|
+
}
|
|
251
|
+
/**
|
|
252
|
+
* Executes the RecordType SOQL query, falling back to exclude IsPersonType
|
|
253
|
+
* when Person Accounts are not enabled in the target org.
|
|
254
|
+
*/
|
|
255
|
+
async queryRecordTypes(objectName) {
|
|
256
|
+
const baseFields = ['Id', 'Name', 'DeveloperName', 'SobjectType', 'IsActive', 'BusinessProcessId'];
|
|
257
|
+
// Try with IsPersonType first (available when Person Accounts are enabled)
|
|
258
|
+
const fullSoql = new CuneiformQueryBuilder()
|
|
259
|
+
.select([...baseFields, 'IsPersonType'])
|
|
260
|
+
.from('RecordType')
|
|
261
|
+
.where('SobjectType', '=', objectName)
|
|
262
|
+
.orderBy('Name', 'ASC')
|
|
263
|
+
.toSOQL();
|
|
264
|
+
this.logger?.log(`Querying record types for: ${objectName}`);
|
|
265
|
+
const fullResult = await this.soqlAdapter.query(fullSoql);
|
|
266
|
+
if (fullResult.success) {
|
|
267
|
+
return fullResult;
|
|
268
|
+
}
|
|
269
|
+
// If the query failed due to IsPersonType not existing, retry without it
|
|
270
|
+
const errorMsg = fullResult.message ?? '';
|
|
271
|
+
if (errorMsg.includes('INVALID_FIELD') || errorMsg.includes('IsPersonType')) {
|
|
272
|
+
this.logger?.log('IsPersonType not available — retrying without Person Account field');
|
|
273
|
+
const fallbackSoql = new CuneiformQueryBuilder()
|
|
274
|
+
.select(baseFields)
|
|
275
|
+
.from('RecordType')
|
|
276
|
+
.where('SobjectType', '=', objectName)
|
|
277
|
+
.orderBy('Name', 'ASC')
|
|
278
|
+
.toSOQL();
|
|
279
|
+
return this.soqlAdapter.query(fallbackSoql);
|
|
280
|
+
}
|
|
281
|
+
return fullResult;
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
//# sourceMappingURL=RecordTypeService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RecordTypeService.js","sourceRoot":"","sources":["../../src/services/RecordTypeService.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AACvF,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,6CAA6C,CAAC;AACpF,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AA0E7E;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,OAAO,iBAAiB;IACX,WAAW,CAAoB;IAC/B,MAAM,CAAW;IAElC,YAAmB,MAAgC;QACjD,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QACtC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAC9B,CAAC;IAED;;;;;;;;OAQG;IACI,MAAM,CAAC,yBAAyB,CAAC,UAA0B;QAChE,MAAM,YAAY,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC;QACxF,OAAO,GAAG,YAAY,IAAI,UAAU,CAAC,aAAa,EAAE,CAAC;IACvD,CAAC;IAED;;;;;OAKG;IACK,MAAM,CAAC,mBAAmB,CAAC,MAAwB;QACzD,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,IAAI,KAAK,CAAC;QAClD,MAAM,YAAY,GAAG,YAAY,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC;QAEzE,OAAO;YACL,EAAE,EAAE,MAAM,CAAC,EAAE;YACb,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,YAAY;YACZ,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,8EAA8E;YAC9E,SAAS,EAAE,MAAM,CAAC,aAAa,KAAK,QAAQ;YAC5C,kBAAkB,EAAE,GAAG,YAAY,IAAI,MAAM,CAAC,aAAa,EAAE;YAC7D,iBAAiB,EAAE,MAAM,CAAC,iBAAiB,IAAI,SAAS;SACzD,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,cAAc,CAAC,UAAkB;QAC5C,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,MAAM,WAAW,GAAqB,EAAE,CAAC;QAEzC,oBAAoB;QACpB,MAAM,aAAa,GAAG,sBAAsB,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;QACxE,IAAI,aAAa,EAAE,CAAC;YAClB,OAAO,mBAAmB,CAAC,WAAW,EAAE,iBAAiB,CAAC,gCAAgC,EAAE,aAAa,EAAE;gBACzG,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,EAAE;aAC/C,CAAC,CAAC;QACL,CAAC;QAED,kBAAkB;QAClB,MAAM,WAAW,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;QACnD,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,mBAAmB,CAAC,WAAW,EAAE,iBAAiB,CAAC,+BAA+B,EAAE,WAAW,EAAE;gBACtG,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,EAAE;aAC/C,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;YAE5D,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;gBACzB,OAAO,mBAAmB,CACxB,WAAW,EACX,iBAAiB,CAAC,wBAAwB,EAC1C,WAAW,CAAC,OAAO,IAAI,0BAA0B,EACjD,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,EAAE,EAAE,CACnD,CAAC;YACJ,CAAC;YAED,MAAM,WAAW,GAAG,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC;YAC5G,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;YAExC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,SAAS,WAAW,CAAC,MAAM,qBAAqB,UAAU,EAAE,CAAC,CAAC;YAE/E,OAAO,mBAAmB,CAAC,WAAW,EAAE;gBACtC,OAAO,EAAE,SAAS,WAAW,CAAC,MAAM,qBAAqB,UAAU,EAAE;gBACrE,QAAQ,EAAE,EAAE,QAAQ,EAAE;aACvB,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC5E,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,6BAA6B,YAAY,EAAE,CAAC,CAAC;YAE9D,OAAO,mBAAmB,CAAC,WAAW,EAAE,iBAAiB,CAAC,wBAAwB,EAAE,YAAY,EAAE;gBAChG,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,EAAE;aAC/C,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;;;;;;;OAQG;IACI,KAAK,CAAC,yBAAyB,CAAC,UAAkB;QACvD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,MAAM,WAAW,GAA6B,EAAE,CAAC;QAEjD,oBAAoB;QACpB,MAAM,aAAa,GAAG,sBAAsB,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;QACxE,IAAI,aAAa,EAAE,CAAC;YAClB,OAAO,mBAAmB,CAAC,WAAW,EAAE,iBAAiB,CAAC,gCAAgC,EAAE,aAAa,EAAE;gBACzG,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,EAAE;aAC/C,CAAC,CAAC;QACL,CAAC;QAED,kBAAkB;QAClB,MAAM,WAAW,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;QACnD,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,mBAAmB,CAAC,WAAW,EAAE,iBAAiB,CAAC,+BAA+B,EAAE,WAAW,EAAE;gBACtG,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,EAAE;aAC/C,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAAC;YACH,4DAA4D;YAC5D,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;YAChE,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC;gBAC/B,OAAO,mBAAmB,CACxB,WAAW,EACX,iBAAiB,CAAC,wBAAwB,EAC1C,iBAAiB,CAAC,OAAO,IAAI,0BAA0B,EACvD;oBACE,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,EAAE;iBAC/C,CACF,CAAC;YACJ,CAAC;YAED,+CAA+C;YAC/C,IAAI,iBAAiB,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACxC,OAAO,mBAAmB,CAAC,WAAW,EAAE;oBACtC,OAAO,EAAE,6BAA6B,UAAU,EAAE;oBAClD,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,EAAE;iBAC/C,CAAC,CAAC;YACL,CAAC;YAED,sDAAsD;YACtD,MAAM,SAAS,GAAG,IAAI,qBAAqB,EAAE;iBAC1C,MAAM,CAAC,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;iBACzC,IAAI,CAAC,UAAU,CAAC;iBAChB,OAAO,CAAC,CAAC,cAAc,CAAC,CAAC;iBACzB,MAAM,EAAE,CAAC;YAEZ,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAwB,SAAS,CAAC,CAAC;YACnF,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;gBACzB,OAAO,mBAAmB,CACxB,WAAW,EACX,iBAAiB,CAAC,wBAAwB,EAC1C,WAAW,CAAC,OAAO,IAAI,2BAA2B,EAClD;oBACE,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,EAAE;iBAC/C,CACF,CAAC;YACJ,CAAC;YAED,+CAA+C;YAC/C,MAAM,YAAY,GAAG,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC;YAC9C,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YAExE,qDAAqD;YACrD,MAAM,aAAa,GAAG,IAAI,GAAG,EAA0B,CAAC;YACxD,KAAK,MAAM,EAAE,IAAI,iBAAiB,CAAC,IAAI,EAAE,CAAC;gBACxC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YAC/B,CAAC;YAED,gEAAgE;YAChE,MAAM,YAAY,GAA6B,YAAY;iBACxD,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;gBACd,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;gBACtD,OAAO;oBACL,YAAY,EAAE,MAAM,CAAC,YAAY;oBACjC,aAAa,EAAE,MAAM,EAAE,aAAa,IAAI,SAAS;oBACjD,IAAI,EAAE,MAAM,EAAE,IAAI,IAAI,SAAS;oBAC/B,WAAW,EAAE,MAAM,CAAC,GAAG;oBACvB,UAAU,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;iBAC5E,CAAC;YACJ,CAAC,CAAC;gBACF,yCAAyC;iBACxC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC;YAEjD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;YAExC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,SAAS,YAAY,CAAC,MAAM,kCAAkC,UAAU,EAAE,CAAC,CAAC;YAE7F,OAAO,mBAAmB,CAAC,YAAY,EAAE;gBACvC,OAAO,EAAE,SAAS,YAAY,CAAC,MAAM,kCAAkC,UAAU,EAAE;gBACnF,QAAQ,EAAE,EAAE,QAAQ,EAAE;aACvB,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC5E,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,0CAA0C,YAAY,EAAE,CAAC,CAAC;YAE3E,OAAO,mBAAmB,CAAC,WAAW,EAAE,iBAAiB,CAAC,wBAAwB,EAAE,YAAY,EAAE;gBAChG,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,EAAE;aAC/C,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,oBAAoB,CAAC,UAAkB;QAClD,OAAO,IAAI,CAAC,sBAAsB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAC3D,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,sBAAsB,CACjC,UAAkB,EAClB,SAAwC,QAAQ;QAEhD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;QAErD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,IAAI,QAA0B,CAAC;QAC/B,IAAI,KAAa,CAAC;QAElB,QAAQ,MAAM,EAAE,CAAC;YACf,KAAK,KAAK;gBACR,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC;gBACvB,KAAK,GAAG,OAAO,CAAC;gBAChB,MAAM;YACR,KAAK,UAAU;gBACb,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;gBACpD,KAAK,GAAG,UAAU,CAAC;gBACnB,MAAM;YACR;gBACE,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;gBACnD,KAAK,GAAG,QAAQ,CAAC;gBACjB,MAAM;QACV,CAAC;QAED,OAAO,mBAAmB,CAAC,QAAQ,EAAE;YACnC,OAAO,EAAE,SAAS,QAAQ,CAAC,MAAM,IAAI,KAAK,qBAAqB,UAAU,EAAE;YAC3E,QAAQ,EAAE,MAAM,CAAC,QAAQ;SAC1B,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,gBAAgB,CAAC,UAAkB;QAC/C,MAAM,UAAU,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,eAAe,EAAE,aAAa,EAAE,UAAU,EAAE,mBAAmB,CAAC,CAAC;QAEnG,2EAA2E;QAC3E,MAAM,QAAQ,GAAG,IAAI,qBAAqB,EAAE;aACzC,MAAM,CAAC,CAAC,GAAG,UAAU,EAAE,cAAc,CAAC,CAAC;aACvC,IAAI,CAAC,YAAY,CAAC;aAClB,KAAK,CAAC,aAAa,EAAE,GAAG,EAAE,UAAU,CAAC;aACrC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC;aACtB,MAAM,EAAE,CAAC;QAEZ,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,8BAA8B,UAAU,EAAE,CAAC,CAAC;QAE7D,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAmB,QAAQ,CAAC,CAAC;QAE5E,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;YACvB,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,yEAAyE;QACzE,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,IAAI,EAAE,CAAC;QAC1C,IAAI,QAAQ,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;YAC5E,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,oEAAoE,CAAC,CAAC;YAEvF,MAAM,YAAY,GAAG,IAAI,qBAAqB,EAAE;iBAC7C,MAAM,CAAC,UAAU,CAAC;iBAClB,IAAI,CAAC,YAAY,CAAC;iBAClB,KAAK,CAAC,aAAa,EAAE,GAAG,EAAE,UAAU,CAAC;iBACrC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC;iBACtB,MAAM,EAAE,CAAC;YAEZ,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAmB,YAAY,CAAC,CAAC;QAChE,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;CACF"}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import { type ExecFileOptions } from 'node:child_process';
|
|
2
|
+
import { type ISFDMUOptions, type ISFDMUResult, type ServiceResult } from '../models/sfdmu-types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Type for the promisified execFile function.
|
|
5
|
+
*/
|
|
6
|
+
export type ExecFileAsyncFn = (file: string, args: string[], options: ExecFileOptions) => Promise<{
|
|
7
|
+
stdout: string;
|
|
8
|
+
stderr: string;
|
|
9
|
+
}>;
|
|
10
|
+
/**
|
|
11
|
+
* Configuration options for SFDMUService.
|
|
12
|
+
*/
|
|
13
|
+
export type ISFDMUServiceConfig = {
|
|
14
|
+
/** Optional logger for debug output */
|
|
15
|
+
logger?: Console;
|
|
16
|
+
/** Optional execFile function for testing (dependency injection) */
|
|
17
|
+
execFileAsync?: ExecFileAsyncFn;
|
|
18
|
+
/** Override platform detection (for testing) */
|
|
19
|
+
platform?: NodeJS.Platform;
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* Service for executing SFDMU (Salesforce Data Move Utility) operations.
|
|
23
|
+
*
|
|
24
|
+
* This service provides:
|
|
25
|
+
* - Runtime verification that SFDMU is installed
|
|
26
|
+
* - Secure shell execution using execFile (prevents command injection)
|
|
27
|
+
* - Cross-platform support (Windows/Unix)
|
|
28
|
+
* - Configurable timeout and buffer sizes
|
|
29
|
+
* - Result parsing for record counts and errors
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* ```typescript
|
|
33
|
+
* const service = new SFDMUService();
|
|
34
|
+
* await service.verifyInstallation();
|
|
35
|
+
* const result = await service.runExport({
|
|
36
|
+
* configPath: './export.json',
|
|
37
|
+
* sourceOrg: 'myOrg'
|
|
38
|
+
* });
|
|
39
|
+
* ```
|
|
40
|
+
*/
|
|
41
|
+
export declare class SFDMUService {
|
|
42
|
+
/** Default timeout for SFDMU operations (5 minutes) */
|
|
43
|
+
static readonly DEFAULT_TIMEOUT = 300000;
|
|
44
|
+
/** Default max buffer size for stdout/stderr (10MB) */
|
|
45
|
+
static readonly DEFAULT_MAX_BUFFER: number;
|
|
46
|
+
/** The sf CLI binary name (platform-specific) */
|
|
47
|
+
private readonly sfBinary;
|
|
48
|
+
/** Logger instance */
|
|
49
|
+
private readonly logger?;
|
|
50
|
+
/** Injected execFile function */
|
|
51
|
+
private readonly execFileAsync;
|
|
52
|
+
/**
|
|
53
|
+
* Creates a new SFDMUService instance.
|
|
54
|
+
*
|
|
55
|
+
* @param config - Optional configuration including logger and test dependencies
|
|
56
|
+
*/
|
|
57
|
+
constructor(config?: ISFDMUServiceConfig);
|
|
58
|
+
/**
|
|
59
|
+
* Builds command line arguments for SFDMU execution.
|
|
60
|
+
*
|
|
61
|
+
* @param options - Operation options
|
|
62
|
+
* @param operation - The operation type
|
|
63
|
+
* @returns Array of command line arguments
|
|
64
|
+
*/
|
|
65
|
+
private static buildArgs;
|
|
66
|
+
/**
|
|
67
|
+
* Parses record count from SFDMU stdout output.
|
|
68
|
+
*
|
|
69
|
+
* SFDMU (Salesforce Data Move Utility) outputs record counts in several formats
|
|
70
|
+
* depending on the operation type and verbosity level:
|
|
71
|
+
* - Summary lines: "Total: 100 records" — single authoritative count, checked first
|
|
72
|
+
* - Per-batch lines: "Processed 8 records" repeated per batch — summed to get total
|
|
73
|
+
* - Alternate phrasing: "100 records processed"
|
|
74
|
+
*
|
|
75
|
+
* Per-batch counts must be summed: SFDMU emits "Processed N records" once per batch
|
|
76
|
+
* (CLI-3140), so taking only the first match caps the reported count at the batch size.
|
|
77
|
+
*
|
|
78
|
+
* Tested against SFDMU v4.x output. If patterns fail to match, returns undefined
|
|
79
|
+
* (graceful degradation — record count is informational, not required).
|
|
80
|
+
*
|
|
81
|
+
* @param stdout - Standard output from SFDMU execution
|
|
82
|
+
* @returns Parsed record count or undefined if no pattern matched
|
|
83
|
+
*/
|
|
84
|
+
private static parseRecordCount;
|
|
85
|
+
/**
|
|
86
|
+
* Parses error messages from SFDMU stderr output.
|
|
87
|
+
*
|
|
88
|
+
* @param stderr - Standard error from SFDMU
|
|
89
|
+
* @returns Array of error messages
|
|
90
|
+
*/
|
|
91
|
+
private static parseErrors;
|
|
92
|
+
/**
|
|
93
|
+
* Parses warning messages from SFDMU stderr output.
|
|
94
|
+
*
|
|
95
|
+
* @param stderr - Standard error from SFDMU
|
|
96
|
+
* @returns Array of warning messages
|
|
97
|
+
*/
|
|
98
|
+
private static parseWarnings;
|
|
99
|
+
/**
|
|
100
|
+
* Returns the sf binary name being used (for testing/debugging).
|
|
101
|
+
*/
|
|
102
|
+
getSfBinary(): string;
|
|
103
|
+
/**
|
|
104
|
+
* Verifies that SFDMU is installed and available.
|
|
105
|
+
*
|
|
106
|
+
* @returns Promise that resolves when SFDMU installation is verified
|
|
107
|
+
* @throws SfError with code 'SFCLINotFound' if Salesforce CLI is not installed
|
|
108
|
+
* @throws SfError with code from SFDMUErrorCodes.NOT_INSTALLED if SFDMU plugin is missing
|
|
109
|
+
*/
|
|
110
|
+
verifyInstallation(): Promise<void>;
|
|
111
|
+
/**
|
|
112
|
+
* Executes an SFDMU export operation.
|
|
113
|
+
*
|
|
114
|
+
* @param options - Export options including config path and source org
|
|
115
|
+
* @returns ServiceResult containing the execution result
|
|
116
|
+
*/
|
|
117
|
+
runExport(options: ISFDMUOptions): Promise<ServiceResult<ISFDMUResult>>;
|
|
118
|
+
/**
|
|
119
|
+
* Executes an SFDMU import operation.
|
|
120
|
+
*
|
|
121
|
+
* @param options - Import options including config path and target org
|
|
122
|
+
* @returns ServiceResult containing the execution result
|
|
123
|
+
*/
|
|
124
|
+
runImport(options: ISFDMUOptions): Promise<ServiceResult<ISFDMUResult>>;
|
|
125
|
+
/**
|
|
126
|
+
* Executes an SFDMU operation (export or import).
|
|
127
|
+
*
|
|
128
|
+
* @param options - Operation options
|
|
129
|
+
* @param operation - The operation type ('export' or 'import')
|
|
130
|
+
* @returns ServiceResult containing the execution result
|
|
131
|
+
*/
|
|
132
|
+
private executeOperation;
|
|
133
|
+
}
|