@peernova/cuneiform-sf 1.0.2 → 1.0.4-beta.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (488) hide show
  1. package/LICENSE +81 -30
  2. package/README.md +168 -134
  3. package/lib/adapters/connection-facade.d.ts +458 -0
  4. package/lib/adapters/connection-facade.js +379 -0
  5. package/lib/adapters/connection-facade.js.map +1 -0
  6. package/lib/adapters/errors.d.ts +547 -0
  7. package/lib/adapters/errors.js +937 -0
  8. package/lib/adapters/errors.js.map +1 -0
  9. package/lib/adapters/lifecycle.d.ts +112 -0
  10. package/lib/adapters/lifecycle.js +94 -0
  11. package/lib/adapters/lifecycle.js.map +1 -0
  12. package/lib/adapters/rest/cache.d.ts +69 -0
  13. package/lib/adapters/rest/cache.js +133 -0
  14. package/lib/adapters/rest/cache.js.map +1 -0
  15. package/lib/adapters/rest/index.d.ts +11 -0
  16. package/lib/adapters/rest/index.js +18 -0
  17. package/lib/adapters/rest/index.js.map +1 -0
  18. package/lib/adapters/rest/profiling-rest-client.d.ts +137 -0
  19. package/lib/adapters/rest/profiling-rest-client.js +115 -0
  20. package/lib/adapters/rest/profiling-rest-client.js.map +1 -0
  21. package/lib/adapters/rest/rest-api-adapter.d.ts +393 -0
  22. package/lib/adapters/rest/rest-api-adapter.js +764 -0
  23. package/lib/adapters/rest/rest-api-adapter.js.map +1 -0
  24. package/lib/adapters/rest/types.d.ts +34 -0
  25. package/lib/adapters/rest/types.js +9 -0
  26. package/lib/adapters/rest/types.js.map +1 -0
  27. package/lib/adapters/retry.d.ts +91 -0
  28. package/lib/adapters/retry.js +215 -0
  29. package/lib/adapters/retry.js.map +1 -0
  30. package/lib/adapters/soql/cuneiform-query-builder.d.ts +418 -0
  31. package/lib/adapters/soql/cuneiform-query-builder.js +606 -0
  32. package/lib/adapters/soql/cuneiform-query-builder.js.map +1 -0
  33. package/lib/adapters/soql/soql-query-adapter.d.ts +141 -0
  34. package/lib/adapters/soql/soql-query-adapter.js +259 -0
  35. package/lib/adapters/soql/soql-query-adapter.js.map +1 -0
  36. package/lib/adapters/soql/types.d.ts +37 -0
  37. package/lib/adapters/soql/types.js +19 -0
  38. package/lib/adapters/soql/types.js.map +1 -0
  39. package/lib/adapters/testing/index.d.ts +37 -0
  40. package/lib/adapters/testing/index.js +20 -0
  41. package/lib/adapters/testing/index.js.map +1 -0
  42. package/lib/adapters/testing/mock-connection.d.ts +77 -0
  43. package/lib/adapters/testing/mock-connection.js +207 -0
  44. package/lib/adapters/testing/mock-connection.js.map +1 -0
  45. package/lib/adapters/testing/mock-logger.d.ts +29 -0
  46. package/lib/adapters/testing/mock-logger.js +57 -0
  47. package/lib/adapters/testing/mock-logger.js.map +1 -0
  48. package/lib/adapters/testing/mock-mcp-adapters.d.ts +32 -0
  49. package/lib/adapters/testing/mock-mcp-adapters.js +52 -0
  50. package/lib/adapters/testing/mock-mcp-adapters.js.map +1 -0
  51. package/lib/adapters/testing/mock-oclif-config.d.ts +22 -0
  52. package/lib/adapters/testing/mock-oclif-config.js +90 -0
  53. package/lib/adapters/testing/mock-oclif-config.js.map +1 -0
  54. package/lib/adapters/testing/mock-rest-adapter.d.ts +26 -0
  55. package/lib/adapters/testing/mock-rest-adapter.js +243 -0
  56. package/lib/adapters/testing/mock-rest-adapter.js.map +1 -0
  57. package/lib/adapters/testing/mock-salesforce-connection.d.ts +40 -0
  58. package/lib/adapters/testing/mock-salesforce-connection.js +61 -0
  59. package/lib/adapters/testing/mock-salesforce-connection.js.map +1 -0
  60. package/lib/adapters/testing/mock-soql-adapter.d.ts +30 -0
  61. package/lib/adapters/testing/mock-soql-adapter.js +120 -0
  62. package/lib/adapters/testing/mock-soql-adapter.js.map +1 -0
  63. package/lib/adapters/testing/mock-tooling-adapter.d.ts +24 -0
  64. package/lib/adapters/testing/mock-tooling-adapter.js +163 -0
  65. package/lib/adapters/testing/mock-tooling-adapter.js.map +1 -0
  66. package/lib/adapters/testing/stub-connection.d.ts +93 -0
  67. package/lib/adapters/testing/stub-connection.js +97 -0
  68. package/lib/adapters/testing/stub-connection.js.map +1 -0
  69. package/lib/adapters/testing/stub-rest-adapter.d.ts +52 -0
  70. package/lib/adapters/testing/stub-rest-adapter.js +58 -0
  71. package/lib/adapters/testing/stub-rest-adapter.js.map +1 -0
  72. package/lib/adapters/testing/stub-soql-adapter.d.ts +56 -0
  73. package/lib/adapters/testing/stub-soql-adapter.js +50 -0
  74. package/lib/adapters/testing/stub-soql-adapter.js.map +1 -0
  75. package/lib/adapters/testing/types.d.ts +71 -0
  76. package/lib/adapters/testing/types.js +9 -0
  77. package/lib/adapters/testing/types.js.map +1 -0
  78. package/lib/adapters/tooling/index.d.ts +10 -0
  79. package/lib/adapters/tooling/index.js +17 -0
  80. package/lib/adapters/tooling/index.js.map +1 -0
  81. package/lib/adapters/tooling/tooling-api-adapter.d.ts +157 -0
  82. package/lib/adapters/tooling/tooling-api-adapter.js +339 -0
  83. package/lib/adapters/tooling/tooling-api-adapter.js.map +1 -0
  84. package/lib/adapters/tooling/types.d.ts +81 -0
  85. package/lib/adapters/tooling/types.js +9 -0
  86. package/lib/adapters/tooling/types.js.map +1 -0
  87. package/lib/adapters/types.d.ts +112 -0
  88. package/lib/adapters/types.js +169 -0
  89. package/lib/adapters/types.js.map +1 -0
  90. package/lib/base/cuneiform-command.d.ts +175 -0
  91. package/lib/base/cuneiform-command.js +326 -0
  92. package/lib/base/cuneiform-command.js.map +1 -0
  93. package/lib/commands/cuneiform/compatibility/check.d.ts +43 -0
  94. package/lib/commands/cuneiform/compatibility/check.js +114 -0
  95. package/lib/commands/cuneiform/compatibility/check.js.map +1 -0
  96. package/lib/commands/cuneiform/definition/create.d.ts +120 -0
  97. package/lib/commands/cuneiform/definition/create.js +737 -0
  98. package/lib/commands/cuneiform/definition/create.js.map +1 -0
  99. package/lib/commands/cuneiform/definition/export.d.ts +57 -0
  100. package/lib/commands/cuneiform/definition/export.js +133 -0
  101. package/lib/commands/cuneiform/definition/export.js.map +1 -0
  102. package/lib/commands/cuneiform/definition/get.d.ts +86 -0
  103. package/lib/commands/cuneiform/definition/get.js +277 -0
  104. package/lib/commands/cuneiform/definition/get.js.map +1 -0
  105. package/lib/commands/cuneiform/definition/import.d.ts +54 -0
  106. package/lib/commands/cuneiform/definition/import.js +118 -0
  107. package/lib/commands/cuneiform/definition/import.js.map +1 -0
  108. package/lib/commands/cuneiform/definition/list.d.ts +110 -0
  109. package/lib/commands/cuneiform/definition/list.js +351 -0
  110. package/lib/commands/cuneiform/definition/list.js.map +1 -0
  111. package/lib/commands/cuneiform/definition/purge.d.ts +109 -0
  112. package/lib/commands/cuneiform/definition/purge.js +578 -0
  113. package/lib/commands/cuneiform/definition/purge.js.map +1 -0
  114. package/lib/commands/cuneiform/definition/update.d.ts +58 -0
  115. package/lib/commands/cuneiform/definition/update.js +209 -0
  116. package/lib/commands/cuneiform/definition/update.js.map +1 -0
  117. package/lib/commands/cuneiform/mcp/serve.d.ts +56 -0
  118. package/lib/commands/cuneiform/mcp/serve.js +109 -0
  119. package/lib/commands/cuneiform/mcp/serve.js.map +1 -0
  120. package/lib/commands/cuneiform/object/describe.d.ts +61 -0
  121. package/lib/commands/cuneiform/object/describe.js +461 -0
  122. package/lib/commands/cuneiform/object/describe.js.map +1 -0
  123. package/lib/commands/cuneiform/object/list.d.ts +123 -0
  124. package/lib/commands/cuneiform/object/list.js +264 -0
  125. package/lib/commands/cuneiform/object/list.js.map +1 -0
  126. package/lib/commands/cuneiform/org/details.d.ts +99 -0
  127. package/lib/commands/cuneiform/org/details.js +521 -0
  128. package/lib/commands/cuneiform/org/details.js.map +1 -0
  129. package/lib/commands/cuneiform/org/reset.d.ts +46 -0
  130. package/lib/commands/cuneiform/org/reset.js +135 -0
  131. package/lib/commands/cuneiform/org/reset.js.map +1 -0
  132. package/lib/commands/cuneiform/profile/request/cancel.d.ts +59 -0
  133. package/lib/commands/cuneiform/profile/request/cancel.js +202 -0
  134. package/lib/commands/cuneiform/profile/request/cancel.js.map +1 -0
  135. package/lib/commands/cuneiform/profile/request/delete.d.ts +59 -0
  136. package/lib/commands/cuneiform/profile/request/delete.js +223 -0
  137. package/lib/commands/cuneiform/profile/request/delete.js.map +1 -0
  138. package/lib/commands/cuneiform/profile/request/list.d.ts +35 -0
  139. package/lib/commands/cuneiform/profile/request/list.js +102 -0
  140. package/lib/commands/cuneiform/profile/request/list.js.map +1 -0
  141. package/lib/commands/cuneiform/profile.d.ts +93 -0
  142. package/lib/commands/cuneiform/profile.js +353 -0
  143. package/lib/commands/cuneiform/profile.js.map +1 -0
  144. package/lib/commands/cuneiform/summary/purge.d.ts +80 -0
  145. package/lib/commands/cuneiform/summary/purge.js +467 -0
  146. package/lib/commands/cuneiform/summary/purge.js.map +1 -0
  147. package/lib/commands/cuneiform/summary/reprofile.d.ts +60 -0
  148. package/lib/commands/cuneiform/summary/reprofile.js +236 -0
  149. package/lib/commands/cuneiform/summary/reprofile.js.map +1 -0
  150. package/lib/commands/cuneiform/summary/stop.d.ts +59 -0
  151. package/lib/commands/cuneiform/summary/stop.js +234 -0
  152. package/lib/commands/cuneiform/summary/stop.js.map +1 -0
  153. package/lib/commands/cuneiform/user/details.d.ts +77 -0
  154. package/lib/commands/cuneiform/user/details.js +414 -0
  155. package/lib/commands/cuneiform/user/details.js.map +1 -0
  156. package/lib/constants/namespace-constants.d.ts +102 -0
  157. package/lib/constants/namespace-constants.js +225 -0
  158. package/lib/constants/namespace-constants.js.map +1 -0
  159. package/lib/debug/command-debug-proxy.d.ts +101 -0
  160. package/lib/debug/command-debug-proxy.js +171 -0
  161. package/lib/debug/command-debug-proxy.js.map +1 -0
  162. package/lib/debug/debug-logger.d.ts +85 -0
  163. package/lib/debug/debug-logger.js +133 -0
  164. package/lib/debug/debug-logger.js.map +1 -0
  165. package/lib/debug/service-debug-proxy.d.ts +30 -0
  166. package/lib/debug/service-debug-proxy.js +102 -0
  167. package/lib/debug/service-debug-proxy.js.map +1 -0
  168. package/lib/hooks/prerun.d.ts +25 -0
  169. package/lib/hooks/prerun.js +47 -0
  170. package/lib/hooks/prerun.js.map +1 -0
  171. package/lib/mcp/config/mcp-config.d.ts +55 -0
  172. package/lib/mcp/config/mcp-config.js +51 -0
  173. package/lib/mcp/config/mcp-config.js.map +1 -0
  174. package/lib/mcp/config/pagination.d.ts +96 -0
  175. package/lib/mcp/config/pagination.js +108 -0
  176. package/lib/mcp/config/pagination.js.map +1 -0
  177. package/lib/mcp/config/system-prompts.d.ts +18 -0
  178. package/lib/mcp/config/system-prompts.js +92 -0
  179. package/lib/mcp/config/system-prompts.js.map +1 -0
  180. package/lib/mcp/errors.d.ts +23 -0
  181. package/lib/mcp/errors.js +27 -0
  182. package/lib/mcp/errors.js.map +1 -0
  183. package/lib/mcp/schemas/input-schemas.d.ts +327 -0
  184. package/lib/mcp/schemas/input-schemas.js +310 -0
  185. package/lib/mcp/schemas/input-schemas.js.map +1 -0
  186. package/lib/mcp/server.d.ts +40 -0
  187. package/lib/mcp/server.js +316 -0
  188. package/lib/mcp/server.js.map +1 -0
  189. package/lib/mcp/tools/contactpoint-tools.d.ts +14 -0
  190. package/lib/mcp/tools/contactpoint-tools.js +34 -0
  191. package/lib/mcp/tools/contactpoint-tools.js.map +1 -0
  192. package/lib/mcp/tools/definition-io-tools.d.ts +19 -0
  193. package/lib/mcp/tools/definition-io-tools.js +152 -0
  194. package/lib/mcp/tools/definition-io-tools.js.map +1 -0
  195. package/lib/mcp/tools/definition-tools.d.ts +51 -0
  196. package/lib/mcp/tools/definition-tools.js +220 -0
  197. package/lib/mcp/tools/definition-tools.js.map +1 -0
  198. package/lib/mcp/tools/index.d.ts +37 -0
  199. package/lib/mcp/tools/index.js +88 -0
  200. package/lib/mcp/tools/index.js.map +1 -0
  201. package/lib/mcp/tools/object-tools.d.ts +22 -0
  202. package/lib/mcp/tools/object-tools.js +327 -0
  203. package/lib/mcp/tools/object-tools.js.map +1 -0
  204. package/lib/mcp/tools/org-tools.d.ts +14 -0
  205. package/lib/mcp/tools/org-tools.js +177 -0
  206. package/lib/mcp/tools/org-tools.js.map +1 -0
  207. package/lib/mcp/tools/profile-tools.d.ts +59 -0
  208. package/lib/mcp/tools/profile-tools.js +213 -0
  209. package/lib/mcp/tools/profile-tools.js.map +1 -0
  210. package/lib/mcp/tools/summary-tools.d.ts +14 -0
  211. package/lib/mcp/tools/summary-tools.js +38 -0
  212. package/lib/mcp/tools/summary-tools.js.map +1 -0
  213. package/lib/mcp/tools/tool-factory.d.ts +63 -0
  214. package/lib/mcp/tools/tool-factory.js +146 -0
  215. package/lib/mcp/tools/tool-factory.js.map +1 -0
  216. package/lib/mcp/tools/user-tools.d.ts +25 -0
  217. package/lib/mcp/tools/user-tools.js +167 -0
  218. package/lib/mcp/tools/user-tools.js.map +1 -0
  219. package/lib/models/cascade-skip-accumulator.d.ts +25 -0
  220. package/lib/models/cascade-skip-accumulator.js +9 -0
  221. package/lib/models/cascade-skip-accumulator.js.map +1 -0
  222. package/lib/models/date-literal.d.ts +280 -0
  223. package/lib/models/date-literal.js +1164 -0
  224. package/lib/models/date-literal.js.map +1 -0
  225. package/lib/models/object-describe-types.d.ts +173 -0
  226. package/lib/models/object-describe-types.js +9 -0
  227. package/lib/models/object-describe-types.js.map +1 -0
  228. package/lib/models/portability-recipe.d.ts +35 -0
  229. package/lib/models/portability-recipe.js +113 -0
  230. package/lib/models/portability-recipe.js.map +1 -0
  231. package/lib/models/profile-request-types.d.ts +118 -0
  232. package/lib/models/profile-request-types.js +23 -0
  233. package/lib/models/profile-request-types.js.map +1 -0
  234. package/lib/models/profiling-execution-types.d.ts +154 -0
  235. package/lib/models/profiling-execution-types.js +14 -0
  236. package/lib/models/profiling-execution-types.js.map +1 -0
  237. package/lib/models/service-result.d.ts +114 -0
  238. package/lib/models/service-result.js +81 -0
  239. package/lib/models/service-result.js.map +1 -0
  240. package/lib/models/sfdmu-types.d.ts +49 -0
  241. package/lib/models/sfdmu-types.js +23 -0
  242. package/lib/models/sfdmu-types.js.map +1 -0
  243. package/lib/models/status-types.d.ts +38 -0
  244. package/lib/models/status-types.js +12 -0
  245. package/lib/models/status-types.js.map +1 -0
  246. package/lib/models/summary-bulk-types.d.ts +61 -0
  247. package/lib/models/summary-bulk-types.js +23 -0
  248. package/lib/models/summary-bulk-types.js.map +1 -0
  249. package/lib/models/user-details-types.d.ts +188 -0
  250. package/lib/models/user-details-types.js +9 -0
  251. package/lib/models/user-details-types.js.map +1 -0
  252. package/lib/models/year-range.d.ts +78 -0
  253. package/lib/models/year-range.js +153 -0
  254. package/lib/models/year-range.js.map +1 -0
  255. package/lib/operations/CompatibilityCheckOperation.d.ts +62 -0
  256. package/lib/operations/CompatibilityCheckOperation.js +102 -0
  257. package/lib/operations/CompatibilityCheckOperation.js.map +1 -0
  258. package/lib/operations/DefinitionCreateOperation.d.ts +427 -0
  259. package/lib/operations/DefinitionCreateOperation.js +1270 -0
  260. package/lib/operations/DefinitionCreateOperation.js.map +1 -0
  261. package/lib/operations/DefinitionExportOperation.d.ts +155 -0
  262. package/lib/operations/DefinitionExportOperation.js +281 -0
  263. package/lib/operations/DefinitionExportOperation.js.map +1 -0
  264. package/lib/operations/DefinitionImportOperation.d.ts +144 -0
  265. package/lib/operations/DefinitionImportOperation.js +357 -0
  266. package/lib/operations/DefinitionImportOperation.js.map +1 -0
  267. package/lib/operations/DefinitionListOperation.d.ts +66 -0
  268. package/lib/operations/DefinitionListOperation.js +108 -0
  269. package/lib/operations/DefinitionListOperation.js.map +1 -0
  270. package/lib/operations/DefinitionPurgeOperation.d.ts +203 -0
  271. package/lib/operations/DefinitionPurgeOperation.js +465 -0
  272. package/lib/operations/DefinitionPurgeOperation.js.map +1 -0
  273. package/lib/operations/DefinitionUpdateOperation.d.ts +78 -0
  274. package/lib/operations/DefinitionUpdateOperation.js +142 -0
  275. package/lib/operations/DefinitionUpdateOperation.js.map +1 -0
  276. package/lib/operations/OrgDetailsOperation.d.ts +253 -0
  277. package/lib/operations/OrgDetailsOperation.js +456 -0
  278. package/lib/operations/OrgDetailsOperation.js.map +1 -0
  279. package/lib/operations/OrgResetOperation.d.ts +114 -0
  280. package/lib/operations/OrgResetOperation.js +209 -0
  281. package/lib/operations/OrgResetOperation.js.map +1 -0
  282. package/lib/operations/ProfileOperation.d.ts +192 -0
  283. package/lib/operations/ProfileOperation.js +371 -0
  284. package/lib/operations/ProfileOperation.js.map +1 -0
  285. package/lib/operations/ProfileRequestCancelOperation.d.ts +59 -0
  286. package/lib/operations/ProfileRequestCancelOperation.js +137 -0
  287. package/lib/operations/ProfileRequestCancelOperation.js.map +1 -0
  288. package/lib/operations/ProfileRequestDeleteOperation.d.ts +64 -0
  289. package/lib/operations/ProfileRequestDeleteOperation.js +134 -0
  290. package/lib/operations/ProfileRequestDeleteOperation.js.map +1 -0
  291. package/lib/operations/ProfileRequestListOperation.d.ts +39 -0
  292. package/lib/operations/ProfileRequestListOperation.js +61 -0
  293. package/lib/operations/ProfileRequestListOperation.js.map +1 -0
  294. package/lib/operations/SummaryPurgeOperation.d.ts +134 -0
  295. package/lib/operations/SummaryPurgeOperation.js +257 -0
  296. package/lib/operations/SummaryPurgeOperation.js.map +1 -0
  297. package/lib/operations/SummaryReprofileOperation.d.ts +88 -0
  298. package/lib/operations/SummaryReprofileOperation.js +174 -0
  299. package/lib/operations/SummaryReprofileOperation.js.map +1 -0
  300. package/lib/operations/SummaryStopOperation.d.ts +87 -0
  301. package/lib/operations/SummaryStopOperation.js +175 -0
  302. package/lib/operations/SummaryStopOperation.js.map +1 -0
  303. package/lib/services/BulkExecutionService.d.ts +120 -0
  304. package/lib/services/BulkExecutionService.js +535 -0
  305. package/lib/services/BulkExecutionService.js.map +1 -0
  306. package/lib/services/CompatibilityService.d.ts +81 -0
  307. package/lib/services/CompatibilityService.js +118 -0
  308. package/lib/services/CompatibilityService.js.map +1 -0
  309. package/lib/services/ConfigureMode.d.ts +98 -0
  310. package/lib/services/ConfigureMode.js +413 -0
  311. package/lib/services/ConfigureMode.js.map +1 -0
  312. package/lib/services/ContactPointService.d.ts +111 -0
  313. package/lib/services/ContactPointService.js +286 -0
  314. package/lib/services/ContactPointService.js.map +1 -0
  315. package/lib/services/DataAvailabilityService.d.ts +81 -0
  316. package/lib/services/DataAvailabilityService.js +128 -0
  317. package/lib/services/DataAvailabilityService.js.map +1 -0
  318. package/lib/services/DefinitionFieldGenerationService.d.ts +357 -0
  319. package/lib/services/DefinitionFieldGenerationService.js +899 -0
  320. package/lib/services/DefinitionFieldGenerationService.js.map +1 -0
  321. package/lib/services/DefinitionQueryBuilder.d.ts +92 -0
  322. package/lib/services/DefinitionQueryBuilder.js +328 -0
  323. package/lib/services/DefinitionQueryBuilder.js.map +1 -0
  324. package/lib/services/ObjectDescribeService.d.ts +436 -0
  325. package/lib/services/ObjectDescribeService.js +881 -0
  326. package/lib/services/ObjectDescribeService.js.map +1 -0
  327. package/lib/services/ObjectFilteringService.d.ts +484 -0
  328. package/lib/services/ObjectFilteringService.js +1080 -0
  329. package/lib/services/ObjectFilteringService.js.map +1 -0
  330. package/lib/services/ObjectListCommandService.d.ts +467 -0
  331. package/lib/services/ObjectListCommandService.js +904 -0
  332. package/lib/services/ObjectListCommandService.js.map +1 -0
  333. package/lib/services/ObjectListService.d.ts +201 -0
  334. package/lib/services/ObjectListService.js +350 -0
  335. package/lib/services/ObjectListService.js.map +1 -0
  336. package/lib/services/OrgInfoService.d.ts +493 -0
  337. package/lib/services/OrgInfoService.js +1142 -0
  338. package/lib/services/OrgInfoService.js.map +1 -0
  339. package/lib/services/PollingService.d.ts +105 -0
  340. package/lib/services/PollingService.js +117 -0
  341. package/lib/services/PollingService.js.map +1 -0
  342. package/lib/services/ProfileRequestService.d.ts +186 -0
  343. package/lib/services/ProfileRequestService.js +555 -0
  344. package/lib/services/ProfileRequestService.js.map +1 -0
  345. package/lib/services/ProfilingDefinitionService.d.ts +575 -0
  346. package/lib/services/ProfilingDefinitionService.js +1029 -0
  347. package/lib/services/ProfilingDefinitionService.js.map +1 -0
  348. package/lib/services/ProfilingExecutionService.d.ts +122 -0
  349. package/lib/services/ProfilingExecutionService.js +320 -0
  350. package/lib/services/ProfilingExecutionService.js.map +1 -0
  351. package/lib/services/ProfilingSummaryService.d.ts +292 -0
  352. package/lib/services/ProfilingSummaryService.js +688 -0
  353. package/lib/services/ProfilingSummaryService.js.map +1 -0
  354. package/lib/services/RecordTypeService.d.ts +129 -0
  355. package/lib/services/RecordTypeService.js +284 -0
  356. package/lib/services/RecordTypeService.js.map +1 -0
  357. package/lib/services/SFDMUService.d.ts +146 -0
  358. package/lib/services/SFDMUService.js +323 -0
  359. package/lib/services/SFDMUService.js.map +1 -0
  360. package/lib/services/TabDetectionService.d.ts +105 -0
  361. package/lib/services/TabDetectionService.js +206 -0
  362. package/lib/services/TabDetectionService.js.map +1 -0
  363. package/lib/services/UnconfigureMode.d.ts +74 -0
  364. package/lib/services/UnconfigureMode.js +378 -0
  365. package/lib/services/UnconfigureMode.js.map +1 -0
  366. package/lib/services/UserConfigurationService.d.ts +158 -0
  367. package/lib/services/UserConfigurationService.js +574 -0
  368. package/lib/services/UserConfigurationService.js.map +1 -0
  369. package/lib/services/UserConfigurationTypes.d.ts +181 -0
  370. package/lib/services/UserConfigurationTypes.js +14 -0
  371. package/lib/services/UserConfigurationTypes.js.map +1 -0
  372. package/lib/services/UserReadinessService.d.ts +347 -0
  373. package/lib/services/UserReadinessService.js +891 -0
  374. package/lib/services/UserReadinessService.js.map +1 -0
  375. package/lib/services/constants.d.ts +54 -0
  376. package/lib/services/constants.js +71 -0
  377. package/lib/services/constants.js.map +1 -0
  378. package/lib/services/namespace-constants.d.ts +1 -0
  379. package/lib/services/namespace-constants.js +11 -0
  380. package/lib/services/namespace-constants.js.map +1 -0
  381. package/lib/services/namespace-filter.d.ts +36 -0
  382. package/lib/services/namespace-filter.js +109 -0
  383. package/lib/services/namespace-filter.js.map +1 -0
  384. package/lib/services/validation.d.ts +47 -0
  385. package/lib/services/validation.js +119 -0
  386. package/lib/services/validation.js.map +1 -0
  387. package/lib/utils/batch-processor.d.ts +13 -0
  388. package/lib/utils/batch-processor.js +39 -0
  389. package/lib/utils/batch-processor.js.map +1 -0
  390. package/lib/utils/formatting/availability-grid.d.ts +81 -0
  391. package/lib/utils/formatting/availability-grid.js +94 -0
  392. package/lib/utils/formatting/availability-grid.js.map +1 -0
  393. package/lib/utils/formatting/business-process-grid.d.ts +51 -0
  394. package/lib/utils/formatting/business-process-grid.js +58 -0
  395. package/lib/utils/formatting/business-process-grid.js.map +1 -0
  396. package/lib/utils/formatting/command-display.d.ts +154 -0
  397. package/lib/utils/formatting/command-display.js +154 -0
  398. package/lib/utils/formatting/command-display.js.map +1 -0
  399. package/lib/utils/formatting/definition-create-display.d.ts +118 -0
  400. package/lib/utils/formatting/definition-create-display.js +230 -0
  401. package/lib/utils/formatting/definition-create-display.js.map +1 -0
  402. package/lib/utils/formatting/empty-states.d.ts +35 -0
  403. package/lib/utils/formatting/empty-states.js +70 -0
  404. package/lib/utils/formatting/empty-states.js.map +1 -0
  405. package/lib/utils/formatting/errors.d.ts +33 -0
  406. package/lib/utils/formatting/errors.js +72 -0
  407. package/lib/utils/formatting/errors.js.map +1 -0
  408. package/lib/utils/formatting/field-types.d.ts +32 -0
  409. package/lib/utils/formatting/field-types.js +88 -0
  410. package/lib/utils/formatting/field-types.js.map +1 -0
  411. package/lib/utils/formatting/index.d.ts +29 -0
  412. package/lib/utils/formatting/index.js +28 -0
  413. package/lib/utils/formatting/index.js.map +1 -0
  414. package/lib/utils/formatting/indicators.d.ts +113 -0
  415. package/lib/utils/formatting/indicators.js +161 -0
  416. package/lib/utils/formatting/indicators.js.map +1 -0
  417. package/lib/utils/formatting/loading-messages.d.ts +37 -0
  418. package/lib/utils/formatting/loading-messages.js +50 -0
  419. package/lib/utils/formatting/loading-messages.js.map +1 -0
  420. package/lib/utils/formatting/namespace-display.d.ts +31 -0
  421. package/lib/utils/formatting/namespace-display.js +64 -0
  422. package/lib/utils/formatting/namespace-display.js.map +1 -0
  423. package/lib/utils/formatting/numbers.d.ts +73 -0
  424. package/lib/utils/formatting/numbers.js +187 -0
  425. package/lib/utils/formatting/numbers.js.map +1 -0
  426. package/lib/utils/formatting/object-describe-display.d.ts +117 -0
  427. package/lib/utils/formatting/object-describe-display.js +447 -0
  428. package/lib/utils/formatting/object-describe-display.js.map +1 -0
  429. package/lib/utils/formatting/object-list-display.d.ts +225 -0
  430. package/lib/utils/formatting/object-list-display.js +718 -0
  431. package/lib/utils/formatting/object-list-display.js.map +1 -0
  432. package/lib/utils/formatting/org-identity.d.ts +15 -0
  433. package/lib/utils/formatting/org-identity.js +28 -0
  434. package/lib/utils/formatting/org-identity.js.map +1 -0
  435. package/lib/utils/formatting/record-age-grid.d.ts +41 -0
  436. package/lib/utils/formatting/record-age-grid.js +56 -0
  437. package/lib/utils/formatting/record-age-grid.js.map +1 -0
  438. package/lib/utils/formatting/sections.d.ts +108 -0
  439. package/lib/utils/formatting/sections.js +150 -0
  440. package/lib/utils/formatting/sections.js.map +1 -0
  441. package/lib/utils/formatting/tables.d.ts +90 -0
  442. package/lib/utils/formatting/tables.js +113 -0
  443. package/lib/utils/formatting/tables.js.map +1 -0
  444. package/lib/utils/formatting/user-details-display.d.ts +101 -0
  445. package/lib/utils/formatting/user-details-display.js +425 -0
  446. package/lib/utils/formatting/user-details-display.js.map +1 -0
  447. package/lib/utils/pagination/keypress-reader.d.ts +20 -0
  448. package/lib/utils/pagination/keypress-reader.js +63 -0
  449. package/lib/utils/pagination/keypress-reader.js.map +1 -0
  450. package/lib/utils/pagination/paginate-output.d.ts +48 -0
  451. package/lib/utils/pagination/paginate-output.js +136 -0
  452. package/lib/utils/pagination/paginate-output.js.map +1 -0
  453. package/messages/compatibility.check.md +71 -0
  454. package/messages/cuneiform.access.md +138 -0
  455. package/messages/definition.create.md +525 -0
  456. package/messages/definition.export.md +84 -0
  457. package/messages/definition.get.md +147 -0
  458. package/messages/definition.import.md +65 -0
  459. package/messages/definition.list.md +264 -0
  460. package/messages/definition.purge.md +330 -0
  461. package/messages/definition.update.md +118 -0
  462. package/messages/mcp.serve.md +66 -0
  463. package/messages/object.describe.md +205 -0
  464. package/messages/object.list.md +463 -0
  465. package/messages/org.details.md +386 -0
  466. package/messages/org.reset.md +71 -0
  467. package/messages/profile.md +243 -0
  468. package/messages/profile.request.cancel.md +143 -0
  469. package/messages/profile.request.delete.md +139 -0
  470. package/messages/profile.request.list.md +89 -0
  471. package/messages/summary.purge.md +218 -0
  472. package/messages/summary.reprofile.md +150 -0
  473. package/messages/summary.stop.md +157 -0
  474. package/messages/user.details.md +501 -0
  475. package/oclif.lock +3267 -2148
  476. package/oclif.manifest.json +2829 -31
  477. package/package.json +104 -18
  478. package/lib/commands/cuneiform/about.d.ts +0 -13
  479. package/lib/commands/cuneiform/about.js +0 -26
  480. package/lib/commands/cuneiform/about.js.map +0 -1
  481. package/lib/commands/hello/world.d.ts +0 -14
  482. package/lib/commands/hello/world.js +0 -27
  483. package/lib/commands/hello/world.js.map +0 -1
  484. package/lib/index.d.ts +0 -2
  485. package/lib/index.js +0 -2
  486. package/lib/index.js.map +0 -1
  487. package/messages/cuneiform.about.md +0 -19
  488. package/messages/hello.world.md +0 -29
@@ -0,0 +1,181 @@
1
+ import type { ISoqlQueryAdapter } from '../adapters/soql/soql-query-adapter.js';
2
+ import type { IRestApiAdapter } from '../adapters/rest/rest-api-adapter.js';
3
+ import type { DeploymentStatus as DeploymentStatusValue, ConfigurationActionStatus } from '../models/status-types.js';
4
+ import type { UserReadinessService } from './UserReadinessService.js';
5
+ /**
6
+ * Permission sets that the configure command can assign (writable actions).
7
+ * The Pro Administrative User permission set is a prerequisite verified via
8
+ * UserReadinessService but NOT assigned by the CLI — admin intervention required.
9
+ */
10
+ export declare const CONFIGURABLE_PERMISSION_SETS: readonly string[];
11
+ /**
12
+ * User configuration profile information from Cuneiform CMT.
13
+ */
14
+ export type UserConfig = {
15
+ /** User ID being checked */
16
+ userId: string;
17
+ /** Active configuration profile developer name */
18
+ profileDeveloperName?: string;
19
+ /** Active configuration profile label */
20
+ profileLabel?: string;
21
+ /** Whether API-only profiling is enabled */
22
+ apiOnlyProfilingEnabled: boolean;
23
+ };
24
+ /**
25
+ * Result of a CMT deployment trigger.
26
+ */
27
+ export type DeploymentResult = {
28
+ /** Whether the deployment was successfully triggered */
29
+ triggered: boolean;
30
+ /** The deployment job ID (for status tracking) */
31
+ jobId?: string;
32
+ /** Message describing the result */
33
+ message: string;
34
+ };
35
+ /**
36
+ * Status of a CMT deployment job.
37
+ */
38
+ export type DeploymentStatus = {
39
+ /** The deployment job ID */
40
+ jobId: string;
41
+ /** Current status (Pending, InProgress, Succeeded, Failed, Canceled) */
42
+ status: DeploymentStatusValue;
43
+ /** Whether the deployment is complete */
44
+ isComplete: boolean;
45
+ /** Error message if failed */
46
+ errorMessage?: string;
47
+ };
48
+ /**
49
+ * Represents the current configuration state for a user.
50
+ */
51
+ export type ConfigurationState = {
52
+ /** User ID that was checked */
53
+ userId: string;
54
+ /** User's login username */
55
+ username: string;
56
+ /** Whether all required permission sets are assigned */
57
+ hasRequiredPermissionSets: boolean;
58
+ /** Names of missing permission sets (empty if all assigned) */
59
+ missingPermissionSets: string[];
60
+ /** Whether API-only profiling is enabled */
61
+ apiOnlyProfilingEnabled: boolean;
62
+ /** Active profile developer name (if configured) */
63
+ profileDeveloperName?: string;
64
+ };
65
+ /**
66
+ * A single configuration action with its result.
67
+ */
68
+ export type ConfigurationAction = {
69
+ /** Type of action (e.g., 'assignPermissionSet', 'enableApiOnlyProfiling') */
70
+ type: 'assignPermissionSet' | 'enableApiOnlyProfiling' | 'unassignPermissionSet' | 'disableApiOnlyProfiling';
71
+ /** Target identifier (permission set name or profile name) */
72
+ target: string;
73
+ /** Human-readable label for the target (e.g., 'Cuneiform for CRM: API-Based Profiling') */
74
+ targetLabel?: string;
75
+ /** Action status */
76
+ status: ConfigurationActionStatus;
77
+ /** Reason for skipping or failure message */
78
+ message?: string;
79
+ /** Additional details (e.g., PermissionSetAssignment ID, deployment job ID) */
80
+ details?: Record<string, string>;
81
+ };
82
+ /**
83
+ * Result of the configure orchestration method.
84
+ */
85
+ export type UserConfigurationResult = {
86
+ /** User information */
87
+ user: {
88
+ id: string;
89
+ username: string;
90
+ };
91
+ /** Whether this was a dry-run (no changes applied) */
92
+ dryRun: boolean;
93
+ /** Configuration state before changes */
94
+ previousState: ConfigurationState;
95
+ /** Actions taken or planned */
96
+ actions: ConfigurationAction[];
97
+ /** Configuration state after changes (null for dry-run) */
98
+ currentState: ConfigurationState | null;
99
+ /** Summary statistics */
100
+ summary: {
101
+ /** Number of changes required */
102
+ changesRequired: number;
103
+ /** Number of changes successfully applied */
104
+ changesApplied: number;
105
+ /** Number of changes that failed */
106
+ changesFailed: number;
107
+ /**
108
+ * Whether the user has all required configuration (permission sets assigned + API-only enabled).
109
+ * For configure(): true when all permissions are in place after changes.
110
+ * For unconfigure(): reflects the post-unconfigure state (typically false after successful unconfigure).
111
+ */
112
+ isReady: boolean;
113
+ };
114
+ };
115
+ /**
116
+ * Raw Active Configuration CMT query record with relationship.
117
+ */
118
+ export type ActiveConfigurationRecord = {
119
+ Id: string;
120
+ DeveloperName: string;
121
+ pnova__Active_Configuration_Profile__r?: {
122
+ Id: string;
123
+ DeveloperName: string;
124
+ Label: string;
125
+ pnova__Enable_API_Only_Profiling__c: boolean;
126
+ };
127
+ };
128
+ /**
129
+ * Raw DeployRequest query record for status tracking.
130
+ */
131
+ export type DeployRequestRecord = {
132
+ Id: string;
133
+ Status: string;
134
+ ErrorMessage?: string;
135
+ };
136
+ /**
137
+ * Raw PermissionSet query record.
138
+ */
139
+ export type PermissionSetRecord = {
140
+ Id: string;
141
+ Name: string;
142
+ NamespacePrefix: string | null;
143
+ };
144
+ /**
145
+ * Configuration for UserConfigurationService.
146
+ */
147
+ export type IUserConfigurationServiceConfig = {
148
+ /** SOQL query adapter for CMT queries */
149
+ soqlAdapter: ISoqlQueryAdapter;
150
+ /** REST API adapter for CMT deployments and record inserts */
151
+ restApiAdapter: IRestApiAdapter;
152
+ /** User readiness service for checking user state (required for configure()) */
153
+ userReadinessService?: UserReadinessService;
154
+ /** Optional logger for debug output */
155
+ logger?: Console;
156
+ };
157
+ /**
158
+ * Shared service dependencies passed to configure/unconfigure mode classes.
159
+ *
160
+ * These are the subset of UserConfigurationService methods that modes need
161
+ * to perform their work. Using an interface decouples modes from the
162
+ * full service class.
163
+ */
164
+ export type IConfigurationServiceDeps = {
165
+ /** SOQL adapter for queries */
166
+ soqlAdapter: ISoqlQueryAdapter;
167
+ /** REST API adapter for record operations */
168
+ restApiAdapter: IRestApiAdapter;
169
+ /** User readiness service (always available within modes) */
170
+ userReadinessService: UserReadinessService;
171
+ /** Optional logger */
172
+ logger?: Console;
173
+ /** Get the ID of a permission set by name and namespace */
174
+ getPermissionSetId: (name: string, namespace: string) => Promise<import('../models/service-result.js').ServiceResult<string | null>>;
175
+ /** Enable API-only profiling for a profile */
176
+ enableApiOnlyProfiling: (profileDeveloperName: string) => Promise<import('../models/service-result.js').ServiceResult<DeploymentResult>>;
177
+ /** Disable API-only profiling for a profile */
178
+ disableApiOnlyProfiling: (profileDeveloperName: string) => Promise<import('../models/service-result.js').ServiceResult<DeploymentResult>>;
179
+ /** Wait for a deployment to complete */
180
+ waitForDeploymentCompletion: (jobId: string) => Promise<import('../models/service-result.js').ServiceResult<DeploymentStatus>>;
181
+ };
@@ -0,0 +1,14 @@
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
+ * Permission sets that the configure command can assign (writable actions).
10
+ * The Pro Administrative User permission set is a prerequisite verified via
11
+ * UserReadinessService but NOT assigned by the CLI — admin intervention required.
12
+ */
13
+ export const CONFIGURABLE_PERMISSION_SETS = ['Cuneiform_for_CRM_Global_Profiling_Support'];
14
+ //# sourceMappingURL=UserConfigurationTypes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UserConfigurationTypes.js","sourceRoot":"","sources":["../../src/services/UserConfigurationTypes.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAOH;;;;GAIG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAsB,CAAC,4CAA4C,CAAU,CAAC"}
@@ -0,0 +1,347 @@
1
+ import type { ISoqlQueryAdapter } from '../adapters/soql/soql-query-adapter.js';
2
+ import type { IRestApiAdapter } from '../adapters/rest/rest-api-adapter.js';
3
+ import type { ServiceResult } from '../models/service-result.js';
4
+ import type { OrgType } from './OrgInfoService.js';
5
+ /**
6
+ * Response shape from the ISV profiling status endpoint.
7
+ *
8
+ * @see GET /services/apexrest/pnova/v1/profiling/status
9
+ */
10
+ export type FeatureStatus = {
11
+ /** Whether the overall feature is enabled for this organization */
12
+ featureEnabled: boolean;
13
+ /** Whether API-Based Profiling is enabled */
14
+ apiBasedProfilingEnabled: boolean;
15
+ /** Whether self-registration is enabled */
16
+ selfRegistrationEnabled: boolean;
17
+ /** Installed package version string */
18
+ packageVersion: string;
19
+ };
20
+ /**
21
+ * Permission set names required for Cuneiform operations.
22
+ */
23
+ export declare const REQUIRED_PERMISSION_SETS: readonly ["Cuneiform_for_CRM_PRO_Administrative_User", "Cuneiform_for_CRM_Global_Profiling_Support"];
24
+ /**
25
+ * Maps required permission set API names to their human-readable labels.
26
+ * Used as a fallback when the live PermissionSet.Label cannot be queried
27
+ * (e.g., the org lacks the package or the user lacks read access). Live
28
+ * labels from the org are preferred — these values must mirror the package
29
+ * `PermissionSet.label` so display stays consistent regardless of source.
30
+ */
31
+ export declare const REQUIRED_PERMISSION_SET_LABELS: Record<string, string>;
32
+ /**
33
+ * Org types that allow configure operations.
34
+ * Production is the only blocked type.
35
+ */
36
+ export declare const CONFIGURE_ALLOWED_ORG_TYPES: readonly OrgType[];
37
+ /**
38
+ * Status of a single permission set assignment.
39
+ */
40
+ export type PermissionSetAssignmentStatus = {
41
+ /** Permission set API name */
42
+ name: string;
43
+ /** Permission set label (human-readable display name) */
44
+ label?: string;
45
+ /** Whether the permission set is assigned to the user */
46
+ isAssigned: boolean;
47
+ /** Whether this permission set is required */
48
+ isRequired: boolean;
49
+ };
50
+ /**
51
+ * Result of permission set check.
52
+ */
53
+ export type PermissionSetStatus = {
54
+ /** Whether all required permission sets are assigned */
55
+ hasAllRequired: boolean;
56
+ /** Status of each checked permission set */
57
+ assignments: PermissionSetAssignmentStatus[];
58
+ /** Names of missing required permission sets */
59
+ missingRequired: string[];
60
+ };
61
+ /**
62
+ * Configuration profile information from Cuneiform CMT.
63
+ */
64
+ export type ConfigProfileStatus = {
65
+ /** Whether a config profile is configured */
66
+ isConfigured: boolean;
67
+ /** Developer name of the active profile */
68
+ profileDeveloperName?: string;
69
+ /** Label of the active profile */
70
+ profileLabel?: string;
71
+ /** Whether API-only profiling is enabled */
72
+ apiOnlyProfilingEnabled?: boolean;
73
+ /** Whether CLI self-provisioning (self-registration) is enabled */
74
+ selfRegistrationEnabled?: boolean;
75
+ };
76
+ /**
77
+ * Complete user readiness status.
78
+ */
79
+ export type UserReadiness = {
80
+ /** User ID that was checked */
81
+ userId: string;
82
+ /** Whether the user is ready to use Cuneiform */
83
+ isReady: boolean;
84
+ /** Whether Cuneiform is installed in the org */
85
+ isCuneiformInstalled: boolean;
86
+ /** Permission set status */
87
+ permissionSets: PermissionSetStatus;
88
+ /** Configuration profile status */
89
+ configProfile: ConfigProfileStatus;
90
+ /** Human-readable readiness messages */
91
+ messages: string[];
92
+ };
93
+ /**
94
+ * Authenticated user identity information.
95
+ *
96
+ * Contains user profile details retrieved from the Salesforce User object
97
+ * with Profile and UserRole relationship data.
98
+ */
99
+ export type UserInfo = {
100
+ /** Salesforce User ID (18-character) */
101
+ id: string;
102
+ /** User's login username */
103
+ username: string;
104
+ /** User's full name (Name field) */
105
+ fullName: string;
106
+ /** User's email address */
107
+ email: string;
108
+ /** Name of the user's assigned Profile */
109
+ profileName: string;
110
+ /** Name of the user's assigned Role (null if no role assigned) */
111
+ roleName: string | null;
112
+ /** Whether the user account is active */
113
+ isActive: boolean;
114
+ };
115
+ /**
116
+ * Configuration for UserReadinessService.
117
+ */
118
+ export type IUserReadinessServiceConfig = {
119
+ /** SOQL query adapter for permission and CMT queries */
120
+ soqlAdapter: ISoqlQueryAdapter;
121
+ /** Optional logger for debug output */
122
+ logger?: Console;
123
+ /** Optional REST client for server-side readiness checks via ISV REST API */
124
+ restClient?: import('../adapters/rest/profiling-rest-client.js').ProfilingRestClient;
125
+ };
126
+ /**
127
+ * Service for validating user readiness to use Cuneiform.
128
+ *
129
+ * Checks whether a user has the required permission sets and configuration
130
+ * profile to execute Cuneiform operations. Also detects if Cuneiform is
131
+ * installed in the org.
132
+ *
133
+ * @example
134
+ * ```typescript
135
+ * const service = new UserReadinessService({ soqlAdapter });
136
+ *
137
+ * const result = await service.checkReadiness(userId);
138
+ * if (result.success) {
139
+ * if (result.data.isReady) {
140
+ * console.log('User is ready to use Cuneiform');
141
+ * } else {
142
+ * console.log('Issues:', result.data.messages.join(', '));
143
+ * }
144
+ * }
145
+ * ```
146
+ */
147
+ export declare class UserReadinessService {
148
+ private readonly soqlAdapter;
149
+ private readonly logger?;
150
+ private readonly restClient?;
151
+ constructor(config: IUserReadinessServiceConfig);
152
+ /**
153
+ * Checks whether configure operations are allowed in the given org type.
154
+ *
155
+ * Only Production orgs are blocked. Developer, Sandbox, Scratch, and Trial
156
+ * orgs are all allowed to run configure operations.
157
+ *
158
+ * @param orgType - The classified org type
159
+ * @returns true if configure is allowed, false for Production
160
+ */
161
+ static isConfigureAllowed(orgType: OrgType): boolean;
162
+ /**
163
+ * Creates an empty UserReadiness result for error cases.
164
+ */
165
+ private static createEmptyReadiness;
166
+ /**
167
+ * Creates an empty UserInfo result for error cases.
168
+ */
169
+ private static createEmptyUserInfo;
170
+ /**
171
+ * Checks if an error message indicates Cuneiform namespace is not found.
172
+ *
173
+ * This typically means the Cuneiform for Salesforce package is not installed in the org.
174
+ * The Salesforce API returns "sObject type not supported" or similar when
175
+ * querying namespaced objects that don't exist.
176
+ */
177
+ private static isCuneiformNamespaceNotFoundError;
178
+ /**
179
+ * Maps the ISV REST API payload to the canonical UserReadiness shape.
180
+ *
181
+ * The Apex endpoint returns flat booleans and differently-named fields
182
+ * (e.g. `assigned` instead of `isAssigned`, `cuneiformInstalled` instead
183
+ * of `isCuneiformInstalled`). This mapper bridges the wire format to
184
+ * the TypeScript domain type so downstream code (buildResult, display)
185
+ * works unchanged.
186
+ */
187
+ private static mapRestPayloadToUserReadiness;
188
+ /**
189
+ * Retrieves user identity information.
190
+ *
191
+ * Queries the User object with Profile and UserRole relationships to build
192
+ * a complete user identity record. Handles null UserRole gracefully since
193
+ * users may not have a role assigned.
194
+ *
195
+ * @param userId - The Salesforce user ID to query
196
+ * @returns ServiceResult containing UserInfo
197
+ *
198
+ * @example
199
+ * ```typescript
200
+ * const result = await service.getUserInfo(userId);
201
+ * if (result.success) {
202
+ * console.log(`User: ${result.data.fullName} (${result.data.profileName})`);
203
+ * if (result.data.roleName) {
204
+ * console.log(`Role: ${result.data.roleName}`);
205
+ * }
206
+ * }
207
+ * ```
208
+ */
209
+ getUserInfo(userId: string): Promise<ServiceResult<UserInfo>>;
210
+ /**
211
+ * Checks complete user readiness for Cuneiform operations.
212
+ *
213
+ * Validates:
214
+ * 1. Cuneiform is installed (by querying CMT)
215
+ * 2. User has required permission sets
216
+ * 3. Configuration profile is set up
217
+ *
218
+ * @param userId - The Salesforce user ID to check
219
+ * @returns ServiceResult containing UserReadiness
220
+ */
221
+ checkReadiness(userId: string): Promise<ServiceResult<UserReadiness>>;
222
+ /**
223
+ * Checks if the user has required Cuneiform permission sets.
224
+ *
225
+ * @param userId - The Salesforce user ID to check
226
+ * @returns ServiceResult containing PermissionSetStatus
227
+ */
228
+ hasRequiredPermissionSets(userId: string): Promise<ServiceResult<PermissionSetStatus>>;
229
+ /**
230
+ * Retrieves the ID of a permission set by name and namespace.
231
+ *
232
+ * Queries the PermissionSet object directly to find a permission set by
233
+ * its Name and NamespacePrefix. This method returns the permission set ID
234
+ * for use in permission set assignment operations.
235
+ *
236
+ * @param permissionSetName - The permission set API name (e.g., 'Cuneiform_for_CRM_Global_Profiling_Support')
237
+ * @param namespacePrefix - The namespace prefix (e.g., 'pnova')
238
+ * @returns ServiceResult containing the permission set ID or null if not found
239
+ *
240
+ * @example
241
+ * ```typescript
242
+ * const result = await service.getPermissionSetId(
243
+ * 'Cuneiform_for_CRM_Global_Profiling_Support',
244
+ * 'pnova'
245
+ * );
246
+ * if (result.success && result.data) {
247
+ * console.log(`Permission Set ID: ${result.data}`);
248
+ * } else if (result.success && result.data === null) {
249
+ * console.log('Permission set not found in org');
250
+ * }
251
+ * ```
252
+ */
253
+ getPermissionSetId(permissionSetName: string, namespacePrefix: string): Promise<ServiceResult<string | null>>;
254
+ /**
255
+ * Checks if a configuration profile is configured.
256
+ *
257
+ * Queries the Cuneiform Active Configuration CMT to determine if a profile
258
+ * is set up. If the CMT doesn't exist, returns E4654 indicating Cuneiform
259
+ * is not installed.
260
+ *
261
+ * @returns ServiceResult containing ConfigProfileStatus
262
+ */
263
+ hasConfigProfile(): Promise<ServiceResult<ConfigProfileStatus>>;
264
+ /**
265
+ * Validates that the user has profiling access to use Cuneiform commands.
266
+ *
267
+ * Checks in order:
268
+ * 1. Cuneiform is installed in the org
269
+ * 2. Required permission sets are assigned
270
+ * 3. Global Profiling is enabled
271
+ *
272
+ * Returns success if all checks pass. Returns a specific error code for the
273
+ * first failing check, with a user-friendly message including remediation steps.
274
+ *
275
+ * @param userId - The Salesforce user ID to validate
276
+ * @returns ServiceResult<void> — success or failure with specific error code
277
+ */
278
+ validateProfilingAccess(userId: string): Promise<ServiceResult<void>>;
279
+ /**
280
+ * Checks the feature status via the ISV profiling status REST endpoint.
281
+ *
282
+ * Calls `GET /services/apexrest/pnova/v1/profiling/status` to determine whether
283
+ * API-Based Profiling is enabled for this organization. This is Gate 0 — if the
284
+ * feature is not enabled, all other gates are moot.
285
+ *
286
+ * Graceful degradation:
287
+ * - On 404 (endpoint not found): returns success with `featureEnabled: true`.
288
+ * Older ISV packages may not expose this endpoint; we don't block them.
289
+ * - On other errors: returns failure with `FEATURE_STATUS_CHECK_FAILED`.
290
+ *
291
+ * @param restAdapter - The REST API adapter for making the HTTP request
292
+ * @returns ServiceResult containing FeatureStatus
293
+ *
294
+ * @example
295
+ * ```typescript
296
+ * const result = await service.checkFeatureStatus(restAdapter);
297
+ * if (result.success && !result.data.featureEnabled) {
298
+ * // Block command execution — feature is disabled
299
+ * }
300
+ * ```
301
+ */
302
+ checkFeatureStatus(restAdapter: IRestApiAdapter): Promise<ServiceResult<FeatureStatus>>;
303
+ /**
304
+ * Queries the org for the canonical `PermissionSet.Label` of each required
305
+ * permission set, regardless of assignment state.
306
+ *
307
+ * Without this, label resolution in `hasRequiredPermissionSets` would
308
+ * differ by assignment state: assigned permsets pull their label from the
309
+ * `PermissionSetAssignment.PermissionSet.Label` join, while unassigned
310
+ * permsets fall back to the `REQUIRED_PERMISSION_SET_LABELS` constant —
311
+ * which drifts whenever the package renames a permset. Failures are
312
+ * non-fatal: callers fall back to the constant.
313
+ *
314
+ * @returns Map of permission set Name → Label. Empty map on query failure.
315
+ */
316
+ private getCanonicalPermissionSetLabels;
317
+ /**
318
+ * Attempts REST delegation for user readiness.
319
+ * Returns the successful result, or null to signal fallback to the local SOQL path.
320
+ * Falls back when REST returns cuneiformInstalled=false (Apex endpoint bug on some orgs).
321
+ */
322
+ private tryRestReadiness;
323
+ /**
324
+ * Delegates user readiness check to the ISV REST API.
325
+ *
326
+ * @param userId - The Salesforce user ID to check
327
+ * @param startTime - Timestamp for duration tracking
328
+ * @returns ServiceResult containing UserReadiness from REST endpoint
329
+ */
330
+ private checkReadinessViaRest;
331
+ /**
332
+ * Checks for required permission sets accessible through PermissionSetGroup membership.
333
+ *
334
+ * Two-step query approach for precision:
335
+ * 1. Get the specific PermissionSetGroup IDs assigned to this user
336
+ * 2. Check if those specific groups contain any of the missing required permission sets
337
+ *
338
+ * Both queries are tightly filtered to avoid pulling excess records:
339
+ * - Group query: filtered by AssigneeId AND PermissionSetGroupId != null
340
+ * - Component query: filtered by specific group IDs, permission set names, AND namespace
341
+ *
342
+ * @param userId - The Salesforce user ID
343
+ * @param missingNames - Permission set names not found via direct assignment
344
+ * @returns Map of permission set names to labels found through group membership
345
+ */
346
+ private getGroupAssignedPermissionSets;
347
+ }