@peernova/cuneiform-sf 1.0.3-beta.0 → 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 +11 -2
- package/lib/commands/cuneiform/definition/export.js +56 -20
- package/lib/commands/cuneiform/definition/export.js.map +1 -1
- 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 +12 -7
- package/lib/commands/cuneiform/definition/import.js +30 -19
- package/lib/commands/cuneiform/definition/import.js.map +1 -1
- 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 +4 -25
- package/lib/models/sfdmu-types.js +7 -3
- package/lib/models/sfdmu-types.js.map +1 -1
- 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 +65 -2
- package/lib/operations/DefinitionExportOperation.js +94 -10
- package/lib/operations/DefinitionExportOperation.js.map +1 -1
- package/lib/operations/DefinitionImportOperation.d.ts +61 -11
- package/lib/operations/DefinitionImportOperation.js +194 -31
- package/lib/operations/DefinitionImportOperation.js.map +1 -1
- 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 +17 -3
- package/lib/services/SFDMUService.js +49 -16
- package/lib/services/SFDMUService.js.map +1 -1
- 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 +56 -13
- package/messages/definition.get.md +147 -0
- package/messages/definition.import.md +35 -18
- 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 +1954 -4859
- package/oclif.manifest.json +2697 -82
- package/package.json +89 -18
- 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
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Copyright (c) 2026, PeerNova Inc. All
|
|
3
|
-
*
|
|
4
|
-
*
|
|
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.
|
|
5
7
|
*/
|
|
6
8
|
import * as fs from 'node:fs';
|
|
7
9
|
import * as os from 'node:os';
|
|
@@ -9,15 +11,18 @@ import * as path from 'node:path';
|
|
|
9
11
|
import { SfError } from '@salesforce/core';
|
|
10
12
|
/**
|
|
11
13
|
* Error codes specific to import operations.
|
|
14
|
+
*
|
|
15
|
+
* These codes are returned in ServiceResult.errorCode when import fails.
|
|
16
|
+
* User action: Check the corresponding message for resolution steps.
|
|
12
17
|
*/
|
|
13
18
|
export const ImportErrorCodes = {
|
|
14
|
-
/** Source directory does not exist */
|
|
19
|
+
/** Source directory does not exist. User should verify the --source path. */
|
|
15
20
|
SOURCE_NOT_FOUND: 'IMPORT_SOURCE_NOT_FOUND',
|
|
16
|
-
/** Source directory is missing
|
|
21
|
+
/** Source directory is missing pnova__Profiling_Definition__c.csv. User should verify export was successful. */
|
|
17
22
|
INVALID_SOURCE: 'IMPORT_INVALID_SOURCE',
|
|
18
|
-
/** Failed to write config
|
|
23
|
+
/** Failed to write temporary export.json config. Check disk space and permissions. */
|
|
19
24
|
CONFIG_WRITE_FAILED: 'IMPORT_CONFIG_WRITE_FAILED',
|
|
20
|
-
/**
|
|
25
|
+
/** SFDMU import operation failed. Check SFDMU output for details. */
|
|
21
26
|
IMPORT_FAILED: 'IMPORT_FAILED',
|
|
22
27
|
};
|
|
23
28
|
/**
|
|
@@ -34,15 +39,31 @@ export const ImportErrorCodes = {
|
|
|
34
39
|
* targetOrg: 'myOrg',
|
|
35
40
|
* sourceDir: './backup/definitions',
|
|
36
41
|
* operation: 'Upsert',
|
|
37
|
-
*
|
|
42
|
+
* simulation: true
|
|
38
43
|
* });
|
|
39
44
|
* ```
|
|
40
45
|
*/
|
|
41
46
|
export class DefinitionImportOperation {
|
|
42
|
-
/**
|
|
43
|
-
|
|
47
|
+
/**
|
|
48
|
+
* SFDMU query for profiling definitions (used in config generation).
|
|
49
|
+
* Includes formula fields (PropFx_*) for CSV compatibility with export - these are
|
|
50
|
+
* read-only and will be ignored by Salesforce during import (computed automatically).
|
|
51
|
+
*
|
|
52
|
+
* CLI-3039: Removed pnova__Aud_VersionDCBase__c and pnova__Prop_LicenseViolations__c
|
|
53
|
+
* — both are absent from packaging/v4.12.0 and SFDMU was logging "Missing in the
|
|
54
|
+
* Target and will be excluded from the migration" warnings on every import.
|
|
55
|
+
*/
|
|
56
|
+
static DEFINITION_QUERY = 'SELECT Id, Name, RecordTypeId, pnova__Agg_Status__c, pnova__Agg_StatusStatistical__c, pnova__Aud_VersionCRMBase__c, pnova__Aud_VersionCRMEnterprise__c, pnova__Prop_IsProfilingAllFieldsEnabled__c, pnova__Prop_Category__c, pnova__Prop_Description__c, pnova__Prop_Filter_JSON_SetA__c, pnova__Prop_Filter_JSON_SetB__c, pnova__Prop_Filter_SetA__c, pnova__Prop_Filter_SetB__c, pnova__Prop_InsightGroups_JSON__c, pnova__Prop_IsActive__c, pnova__Prop_IsFiltered_SetA__c, pnova__Prop_IsFiltered_SetB__c, pnova__Prop_IsNotificationEnabled__c, pnova__Prop_IsProfilingLaunchedFromWizard__c, pnova__Prop_KpiBusinessImpact__c, pnova__Prop_KpiBusinessImpact_JSON__c, pnova__Prop_KpiDataQuality__c, pnova__Prop_KpiDataQuality_JSON__c, pnova__Prop_AreKpisDefined__c, pnova__Prop_Name__c, pnova__Prop_SelectedFields__c, pnova__Prop_SelectedFields_JSON__c, pnova__Prop_SelectedFieldsCount__c, pnova__Prop_SObjectApiName__c, pnova__Prop_SObjectFullApiName__c, pnova__Prop_SObjectLabel__c, pnova__Prop_SObjectRecordTypeId__c, pnova__Prop_SObjectRecordTypeLabel__c, pnova__PropFx_IsMetadataProfilingOnly__c, pnova__PropFx_IsProfilingAllRecords__c FROM pnova__Profiling_Definition__c';
|
|
44
57
|
/** Expected CSV file name */
|
|
45
58
|
static DEFINITION_CSV = 'pnova__Profiling_Definition__c.csv';
|
|
59
|
+
/**
|
|
60
|
+
* Columns stripped from the definition CSV before SFDMU import.
|
|
61
|
+
* These carry source-org profiling history and must start fresh in the target.
|
|
62
|
+
*/
|
|
63
|
+
static IMPORT_CLEAR_COLUMNS = [
|
|
64
|
+
'pnova__Agg_Status__c',
|
|
65
|
+
'pnova__Agg_StatusStatistical__c',
|
|
66
|
+
];
|
|
46
67
|
sfdmuService;
|
|
47
68
|
logger;
|
|
48
69
|
/**
|
|
@@ -58,14 +79,25 @@ export class DefinitionImportOperation {
|
|
|
58
79
|
/**
|
|
59
80
|
* Builds the SFDMU import configuration.
|
|
60
81
|
*
|
|
82
|
+
* Creates an export.json config structure for SFDMU import operations.
|
|
83
|
+
* Note: SFDMU always reads 'export.json' regardless of operation direction.
|
|
84
|
+
*
|
|
85
|
+
* RecordType is declared first as a Readonly reference object so that SFDMU can
|
|
86
|
+
* resolve the RecordType.$$DeveloperName$NamespacePrefix$SobjectType lookup column
|
|
87
|
+
* from the RecordType.csv sidecar file. Without this entry, SFDMU finds the sidecar
|
|
88
|
+
* but does not include RecordType in its import plan, leaving RecordTypeId as #N/A
|
|
89
|
+
* and causing Salesforce to reject the insert.
|
|
90
|
+
*
|
|
61
91
|
* @param operation - The import operation type (Insert or Upsert)
|
|
62
|
-
* @returns
|
|
92
|
+
* @returns Config object with promptOnMissingParentObjects=false and objects array
|
|
63
93
|
*/
|
|
64
94
|
static buildSFDMUConfig(operation) {
|
|
65
95
|
return {
|
|
66
96
|
promptOnMissingParentObjects: false,
|
|
67
97
|
objects: [
|
|
68
98
|
{
|
|
99
|
+
// RecordTypeId is expected to be present directly in the source CSV (as exported by
|
|
100
|
+
// sf cuneiform definition export). SFDMU uses it as-is — no composite key lookup.
|
|
69
101
|
query: DefinitionImportOperation.DEFINITION_QUERY,
|
|
70
102
|
operation,
|
|
71
103
|
externalId: 'Name',
|
|
@@ -73,6 +105,105 @@ export class DefinitionImportOperation {
|
|
|
73
105
|
],
|
|
74
106
|
};
|
|
75
107
|
}
|
|
108
|
+
/**
|
|
109
|
+
* Counts data rows in the source definition CSV.
|
|
110
|
+
*
|
|
111
|
+
* SFDMU import also processes the RecordType.csv sidecar used for lookup resolution,
|
|
112
|
+
* so its "Processed N records" log lines cover multiple objects. Reading the source CSV
|
|
113
|
+
* directly gives the exact definition count (CLI-3140).
|
|
114
|
+
*
|
|
115
|
+
* Returns 0 if the file is absent or unreadable.
|
|
116
|
+
*/
|
|
117
|
+
static countCsvDataRows(csvPath) {
|
|
118
|
+
try {
|
|
119
|
+
const content = fs.readFileSync(csvPath, 'utf-8');
|
|
120
|
+
return content.split('\n').filter((line, index) => index > 0 && line.trim().length > 0).length;
|
|
121
|
+
}
|
|
122
|
+
catch {
|
|
123
|
+
return 0;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Parses a single CSV line into fields, handling RFC-4180 quoting and a leading UTF-8 BOM
|
|
128
|
+
* on the first field of the first line (written by SFDMU).
|
|
129
|
+
*/
|
|
130
|
+
static parseCSVLine(line) {
|
|
131
|
+
const fields = [];
|
|
132
|
+
let current = '';
|
|
133
|
+
let inQuotes = false;
|
|
134
|
+
let i = 0;
|
|
135
|
+
// Strip BOM from the very first character if present
|
|
136
|
+
if (line.startsWith('')) {
|
|
137
|
+
i = 1;
|
|
138
|
+
}
|
|
139
|
+
while (i < line.length) {
|
|
140
|
+
const ch = line[i];
|
|
141
|
+
if (inQuotes) {
|
|
142
|
+
if (ch === '"') {
|
|
143
|
+
if (line[i + 1] === '"') {
|
|
144
|
+
current += '"';
|
|
145
|
+
i += 2;
|
|
146
|
+
}
|
|
147
|
+
else {
|
|
148
|
+
inQuotes = false;
|
|
149
|
+
i++;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
else {
|
|
153
|
+
current += ch;
|
|
154
|
+
i++;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
else if (ch === '"') {
|
|
158
|
+
inQuotes = true;
|
|
159
|
+
i++;
|
|
160
|
+
}
|
|
161
|
+
else if (ch === ',') {
|
|
162
|
+
fields.push(current);
|
|
163
|
+
current = '';
|
|
164
|
+
i++;
|
|
165
|
+
}
|
|
166
|
+
else {
|
|
167
|
+
current += ch;
|
|
168
|
+
i++;
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
fields.push(current);
|
|
172
|
+
return fields;
|
|
173
|
+
}
|
|
174
|
+
/** Serializes fields back to a CSV line, quoting every field for safety. */
|
|
175
|
+
static serializeCSVLine(fields) {
|
|
176
|
+
return fields.map((f) => `"${f.replace(/"/g, '""')}"`).join(',');
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Removes the specified columns from CSV content (header + corresponding value in every row).
|
|
180
|
+
* Preserves the original line endings. Returns the original content unchanged if no matching
|
|
181
|
+
* columns are found.
|
|
182
|
+
*/
|
|
183
|
+
static stripColumns(csvContent, columnsToStrip) {
|
|
184
|
+
const normalized = csvContent.replace(/\r\n/g, '\n').replace(/\r/g, '\n');
|
|
185
|
+
const lines = normalized.split('\n');
|
|
186
|
+
if (lines.length === 0)
|
|
187
|
+
return csvContent;
|
|
188
|
+
const headerFields = DefinitionImportOperation.parseCSVLine(lines[0]);
|
|
189
|
+
const stripSet = new Set(columnsToStrip);
|
|
190
|
+
const keepIndices = headerFields.map((_, idx) => idx).filter((idx) => !stripSet.has(headerFields[idx]));
|
|
191
|
+
if (keepIndices.length === headerFields.length) {
|
|
192
|
+
return csvContent;
|
|
193
|
+
}
|
|
194
|
+
const resultLines = [];
|
|
195
|
+
for (let i = 0; i < lines.length; i++) {
|
|
196
|
+
const line = lines[i];
|
|
197
|
+
if (i === 0 || line.trim().length > 0) {
|
|
198
|
+
const rowFields = DefinitionImportOperation.parseCSVLine(line);
|
|
199
|
+
resultLines.push(DefinitionImportOperation.serializeCSVLine(keepIndices.map((idx) => rowFields[idx] ?? '')));
|
|
200
|
+
}
|
|
201
|
+
else {
|
|
202
|
+
resultLines.push('');
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
return resultLines.join('\n');
|
|
206
|
+
}
|
|
76
207
|
/**
|
|
77
208
|
* Executes the import operation.
|
|
78
209
|
*
|
|
@@ -90,7 +221,7 @@ export class DefinitionImportOperation {
|
|
|
90
221
|
data: {
|
|
91
222
|
definitionsImported: 0,
|
|
92
223
|
sourceDir,
|
|
93
|
-
|
|
224
|
+
simulation: options.simulation ?? false,
|
|
94
225
|
},
|
|
95
226
|
errorCode: ImportErrorCodes.SOURCE_NOT_FOUND,
|
|
96
227
|
message: `Source directory does not exist: ${sourceDir}`,
|
|
@@ -104,12 +235,33 @@ export class DefinitionImportOperation {
|
|
|
104
235
|
data: {
|
|
105
236
|
definitionsImported: 0,
|
|
106
237
|
sourceDir,
|
|
107
|
-
|
|
238
|
+
simulation: options.simulation ?? false,
|
|
108
239
|
},
|
|
109
240
|
errorCode: ImportErrorCodes.INVALID_SOURCE,
|
|
110
241
|
message: `Source directory is missing required file: ${DefinitionImportOperation.DEFINITION_CSV}`,
|
|
111
242
|
};
|
|
112
243
|
}
|
|
244
|
+
// Simulation mode: validate CSV structure and count data rows without calling SFDMU.
|
|
245
|
+
// SFDMU does not support a --simulation flag, so simulation is handled here at the
|
|
246
|
+
// operation layer. This validates the source directory, counts importable rows, and
|
|
247
|
+
// returns a preview result without modifying any org data.
|
|
248
|
+
if (options.simulation) {
|
|
249
|
+
const csvContent = fs.readFileSync(csvPath, 'utf-8');
|
|
250
|
+
// Count data rows (exclude header line and empty trailing lines)
|
|
251
|
+
const dataRows = csvContent.split('\n').filter((line, index) => index > 0 && line.trim().length > 0);
|
|
252
|
+
return {
|
|
253
|
+
success: true,
|
|
254
|
+
data: {
|
|
255
|
+
definitionsImported: dataRows.length,
|
|
256
|
+
sourceDir,
|
|
257
|
+
simulation: true,
|
|
258
|
+
},
|
|
259
|
+
message: `Simulation completed — ${dataRows.length} definitions would be imported to ${options.targetOrg}`,
|
|
260
|
+
metadata: {
|
|
261
|
+
duration: Date.now() - startTime,
|
|
262
|
+
},
|
|
263
|
+
};
|
|
264
|
+
}
|
|
113
265
|
// Create temp directory for SFDMU import
|
|
114
266
|
// SFDMU always reads from 'export.json', so we use a temp dir to avoid
|
|
115
267
|
// mutating the user's source directory (which may contain their export config)
|
|
@@ -126,21 +278,27 @@ export class DefinitionImportOperation {
|
|
|
126
278
|
this.logger?.log(`Copied CSV to: ${destPath}`);
|
|
127
279
|
}
|
|
128
280
|
}
|
|
281
|
+
// Strip runtime-state columns on Insert only — Upsert preserves existing data so
|
|
282
|
+
// the status values in the CSV are intentional (the caller owns them).
|
|
283
|
+
// On Insert the target starts fresh, so source-org profiling history must not be written in.
|
|
284
|
+
const effectiveOperation = options.operation ?? 'Insert';
|
|
285
|
+
const defCsvPath = path.join(tempDir, DefinitionImportOperation.DEFINITION_CSV);
|
|
286
|
+
if (effectiveOperation === 'Insert' && fs.existsSync(defCsvPath)) {
|
|
287
|
+
const stripped = DefinitionImportOperation.stripColumns(fs.readFileSync(defCsvPath, 'utf-8'), DefinitionImportOperation.IMPORT_CLEAR_COLUMNS);
|
|
288
|
+
fs.writeFileSync(defCsvPath, stripped, 'utf-8');
|
|
289
|
+
}
|
|
129
290
|
// Generate import configuration in temp directory
|
|
130
291
|
// Note: SFDMU always reads 'export.json' from the config path, regardless of operation type
|
|
131
|
-
const config = DefinitionImportOperation.buildSFDMUConfig(
|
|
292
|
+
const config = DefinitionImportOperation.buildSFDMUConfig(effectiveOperation);
|
|
132
293
|
const configPath = path.join(tempDir, 'export.json');
|
|
133
294
|
fs.writeFileSync(configPath, JSON.stringify(config, null, 2));
|
|
134
295
|
this.logger?.log(`Wrote SFDMU config to: ${configPath}`);
|
|
135
|
-
// Build SFDMU options pointing to temp directory
|
|
296
|
+
// Build SFDMU options pointing to temp directory (simulation not passed — handled above)
|
|
136
297
|
const sfdmuOptions = {
|
|
137
298
|
targetOrg: options.targetOrg,
|
|
138
299
|
configPath: tempDir,
|
|
139
300
|
};
|
|
140
301
|
// Execute SFDMU import
|
|
141
|
-
// Note: For dry-run, we'd ideally use SFDMU's --simulation flag
|
|
142
|
-
// but that requires SFDMU version support check. For now, we execute
|
|
143
|
-
// the actual import. The dryRun flag is preserved for future enhancement.
|
|
144
302
|
const sfdmuResult = await this.sfdmuService.runImport(sfdmuOptions);
|
|
145
303
|
if (!sfdmuResult.success) {
|
|
146
304
|
return {
|
|
@@ -148,7 +306,7 @@ export class DefinitionImportOperation {
|
|
|
148
306
|
data: {
|
|
149
307
|
definitionsImported: 0,
|
|
150
308
|
sourceDir,
|
|
151
|
-
|
|
309
|
+
simulation: options.simulation ?? false,
|
|
152
310
|
sfdmuOutput: sfdmuResult.data.stderr,
|
|
153
311
|
},
|
|
154
312
|
errorCode: sfdmuResult.errorCode ?? ImportErrorCodes.IMPORT_FAILED,
|
|
@@ -158,15 +316,18 @@ export class DefinitionImportOperation {
|
|
|
158
316
|
},
|
|
159
317
|
};
|
|
160
318
|
}
|
|
319
|
+
// Count definitions from source CSV — more reliable than parsing SFDMU output
|
|
320
|
+
// which also counts RecordType records processed for lookup resolution (CLI-3140).
|
|
321
|
+
const definitionsImported = DefinitionImportOperation.countCsvDataRows(csvPath);
|
|
161
322
|
return {
|
|
162
323
|
success: true,
|
|
163
324
|
data: {
|
|
164
|
-
definitionsImported
|
|
325
|
+
definitionsImported,
|
|
165
326
|
sourceDir,
|
|
166
|
-
|
|
327
|
+
simulation: options.simulation ?? false,
|
|
167
328
|
sfdmuOutput: sfdmuResult.data.stdout,
|
|
168
329
|
},
|
|
169
|
-
message: `Successfully imported ${
|
|
330
|
+
message: `Successfully imported ${definitionsImported} definitions into ${options.targetOrg}`,
|
|
170
331
|
warnings: sfdmuResult.warnings,
|
|
171
332
|
metadata: {
|
|
172
333
|
duration: Date.now() - startTime,
|
|
@@ -174,15 +335,7 @@ export class DefinitionImportOperation {
|
|
|
174
335
|
};
|
|
175
336
|
}
|
|
176
337
|
finally {
|
|
177
|
-
|
|
178
|
-
try {
|
|
179
|
-
fs.rmSync(tempDir, { recursive: true, force: true });
|
|
180
|
-
this.logger?.log(`Cleaned up temp directory: ${tempDir}`);
|
|
181
|
-
}
|
|
182
|
-
catch {
|
|
183
|
-
// Ignore cleanup errors - temp dir will be cleaned up by OS eventually
|
|
184
|
-
this.logger?.log(`Warning: Failed to clean up temp directory: ${tempDir}`);
|
|
185
|
-
}
|
|
338
|
+
this.cleanupTempDir(tempDir);
|
|
186
339
|
}
|
|
187
340
|
}
|
|
188
341
|
catch (error) {
|
|
@@ -190,5 +343,15 @@ export class DefinitionImportOperation {
|
|
|
190
343
|
throw new SfError(`Import operation failed: ${errorMessage}`, 'ImportOperationError');
|
|
191
344
|
}
|
|
192
345
|
}
|
|
346
|
+
/** Remove the temp directory, logging on failure instead of throwing (to avoid shadowing real errors in finally blocks). */
|
|
347
|
+
cleanupTempDir(tempDir) {
|
|
348
|
+
try {
|
|
349
|
+
fs.rmSync(tempDir, { recursive: true, force: true });
|
|
350
|
+
}
|
|
351
|
+
catch (cleanupError) {
|
|
352
|
+
/* c8 ignore next 5 -- rmSync with force:true rarely throws; ESM modules cannot be stubbed to simulate it */
|
|
353
|
+
this.logger?.log(`Warning: failed to clean up temp directory ${tempDir}: ${cleanupError instanceof Error ? cleanupError.message : String(cleanupError)}`);
|
|
354
|
+
}
|
|
355
|
+
}
|
|
193
356
|
}
|
|
194
357
|
//# sourceMappingURL=DefinitionImportOperation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DefinitionImportOperation.js","sourceRoot":"","sources":["../../src/operations/DefinitionImportOperation.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"DefinitionImportOperation.js","sourceRoot":"","sources":["../../src/operations/DefinitionImportOperation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import type { ServiceResult } from '../models/service-result.js';
|
|
2
|
+
import type { ProfilingDefinitionService, DefinitionListFilter, DefinitionListPagination, DefinitionListSort, DefinitionListResult } from '../services/ProfilingDefinitionService.js';
|
|
3
|
+
/**
|
|
4
|
+
* Options for the definition list operation.
|
|
5
|
+
*
|
|
6
|
+
* Maps directly to the DefinitionListOptions accepted by ProfilingDefinitionService.listDefinitions().
|
|
7
|
+
* The operation acts as a thin orchestration layer between command flags and the service.
|
|
8
|
+
*/
|
|
9
|
+
export type ListOptions = {
|
|
10
|
+
/** Filter criteria for narrowing the definition list */
|
|
11
|
+
filter?: DefinitionListFilter;
|
|
12
|
+
/** Pagination parameters (limit, offset) */
|
|
13
|
+
pagination?: DefinitionListPagination;
|
|
14
|
+
/** Sort specification (field, direction) */
|
|
15
|
+
sort?: DefinitionListSort;
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* Error codes specific to list operations.
|
|
19
|
+
*/
|
|
20
|
+
export declare const ListErrorCodes: {
|
|
21
|
+
/** Service query failed (non-exception failure) */
|
|
22
|
+
readonly LIST_FAILED: "LIST_FAILED";
|
|
23
|
+
/** Operation failed unexpectedly (exception) */
|
|
24
|
+
readonly OPERATION_FAILED: "LIST_OPERATION_FAILED";
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* Orchestrates listing of profiling definitions.
|
|
28
|
+
*
|
|
29
|
+
* Follows the 4-layer architecture: Command -> Operation -> Service -> API
|
|
30
|
+
* This operation layer handles:
|
|
31
|
+
* 1. Accepts parsed command flags as ListOptions
|
|
32
|
+
* 2. Delegates to ProfilingDefinitionService.listDefinitions()
|
|
33
|
+
* 3. Returns ServiceResult<DefinitionListResult> with timing metadata
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* ```typescript
|
|
37
|
+
* const operation = new DefinitionListOperation(definitionService);
|
|
38
|
+
* const result = await operation.execute({
|
|
39
|
+
* filter: { status: 'active', objects: ['Account'] },
|
|
40
|
+
* pagination: { limit: 10, offset: 0 },
|
|
41
|
+
* sort: { field: 'name', direction: 'asc' }
|
|
42
|
+
* });
|
|
43
|
+
* ```
|
|
44
|
+
*/
|
|
45
|
+
export declare class DefinitionListOperation {
|
|
46
|
+
private readonly definitionService;
|
|
47
|
+
private readonly logger?;
|
|
48
|
+
/**
|
|
49
|
+
* Creates a new DefinitionListOperation.
|
|
50
|
+
*
|
|
51
|
+
* @param definitionService - The ProfilingDefinitionService instance for querying definitions
|
|
52
|
+
* @param logger - Optional logger for debug output
|
|
53
|
+
*/
|
|
54
|
+
constructor(definitionService: ProfilingDefinitionService, logger?: Console);
|
|
55
|
+
/**
|
|
56
|
+
* Executes the definition list operation.
|
|
57
|
+
*
|
|
58
|
+
* Returns a ServiceResult with success=false and one of the following error codes on failure:
|
|
59
|
+
* - LIST_FAILED: When the underlying service query returns a failure result
|
|
60
|
+
* - OPERATION_FAILED: When an unexpected exception occurs
|
|
61
|
+
*
|
|
62
|
+
* @param options - List options (filter, pagination, sort)
|
|
63
|
+
* @returns ServiceResult containing DefinitionListResult or error details
|
|
64
|
+
*/
|
|
65
|
+
execute(options: ListOptions): Promise<ServiceResult<DefinitionListResult>>;
|
|
66
|
+
}
|
|
@@ -0,0 +1,108 @@
|
|
|
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
|
+
/**
|
|
9
|
+
* Error codes specific to list operations.
|
|
10
|
+
*/
|
|
11
|
+
export const ListErrorCodes = {
|
|
12
|
+
/** Service query failed (non-exception failure) */
|
|
13
|
+
LIST_FAILED: 'LIST_FAILED',
|
|
14
|
+
/** Operation failed unexpectedly (exception) */
|
|
15
|
+
OPERATION_FAILED: 'LIST_OPERATION_FAILED',
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* Orchestrates listing of profiling definitions.
|
|
19
|
+
*
|
|
20
|
+
* Follows the 4-layer architecture: Command -> Operation -> Service -> API
|
|
21
|
+
* This operation layer handles:
|
|
22
|
+
* 1. Accepts parsed command flags as ListOptions
|
|
23
|
+
* 2. Delegates to ProfilingDefinitionService.listDefinitions()
|
|
24
|
+
* 3. Returns ServiceResult<DefinitionListResult> with timing metadata
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* ```typescript
|
|
28
|
+
* const operation = new DefinitionListOperation(definitionService);
|
|
29
|
+
* const result = await operation.execute({
|
|
30
|
+
* filter: { status: 'active', objects: ['Account'] },
|
|
31
|
+
* pagination: { limit: 10, offset: 0 },
|
|
32
|
+
* sort: { field: 'name', direction: 'asc' }
|
|
33
|
+
* });
|
|
34
|
+
* ```
|
|
35
|
+
*/
|
|
36
|
+
export class DefinitionListOperation {
|
|
37
|
+
definitionService;
|
|
38
|
+
logger;
|
|
39
|
+
/**
|
|
40
|
+
* Creates a new DefinitionListOperation.
|
|
41
|
+
*
|
|
42
|
+
* @param definitionService - The ProfilingDefinitionService instance for querying definitions
|
|
43
|
+
* @param logger - Optional logger for debug output
|
|
44
|
+
*/
|
|
45
|
+
constructor(definitionService, logger) {
|
|
46
|
+
this.definitionService = definitionService;
|
|
47
|
+
this.logger = logger;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Executes the definition list operation.
|
|
51
|
+
*
|
|
52
|
+
* Returns a ServiceResult with success=false and one of the following error codes on failure:
|
|
53
|
+
* - LIST_FAILED: When the underlying service query returns a failure result
|
|
54
|
+
* - OPERATION_FAILED: When an unexpected exception occurs
|
|
55
|
+
*
|
|
56
|
+
* @param options - List options (filter, pagination, sort)
|
|
57
|
+
* @returns ServiceResult containing DefinitionListResult or error details
|
|
58
|
+
*/
|
|
59
|
+
async execute(options) {
|
|
60
|
+
const startTime = Date.now();
|
|
61
|
+
const emptyResult = {
|
|
62
|
+
definitions: [],
|
|
63
|
+
totalCount: 0,
|
|
64
|
+
summary: { activeCount: 0, inactiveCount: 0, profiledCount: 0, notProfiledCount: 0 },
|
|
65
|
+
};
|
|
66
|
+
try {
|
|
67
|
+
this.logger?.log('Starting definition list operation');
|
|
68
|
+
const listResult = await this.definitionService.listDefinitions({
|
|
69
|
+
filter: options.filter,
|
|
70
|
+
pagination: options.pagination,
|
|
71
|
+
sort: options.sort,
|
|
72
|
+
});
|
|
73
|
+
const duration = Date.now() - startTime;
|
|
74
|
+
if (!listResult.success) {
|
|
75
|
+
const errorMessage = listResult.message ?? 'Unknown error';
|
|
76
|
+
this.logger?.log(`Definition list failed: ${errorMessage}`);
|
|
77
|
+
return {
|
|
78
|
+
success: false,
|
|
79
|
+
data: emptyResult,
|
|
80
|
+
errorCode: ListErrorCodes.LIST_FAILED,
|
|
81
|
+
message: listResult.message ?? 'Definition list query failed',
|
|
82
|
+
metadata: { duration },
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
const { definitions, totalCount, summary } = listResult.data;
|
|
86
|
+
this.logger?.log(`Definition list completed: ${String(definitions.length)} definitions found`);
|
|
87
|
+
return {
|
|
88
|
+
success: true,
|
|
89
|
+
data: { definitions, totalCount, summary },
|
|
90
|
+
message: `Found ${String(totalCount)} definitions`,
|
|
91
|
+
metadata: { duration },
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
catch (error) {
|
|
95
|
+
const duration = Date.now() - startTime;
|
|
96
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
97
|
+
this.logger?.log(`Definition list failed: ${errorMessage}`);
|
|
98
|
+
return {
|
|
99
|
+
success: false,
|
|
100
|
+
data: emptyResult,
|
|
101
|
+
errorCode: ListErrorCodes.OPERATION_FAILED,
|
|
102
|
+
message: `Definition list failed: ${errorMessage}`,
|
|
103
|
+
metadata: { duration },
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=DefinitionListOperation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DefinitionListOperation.js","sourceRoot":"","sources":["../../src/operations/DefinitionListOperation.ts"],"names":[],"mappings":"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"}
|