@peernova/cuneiform-sf 1.0.3-beta.0 → 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 +11 -2
  100. package/lib/commands/cuneiform/definition/export.js +56 -20
  101. package/lib/commands/cuneiform/definition/export.js.map +1 -1
  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 +12 -7
  106. package/lib/commands/cuneiform/definition/import.js +30 -19
  107. package/lib/commands/cuneiform/definition/import.js.map +1 -1
  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 +4 -29
  241. package/lib/models/sfdmu-types.js +7 -3
  242. package/lib/models/sfdmu-types.js.map +1 -1
  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 +65 -2
  262. package/lib/operations/DefinitionExportOperation.js +94 -10
  263. package/lib/operations/DefinitionExportOperation.js.map +1 -1
  264. package/lib/operations/DefinitionImportOperation.d.ts +61 -11
  265. package/lib/operations/DefinitionImportOperation.js +194 -31
  266. package/lib/operations/DefinitionImportOperation.js.map +1 -1
  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 +30 -3
  358. package/lib/services/SFDMUService.js +80 -19
  359. package/lib/services/SFDMUService.js.map +1 -1
  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 +56 -13
  457. package/messages/definition.get.md +147 -0
  458. package/messages/definition.import.md +35 -18
  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 +2315 -4839
  476. package/oclif.manifest.json +2713 -82
  477. package/package.json +99 -17
  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,493 @@
1
+ import type { IConnectionFacade, DescribeGlobalResult } from '../adapters/connection-facade.js';
2
+ import type { ISoqlQueryAdapter } from '../adapters/soql/soql-query-adapter.js';
3
+ import type { IToolingApiAdapter } from '../adapters/tooling/tooling-api-adapter.js';
4
+ import type { IRestApiAdapter } from '../adapters/rest/rest-api-adapter.js';
5
+ import type { ServiceResult } from '../models/service-result.js';
6
+ /**
7
+ * Org identity information from the Salesforce API.
8
+ */
9
+ export type OrgIdentity = {
10
+ /** The user ID of the current user */
11
+ userId: string;
12
+ /** The organization ID */
13
+ organizationId: string;
14
+ /** The username of the current user */
15
+ username: string;
16
+ /** The organization name */
17
+ organizationName?: string;
18
+ /** Whether this is a sandbox org */
19
+ isSandbox?: boolean;
20
+ /** The org type (e.g., 'Developer Edition', 'Enterprise Edition') */
21
+ organizationType?: string;
22
+ /** The org's namespace prefix (if any) */
23
+ namespacePrefix?: string;
24
+ };
25
+ /**
26
+ * API limit information from /limits endpoint.
27
+ */
28
+ export type OrgLimit = {
29
+ /** Name of the limit */
30
+ name: string;
31
+ /** Maximum allowed value */
32
+ max: number;
33
+ /** Number of used units */
34
+ used: number;
35
+ /** Percentage used (0-100) */
36
+ percentUsed: number;
37
+ };
38
+ /**
39
+ * Org limits aggregated from /limits endpoint.
40
+ */
41
+ export type OrgLimits = {
42
+ /** All limits indexed by name */
43
+ limits: Record<string, OrgLimit>;
44
+ /** Daily API requests limit */
45
+ dailyApiRequests?: OrgLimit;
46
+ /** Data storage limit in MB */
47
+ dataStorageMB?: OrgLimit;
48
+ /** File storage limit in MB */
49
+ fileStorageMB?: OrgLimit;
50
+ /** Daily Bulk API 1.0 requests */
51
+ dailyBulkApiRequests?: OrgLimit;
52
+ /** Daily Bulk API 2.0 query jobs */
53
+ dailyBulkV2QueryJobs?: OrgLimit;
54
+ /** Daily async Apex executions */
55
+ dailyAsyncApexExecutions?: OrgLimit;
56
+ /** Daily streaming/platform events delivered */
57
+ dailyStreamingApiEvents?: OrgLimit;
58
+ };
59
+ /**
60
+ * Information about an installed package.
61
+ */
62
+ export type InstalledPackage = {
63
+ /** The subscriber package ID */
64
+ id: string;
65
+ /** The namespace prefix */
66
+ namespacePrefix: string;
67
+ /** The package name */
68
+ name: string;
69
+ /** The installed version number */
70
+ versionNumber: string;
71
+ /** Whether this is a managed package */
72
+ isManaged: boolean;
73
+ /** The product name (from NAMESPACE_PRODUCT_MAP) */
74
+ productName?: string;
75
+ };
76
+ /**
77
+ * Complete org information aggregated from multiple sources.
78
+ */
79
+ export type OrgInfo = {
80
+ /** Org identity information */
81
+ identity: OrgIdentity;
82
+ /** API limits */
83
+ limits: OrgLimits;
84
+ /** Installed packages */
85
+ packages: InstalledPackage[];
86
+ /** Active namespaces detected in the org */
87
+ activeNamespaces: string[];
88
+ /** Cuneiform version (null if not installed) */
89
+ cuneiformVersion: string | null;
90
+ };
91
+ /**
92
+ * Org features detected via object/field probing.
93
+ */
94
+ export type OrgFeatures = {
95
+ /** Whether multi-currency is enabled (CurrencyIsoCode field exists) */
96
+ multiCurrency: boolean;
97
+ /** Whether enhanced notes is enabled (ContentNote object is queryable) */
98
+ enhancedNotes: boolean;
99
+ /** Whether state/country picklists is enabled (CountryCode field exists on Address) */
100
+ stateCountryPicklists: boolean;
101
+ /** Whether territory management 2.0 is enabled (Territory2 object exists) */
102
+ territoryManagement: boolean;
103
+ /** Whether person accounts is enabled (IsPersonAccount field exists on Account) */
104
+ personAccounts: boolean;
105
+ /** Whether digital experiences (communities) is enabled (Network object exists) */
106
+ digitalExperiences: boolean;
107
+ /** Whether Einstein AI scoring features are enabled (AIRecordInsight object exists) */
108
+ einsteinAI: boolean;
109
+ };
110
+ /**
111
+ * Information about a detected Salesforce Cloud or product.
112
+ */
113
+ export type DetectedCloud = {
114
+ /** Display name: "Sales Cloud", "Financial Services Cloud" */
115
+ name: string;
116
+ /** How it's detected: license-based or package-based */
117
+ type: 'license' | 'package';
118
+ /** Whether detected in org */
119
+ installed: boolean;
120
+ /** Total licenses purchased (for license-based clouds) */
121
+ totalLicenses?: number;
122
+ /** Licenses in use (for license-based clouds) */
123
+ usedLicenses?: number;
124
+ /** Package namespace (for package-based clouds) */
125
+ namespace?: string;
126
+ /** Version if installed (for package-based clouds) */
127
+ version?: string;
128
+ /** License status from UserLicense.Status (for license-based clouds) */
129
+ status?: string;
130
+ };
131
+ /**
132
+ * User license information from UserLicense object.
133
+ */
134
+ export type LicenseInfo = {
135
+ /** The license ID */
136
+ id: string;
137
+ /** The license name */
138
+ name: string;
139
+ /** The master label */
140
+ masterLabel: string;
141
+ /** Total licenses available */
142
+ totalLicenses: number;
143
+ /** Licenses currently in use */
144
+ usedLicenses: number;
145
+ /** License status */
146
+ status: string;
147
+ /** License type: user or permissionSet */
148
+ type: 'user' | 'permissionSet';
149
+ };
150
+ /**
151
+ * Information about an installed namespace with object count.
152
+ */
153
+ export type InstalledNamespace = {
154
+ /** Mapped product name or "Unknown" */
155
+ productName: string;
156
+ /** Namespace prefix: "FinServ", "SBQQ" */
157
+ prefix: string;
158
+ /** Number of objects with this namespace */
159
+ objectCount: number;
160
+ /** Number of objects with at least one record */
161
+ populatedCount: number;
162
+ /** Number of objects with zero records */
163
+ emptyCount: number;
164
+ };
165
+ /**
166
+ * Summary of namespaces discovered via describeGlobal().
167
+ */
168
+ export type NamespaceSummary = {
169
+ /** Total unique namespaces */
170
+ count: number;
171
+ /** Details per namespace */
172
+ namespaces: InstalledNamespace[];
173
+ };
174
+ /**
175
+ * Extended Cuneiform package info with license details.
176
+ */
177
+ export type CuneiformPackageInfo = {
178
+ /** Whether the package is installed */
179
+ installed: boolean;
180
+ /** Package version if installed */
181
+ version?: string;
182
+ /** Install date if available */
183
+ installedDate?: string;
184
+ /** License expiration date if available */
185
+ licenseExpirationDate?: string;
186
+ /** License status */
187
+ licenseStatus: 'Active' | 'Expired' | 'Suspended' | 'Unknown' | 'Not Installed';
188
+ };
189
+ /**
190
+ * Org type classification.
191
+ */
192
+ export type OrgType = 'Production' | 'Sandbox' | 'Scratch' | 'Developer' | 'Trial';
193
+ /**
194
+ * A business process with its associated record types.
195
+ */
196
+ export type BusinessProcessInfo = {
197
+ /** Process name */
198
+ name: string;
199
+ /** Object API name (Opportunity, Case, Lead, Solution) */
200
+ objectName: string;
201
+ /** Whether the process is active */
202
+ isActive: boolean;
203
+ /** Description if provided */
204
+ description?: string;
205
+ /** Number of record types using this process */
206
+ recordTypeCount: number;
207
+ /** Record type names using this process */
208
+ recordTypeNames: string[];
209
+ };
210
+ /**
211
+ * Summary of business processes discovered in the org.
212
+ */
213
+ export type BusinessProcessSummary = {
214
+ /** Total process count */
215
+ count: number;
216
+ /** Processes grouped by object */
217
+ processes: BusinessProcessInfo[];
218
+ };
219
+ /**
220
+ * Configuration for OrgInfoService.
221
+ */
222
+ export type IOrgInfoServiceConfig = {
223
+ /** Connection facade for identity and limits */
224
+ connectionFacade: IConnectionFacade;
225
+ /** SOQL query adapter for org info queries */
226
+ soqlAdapter: ISoqlQueryAdapter;
227
+ /** Optional Tooling API adapter for package queries */
228
+ toolingAdapter?: IToolingApiAdapter;
229
+ /** Optional REST API adapter for describeGlobal and feature detection */
230
+ restAdapter?: IRestApiAdapter;
231
+ /** Optional logger for debug output */
232
+ logger?: Console;
233
+ /** Optional REST client for server-side org info via ISV REST API */
234
+ restClient?: import('../adapters/rest/profiling-rest-client.js').ProfilingRestClient;
235
+ };
236
+ /**
237
+ * Service for aggregating org-level metadata.
238
+ *
239
+ * Provides methods to retrieve org identity, API limits, installed packages,
240
+ * active namespaces, and Cuneiform version information.
241
+ *
242
+ * @example
243
+ * ```typescript
244
+ * const service = new OrgInfoService({
245
+ * connectionFacade,
246
+ * soqlAdapter,
247
+ * toolingAdapter, // optional
248
+ * });
249
+ *
250
+ * const result = await service.getOrgInfo();
251
+ * if (result.success) {
252
+ * console.log(`Org: ${result.data.identity.organizationName}`);
253
+ * console.log(`Cuneiform: ${result.data.cuneiformVersion ?? 'Not installed'}`);
254
+ * }
255
+ * ```
256
+ */
257
+ export declare class OrgInfoService {
258
+ private readonly connectionFacade;
259
+ private readonly soqlAdapter;
260
+ private readonly toolingAdapter?;
261
+ private readonly restAdapter?;
262
+ private readonly logger?;
263
+ private readonly restClient?;
264
+ constructor(config: IOrgInfoServiceConfig);
265
+ /**
266
+ * Classifies the org type based on Organization record data.
267
+ *
268
+ * @param isSandbox - Whether the org is marked as sandbox
269
+ * @param orgType - The OrganizationType field value
270
+ * @param trialExpirationDate - Trial expiration date if set
271
+ * @returns The classified OrgType
272
+ */
273
+ static classifyOrgType(isSandbox: boolean | undefined, orgType: string | undefined, trialExpirationDate?: string): OrgType;
274
+ /**
275
+ * Transforms raw limits response to OrgLimit format.
276
+ *
277
+ * Calculates percentage utilization from Max and Remaining values.
278
+ * Returns 0% if Max is 0 to avoid division by zero.
279
+ */
280
+ private static transformLimit;
281
+ /**
282
+ * Maps InstalledPackageRecord to InstalledPackage.
283
+ *
284
+ * Formats version as semantic version string (Major.Minor.Patch.Build)
285
+ * and looks up human-readable product name by namespace prefix.
286
+ */
287
+ private static mapPackage;
288
+ /**
289
+ * Extracts active namespaces from installed packages.
290
+ */
291
+ private static extractActiveNamespaces;
292
+ /**
293
+ * Finds the Cuneiform installed package by namespace + identity signal.
294
+ *
295
+ * Disambiguates orgs where multiple records share `NamespacePrefix='pnova'` (CLI-3416, CLI-3417).
296
+ * Resolution order: (1) a candidate whose `name` matches `CUNEIFORM_MAIN_PACKAGE_NAMES`
297
+ * (e.g., 'Cuneiform for Salesforce'); (2) a candidate without a colon in its name — extension
298
+ * packages follow the `Main: Subtitle` convention (e.g., 'Cuneiform for CRM: Data Health
299
+ * Reports'), so a non-colon name is preferred over an extension; (3) the first namespace
300
+ * candidate — ensures the helper never returns `undefined` when at least one `pnova`-namespace
301
+ * package exists.
302
+ */
303
+ private static findCuneiformPackage;
304
+ /**
305
+ * Finds the Cuneiform package version from installed packages.
306
+ */
307
+ private static findCuneiformVersion;
308
+ /**
309
+ * Detects additional cloud products from PermissionSetLicense data.
310
+ */
311
+ private static detectPslClouds;
312
+ /**
313
+ * Groups objects by namespace from global describe result.
314
+ *
315
+ * Extracts namespace prefixes from custom object names matching pattern:
316
+ * Namespace__ObjectName__c
317
+ *
318
+ * @param globalDescribe - The global describe result
319
+ * @returns Map of namespace prefix to object names and count
320
+ */
321
+ private static groupNamespaceObjects;
322
+ /**
323
+ * Builds the SOQL string for a LIMIT 0 field-existence probe, sanitizing both
324
+ * identifiers via sanitizeSoqlIdentifier. Returns null when either identifier
325
+ * is invalid — callers MUST treat null as "field cannot exist" without invoking
326
+ * the SOQL adapter.
327
+ *
328
+ * Pure, side-effect-free, and exposed at the class level so the sanitizer
329
+ * hardening introduced in CLI-3174 can be unit-tested directly.
330
+ */
331
+ private static buildProbeQuery;
332
+ /**
333
+ * Retrieves complete org information.
334
+ *
335
+ * Executes multiple API calls in parallel for performance:
336
+ * - Identity + Organization SOQL (getOrgIdentity)
337
+ * - Limits API (getOrgLimits)
338
+ * - Installed packages via Tooling API (getInstalledPackages)
339
+ *
340
+ * @returns ServiceResult containing complete OrgInfo
341
+ */
342
+ getOrgInfo(): Promise<ServiceResult<OrgInfo>>;
343
+ /**
344
+ * Retrieves org identity information.
345
+ *
346
+ * Combines connection.identity() with Organization SOQL query for complete info.
347
+ *
348
+ * @returns ServiceResult containing OrgIdentity
349
+ */
350
+ getOrgIdentity(): Promise<ServiceResult<OrgIdentity>>;
351
+ /**
352
+ * Retrieves org API limits.
353
+ *
354
+ * Calls /limits REST endpoint and transforms to OrgLimits format.
355
+ *
356
+ * @returns ServiceResult containing OrgLimits
357
+ */
358
+ getOrgLimits(): Promise<ServiceResult<OrgLimits>>;
359
+ /**
360
+ * Retrieves installed packages via Tooling API.
361
+ *
362
+ * If Tooling adapter is not provided, returns empty array with warning.
363
+ *
364
+ * @returns ServiceResult containing array of InstalledPackage
365
+ */
366
+ getInstalledPackages(): Promise<ServiceResult<InstalledPackage[]>>;
367
+ /**
368
+ * Retrieves active namespaces from installed packages.
369
+ *
370
+ * @returns ServiceResult containing array of namespace strings
371
+ */
372
+ getActiveNamespaces(): Promise<ServiceResult<string[]>>;
373
+ /**
374
+ * Retrieves the Cuneiform version if installed.
375
+ *
376
+ * @returns ServiceResult containing version string or null if not installed
377
+ */
378
+ getCuneiformVersion(): Promise<ServiceResult<string | null>>;
379
+ /**
380
+ * Fetches the describeGlobal result from the REST adapter.
381
+ *
382
+ * Used by OrgDetailsOperation to cache the result across multiple service calls,
383
+ * avoiding redundant API round-trips for features, clouds, and namespace detection.
384
+ *
385
+ * @returns ServiceResult containing DescribeGlobalResult
386
+ */
387
+ fetchDescribeGlobal(): Promise<ServiceResult<DescribeGlobalResult>>;
388
+ /**
389
+ * Detects org features via object/field probing.
390
+ *
391
+ * Checks for:
392
+ * - Multi-Currency: CurrencyType object exists in describeGlobal
393
+ * - Enhanced Notes: ContentNote object is queryable
394
+ * - State/Country Picklists: BillingCountryCode field exists on Account
395
+ * - Territory Management: Territory2 object exists
396
+ * - Person Accounts: IsPersonAccount field exists on Account
397
+ * - Digital Experiences: Network object exists in describeGlobal
398
+ * - Einstein AI: AIRecordInsight object exists in describeGlobal
399
+ *
400
+ * @param cachedGlobal - Optional pre-fetched describeGlobal result to avoid redundant API calls
401
+ * @returns ServiceResult containing OrgFeatures
402
+ */
403
+ getOrgFeatures(cachedGlobal?: ServiceResult<DescribeGlobalResult>): Promise<ServiceResult<OrgFeatures>>;
404
+ /**
405
+ * Retrieves license information from UserLicense and PermissionSetLicense.
406
+ *
407
+ * @returns ServiceResult containing array of LicenseInfo
408
+ */
409
+ getLicenseInfo(): Promise<ServiceResult<LicenseInfo[]>>;
410
+ /**
411
+ * Detects installed Salesforce Clouds (Sales Cloud, Service Cloud, Industry Clouds).
412
+ *
413
+ * Combines license-based detection (Sales/Service Cloud via UserLicense) with
414
+ * package-based detection (Industry Clouds via namespace lookup).
415
+ *
416
+ * @param cachedGlobal - Optional pre-fetched describeGlobal result to avoid redundant API calls
417
+ * @returns ServiceResult containing array of DetectedCloud
418
+ */
419
+ getDetectedClouds(cachedGlobal?: ServiceResult<DescribeGlobalResult>, cachedPackages?: ServiceResult<InstalledPackage[]>): Promise<ServiceResult<DetectedCloud[]>>;
420
+ /**
421
+ * Discovers installed namespaces via describeGlobal() with object counts.
422
+ *
423
+ * Extracts unique namespaces from custom object names (pattern: Namespace__ObjectName__c)
424
+ * and counts objects per namespace. Maps known namespaces to product names.
425
+ *
426
+ * @param cachedGlobal - Optional pre-fetched describeGlobal result to avoid redundant API calls
427
+ * @returns ServiceResult containing NamespaceSummary
428
+ */
429
+ getInstalledNamespaces(cachedGlobal?: ServiceResult<DescribeGlobalResult>): Promise<ServiceResult<NamespaceSummary>>;
430
+ /**
431
+ * Retrieves enhanced Cuneiform package information with license details.
432
+ *
433
+ * @returns ServiceResult containing CuneiformPackageInfo
434
+ */
435
+ getCuneiformPackageInfo(cachedPackages?: ServiceResult<InstalledPackage[]>): Promise<ServiceResult<CuneiformPackageInfo>>;
436
+ /**
437
+ * Retrieves business processes with associated record type counts.
438
+ *
439
+ * Queries BusinessProcess records and enriches each with the count and names
440
+ * of RecordTypes linked via BusinessProcessId. If no business processes exist,
441
+ * the RecordType query is skipped entirely.
442
+ *
443
+ * @returns ServiceResult containing BusinessProcessSummary
444
+ */
445
+ getBusinessProcesses(): Promise<ServiceResult<BusinessProcessSummary>>;
446
+ /**
447
+ * Delegates org info retrieval to the ISV REST API.
448
+ *
449
+ * @param startTime - Timestamp for duration tracking
450
+ * @returns ServiceResult containing OrgInfo from REST endpoint
451
+ */
452
+ private getOrgInfoViaRest;
453
+ /**
454
+ * Detects whether the Cuneiform namespace exists by querying a known CMT object.
455
+ *
456
+ * CLI-1569: InstalledSubscriberPackage is empty in scratch orgs where packages are
457
+ * deployed as source metadata. This method queries pnova__Active_Configuration__mdt
458
+ * as a lightweight namespace presence check — if the query succeeds (even with 0
459
+ * records), the namespace exists. If it fails with "sObject type not supported",
460
+ * the namespace is absent.
461
+ *
462
+ * @returns true if the pnova namespace is present, false otherwise
463
+ */
464
+ private detectCuneiformNamespace;
465
+ /**
466
+ * Probes whether a field exists on an object using a LIMIT 0 SOQL query.
467
+ * Returns true if the query succeeds (field exists), false if it fails or the
468
+ * sanitizer rejects the inputs. Much lighter than a full describe.
469
+ *
470
+ * **Input source contract**: callers must pass Salesforce API names already
471
+ * classified as safe (hardcoded constants, describeGlobal results, or upstream
472
+ * validated values). The sanitizer in buildProbeQuery defends against malformed
473
+ * identifiers as a last line of defence, but this method is NOT a user-input
474
+ * gateway — never wire it directly to a flag value or untrusted external input.
475
+ *
476
+ * Today's only call sites pass hardcoded constants from getOrgFeatures()
477
+ * (Account / BillingCountryCode / IsPersonAccount). The sanitizer is in place
478
+ * defensively so a future caller cannot accidentally introduce SOQL injection.
479
+ */
480
+ private probeFieldExists;
481
+ /**
482
+ * Detects Sales Cloud and Service Cloud from license data and global describe.
483
+ *
484
+ * Uses license patterns to find Sales/Service Cloud licenses, then confirms
485
+ * by checking for Opportunity (Sales) and Case (Service) objects in the org.
486
+ */
487
+ private detectLicenseClouds;
488
+ /**
489
+ * Resolves whether Opportunity and Case objects exist in the org.
490
+ * Uses cached global describe if available, otherwise fetches fresh.
491
+ */
492
+ private resolveCloudObjects;
493
+ }