@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,436 @@
|
|
|
1
|
+
import type { IRestApiAdapter } from '../adapters/rest/rest-api-adapter.js';
|
|
2
|
+
import type { ISoqlQueryAdapter } from '../adapters/soql/soql-query-adapter.js';
|
|
3
|
+
import type { DescribeSObjectResult, DescribeFieldResult } from '../adapters/connection-facade.js';
|
|
4
|
+
import type { ServiceResult } from '../models/service-result.js';
|
|
5
|
+
import type { RecordTypeService, RecordTypeInfo } from './RecordTypeService.js';
|
|
6
|
+
import type { ProfilingDefinitionService, ProfilingDefinition } from './ProfilingDefinitionService.js';
|
|
7
|
+
import type { ProfilingSummaryService } from './ProfilingSummaryService.js';
|
|
8
|
+
/**
|
|
9
|
+
* Business process information with associated record types and record age distribution.
|
|
10
|
+
* Used by object describe to show per-process record existence grid.
|
|
11
|
+
*/
|
|
12
|
+
export type ObjectBusinessProcessInfo = {
|
|
13
|
+
/** BusinessProcess ID */
|
|
14
|
+
id: string;
|
|
15
|
+
/** Process name */
|
|
16
|
+
name: string;
|
|
17
|
+
/** Whether the process is active */
|
|
18
|
+
isActive: boolean;
|
|
19
|
+
/** Number of record types using this process */
|
|
20
|
+
recordTypeCount: number;
|
|
21
|
+
/** Record type IDs using this process */
|
|
22
|
+
recordTypeIds: string[];
|
|
23
|
+
/** Per-process record age distribution (populated after age queries) */
|
|
24
|
+
recordAgeDistribution?: RecordAgeDistribution;
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* Field classification information derived from describe metadata.
|
|
28
|
+
*/
|
|
29
|
+
export type FieldClassification = {
|
|
30
|
+
/** Total number of fields on the object */
|
|
31
|
+
totalFields: number;
|
|
32
|
+
/** Count of custom fields (field.custom === true) */
|
|
33
|
+
customFields: number;
|
|
34
|
+
/** Count of formula fields (field.calculated === true) */
|
|
35
|
+
formulaFields: number;
|
|
36
|
+
/** Count of lookup/reference fields (field.referenceTo?.length > 0) */
|
|
37
|
+
lookupFields: number;
|
|
38
|
+
/** Count of required fields (createable && !nillable && !defaultValue) */
|
|
39
|
+
requiredFields: number;
|
|
40
|
+
/** Count of picklist fields (type === 'picklist' || 'multipicklist') */
|
|
41
|
+
picklistFields: number;
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* Record age information for the object.
|
|
45
|
+
*/
|
|
46
|
+
export type RecordAgeInfo = {
|
|
47
|
+
/** Whether record age information is available */
|
|
48
|
+
available: boolean;
|
|
49
|
+
/** ISO 8601 date of oldest record, if available */
|
|
50
|
+
oldestRecordDate?: string;
|
|
51
|
+
/** ISO 8601 date of newest record, if available */
|
|
52
|
+
newestRecordDate?: string;
|
|
53
|
+
};
|
|
54
|
+
/**
|
|
55
|
+
* Year-level record existence status for a single calendar year.
|
|
56
|
+
*/
|
|
57
|
+
export type YearRecordAge = {
|
|
58
|
+
/** The calendar year */
|
|
59
|
+
year: number;
|
|
60
|
+
/** Whether records exist in this year */
|
|
61
|
+
hasRecords: boolean;
|
|
62
|
+
};
|
|
63
|
+
/**
|
|
64
|
+
* Record age distribution showing year-by-year record existence.
|
|
65
|
+
*
|
|
66
|
+
* Array-based structure for extensibility and clean MCP/JSON consumption.
|
|
67
|
+
* Years are ordered newest-first (descending).
|
|
68
|
+
*/
|
|
69
|
+
export type RecordAgeDistribution = {
|
|
70
|
+
/** Per-year record existence, ordered newest-first */
|
|
71
|
+
years: YearRecordAge[];
|
|
72
|
+
/** ISO 8601 date of oldest record, or null if none */
|
|
73
|
+
oldestRecordDate: string | null;
|
|
74
|
+
};
|
|
75
|
+
/**
|
|
76
|
+
* Field type distribution entry.
|
|
77
|
+
*/
|
|
78
|
+
export type FieldTypeCount = {
|
|
79
|
+
/** The display type (e.g., 'Text', 'Number', 'Lookup') */
|
|
80
|
+
type: string;
|
|
81
|
+
/** Count of fields with this type */
|
|
82
|
+
count: number;
|
|
83
|
+
/** Percentage of total fields (rounded to 1 decimal) */
|
|
84
|
+
percent: number;
|
|
85
|
+
};
|
|
86
|
+
/**
|
|
87
|
+
* Namespace breakdown entry.
|
|
88
|
+
*/
|
|
89
|
+
export type NamespaceCount = {
|
|
90
|
+
/** The namespace prefix or null for standard/unpackaged fields */
|
|
91
|
+
namespace: string | null;
|
|
92
|
+
/** Count of fields in this namespace */
|
|
93
|
+
fieldCount: number;
|
|
94
|
+
};
|
|
95
|
+
/**
|
|
96
|
+
* External reference from another object (inbound relationship).
|
|
97
|
+
*/
|
|
98
|
+
export type ExternalReference = {
|
|
99
|
+
/** The child object API name that references this object */
|
|
100
|
+
objectName: string;
|
|
101
|
+
/** The field on the child object that holds the reference */
|
|
102
|
+
fieldName: string;
|
|
103
|
+
/** The relationship name for SOQL queries */
|
|
104
|
+
relationshipName: string | null;
|
|
105
|
+
};
|
|
106
|
+
/**
|
|
107
|
+
* Lookup field with target object information.
|
|
108
|
+
*/
|
|
109
|
+
export type LookupFieldInfo = {
|
|
110
|
+
/** The lookup field API name */
|
|
111
|
+
fieldName: string;
|
|
112
|
+
/** The field label */
|
|
113
|
+
label: string;
|
|
114
|
+
/** Target object(s) this field references */
|
|
115
|
+
targetObjects: string[];
|
|
116
|
+
/** The relationship name for SOQL traversal */
|
|
117
|
+
relationshipName: string | null;
|
|
118
|
+
};
|
|
119
|
+
/**
|
|
120
|
+
* Relationship summary for an object.
|
|
121
|
+
*/
|
|
122
|
+
export type RelationshipSummary = {
|
|
123
|
+
/** Number of objects that reference this object */
|
|
124
|
+
referencedByCount: number;
|
|
125
|
+
/** Details of objects that reference this object (from childRelationships) */
|
|
126
|
+
referencedBy: ExternalReference[];
|
|
127
|
+
/** Lookup fields on this object pointing to other objects */
|
|
128
|
+
lookupFields: LookupFieldInfo[];
|
|
129
|
+
};
|
|
130
|
+
/**
|
|
131
|
+
* Enriched profiling status for the object.
|
|
132
|
+
*/
|
|
133
|
+
export type ProfilingStatus = {
|
|
134
|
+
/** Whether profiling definitions exist for this object */
|
|
135
|
+
hasDefinitions: boolean;
|
|
136
|
+
/** Number of profiling definitions for this object */
|
|
137
|
+
definitionCount: number;
|
|
138
|
+
/** List of profiling definitions (if available) */
|
|
139
|
+
definitions?: ProfilingDefinition[];
|
|
140
|
+
/** Most recent profiling summary date, if available */
|
|
141
|
+
lastProfiledDate?: string;
|
|
142
|
+
/** Total summary count across all definitions */
|
|
143
|
+
summaryCount?: number;
|
|
144
|
+
};
|
|
145
|
+
/**
|
|
146
|
+
* Comprehensive object metadata with field analysis and enrichment.
|
|
147
|
+
*/
|
|
148
|
+
export type ObjectDescribeResult = {
|
|
149
|
+
/** The object API name */
|
|
150
|
+
objectName: string;
|
|
151
|
+
/** The object label */
|
|
152
|
+
label: string;
|
|
153
|
+
/** The object plural label */
|
|
154
|
+
labelPlural: string;
|
|
155
|
+
/** Whether this is a custom object */
|
|
156
|
+
isCustom: boolean;
|
|
157
|
+
/** Whether the object is queryable */
|
|
158
|
+
isQueryable: boolean;
|
|
159
|
+
/** Whether the object is createable */
|
|
160
|
+
isCreateable: boolean;
|
|
161
|
+
/** Whether the object is updateable */
|
|
162
|
+
isUpdateable: boolean;
|
|
163
|
+
/** Whether the object is deletable */
|
|
164
|
+
isDeletable: boolean;
|
|
165
|
+
/** Whether the object is searchable */
|
|
166
|
+
isSearchable: boolean;
|
|
167
|
+
/** Field classification statistics */
|
|
168
|
+
fieldClassification: FieldClassification;
|
|
169
|
+
/** All fields from the describe result */
|
|
170
|
+
fields: DescribeFieldResult[];
|
|
171
|
+
/** Record type information (enriched if RecordTypeService provided) */
|
|
172
|
+
recordTypes?: RecordTypeInfo[];
|
|
173
|
+
/** Record age information (if queryable) */
|
|
174
|
+
recordAge?: RecordAgeInfo;
|
|
175
|
+
/** Profiling status (enriched if profiling services provided) */
|
|
176
|
+
profilingStatus?: ProfilingStatus;
|
|
177
|
+
/** Relationship summary including external references and lookup fields */
|
|
178
|
+
relationships?: RelationshipSummary;
|
|
179
|
+
/** Whether PersonAccount is enabled (only populated for Account object) */
|
|
180
|
+
isPersonAccountEnabled?: boolean;
|
|
181
|
+
};
|
|
182
|
+
/**
|
|
183
|
+
* Configuration for ObjectDescribeService.
|
|
184
|
+
*/
|
|
185
|
+
export type IObjectDescribeServiceConfig = {
|
|
186
|
+
/** REST API adapter for describing objects */
|
|
187
|
+
restApiAdapter: IRestApiAdapter;
|
|
188
|
+
/** SOQL query adapter for record age queries */
|
|
189
|
+
soqlAdapter: ISoqlQueryAdapter;
|
|
190
|
+
/** Optional RecordTypeService for enriching record type information */
|
|
191
|
+
recordTypeService?: RecordTypeService;
|
|
192
|
+
/** Optional ProfilingDefinitionService for enriching profiling status */
|
|
193
|
+
profilingDefinitionService?: ProfilingDefinitionService;
|
|
194
|
+
/** Optional ProfilingSummaryService for enriching summary information */
|
|
195
|
+
profilingSummaryService?: ProfilingSummaryService;
|
|
196
|
+
/** Optional logger for debug output */
|
|
197
|
+
logger?: Console;
|
|
198
|
+
/** Optional REST client for server-side describe via ISV REST API */
|
|
199
|
+
restClient?: import('../adapters/rest/profiling-rest-client.js').ProfilingRestClient;
|
|
200
|
+
};
|
|
201
|
+
/**
|
|
202
|
+
* Service for retrieving comprehensive object metadata with field analysis and profiling status.
|
|
203
|
+
*
|
|
204
|
+
* This service combines REST API describe results with optional enrichment from:
|
|
205
|
+
* - RecordTypeService: Record type information
|
|
206
|
+
* - ProfilingDefinitionService: Existing profiling definitions
|
|
207
|
+
* - ProfilingSummaryService: Profiling summary statistics
|
|
208
|
+
*
|
|
209
|
+
* Object Rejection Rules:
|
|
210
|
+
* - Big Objects (__b suffix) are rejected with E4805
|
|
211
|
+
* - External Objects (__x suffix) are rejected with E4806
|
|
212
|
+
*
|
|
213
|
+
* @example
|
|
214
|
+
* ```typescript
|
|
215
|
+
* const service = new ObjectDescribeService({
|
|
216
|
+
* restApiAdapter,
|
|
217
|
+
* soqlAdapter,
|
|
218
|
+
* recordTypeService,
|
|
219
|
+
* profilingDefinitionService,
|
|
220
|
+
* profilingSummaryService,
|
|
221
|
+
* });
|
|
222
|
+
*
|
|
223
|
+
* const result = await service.describeObject('Account');
|
|
224
|
+
* if (result.success) {
|
|
225
|
+
* console.log(`${result.data.objectName}: ${result.data.fieldClassification.totalFields} fields`);
|
|
226
|
+
* }
|
|
227
|
+
* ```
|
|
228
|
+
*/
|
|
229
|
+
export declare class ObjectDescribeService {
|
|
230
|
+
/** Lookup table for field type to display category mapping */
|
|
231
|
+
private static readonly FIELD_TYPE_MAP;
|
|
232
|
+
private readonly restApiAdapter;
|
|
233
|
+
private readonly soqlAdapter;
|
|
234
|
+
private readonly recordTypeService?;
|
|
235
|
+
private readonly profilingDefinitionService?;
|
|
236
|
+
private readonly profilingSummaryService?;
|
|
237
|
+
private readonly logger?;
|
|
238
|
+
private readonly restClient?;
|
|
239
|
+
constructor(config: IObjectDescribeServiceConfig);
|
|
240
|
+
/**
|
|
241
|
+
* Calculates field type distribution from an array of fields.
|
|
242
|
+
*
|
|
243
|
+
* @param fields - Array of DescribeFieldResult from object describe
|
|
244
|
+
* @returns ServiceResult containing array of FieldTypeCount sorted by count descending
|
|
245
|
+
*/
|
|
246
|
+
static getFieldTypeDistribution(fields: DescribeFieldResult[]): ServiceResult<FieldTypeCount[]>;
|
|
247
|
+
/**
|
|
248
|
+
* Calculates namespace breakdown from an array of fields.
|
|
249
|
+
*
|
|
250
|
+
* @param fields - Array of DescribeFieldResult from object describe
|
|
251
|
+
* @returns ServiceResult containing array of NamespaceCount sorted by fieldCount descending
|
|
252
|
+
*/
|
|
253
|
+
static getNamespaceBreakdown(fields: DescribeFieldResult[]): ServiceResult<NamespaceCount[]>;
|
|
254
|
+
/**
|
|
255
|
+
* Extracts external references from childRelationships array.
|
|
256
|
+
*
|
|
257
|
+
* External references represent objects that have lookup/master-detail
|
|
258
|
+
* relationships pointing TO this object.
|
|
259
|
+
*
|
|
260
|
+
* @param describeResult - The describe result containing childRelationships
|
|
261
|
+
* @returns Array of external references sorted alphabetically by object name
|
|
262
|
+
*/
|
|
263
|
+
static extractExternalReferences(describeResult: DescribeSObjectResult): ExternalReference[];
|
|
264
|
+
/**
|
|
265
|
+
* Extracts lookup fields from fields array with their target objects.
|
|
266
|
+
*
|
|
267
|
+
* @param fields - Array of field describe results
|
|
268
|
+
* @returns Array of lookup field info sorted alphabetically by field name
|
|
269
|
+
*/
|
|
270
|
+
static extractLookupFields(fields: DescribeFieldResult[]): LookupFieldInfo[];
|
|
271
|
+
/**
|
|
272
|
+
* Detects if PersonAccount is enabled for the Account object.
|
|
273
|
+
*
|
|
274
|
+
* PersonAccount is detected by checking for the presence of the IsPersonAccount field,
|
|
275
|
+
* which only exists when PersonAccount is enabled in the org.
|
|
276
|
+
*
|
|
277
|
+
* @param objectName - The object being described
|
|
278
|
+
* @param fields - The fields from the describe result
|
|
279
|
+
* @returns true if PersonAccount is enabled (only for Account object), undefined otherwise
|
|
280
|
+
*/
|
|
281
|
+
static detectPersonAccount(objectName: string, fields: DescribeFieldResult[]): boolean | undefined;
|
|
282
|
+
/**
|
|
283
|
+
* Builds a relationship summary from describe result.
|
|
284
|
+
*
|
|
285
|
+
* @param describeResult - The describe result
|
|
286
|
+
* @returns RelationshipSummary with external references and lookup fields
|
|
287
|
+
*/
|
|
288
|
+
static buildRelationshipSummary(describeResult: DescribeSObjectResult): RelationshipSummary;
|
|
289
|
+
/** Builds RelationshipSummary from server childRelationships + fields. */
|
|
290
|
+
private static mapServerRelationships;
|
|
291
|
+
/** Maps server profilingStatus block to CLI ProfilingStatus. */
|
|
292
|
+
private static mapServerProfilingStatus;
|
|
293
|
+
/** Maps server recordTypeInfos to CLI RecordTypeInfo[], filtering out Master. */
|
|
294
|
+
private static mapServerRecordTypes;
|
|
295
|
+
/**
|
|
296
|
+
* Maps a Salesforce field type to a display category.
|
|
297
|
+
*
|
|
298
|
+
* @param field - The field describe result
|
|
299
|
+
* @returns Display category string
|
|
300
|
+
*/
|
|
301
|
+
private static mapFieldToDisplayType;
|
|
302
|
+
/**
|
|
303
|
+
* Extracts the namespace from a field API name.
|
|
304
|
+
*
|
|
305
|
+
* @param fieldName - The field API name (e.g., 'Name', 'Custom__c', 'pnova__Field__c')
|
|
306
|
+
* @returns The namespace (e.g., 'pnova') or null for standard/unmanaged fields
|
|
307
|
+
*/
|
|
308
|
+
private static extractNamespace;
|
|
309
|
+
/**
|
|
310
|
+
* Checks if the object is a Big Object (ends with __b).
|
|
311
|
+
*
|
|
312
|
+
* @param objectName - The object API name
|
|
313
|
+
* @returns true if it's a Big Object
|
|
314
|
+
*/
|
|
315
|
+
private static isBigObject;
|
|
316
|
+
/**
|
|
317
|
+
* Checks if the object is an External Object (ends with __x).
|
|
318
|
+
*
|
|
319
|
+
* @param objectName - The object API name
|
|
320
|
+
* @returns true if it's an External Object
|
|
321
|
+
*/
|
|
322
|
+
private static isExternalObject;
|
|
323
|
+
/**
|
|
324
|
+
* Classifies fields from a describe result.
|
|
325
|
+
*
|
|
326
|
+
* @param fields - Array of field describe results
|
|
327
|
+
* @returns Field classification statistics
|
|
328
|
+
*/
|
|
329
|
+
private static classifyFields;
|
|
330
|
+
/**
|
|
331
|
+
* Maps a DescribeSObjectResult to our ObjectDescribeResult base structure.
|
|
332
|
+
*
|
|
333
|
+
* @param describeResult - The raw describe result from REST API
|
|
334
|
+
* @returns ObjectDescribeResult without enrichment
|
|
335
|
+
*/
|
|
336
|
+
private static mapToObjectDescribeResult;
|
|
337
|
+
/**
|
|
338
|
+
* Creates an empty result for failure cases.
|
|
339
|
+
*
|
|
340
|
+
* @param objectName - The object name for the empty result
|
|
341
|
+
* @returns Empty ObjectDescribeResult
|
|
342
|
+
*/
|
|
343
|
+
private static createEmptyResult;
|
|
344
|
+
/**
|
|
345
|
+
* Extracts a meaningful message from an unknown error.
|
|
346
|
+
*
|
|
347
|
+
* Handles the edge case where Error instances have an empty message
|
|
348
|
+
* but a meaningful name property (e.g., sinon's rejects behavior).
|
|
349
|
+
*
|
|
350
|
+
* @param error - The error to extract a message from
|
|
351
|
+
* @returns A human-readable error message
|
|
352
|
+
*/
|
|
353
|
+
private static getErrorMessage;
|
|
354
|
+
/**
|
|
355
|
+
* Applies RecordTypeId filter to a query builder.
|
|
356
|
+
* Single string uses `=`, array uses `IN`.
|
|
357
|
+
* The builder auto-promotes to first WHERE if no prior condition exists.
|
|
358
|
+
*
|
|
359
|
+
* @param builder - The query builder to modify
|
|
360
|
+
* @param recordTypeIds - Single ID, array of IDs, or undefined (no filter)
|
|
361
|
+
*/
|
|
362
|
+
private static applyRecordTypeFilter;
|
|
363
|
+
/**
|
|
364
|
+
* Describes a Salesforce object with comprehensive metadata and optional enrichment.
|
|
365
|
+
*
|
|
366
|
+
* This method:
|
|
367
|
+
* 1. Validates the object name
|
|
368
|
+
* 2. Rejects Big Objects (__b) and External Objects (__x)
|
|
369
|
+
* 3. Retrieves describe metadata via REST API
|
|
370
|
+
* 4. Classifies fields (custom, formula, lookup, required, picklist)
|
|
371
|
+
* 5. Enriches with record types, record age, and profiling status (in parallel)
|
|
372
|
+
*
|
|
373
|
+
* @param objectName - The Salesforce object API name (e.g., 'Account', 'Custom_Object__c')
|
|
374
|
+
* @returns ServiceResult containing the ObjectDescribeResult
|
|
375
|
+
*/
|
|
376
|
+
describeObject(objectName: string): Promise<ServiceResult<ObjectDescribeResult>>;
|
|
377
|
+
/**
|
|
378
|
+
* Describes multiple Salesforce objects in parallel.
|
|
379
|
+
*
|
|
380
|
+
* @param objectNames - Array of Salesforce object API names to describe
|
|
381
|
+
* @returns ServiceResult containing array of ObjectDescribeResult (one per successful describe)
|
|
382
|
+
*/
|
|
383
|
+
describeMultiple(objectNames: string[]): Promise<ServiceResult<ObjectDescribeResult[]>>;
|
|
384
|
+
/**
|
|
385
|
+
* Retrieves record age distribution for an object showing year-by-year record existence.
|
|
386
|
+
*
|
|
387
|
+
* @param objectName - The Salesforce object API name
|
|
388
|
+
* @param recordTypeIds - Optional RecordTypeId(s) to filter. Single string uses `=`, array uses `IN`.
|
|
389
|
+
* @returns ServiceResult containing RecordAgeDistribution with year-by-year status
|
|
390
|
+
*/
|
|
391
|
+
getRecordAgeDistribution(objectName: string, recordTypeIds?: string | string[]): Promise<ServiceResult<RecordAgeDistribution>>;
|
|
392
|
+
/**
|
|
393
|
+
* Retrieves business processes for a specific object with their record type IDs.
|
|
394
|
+
*
|
|
395
|
+
* Only Opportunity, Case, and Lead support business processes. For other objects,
|
|
396
|
+
* returns an empty array without issuing any queries.
|
|
397
|
+
*
|
|
398
|
+
* @param objectName - The Salesforce object API name
|
|
399
|
+
* @param recordTypes - Record types already enriched (used to cross-reference BusinessProcessId)
|
|
400
|
+
* @returns ServiceResult containing array of ObjectBusinessProcessInfo
|
|
401
|
+
*/
|
|
402
|
+
getBusinessProcesses(objectName: string, recordTypes: RecordTypeInfo[]): Promise<ServiceResult<ObjectBusinessProcessInfo[]>>;
|
|
403
|
+
/**
|
|
404
|
+
* Delegates object describe to the ISV REST API.
|
|
405
|
+
*
|
|
406
|
+
* @param objectName - The Salesforce object API name to describe
|
|
407
|
+
* @param startTime - Timestamp for duration tracking
|
|
408
|
+
* @returns ServiceResult containing ObjectDescribeResult from REST endpoint
|
|
409
|
+
*/
|
|
410
|
+
private describeObjectViaRest;
|
|
411
|
+
/**
|
|
412
|
+
* Falls back to standard REST describe for fields when ISV REST API
|
|
413
|
+
* returns field counts but omits the individual field array.
|
|
414
|
+
*
|
|
415
|
+
* @returns The field array to use (original or fallback)
|
|
416
|
+
*/
|
|
417
|
+
private resolveFieldFallback;
|
|
418
|
+
/**
|
|
419
|
+
* Enriches record type information using RecordTypeService.
|
|
420
|
+
* Errors are propagated to the caller for centralized handling.
|
|
421
|
+
*
|
|
422
|
+
* @param objectName - The object API name
|
|
423
|
+
* @returns Array of RecordTypeInfo or undefined if not configured or query fails gracefully
|
|
424
|
+
* @throws Error if service call throws
|
|
425
|
+
*/
|
|
426
|
+
private enrichRecordTypes;
|
|
427
|
+
/**
|
|
428
|
+
* Enriches profiling status using ProfilingDefinitionService and ProfilingSummaryService.
|
|
429
|
+
* Errors are propagated to the caller for centralized handling.
|
|
430
|
+
*
|
|
431
|
+
* @param objectName - The object API name
|
|
432
|
+
* @returns ProfilingStatus or undefined if not configured or query fails gracefully
|
|
433
|
+
* @throws Error if service call throws
|
|
434
|
+
*/
|
|
435
|
+
private enrichProfilingStatus;
|
|
436
|
+
}
|