@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,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pagination utilities for CLI output.
|
|
3
|
+
*
|
|
4
|
+
* Re-exports the core pagination function, types, and the default
|
|
5
|
+
* terminal I/O factory for interactive keypress reading.
|
|
6
|
+
*
|
|
7
|
+
* @module utils/pagination
|
|
8
|
+
*/
|
|
9
|
+
export { paginateOutput } from './paginate-output.js';
|
|
10
|
+
export type { PaginationIO, PaginateOptions, PaginateResult } from './paginate-output.js';
|
|
11
|
+
export { createDefaultIO } from './keypress-reader.js';
|
|
@@ -0,0 +1,18 @@
|
|
|
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
|
+
* Pagination utilities for CLI output.
|
|
10
|
+
*
|
|
11
|
+
* Re-exports the core pagination function, types, and the default
|
|
12
|
+
* terminal I/O factory for interactive keypress reading.
|
|
13
|
+
*
|
|
14
|
+
* @module utils/pagination
|
|
15
|
+
*/
|
|
16
|
+
export { paginateOutput } from './paginate-output.js';
|
|
17
|
+
export { createDefaultIO } from './keypress-reader.js';
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/pagination/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;;;;;GAOG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Raw keypress reader for interactive terminal pagination.
|
|
3
|
+
*
|
|
4
|
+
* Provides a {@link PaginationIO} implementation that reads single keypresses
|
|
5
|
+
* from process.stdin in raw mode. Handles Ctrl+C gracefully and restores
|
|
6
|
+
* terminal state on exit.
|
|
7
|
+
*
|
|
8
|
+
* @module utils/pagination/keypress-reader
|
|
9
|
+
*/
|
|
10
|
+
import type { PaginationIO } from './paginate-output.js';
|
|
11
|
+
/**
|
|
12
|
+
* Create the default terminal I/O implementation for pagination.
|
|
13
|
+
*
|
|
14
|
+
* Uses `process.stdin.setRawMode(true)` to read individual keypresses.
|
|
15
|
+
* Registers a `process.on('exit')` handler to restore stdin state unconditionally.
|
|
16
|
+
* Handles `\x03` (Ctrl+C) by restoring stdin and exiting with code 130.
|
|
17
|
+
*
|
|
18
|
+
* @returns A {@link PaginationIO} wired to process.stdin and process.stdout.
|
|
19
|
+
*/
|
|
20
|
+
export declare function createDefaultIO(): PaginationIO;
|
|
@@ -0,0 +1,63 @@
|
|
|
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
|
+
/** Exit code for Ctrl+C signal (128 + SIGINT signal number 2). */
|
|
9
|
+
const CTRL_C_EXIT_CODE = 130;
|
|
10
|
+
/**
|
|
11
|
+
* Create the default terminal I/O implementation for pagination.
|
|
12
|
+
*
|
|
13
|
+
* Uses `process.stdin.setRawMode(true)` to read individual keypresses.
|
|
14
|
+
* Registers a `process.on('exit')` handler to restore stdin state unconditionally.
|
|
15
|
+
* Handles `\x03` (Ctrl+C) by restoring stdin and exiting with code 130.
|
|
16
|
+
*
|
|
17
|
+
* @returns A {@link PaginationIO} wired to process.stdin and process.stdout.
|
|
18
|
+
*/
|
|
19
|
+
export function createDefaultIO() {
|
|
20
|
+
return {
|
|
21
|
+
isTTY: Boolean(process.stdin.isTTY) && Boolean(process.stdout.isTTY),
|
|
22
|
+
write(text) {
|
|
23
|
+
process.stdout.write(text);
|
|
24
|
+
},
|
|
25
|
+
readKey() {
|
|
26
|
+
return new Promise((resolve, reject) => {
|
|
27
|
+
const stdin = process.stdin;
|
|
28
|
+
const wasRaw = stdin.isRaw;
|
|
29
|
+
// Guard: setRawMode is only available on TTY streams
|
|
30
|
+
if (typeof stdin.setRawMode !== 'function') {
|
|
31
|
+
reject(new Error('Cannot read keypress: stdin is not a TTY'));
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
stdin.setRawMode(true);
|
|
35
|
+
stdin.resume();
|
|
36
|
+
stdin.setEncoding('utf8');
|
|
37
|
+
/** Restore stdin to its previous state. */
|
|
38
|
+
const restore = () => {
|
|
39
|
+
stdin.setRawMode(wasRaw ?? false);
|
|
40
|
+
stdin.pause();
|
|
41
|
+
stdin.removeListener('data', onData);
|
|
42
|
+
};
|
|
43
|
+
/** Exit handler to ensure stdin is always restored. */
|
|
44
|
+
const onExit = () => {
|
|
45
|
+
restore();
|
|
46
|
+
};
|
|
47
|
+
process.on('exit', onExit);
|
|
48
|
+
const onData = (data) => {
|
|
49
|
+
process.removeListener('exit', onExit);
|
|
50
|
+
restore();
|
|
51
|
+
// Ctrl+C: restore terminal and exit cleanly
|
|
52
|
+
if (data === '\x03') {
|
|
53
|
+
process.exit(CTRL_C_EXIT_CODE);
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
resolve(data.length > 0 ? data[0] : 'q');
|
|
57
|
+
};
|
|
58
|
+
stdin.once('data', onData);
|
|
59
|
+
});
|
|
60
|
+
},
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=keypress-reader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keypress-reader.js","sourceRoot":"","sources":["../../../src/utils/pagination/keypress-reader.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAcH,kEAAkE;AAClE,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAE7B;;;;;;;;GAQG;AACH,MAAM,UAAU,eAAe;IAC7B,OAAO;QACL,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;QAEpE,KAAK,CAAC,IAAY;YAChB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC;QAED,OAAO;YACL,OAAO,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAC7C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;gBAC5B,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC;gBAE3B,qDAAqD;gBACrD,IAAI,OAAO,KAAK,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;oBAC3C,MAAM,CAAC,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC,CAAC;oBAC9D,OAAO;gBACT,CAAC;gBAED,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBACvB,KAAK,CAAC,MAAM,EAAE,CAAC;gBACf,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gBAE1B,2CAA2C;gBAC3C,MAAM,OAAO,GAAG,GAAS,EAAE;oBACzB,KAAK,CAAC,UAAU,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC;oBAClC,KAAK,CAAC,KAAK,EAAE,CAAC;oBACd,KAAK,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gBACvC,CAAC,CAAC;gBAEF,uDAAuD;gBACvD,MAAM,MAAM,GAAG,GAAS,EAAE;oBACxB,OAAO,EAAE,CAAC;gBACZ,CAAC,CAAC;gBAEF,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gBAE3B,MAAM,MAAM,GAAG,CAAC,IAAY,EAAQ,EAAE;oBACpC,OAAO,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;oBACvC,OAAO,EAAE,CAAC;oBAEV,4CAA4C;oBAC5C,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;wBACpB,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;wBAC/B,OAAO;oBACT,CAAC;oBAED,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBAC3C,CAAC,CAAC;gBAEF,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAC7B,CAAC,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Abstraction over terminal I/O for pagination prompts.
|
|
3
|
+
*
|
|
4
|
+
* Injected into {@link paginateOutput} to decouple from process.stdin/stdout,
|
|
5
|
+
* enabling deterministic testing without raw mode manipulation.
|
|
6
|
+
*/
|
|
7
|
+
export type PaginationIO = {
|
|
8
|
+
/** Whether the I/O streams are connected to an interactive terminal. */
|
|
9
|
+
isTTY: boolean;
|
|
10
|
+
/** Write text to the output stream. */
|
|
11
|
+
write(text: string): void;
|
|
12
|
+
/** Read a single keypress and return the character. */
|
|
13
|
+
readKey(): Promise<string>;
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* Configuration options for {@link paginateOutput}.
|
|
17
|
+
*/
|
|
18
|
+
export type PaginateOptions = {
|
|
19
|
+
/** Number of records per page. Defaults to 25. */
|
|
20
|
+
pageSize?: number;
|
|
21
|
+
/** Skip interactive prompts — render all records at once. */
|
|
22
|
+
noPrompt?: boolean;
|
|
23
|
+
/** Skip pagination when JSON output mode is active. */
|
|
24
|
+
jsonEnabled?: boolean;
|
|
25
|
+
/** Injected I/O for testing. Falls back to default terminal IO when omitted. */
|
|
26
|
+
io?: PaginationIO;
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* Result metadata returned after pagination completes.
|
|
30
|
+
*/
|
|
31
|
+
export type PaginateResult = {
|
|
32
|
+
/** Number of records actually rendered. */
|
|
33
|
+
displayed: number;
|
|
34
|
+
/** Total number of pages (may exceed pages displayed if user quit early). */
|
|
35
|
+
totalPages: number;
|
|
36
|
+
/** Terminal action: how pagination ended. */
|
|
37
|
+
action: 'all' | 'paged' | 'quit' | 'no-pagination';
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* Paginate a record set with interactive terminal prompts.
|
|
41
|
+
*
|
|
42
|
+
* @typeParam T - The record type being paginated.
|
|
43
|
+
* @param records - Full array of records to paginate.
|
|
44
|
+
* @param renderPage - Callback invoked for each page (or all records). Receives the slice and its start index.
|
|
45
|
+
* @param options - Pagination configuration.
|
|
46
|
+
* @returns Result metadata describing what was displayed and how pagination ended.
|
|
47
|
+
*/
|
|
48
|
+
export declare function paginateOutput<T>(records: T[], renderPage: (items: T[], startIndex: number) => void, options?: PaginateOptions): Promise<PaginateResult>;
|
|
@@ -0,0 +1,136 @@
|
|
|
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
|
+
* Core pagination utility for CLI output.
|
|
10
|
+
*
|
|
11
|
+
* Provides interactive page-by-page rendering for large record sets,
|
|
12
|
+
* with automatic bypass for non-TTY, JSON mode, and CI environments.
|
|
13
|
+
* Uses dependency injection via {@link PaginationIO} for testability.
|
|
14
|
+
*
|
|
15
|
+
* @module utils/pagination/paginate-output
|
|
16
|
+
*/
|
|
17
|
+
/** Default number of records per page. */
|
|
18
|
+
const DEFAULT_PAGE_SIZE = 25;
|
|
19
|
+
/** Minimum allowed page size to prevent infinite loops. */
|
|
20
|
+
const MIN_PAGE_SIZE = 1;
|
|
21
|
+
/**
|
|
22
|
+
* Paginate a record set with interactive terminal prompts.
|
|
23
|
+
*
|
|
24
|
+
* @typeParam T - The record type being paginated.
|
|
25
|
+
* @param records - Full array of records to paginate.
|
|
26
|
+
* @param renderPage - Callback invoked for each page (or all records). Receives the slice and its start index.
|
|
27
|
+
* @param options - Pagination configuration.
|
|
28
|
+
* @returns Result metadata describing what was displayed and how pagination ended.
|
|
29
|
+
*/
|
|
30
|
+
export async function paginateOutput(records, renderPage, options) {
|
|
31
|
+
const pageSize = Math.max(options?.pageSize ?? DEFAULT_PAGE_SIZE, MIN_PAGE_SIZE);
|
|
32
|
+
const totalPages = records.length === 0 ? 0 : Math.ceil(records.length / pageSize);
|
|
33
|
+
// Empty records — nothing to do
|
|
34
|
+
if (records.length === 0) {
|
|
35
|
+
return { displayed: 0, totalPages: 0, action: 'no-pagination' };
|
|
36
|
+
}
|
|
37
|
+
// No pagination needed — fits in a single page
|
|
38
|
+
if (records.length <= pageSize) {
|
|
39
|
+
renderPage(records, 0);
|
|
40
|
+
return { displayed: records.length, totalPages: 1, action: 'no-pagination' };
|
|
41
|
+
}
|
|
42
|
+
// Determine if interactive pagination should be used
|
|
43
|
+
const shouldPaginate = resolveInteractiveMode(options);
|
|
44
|
+
if (!shouldPaginate) {
|
|
45
|
+
// Render everything at once
|
|
46
|
+
renderPage(records, 0);
|
|
47
|
+
return { displayed: records.length, totalPages, action: 'all' };
|
|
48
|
+
}
|
|
49
|
+
// Interactive pagination loop
|
|
50
|
+
const io = options?.io;
|
|
51
|
+
if (!io) {
|
|
52
|
+
// No IO provided and interactive mode resolved — fallback to render all.
|
|
53
|
+
// In production, createDefaultIO() from keypress-reader.ts should be passed.
|
|
54
|
+
renderPage(records, 0);
|
|
55
|
+
return { displayed: records.length, totalPages, action: 'all' };
|
|
56
|
+
}
|
|
57
|
+
// Render first page, then enter prompt loop
|
|
58
|
+
const firstPageSlice = records.slice(0, pageSize);
|
|
59
|
+
renderPage(firstPageSlice, 0);
|
|
60
|
+
return promptLoop(records, renderPage, io, pageSize, totalPages, firstPageSlice.length);
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Interactive prompt loop that handles page-by-page navigation.
|
|
64
|
+
*
|
|
65
|
+
* Separated from the main function to satisfy the no-await-in-loop lint rule
|
|
66
|
+
* while maintaining clear sequential pagination semantics.
|
|
67
|
+
*/
|
|
68
|
+
async function promptLoop(records, renderPage, io, pageSize, totalPages, initialDisplayed) {
|
|
69
|
+
let currentPage = 1;
|
|
70
|
+
let displayed = initialDisplayed;
|
|
71
|
+
// Read first key
|
|
72
|
+
io.write(`Page ${currentPage} of ${totalPages} — (N)ext, (A)ll, (Q)uit`);
|
|
73
|
+
let key = await io.readKey();
|
|
74
|
+
/* eslint-disable no-await-in-loop -- Interactive pagination requires sequential keypress reads between page renders */
|
|
75
|
+
while (currentPage < totalPages) {
|
|
76
|
+
const normalizedKey = key.toLowerCase();
|
|
77
|
+
if (normalizedKey === 'q') {
|
|
78
|
+
return { displayed, totalPages, action: 'quit' };
|
|
79
|
+
}
|
|
80
|
+
if (normalizedKey === 'a') {
|
|
81
|
+
// Render all remaining records at once
|
|
82
|
+
const remaining = records.slice(currentPage * pageSize);
|
|
83
|
+
renderPage(remaining, currentPage * pageSize);
|
|
84
|
+
return { displayed: records.length, totalPages, action: 'all' };
|
|
85
|
+
}
|
|
86
|
+
if (normalizedKey === 'n') {
|
|
87
|
+
const start = currentPage * pageSize;
|
|
88
|
+
const end = Math.min(start + pageSize, records.length);
|
|
89
|
+
const pageSlice = records.slice(start, end);
|
|
90
|
+
renderPage(pageSlice, start);
|
|
91
|
+
displayed += pageSlice.length;
|
|
92
|
+
currentPage++;
|
|
93
|
+
// If we've reached the last page, exit cleanly
|
|
94
|
+
if (currentPage >= totalPages) {
|
|
95
|
+
return { displayed, totalPages, action: 'paged' };
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
// Prompt for next action
|
|
99
|
+
io.write(`Page ${currentPage} of ${totalPages} — (N)ext, (A)ll, (Q)uit`);
|
|
100
|
+
key = await io.readKey();
|
|
101
|
+
}
|
|
102
|
+
/* eslint-enable no-await-in-loop */
|
|
103
|
+
return { displayed, totalPages, action: 'paged' };
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Determine whether interactive pagination should be used.
|
|
107
|
+
*
|
|
108
|
+
* Returns false (skip pagination) when any of these conditions hold:
|
|
109
|
+
* - `noPrompt` option is true
|
|
110
|
+
* - `jsonEnabled` option is true
|
|
111
|
+
* - Explicit IO is provided and `io.isTTY` is false
|
|
112
|
+
* - No explicit IO and `CI` environment variable is set to 'true'
|
|
113
|
+
* - No explicit IO and `TERM` environment variable is 'dumb'
|
|
114
|
+
*
|
|
115
|
+
* When an explicit `io` is provided, `io.isTTY` is the sole gate — env vars do not apply.
|
|
116
|
+
* This isolates tests that inject MockPaginationIO from the CI environment.
|
|
117
|
+
* When no `io` is provided, env vars are checked as a fallback terminal detection mechanism.
|
|
118
|
+
*/
|
|
119
|
+
function resolveInteractiveMode(options) {
|
|
120
|
+
if (options?.noPrompt === true)
|
|
121
|
+
return false;
|
|
122
|
+
if (options?.jsonEnabled === true)
|
|
123
|
+
return false;
|
|
124
|
+
// When explicit IO is provided, defer entirely to io.isTTY.
|
|
125
|
+
// Callers that inject IO are responsible for setting isTTY correctly (e.g. createDefaultIO()).
|
|
126
|
+
if (options?.io !== undefined) {
|
|
127
|
+
return options.io.isTTY;
|
|
128
|
+
}
|
|
129
|
+
// No explicit IO — check environment variables for CI/dumb terminal
|
|
130
|
+
if (process.env.CI === 'true')
|
|
131
|
+
return false;
|
|
132
|
+
if (process.env.TERM === 'dumb')
|
|
133
|
+
return false;
|
|
134
|
+
return true;
|
|
135
|
+
}
|
|
136
|
+
//# sourceMappingURL=paginate-output.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paginate-output.js","sourceRoot":"","sources":["../../../src/utils/pagination/paginate-output.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# summary
|
|
2
|
+
|
|
3
|
+
Verify the Cuneiform For Salesforce app version required by this CLI build, and (optionally) the version installed in a target org.
|
|
4
|
+
|
|
5
|
+
# description
|
|
6
|
+
|
|
7
|
+
Reports the Cuneiform For Salesforce managed-package version this CLI release was tested against. Without `--target-org`, the command is a local-only readout — no Salesforce API calls, no authentication required.
|
|
8
|
+
|
|
9
|
+
When `--target-org` is supplied, the command queries the org for the installed Cuneiform For Salesforce package via the Tooling API and reports one of five states:
|
|
10
|
+
|
|
11
|
+
- `installed-match` — installed version satisfies the requirement (exit 0)
|
|
12
|
+
- `installed-newer` — installed version is newer than required (exit 0, advisory)
|
|
13
|
+
- `installed-version-unknown` — Cuneiform is detected via namespace but the version is not exposed (typical for source-pushed scratch orgs — CLI-1569). Compatibility cannot be verified, but the package is present (exit 0, advisory)
|
|
14
|
+
- `installed-older` — installed version is older than required (exit 1)
|
|
15
|
+
- `not-installed` — Cuneiform For Salesforce is not installed in this org (exit 1)
|
|
16
|
+
|
|
17
|
+
Use this command to:
|
|
18
|
+
|
|
19
|
+
- Confirm a scratch org or sandbox is ready for CLI operations after a fresh package install
|
|
20
|
+
- Diagnose CLI errors that look like data-shape mismatches but are version-compatibility issues
|
|
21
|
+
- Pin CLI/app version pairs in CI before running profiling jobs
|
|
22
|
+
|
|
23
|
+
# examples
|
|
24
|
+
|
|
25
|
+
- Print the required app version (no auth, no API calls):
|
|
26
|
+
|
|
27
|
+
<%= config.bin %> <%= command.id %>
|
|
28
|
+
|
|
29
|
+
- Verify the installed version in a target org:
|
|
30
|
+
|
|
31
|
+
<%= config.bin %> <%= command.id %> --target-org myOrg
|
|
32
|
+
|
|
33
|
+
- Machine-readable output for CI:
|
|
34
|
+
|
|
35
|
+
<%= config.bin %> <%= command.id %> --target-org myOrg --json
|
|
36
|
+
|
|
37
|
+
# flags.target-org.summary
|
|
38
|
+
|
|
39
|
+
Target org username or alias. When supplied, the command queries the org's installed Cuneiform For Salesforce version and reports compatibility.
|
|
40
|
+
|
|
41
|
+
# flags.api-version.summary
|
|
42
|
+
|
|
43
|
+
API version to use when querying the target org. Defaults to the org's maximum supported version.
|
|
44
|
+
|
|
45
|
+
# state.installed-match
|
|
46
|
+
|
|
47
|
+
✓ Installed version matches the required version. Compatible.
|
|
48
|
+
|
|
49
|
+
# state.installed-newer
|
|
50
|
+
|
|
51
|
+
✓ Installed version is newer than required. Likely compatible — newer org-side features may not be exposed by this CLI build.
|
|
52
|
+
|
|
53
|
+
# state.installed-version-unknown
|
|
54
|
+
|
|
55
|
+
⚠ Cuneiform For Salesforce is present in this org (detected via namespace) but the package version is not exposed by the standard API. This is typical for source-pushed scratch orgs. Compatibility cannot be verified against the requirement — proceed at your own risk.
|
|
56
|
+
|
|
57
|
+
# state.installed-older
|
|
58
|
+
|
|
59
|
+
✗ Installed version is older than required. CLI commands that depend on newer app features will fail. Upgrade Cuneiform For Salesforce in this org to at least the required version.
|
|
60
|
+
|
|
61
|
+
# state.not-installed
|
|
62
|
+
|
|
63
|
+
✗ Cuneiform For Salesforce is not installed in this org. Install the managed package before running CLI commands.
|
|
64
|
+
|
|
65
|
+
# errors.manifestInvalid
|
|
66
|
+
|
|
67
|
+
This CLI build's `package.json` is missing the `cuneiform.requiredAppVersion` field. This is a build-time configuration error — please file an issue on the salesforce-cli repository.
|
|
68
|
+
|
|
69
|
+
# errors.orgQueryFailed
|
|
70
|
+
|
|
71
|
+
Failed to query the installed package version from the target org: %s
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
# error.profilingAccessDenied
|
|
2
|
+
|
|
3
|
+
Cuneiform is installed, but you don't have profiling access.
|
|
4
|
+
|
|
5
|
+
You're missing one or more required permission sets.
|
|
6
|
+
|
|
7
|
+
Next steps:
|
|
8
|
+
|
|
9
|
+
1. Run the diagnostic to see exactly what's missing:
|
|
10
|
+
sf cuneiform user details --target-org <your-org>
|
|
11
|
+
|
|
12
|
+
2. Preview what the auto-configure would change:
|
|
13
|
+
sf cuneiform user details --target-org <your-org> --configure --dry-run
|
|
14
|
+
|
|
15
|
+
3. Apply the changes automatically:
|
|
16
|
+
sf cuneiform user details --target-org <your-org> --configure
|
|
17
|
+
|
|
18
|
+
If you don't have permission to self-configure, ask your Salesforce administrator to assign the required Cuneiform permission sets.
|
|
19
|
+
|
|
20
|
+
# error.globalProfilingNotEnabled
|
|
21
|
+
|
|
22
|
+
Cuneiform is installed, but Global Profiling is not enabled.
|
|
23
|
+
|
|
24
|
+
API-Only Profiling must be enabled in the Configuration Profile before you can use the CLI.
|
|
25
|
+
|
|
26
|
+
Next steps:
|
|
27
|
+
|
|
28
|
+
1. Run the diagnostic to see your current readiness:
|
|
29
|
+
sf cuneiform user details --target-org <your-org>
|
|
30
|
+
|
|
31
|
+
2. Preview what the auto-configure would change:
|
|
32
|
+
sf cuneiform user details --target-org <your-org> --configure --dry-run
|
|
33
|
+
|
|
34
|
+
3. Apply the changes automatically:
|
|
35
|
+
sf cuneiform user details --target-org <your-org> --configure
|
|
36
|
+
|
|
37
|
+
If you don't have permission to self-configure, ask your Salesforce administrator to enable API-Only Profiling in the Cuneiform Configuration Profile.
|
|
38
|
+
|
|
39
|
+
# error.cuneiformNotInstalled
|
|
40
|
+
|
|
41
|
+
Cuneiform for Salesforce is not installed in this org.
|
|
42
|
+
|
|
43
|
+
The Cuneiform for Salesforce CLI is available exclusively to PeerNova customers with an active license. The managed package must be installed and activated before you can use the CLI.
|
|
44
|
+
|
|
45
|
+
Next steps:
|
|
46
|
+
|
|
47
|
+
1. If you are a PeerNova customer, contact your Salesforce administrator to install the package.
|
|
48
|
+
|
|
49
|
+
2. If you need to obtain a license, request one at:
|
|
50
|
+
https://jira-peernova.atlassian.net/wiki/spaces/CFCPD/pages/4196499551
|
|
51
|
+
|
|
52
|
+
3. To get Cuneiform for Salesforce:
|
|
53
|
+
https://jira-peernova.atlassian.net/wiki/spaces/CFCPD/pages/2624356353
|
|
54
|
+
|
|
55
|
+
4. Once installed, verify your readiness:
|
|
56
|
+
sf cuneiform user details --target-org <your-org>
|
|
57
|
+
|
|
58
|
+
For help: sfsupport@peernova.com
|
|
59
|
+
|
|
60
|
+
# error.selfRegistrationNotEnabled
|
|
61
|
+
|
|
62
|
+
Cuneiform is installed and API-Only Profiling is enabled, but CLI self-provisioning is not available.
|
|
63
|
+
|
|
64
|
+
Your administrator has not enabled CLI self-provisioning for API-based profiling. This setting ensures your admin controls which users can configure their own API profiling access — you're one admin action away from full access.
|
|
65
|
+
|
|
66
|
+
Next steps:
|
|
67
|
+
|
|
68
|
+
1. Run the diagnostic to see your full readiness status:
|
|
69
|
+
sf cuneiform user details --target-org <your-org>
|
|
70
|
+
|
|
71
|
+
2. Ask your Salesforce administrator to enable "Enable API Profiling Self-Registration"
|
|
72
|
+
in the Cuneiform Configuration Profile (Custom Metadata).
|
|
73
|
+
|
|
74
|
+
3. Alternatively, your admin can assign the API-Based Profiling permission set to you
|
|
75
|
+
directly, bypassing self-provisioning.
|
|
76
|
+
|
|
77
|
+
# error.featureNotEnabled
|
|
78
|
+
|
|
79
|
+
API-Based Profiling is not enabled for this organization.
|
|
80
|
+
|
|
81
|
+
The Cuneiform for Salesforce CLI is available exclusively to PeerNova customers with an active license. This feature must be enabled by PeerNova before you can use the CLI.
|
|
82
|
+
|
|
83
|
+
Next steps:
|
|
84
|
+
|
|
85
|
+
1. If you are a PeerNova customer, contact your PeerNova account team to enable
|
|
86
|
+
API-Based Profiling for your organization.
|
|
87
|
+
|
|
88
|
+
2. If you need to obtain a license, request one at:
|
|
89
|
+
https://jira-peernova.atlassian.net/wiki/spaces/CFCPD/pages/4196499551
|
|
90
|
+
|
|
91
|
+
3. To get Cuneiform for Salesforce:
|
|
92
|
+
https://jira-peernova.atlassian.net/wiki/spaces/CFCPD/pages/2624356353
|
|
93
|
+
|
|
94
|
+
4. Once enabled, verify your readiness:
|
|
95
|
+
sf cuneiform user details --target-org <your-org>
|
|
96
|
+
|
|
97
|
+
For help: sfsupport@peernova.com
|
|
98
|
+
|
|
99
|
+
# error.environmentConfigureBlocked
|
|
100
|
+
|
|
101
|
+
Configuration is not allowed in production environments.
|
|
102
|
+
|
|
103
|
+
The configure and autoconfigure commands are restricted to non-production orgs to protect your production data. This org has been identified as a Production org.
|
|
104
|
+
|
|
105
|
+
Next steps:
|
|
106
|
+
|
|
107
|
+
1. Run the diagnostic to confirm your org type:
|
|
108
|
+
sf cuneiform user details --target-org <your-org>
|
|
109
|
+
|
|
110
|
+
2. Use a sandbox, scratch org, or developer org to test configuration:
|
|
111
|
+
sf cuneiform user details --target-org <sandbox-org> --configure
|
|
112
|
+
|
|
113
|
+
3. If you believe this org was misidentified, contact your Salesforce administrator to verify the org type.
|
|
114
|
+
|
|
115
|
+
# error.connectionFailed
|
|
116
|
+
|
|
117
|
+
Could not verify your Cuneiform access. The connection to your org failed before the access check could run.
|
|
118
|
+
|
|
119
|
+
Detail: %s
|
|
120
|
+
|
|
121
|
+
Next steps:
|
|
122
|
+
|
|
123
|
+
1. Verify your org is authenticated:
|
|
124
|
+
sf org list --all
|
|
125
|
+
|
|
126
|
+
2. Re-authenticate if needed:
|
|
127
|
+
sf org login web --alias <your-org>
|
|
128
|
+
|
|
129
|
+
3. Once connected, verify your readiness:
|
|
130
|
+
sf cuneiform user details --target-org <your-org>
|
|
131
|
+
|
|
132
|
+
If the problem persists, check your network connection and ensure the Salesforce instance is reachable.
|
|
133
|
+
|
|
134
|
+
# error.accessCheckFailed
|
|
135
|
+
|
|
136
|
+
Could not verify your Cuneiform access.
|
|
137
|
+
|
|
138
|
+
%s
|