@peernova/cuneiform-sf 1.0.3-beta.0 → 1.0.4-beta.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (494) hide show
  1. package/LICENSE +81 -30
  2. package/README.md +59 -95
  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/index.d.ts +33 -0
  10. package/lib/adapters/index.js +50 -0
  11. package/lib/adapters/index.js.map +1 -0
  12. package/lib/adapters/lifecycle.d.ts +119 -0
  13. package/lib/adapters/lifecycle.js +94 -0
  14. package/lib/adapters/lifecycle.js.map +1 -0
  15. package/lib/adapters/rest/cache.d.ts +69 -0
  16. package/lib/adapters/rest/cache.js +133 -0
  17. package/lib/adapters/rest/cache.js.map +1 -0
  18. package/lib/adapters/rest/index.d.ts +11 -0
  19. package/lib/adapters/rest/index.js +18 -0
  20. package/lib/adapters/rest/index.js.map +1 -0
  21. package/lib/adapters/rest/profiling-rest-client.d.ts +137 -0
  22. package/lib/adapters/rest/profiling-rest-client.js +115 -0
  23. package/lib/adapters/rest/profiling-rest-client.js.map +1 -0
  24. package/lib/adapters/rest/rest-api-adapter.d.ts +389 -0
  25. package/lib/adapters/rest/rest-api-adapter.js +747 -0
  26. package/lib/adapters/rest/rest-api-adapter.js.map +1 -0
  27. package/lib/adapters/rest/types.d.ts +34 -0
  28. package/lib/adapters/rest/types.js +9 -0
  29. package/lib/adapters/rest/types.js.map +1 -0
  30. package/lib/adapters/retry.d.ts +91 -0
  31. package/lib/adapters/retry.js +215 -0
  32. package/lib/adapters/retry.js.map +1 -0
  33. package/lib/adapters/soql/cuneiform-query-builder.d.ts +391 -0
  34. package/lib/adapters/soql/cuneiform-query-builder.js +559 -0
  35. package/lib/adapters/soql/cuneiform-query-builder.js.map +1 -0
  36. package/lib/adapters/soql/index.d.ts +13 -0
  37. package/lib/adapters/soql/index.js +21 -0
  38. package/lib/adapters/soql/index.js.map +1 -0
  39. package/lib/adapters/soql/soql-query-adapter.d.ts +141 -0
  40. package/lib/adapters/soql/soql-query-adapter.js +259 -0
  41. package/lib/adapters/soql/soql-query-adapter.js.map +1 -0
  42. package/lib/adapters/soql/types.d.ts +37 -0
  43. package/lib/adapters/soql/types.js +19 -0
  44. package/lib/adapters/soql/types.js.map +1 -0
  45. package/lib/adapters/testing/index.d.ts +37 -0
  46. package/lib/adapters/testing/index.js +20 -0
  47. package/lib/adapters/testing/index.js.map +1 -0
  48. package/lib/adapters/testing/mock-connection.d.ts +77 -0
  49. package/lib/adapters/testing/mock-connection.js +207 -0
  50. package/lib/adapters/testing/mock-connection.js.map +1 -0
  51. package/lib/adapters/testing/mock-logger.d.ts +29 -0
  52. package/lib/adapters/testing/mock-logger.js +57 -0
  53. package/lib/adapters/testing/mock-logger.js.map +1 -0
  54. package/lib/adapters/testing/mock-mcp-adapters.d.ts +32 -0
  55. package/lib/adapters/testing/mock-mcp-adapters.js +52 -0
  56. package/lib/adapters/testing/mock-mcp-adapters.js.map +1 -0
  57. package/lib/adapters/testing/mock-oclif-config.d.ts +22 -0
  58. package/lib/adapters/testing/mock-oclif-config.js +90 -0
  59. package/lib/adapters/testing/mock-oclif-config.js.map +1 -0
  60. package/lib/adapters/testing/mock-rest-adapter.d.ts +26 -0
  61. package/lib/adapters/testing/mock-rest-adapter.js +243 -0
  62. package/lib/adapters/testing/mock-rest-adapter.js.map +1 -0
  63. package/lib/adapters/testing/mock-salesforce-connection.d.ts +40 -0
  64. package/lib/adapters/testing/mock-salesforce-connection.js +61 -0
  65. package/lib/adapters/testing/mock-salesforce-connection.js.map +1 -0
  66. package/lib/adapters/testing/mock-soql-adapter.d.ts +30 -0
  67. package/lib/adapters/testing/mock-soql-adapter.js +120 -0
  68. package/lib/adapters/testing/mock-soql-adapter.js.map +1 -0
  69. package/lib/adapters/testing/mock-tooling-adapter.d.ts +24 -0
  70. package/lib/adapters/testing/mock-tooling-adapter.js +163 -0
  71. package/lib/adapters/testing/mock-tooling-adapter.js.map +1 -0
  72. package/lib/adapters/testing/stub-connection.d.ts +93 -0
  73. package/lib/adapters/testing/stub-connection.js +97 -0
  74. package/lib/adapters/testing/stub-connection.js.map +1 -0
  75. package/lib/adapters/testing/stub-rest-adapter.d.ts +52 -0
  76. package/lib/adapters/testing/stub-rest-adapter.js +58 -0
  77. package/lib/adapters/testing/stub-rest-adapter.js.map +1 -0
  78. package/lib/adapters/testing/stub-soql-adapter.d.ts +56 -0
  79. package/lib/adapters/testing/stub-soql-adapter.js +50 -0
  80. package/lib/adapters/testing/stub-soql-adapter.js.map +1 -0
  81. package/lib/adapters/testing/types.d.ts +71 -0
  82. package/lib/adapters/testing/types.js +9 -0
  83. package/lib/adapters/testing/types.js.map +1 -0
  84. package/lib/adapters/tooling/index.d.ts +10 -0
  85. package/lib/adapters/tooling/index.js +17 -0
  86. package/lib/adapters/tooling/index.js.map +1 -0
  87. package/lib/adapters/tooling/tooling-api-adapter.d.ts +157 -0
  88. package/lib/adapters/tooling/tooling-api-adapter.js +339 -0
  89. package/lib/adapters/tooling/tooling-api-adapter.js.map +1 -0
  90. package/lib/adapters/tooling/types.d.ts +81 -0
  91. package/lib/adapters/tooling/types.js +9 -0
  92. package/lib/adapters/tooling/types.js.map +1 -0
  93. package/lib/adapters/types.d.ts +112 -0
  94. package/lib/adapters/types.js +169 -0
  95. package/lib/adapters/types.js.map +1 -0
  96. package/lib/base/cuneiform-command.d.ts +152 -0
  97. package/lib/base/cuneiform-command.js +243 -0
  98. package/lib/base/cuneiform-command.js.map +1 -0
  99. package/lib/commands/cuneiform/compatibility/check.d.ts +43 -0
  100. package/lib/commands/cuneiform/compatibility/check.js +114 -0
  101. package/lib/commands/cuneiform/compatibility/check.js.map +1 -0
  102. package/lib/commands/cuneiform/definition/create.d.ts +119 -0
  103. package/lib/commands/cuneiform/definition/create.js +693 -0
  104. package/lib/commands/cuneiform/definition/create.js.map +1 -0
  105. package/lib/commands/cuneiform/definition/export.d.ts +11 -2
  106. package/lib/commands/cuneiform/definition/export.js +56 -20
  107. package/lib/commands/cuneiform/definition/export.js.map +1 -1
  108. package/lib/commands/cuneiform/definition/get.d.ts +86 -0
  109. package/lib/commands/cuneiform/definition/get.js +270 -0
  110. package/lib/commands/cuneiform/definition/get.js.map +1 -0
  111. package/lib/commands/cuneiform/definition/import.d.ts +12 -7
  112. package/lib/commands/cuneiform/definition/import.js +30 -19
  113. package/lib/commands/cuneiform/definition/import.js.map +1 -1
  114. package/lib/commands/cuneiform/definition/list.d.ts +110 -0
  115. package/lib/commands/cuneiform/definition/list.js +344 -0
  116. package/lib/commands/cuneiform/definition/list.js.map +1 -0
  117. package/lib/commands/cuneiform/definition/purge.d.ts +105 -0
  118. package/lib/commands/cuneiform/definition/purge.js +533 -0
  119. package/lib/commands/cuneiform/definition/purge.js.map +1 -0
  120. package/lib/commands/cuneiform/definition/update.d.ts +58 -0
  121. package/lib/commands/cuneiform/definition/update.js +206 -0
  122. package/lib/commands/cuneiform/definition/update.js.map +1 -0
  123. package/lib/commands/cuneiform/mcp/serve.d.ts +56 -0
  124. package/lib/commands/cuneiform/mcp/serve.js +109 -0
  125. package/lib/commands/cuneiform/mcp/serve.js.map +1 -0
  126. package/lib/commands/cuneiform/object/describe.d.ts +61 -0
  127. package/lib/commands/cuneiform/object/describe.js +461 -0
  128. package/lib/commands/cuneiform/object/describe.js.map +1 -0
  129. package/lib/commands/cuneiform/object/list.d.ts +111 -0
  130. package/lib/commands/cuneiform/object/list.js +239 -0
  131. package/lib/commands/cuneiform/object/list.js.map +1 -0
  132. package/lib/commands/cuneiform/org/details.d.ts +99 -0
  133. package/lib/commands/cuneiform/org/details.js +521 -0
  134. package/lib/commands/cuneiform/org/details.js.map +1 -0
  135. package/lib/commands/cuneiform/org/reset.d.ts +46 -0
  136. package/lib/commands/cuneiform/org/reset.js +135 -0
  137. package/lib/commands/cuneiform/org/reset.js.map +1 -0
  138. package/lib/commands/cuneiform/profile/request/cancel.d.ts +59 -0
  139. package/lib/commands/cuneiform/profile/request/cancel.js +202 -0
  140. package/lib/commands/cuneiform/profile/request/cancel.js.map +1 -0
  141. package/lib/commands/cuneiform/profile/request/delete.d.ts +59 -0
  142. package/lib/commands/cuneiform/profile/request/delete.js +223 -0
  143. package/lib/commands/cuneiform/profile/request/delete.js.map +1 -0
  144. package/lib/commands/cuneiform/profile/request/list.d.ts +35 -0
  145. package/lib/commands/cuneiform/profile/request/list.js +102 -0
  146. package/lib/commands/cuneiform/profile/request/list.js.map +1 -0
  147. package/lib/commands/cuneiform/profile.d.ts +90 -0
  148. package/lib/commands/cuneiform/profile.js +322 -0
  149. package/lib/commands/cuneiform/profile.js.map +1 -0
  150. package/lib/commands/cuneiform/summary/purge.d.ts +77 -0
  151. package/lib/commands/cuneiform/summary/purge.js +429 -0
  152. package/lib/commands/cuneiform/summary/purge.js.map +1 -0
  153. package/lib/commands/cuneiform/summary/reprofile.d.ts +60 -0
  154. package/lib/commands/cuneiform/summary/reprofile.js +236 -0
  155. package/lib/commands/cuneiform/summary/reprofile.js.map +1 -0
  156. package/lib/commands/cuneiform/summary/stop.d.ts +59 -0
  157. package/lib/commands/cuneiform/summary/stop.js +234 -0
  158. package/lib/commands/cuneiform/summary/stop.js.map +1 -0
  159. package/lib/commands/cuneiform/user/details.d.ts +73 -0
  160. package/lib/commands/cuneiform/user/details.js +391 -0
  161. package/lib/commands/cuneiform/user/details.js.map +1 -0
  162. package/lib/constants/index.d.ts +8 -0
  163. package/lib/constants/index.js +16 -0
  164. package/lib/constants/index.js.map +1 -0
  165. package/lib/constants/namespace-constants.d.ts +91 -0
  166. package/lib/constants/namespace-constants.js +211 -0
  167. package/lib/constants/namespace-constants.js.map +1 -0
  168. package/lib/debug/command-debug-proxy.d.ts +101 -0
  169. package/lib/debug/command-debug-proxy.js +171 -0
  170. package/lib/debug/command-debug-proxy.js.map +1 -0
  171. package/lib/debug/debug-logger.d.ts +85 -0
  172. package/lib/debug/debug-logger.js +133 -0
  173. package/lib/debug/debug-logger.js.map +1 -0
  174. package/lib/debug/index.d.ts +12 -0
  175. package/lib/debug/index.js +20 -0
  176. package/lib/debug/index.js.map +1 -0
  177. package/lib/debug/service-debug-proxy.d.ts +30 -0
  178. package/lib/debug/service-debug-proxy.js +102 -0
  179. package/lib/debug/service-debug-proxy.js.map +1 -0
  180. package/lib/hooks/prerun.d.ts +25 -0
  181. package/lib/hooks/prerun.js +47 -0
  182. package/lib/hooks/prerun.js.map +1 -0
  183. package/lib/mcp/config/mcp-config.d.ts +55 -0
  184. package/lib/mcp/config/mcp-config.js +51 -0
  185. package/lib/mcp/config/mcp-config.js.map +1 -0
  186. package/lib/mcp/config/pagination.d.ts +96 -0
  187. package/lib/mcp/config/pagination.js +108 -0
  188. package/lib/mcp/config/pagination.js.map +1 -0
  189. package/lib/mcp/config/system-prompts.d.ts +18 -0
  190. package/lib/mcp/config/system-prompts.js +92 -0
  191. package/lib/mcp/config/system-prompts.js.map +1 -0
  192. package/lib/mcp/errors.d.ts +23 -0
  193. package/lib/mcp/errors.js +27 -0
  194. package/lib/mcp/errors.js.map +1 -0
  195. package/lib/mcp/schemas/input-schemas.d.ts +327 -0
  196. package/lib/mcp/schemas/input-schemas.js +302 -0
  197. package/lib/mcp/schemas/input-schemas.js.map +1 -0
  198. package/lib/mcp/server.d.ts +40 -0
  199. package/lib/mcp/server.js +316 -0
  200. package/lib/mcp/server.js.map +1 -0
  201. package/lib/mcp/tools/contactpoint-tools.d.ts +14 -0
  202. package/lib/mcp/tools/contactpoint-tools.js +34 -0
  203. package/lib/mcp/tools/contactpoint-tools.js.map +1 -0
  204. package/lib/mcp/tools/definition-io-tools.d.ts +19 -0
  205. package/lib/mcp/tools/definition-io-tools.js +152 -0
  206. package/lib/mcp/tools/definition-io-tools.js.map +1 -0
  207. package/lib/mcp/tools/definition-tools.d.ts +51 -0
  208. package/lib/mcp/tools/definition-tools.js +199 -0
  209. package/lib/mcp/tools/definition-tools.js.map +1 -0
  210. package/lib/mcp/tools/index.d.ts +37 -0
  211. package/lib/mcp/tools/index.js +88 -0
  212. package/lib/mcp/tools/index.js.map +1 -0
  213. package/lib/mcp/tools/object-tools.d.ts +22 -0
  214. package/lib/mcp/tools/object-tools.js +306 -0
  215. package/lib/mcp/tools/object-tools.js.map +1 -0
  216. package/lib/mcp/tools/org-tools.d.ts +14 -0
  217. package/lib/mcp/tools/org-tools.js +177 -0
  218. package/lib/mcp/tools/org-tools.js.map +1 -0
  219. package/lib/mcp/tools/profile-tools.d.ts +59 -0
  220. package/lib/mcp/tools/profile-tools.js +213 -0
  221. package/lib/mcp/tools/profile-tools.js.map +1 -0
  222. package/lib/mcp/tools/summary-tools.d.ts +14 -0
  223. package/lib/mcp/tools/summary-tools.js +38 -0
  224. package/lib/mcp/tools/summary-tools.js.map +1 -0
  225. package/lib/mcp/tools/tool-factory.d.ts +63 -0
  226. package/lib/mcp/tools/tool-factory.js +146 -0
  227. package/lib/mcp/tools/tool-factory.js.map +1 -0
  228. package/lib/mcp/tools/user-tools.d.ts +25 -0
  229. package/lib/mcp/tools/user-tools.js +167 -0
  230. package/lib/mcp/tools/user-tools.js.map +1 -0
  231. package/lib/models/date-literal.d.ts +211 -0
  232. package/lib/models/date-literal.js +615 -0
  233. package/lib/models/date-literal.js.map +1 -0
  234. package/lib/models/object-describe-types.d.ts +173 -0
  235. package/lib/models/object-describe-types.js +9 -0
  236. package/lib/models/object-describe-types.js.map +1 -0
  237. package/lib/models/profile-request-types.d.ts +118 -0
  238. package/lib/models/profile-request-types.js +23 -0
  239. package/lib/models/profile-request-types.js.map +1 -0
  240. package/lib/models/profiling-execution-types.d.ts +154 -0
  241. package/lib/models/profiling-execution-types.js +14 -0
  242. package/lib/models/profiling-execution-types.js.map +1 -0
  243. package/lib/models/service-result.d.ts +114 -0
  244. package/lib/models/service-result.js +81 -0
  245. package/lib/models/service-result.js.map +1 -0
  246. package/lib/models/sfdmu-types.d.ts +4 -25
  247. package/lib/models/sfdmu-types.js +7 -3
  248. package/lib/models/sfdmu-types.js.map +1 -1
  249. package/lib/models/status-types.d.ts +38 -0
  250. package/lib/models/status-types.js +12 -0
  251. package/lib/models/status-types.js.map +1 -0
  252. package/lib/models/summary-bulk-types.d.ts +61 -0
  253. package/lib/models/summary-bulk-types.js +23 -0
  254. package/lib/models/summary-bulk-types.js.map +1 -0
  255. package/lib/models/user-details-types.d.ts +163 -0
  256. package/lib/models/user-details-types.js +9 -0
  257. package/lib/models/user-details-types.js.map +1 -0
  258. package/lib/models/year-range.d.ts +78 -0
  259. package/lib/models/year-range.js +153 -0
  260. package/lib/models/year-range.js.map +1 -0
  261. package/lib/operations/CompatibilityCheckOperation.d.ts +62 -0
  262. package/lib/operations/CompatibilityCheckOperation.js +102 -0
  263. package/lib/operations/CompatibilityCheckOperation.js.map +1 -0
  264. package/lib/operations/DefinitionCreateOperation.d.ts +411 -0
  265. package/lib/operations/DefinitionCreateOperation.js +1121 -0
  266. package/lib/operations/DefinitionCreateOperation.js.map +1 -0
  267. package/lib/operations/DefinitionExportOperation.d.ts +65 -2
  268. package/lib/operations/DefinitionExportOperation.js +94 -10
  269. package/lib/operations/DefinitionExportOperation.js.map +1 -1
  270. package/lib/operations/DefinitionImportOperation.d.ts +61 -11
  271. package/lib/operations/DefinitionImportOperation.js +194 -31
  272. package/lib/operations/DefinitionImportOperation.js.map +1 -1
  273. package/lib/operations/DefinitionListOperation.d.ts +66 -0
  274. package/lib/operations/DefinitionListOperation.js +108 -0
  275. package/lib/operations/DefinitionListOperation.js.map +1 -0
  276. package/lib/operations/DefinitionPurgeOperation.d.ts +199 -0
  277. package/lib/operations/DefinitionPurgeOperation.js +465 -0
  278. package/lib/operations/DefinitionPurgeOperation.js.map +1 -0
  279. package/lib/operations/DefinitionUpdateOperation.d.ts +78 -0
  280. package/lib/operations/DefinitionUpdateOperation.js +142 -0
  281. package/lib/operations/DefinitionUpdateOperation.js.map +1 -0
  282. package/lib/operations/OrgDetailsOperation.d.ts +253 -0
  283. package/lib/operations/OrgDetailsOperation.js +456 -0
  284. package/lib/operations/OrgDetailsOperation.js.map +1 -0
  285. package/lib/operations/OrgResetOperation.d.ts +114 -0
  286. package/lib/operations/OrgResetOperation.js +209 -0
  287. package/lib/operations/OrgResetOperation.js.map +1 -0
  288. package/lib/operations/ProfileOperation.d.ts +187 -0
  289. package/lib/operations/ProfileOperation.js +373 -0
  290. package/lib/operations/ProfileOperation.js.map +1 -0
  291. package/lib/operations/ProfileRequestCancelOperation.d.ts +59 -0
  292. package/lib/operations/ProfileRequestCancelOperation.js +137 -0
  293. package/lib/operations/ProfileRequestCancelOperation.js.map +1 -0
  294. package/lib/operations/ProfileRequestDeleteOperation.d.ts +64 -0
  295. package/lib/operations/ProfileRequestDeleteOperation.js +134 -0
  296. package/lib/operations/ProfileRequestDeleteOperation.js.map +1 -0
  297. package/lib/operations/ProfileRequestListOperation.d.ts +39 -0
  298. package/lib/operations/ProfileRequestListOperation.js +61 -0
  299. package/lib/operations/ProfileRequestListOperation.js.map +1 -0
  300. package/lib/operations/SummaryPurgeOperation.d.ts +134 -0
  301. package/lib/operations/SummaryPurgeOperation.js +257 -0
  302. package/lib/operations/SummaryPurgeOperation.js.map +1 -0
  303. package/lib/operations/SummaryReprofileOperation.d.ts +88 -0
  304. package/lib/operations/SummaryReprofileOperation.js +174 -0
  305. package/lib/operations/SummaryReprofileOperation.js.map +1 -0
  306. package/lib/operations/SummaryStopOperation.d.ts +87 -0
  307. package/lib/operations/SummaryStopOperation.js +175 -0
  308. package/lib/operations/SummaryStopOperation.js.map +1 -0
  309. package/lib/services/BulkExecutionService.d.ts +120 -0
  310. package/lib/services/BulkExecutionService.js +535 -0
  311. package/lib/services/BulkExecutionService.js.map +1 -0
  312. package/lib/services/CompatibilityService.d.ts +81 -0
  313. package/lib/services/CompatibilityService.js +118 -0
  314. package/lib/services/CompatibilityService.js.map +1 -0
  315. package/lib/services/ConfigureMode.d.ts +85 -0
  316. package/lib/services/ConfigureMode.js +390 -0
  317. package/lib/services/ConfigureMode.js.map +1 -0
  318. package/lib/services/ContactPointService.d.ts +111 -0
  319. package/lib/services/ContactPointService.js +286 -0
  320. package/lib/services/ContactPointService.js.map +1 -0
  321. package/lib/services/DataAvailabilityService.d.ts +81 -0
  322. package/lib/services/DataAvailabilityService.js +128 -0
  323. package/lib/services/DataAvailabilityService.js.map +1 -0
  324. package/lib/services/DefinitionFieldGenerationService.d.ts +309 -0
  325. package/lib/services/DefinitionFieldGenerationService.js +795 -0
  326. package/lib/services/DefinitionFieldGenerationService.js.map +1 -0
  327. package/lib/services/DefinitionQueryBuilder.d.ts +59 -0
  328. package/lib/services/DefinitionQueryBuilder.js +234 -0
  329. package/lib/services/DefinitionQueryBuilder.js.map +1 -0
  330. package/lib/services/ObjectDescribeService.d.ts +436 -0
  331. package/lib/services/ObjectDescribeService.js +869 -0
  332. package/lib/services/ObjectDescribeService.js.map +1 -0
  333. package/lib/services/ObjectFilteringService.d.ts +400 -0
  334. package/lib/services/ObjectFilteringService.js +878 -0
  335. package/lib/services/ObjectFilteringService.js.map +1 -0
  336. package/lib/services/ObjectListCommandService.d.ts +429 -0
  337. package/lib/services/ObjectListCommandService.js +873 -0
  338. package/lib/services/ObjectListCommandService.js.map +1 -0
  339. package/lib/services/ObjectListService.d.ts +201 -0
  340. package/lib/services/ObjectListService.js +345 -0
  341. package/lib/services/ObjectListService.js.map +1 -0
  342. package/lib/services/OrgInfoService.d.ts +485 -0
  343. package/lib/services/OrgInfoService.js +1122 -0
  344. package/lib/services/OrgInfoService.js.map +1 -0
  345. package/lib/services/PollingService.d.ts +105 -0
  346. package/lib/services/PollingService.js +117 -0
  347. package/lib/services/PollingService.js.map +1 -0
  348. package/lib/services/ProfileRequestService.d.ts +186 -0
  349. package/lib/services/ProfileRequestService.js +555 -0
  350. package/lib/services/ProfileRequestService.js.map +1 -0
  351. package/lib/services/ProfilingDefinitionService.d.ts +535 -0
  352. package/lib/services/ProfilingDefinitionService.js +981 -0
  353. package/lib/services/ProfilingDefinitionService.js.map +1 -0
  354. package/lib/services/ProfilingExecutionService.d.ts +122 -0
  355. package/lib/services/ProfilingExecutionService.js +320 -0
  356. package/lib/services/ProfilingExecutionService.js.map +1 -0
  357. package/lib/services/ProfilingSummaryService.d.ts +292 -0
  358. package/lib/services/ProfilingSummaryService.js +685 -0
  359. package/lib/services/ProfilingSummaryService.js.map +1 -0
  360. package/lib/services/RecordTypeService.d.ts +129 -0
  361. package/lib/services/RecordTypeService.js +284 -0
  362. package/lib/services/RecordTypeService.js.map +1 -0
  363. package/lib/services/SFDMUService.d.ts +17 -3
  364. package/lib/services/SFDMUService.js +49 -16
  365. package/lib/services/SFDMUService.js.map +1 -1
  366. package/lib/services/TabDetectionService.d.ts +105 -0
  367. package/lib/services/TabDetectionService.js +206 -0
  368. package/lib/services/TabDetectionService.js.map +1 -0
  369. package/lib/services/UnconfigureMode.d.ts +74 -0
  370. package/lib/services/UnconfigureMode.js +378 -0
  371. package/lib/services/UnconfigureMode.js.map +1 -0
  372. package/lib/services/UserConfigurationService.d.ts +155 -0
  373. package/lib/services/UserConfigurationService.js +573 -0
  374. package/lib/services/UserConfigurationService.js.map +1 -0
  375. package/lib/services/UserConfigurationTypes.d.ts +181 -0
  376. package/lib/services/UserConfigurationTypes.js +14 -0
  377. package/lib/services/UserConfigurationTypes.js.map +1 -0
  378. package/lib/services/UserReadinessService.d.ts +330 -0
  379. package/lib/services/UserReadinessService.js +831 -0
  380. package/lib/services/UserReadinessService.js.map +1 -0
  381. package/lib/services/constants.d.ts +53 -0
  382. package/lib/services/constants.js +71 -0
  383. package/lib/services/constants.js.map +1 -0
  384. package/lib/services/namespace-constants.d.ts +1 -0
  385. package/lib/services/namespace-constants.js +11 -0
  386. package/lib/services/namespace-constants.js.map +1 -0
  387. package/lib/services/validation.d.ts +47 -0
  388. package/lib/services/validation.js +119 -0
  389. package/lib/services/validation.js.map +1 -0
  390. package/lib/utils/batch-processor.d.ts +13 -0
  391. package/lib/utils/batch-processor.js +39 -0
  392. package/lib/utils/batch-processor.js.map +1 -0
  393. package/lib/utils/formatting/availability-grid.d.ts +81 -0
  394. package/lib/utils/formatting/availability-grid.js +94 -0
  395. package/lib/utils/formatting/availability-grid.js.map +1 -0
  396. package/lib/utils/formatting/business-process-grid.d.ts +51 -0
  397. package/lib/utils/formatting/business-process-grid.js +58 -0
  398. package/lib/utils/formatting/business-process-grid.js.map +1 -0
  399. package/lib/utils/formatting/command-display.d.ts +154 -0
  400. package/lib/utils/formatting/command-display.js +154 -0
  401. package/lib/utils/formatting/command-display.js.map +1 -0
  402. package/lib/utils/formatting/definition-create-display.d.ts +118 -0
  403. package/lib/utils/formatting/definition-create-display.js +231 -0
  404. package/lib/utils/formatting/definition-create-display.js.map +1 -0
  405. package/lib/utils/formatting/empty-states.d.ts +35 -0
  406. package/lib/utils/formatting/empty-states.js +70 -0
  407. package/lib/utils/formatting/empty-states.js.map +1 -0
  408. package/lib/utils/formatting/errors.d.ts +33 -0
  409. package/lib/utils/formatting/errors.js +72 -0
  410. package/lib/utils/formatting/errors.js.map +1 -0
  411. package/lib/utils/formatting/field-types.d.ts +32 -0
  412. package/lib/utils/formatting/field-types.js +88 -0
  413. package/lib/utils/formatting/field-types.js.map +1 -0
  414. package/lib/utils/formatting/index.d.ts +29 -0
  415. package/lib/utils/formatting/index.js +28 -0
  416. package/lib/utils/formatting/index.js.map +1 -0
  417. package/lib/utils/formatting/indicators.d.ts +113 -0
  418. package/lib/utils/formatting/indicators.js +161 -0
  419. package/lib/utils/formatting/indicators.js.map +1 -0
  420. package/lib/utils/formatting/loading-messages.d.ts +37 -0
  421. package/lib/utils/formatting/loading-messages.js +50 -0
  422. package/lib/utils/formatting/loading-messages.js.map +1 -0
  423. package/lib/utils/formatting/namespace-display.d.ts +31 -0
  424. package/lib/utils/formatting/namespace-display.js +64 -0
  425. package/lib/utils/formatting/namespace-display.js.map +1 -0
  426. package/lib/utils/formatting/numbers.d.ts +73 -0
  427. package/lib/utils/formatting/numbers.js +187 -0
  428. package/lib/utils/formatting/numbers.js.map +1 -0
  429. package/lib/utils/formatting/object-describe-display.d.ts +114 -0
  430. package/lib/utils/formatting/object-describe-display.js +440 -0
  431. package/lib/utils/formatting/object-describe-display.js.map +1 -0
  432. package/lib/utils/formatting/object-list-display.d.ts +213 -0
  433. package/lib/utils/formatting/object-list-display.js +672 -0
  434. package/lib/utils/formatting/object-list-display.js.map +1 -0
  435. package/lib/utils/formatting/org-identity.d.ts +15 -0
  436. package/lib/utils/formatting/org-identity.js +28 -0
  437. package/lib/utils/formatting/org-identity.js.map +1 -0
  438. package/lib/utils/formatting/record-age-grid.d.ts +41 -0
  439. package/lib/utils/formatting/record-age-grid.js +56 -0
  440. package/lib/utils/formatting/record-age-grid.js.map +1 -0
  441. package/lib/utils/formatting/sections.d.ts +108 -0
  442. package/lib/utils/formatting/sections.js +150 -0
  443. package/lib/utils/formatting/sections.js.map +1 -0
  444. package/lib/utils/formatting/tables.d.ts +90 -0
  445. package/lib/utils/formatting/tables.js +113 -0
  446. package/lib/utils/formatting/tables.js.map +1 -0
  447. package/lib/utils/formatting/user-details-display.d.ts +101 -0
  448. package/lib/utils/formatting/user-details-display.js +425 -0
  449. package/lib/utils/formatting/user-details-display.js.map +1 -0
  450. package/lib/utils/pagination/index.d.ts +11 -0
  451. package/lib/utils/pagination/index.js +18 -0
  452. package/lib/utils/pagination/index.js.map +1 -0
  453. package/lib/utils/pagination/keypress-reader.d.ts +20 -0
  454. package/lib/utils/pagination/keypress-reader.js +63 -0
  455. package/lib/utils/pagination/keypress-reader.js.map +1 -0
  456. package/lib/utils/pagination/paginate-output.d.ts +48 -0
  457. package/lib/utils/pagination/paginate-output.js +136 -0
  458. package/lib/utils/pagination/paginate-output.js.map +1 -0
  459. package/messages/compatibility.check.md +71 -0
  460. package/messages/cuneiform.access.md +138 -0
  461. package/messages/definition.create.md +511 -0
  462. package/messages/definition.export.md +56 -13
  463. package/messages/definition.get.md +147 -0
  464. package/messages/definition.import.md +35 -18
  465. package/messages/definition.list.md +264 -0
  466. package/messages/definition.purge.md +318 -0
  467. package/messages/definition.update.md +118 -0
  468. package/messages/mcp.serve.md +66 -0
  469. package/messages/object.describe.md +201 -0
  470. package/messages/object.list.md +443 -0
  471. package/messages/org.details.md +386 -0
  472. package/messages/org.reset.md +71 -0
  473. package/messages/profile.md +231 -0
  474. package/messages/profile.request.cancel.md +143 -0
  475. package/messages/profile.request.delete.md +139 -0
  476. package/messages/profile.request.list.md +89 -0
  477. package/messages/summary.purge.md +218 -0
  478. package/messages/summary.reprofile.md +150 -0
  479. package/messages/summary.stop.md +157 -0
  480. package/messages/user.details.md +501 -0
  481. package/oclif.lock +1954 -4859
  482. package/oclif.manifest.json +2697 -82
  483. package/package.json +89 -18
  484. package/lib/commands/cuneiform/about.d.ts +0 -13
  485. package/lib/commands/cuneiform/about.js +0 -26
  486. package/lib/commands/cuneiform/about.js.map +0 -1
  487. package/lib/commands/hello/world.d.ts +0 -14
  488. package/lib/commands/hello/world.js +0 -27
  489. package/lib/commands/hello/world.js.map +0 -1
  490. package/lib/index.d.ts +0 -2
  491. package/lib/index.js +0 -2
  492. package/lib/index.js.map +0 -1
  493. package/messages/cuneiform.about.md +0 -19
  494. package/messages/hello.world.md +0 -29
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProfilingSummaryService.js","sourceRoot":"","sources":["../../src/services/ProfilingSummaryService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,129 @@
1
+ import type { ISoqlQueryAdapter } from '../adapters/soql/soql-query-adapter.js';
2
+ import type { ServiceResult } from '../models/service-result.js';
3
+ /**
4
+ * Represents a Salesforce RecordType with formatted reference information.
5
+ */
6
+ export type RecordTypeInfo = {
7
+ /** The RecordType ID */
8
+ id: string;
9
+ /** The RecordType display name */
10
+ name: string;
11
+ /** The RecordType developer name (API name) */
12
+ developerName: string;
13
+ /** The SObject type this RecordType belongs to */
14
+ sobjectType: string;
15
+ /** Whether this is a Person Account record type */
16
+ isPersonType: boolean;
17
+ /** Whether this RecordType is active */
18
+ isActive: boolean;
19
+ /** Whether this is the default RecordType */
20
+ isDefault: boolean;
21
+ /** Formatted reference string, e.g. 'Case.Support' or 'PersonAccount.Patient' */
22
+ formattedReference: string;
23
+ /** The associated BusinessProcess ID (only for Opportunity, Case, Lead) */
24
+ businessProcessId?: string;
25
+ };
26
+ /**
27
+ * Record type distribution entry with count.
28
+ */
29
+ export type RecordTypeDistribution = {
30
+ /** The RecordType ID */
31
+ readonly recordTypeId: string;
32
+ /** The RecordType developer name */
33
+ readonly developerName: string;
34
+ /** The RecordType display name */
35
+ readonly name: string;
36
+ /** Number of records with this record type */
37
+ readonly recordCount: number;
38
+ /** Percentage of total records (0-100) */
39
+ readonly percentage: number;
40
+ };
41
+ /**
42
+ * Configuration for RecordTypeService.
43
+ */
44
+ export type IRecordTypeServiceConfig = {
45
+ /** SOQL query adapter for executing queries */
46
+ soqlAdapter: ISoqlQueryAdapter;
47
+ /** Optional logger for debug output */
48
+ logger?: Console;
49
+ };
50
+ /**
51
+ * Domain service for retrieving Salesforce RecordType information.
52
+ *
53
+ * Provides methods to query record types for a given SObject, with support
54
+ * for filtering active record types and formatting PersonAccount references.
55
+ *
56
+ * @design
57
+ * **IsPersonType Fallback**: The `IsPersonType` field only exists on RecordType
58
+ * when Person Accounts are enabled in the target org. To support both configurations,
59
+ * queries first try with IsPersonType and fall back to exclude it on INVALID_FIELD
60
+ * errors. This ensures cross-org compatibility without requiring org introspection.
61
+ *
62
+ * @example
63
+ * ```typescript
64
+ * const service = new RecordTypeService({ soqlAdapter });
65
+ * const result = await service.getRecordTypes('Account');
66
+ * if (result.success) {
67
+ * result.data.forEach(rt => console.log(rt.formattedReference));
68
+ * }
69
+ * ```
70
+ */
71
+ export declare class RecordTypeService {
72
+ private readonly soqlAdapter;
73
+ private readonly logger?;
74
+ constructor(config: IRecordTypeServiceConfig);
75
+ /**
76
+ * Formats a record type reference string.
77
+ *
78
+ * Uses PersonAccount as the object prefix when IsPersonType is true,
79
+ * otherwise uses the SobjectType.
80
+ *
81
+ * @param recordType - The RecordTypeInfo to format
82
+ * @returns Formatted reference string (e.g., 'Case.Support', 'PersonAccount.Patient')
83
+ */
84
+ static formatRecordTypeReference(recordType: RecordTypeInfo): string;
85
+ /**
86
+ * Maps a raw Salesforce RecordType record to a RecordTypeInfo.
87
+ *
88
+ * @param record - The raw SOQL query result record
89
+ * @returns Mapped RecordTypeInfo with formatted reference
90
+ */
91
+ private static mapToRecordTypeInfo;
92
+ /**
93
+ * Retrieves all record types for the specified SObject.
94
+ *
95
+ * @param objectName - The Salesforce object API name (e.g., 'Account', 'Case')
96
+ * @returns ServiceResult containing an array of RecordTypeInfo, or empty array if none exist
97
+ */
98
+ getRecordTypes(objectName: string): Promise<ServiceResult<RecordTypeInfo[]>>;
99
+ /**
100
+ * Retrieves record count distribution across record types for an object.
101
+ *
102
+ * Queries the actual object records grouped by RecordTypeId, then enriches
103
+ * with record type metadata (names, developer names).
104
+ *
105
+ * @param objectName - The Salesforce object API name
106
+ * @returns ServiceResult containing array of RecordTypeDistribution
107
+ */
108
+ getRecordTypeDistribution(objectName: string): Promise<ServiceResult<RecordTypeDistribution[]>>;
109
+ /**
110
+ * Retrieves only active record types for the specified SObject.
111
+ *
112
+ * @param objectName - The Salesforce object API name (e.g., 'Account', 'Case')
113
+ * @returns ServiceResult containing an array of active RecordTypeInfo
114
+ */
115
+ getActiveRecordTypes(objectName: string): Promise<ServiceResult<RecordTypeInfo[]>>;
116
+ /**
117
+ * Retrieves record types for the specified SObject filtered by activity status.
118
+ *
119
+ * @param objectName - The Salesforce object API name (e.g., 'Account', 'Case')
120
+ * @param status - Filter: 'active' (default), 'all', or 'inactive'
121
+ * @returns ServiceResult containing an array of filtered RecordTypeInfo
122
+ */
123
+ getRecordTypesByStatus(objectName: string, status?: 'active' | 'all' | 'inactive'): Promise<ServiceResult<RecordTypeInfo[]>>;
124
+ /**
125
+ * Executes the RecordType SOQL query, falling back to exclude IsPersonType
126
+ * when Person Accounts are not enabled in the target org.
127
+ */
128
+ private queryRecordTypes;
129
+ }
@@ -0,0 +1,284 @@
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
+ import { createSuccessResult, createFailureResult } from '../models/service-result.js';
9
+ import { ServiceErrorCodes } from '../adapters/errors.js';
10
+ import { CuneiformQueryBuilder } from '../adapters/soql/cuneiform-query-builder.js';
11
+ import { validateObjectName, validateRequiredString } from './validation.js';
12
+ /**
13
+ * Domain service for retrieving Salesforce RecordType information.
14
+ *
15
+ * Provides methods to query record types for a given SObject, with support
16
+ * for filtering active record types and formatting PersonAccount references.
17
+ *
18
+ * @design
19
+ * **IsPersonType Fallback**: The `IsPersonType` field only exists on RecordType
20
+ * when Person Accounts are enabled in the target org. To support both configurations,
21
+ * queries first try with IsPersonType and fall back to exclude it on INVALID_FIELD
22
+ * errors. This ensures cross-org compatibility without requiring org introspection.
23
+ *
24
+ * @example
25
+ * ```typescript
26
+ * const service = new RecordTypeService({ soqlAdapter });
27
+ * const result = await service.getRecordTypes('Account');
28
+ * if (result.success) {
29
+ * result.data.forEach(rt => console.log(rt.formattedReference));
30
+ * }
31
+ * ```
32
+ */
33
+ export class RecordTypeService {
34
+ soqlAdapter;
35
+ logger;
36
+ constructor(config) {
37
+ this.soqlAdapter = config.soqlAdapter;
38
+ this.logger = config.logger;
39
+ }
40
+ /**
41
+ * Formats a record type reference string.
42
+ *
43
+ * Uses PersonAccount as the object prefix when IsPersonType is true,
44
+ * otherwise uses the SobjectType.
45
+ *
46
+ * @param recordType - The RecordTypeInfo to format
47
+ * @returns Formatted reference string (e.g., 'Case.Support', 'PersonAccount.Patient')
48
+ */
49
+ static formatRecordTypeReference(recordType) {
50
+ const objectPrefix = recordType.isPersonType ? 'PersonAccount' : recordType.sobjectType;
51
+ return `${objectPrefix}.${recordType.developerName}`;
52
+ }
53
+ /**
54
+ * Maps a raw Salesforce RecordType record to a RecordTypeInfo.
55
+ *
56
+ * @param record - The raw SOQL query result record
57
+ * @returns Mapped RecordTypeInfo with formatted reference
58
+ */
59
+ static mapToRecordTypeInfo(record) {
60
+ const isPersonType = record.IsPersonType ?? false;
61
+ const objectPrefix = isPersonType ? 'PersonAccount' : record.SobjectType;
62
+ return {
63
+ id: record.Id,
64
+ name: record.Name,
65
+ developerName: record.DeveloperName,
66
+ sobjectType: record.SobjectType,
67
+ isPersonType,
68
+ isActive: record.IsActive,
69
+ // 'Master' is Salesforce's reserved DeveloperName for the default record type
70
+ isDefault: record.DeveloperName === 'Master',
71
+ formattedReference: `${objectPrefix}.${record.DeveloperName}`,
72
+ businessProcessId: record.BusinessProcessId ?? undefined,
73
+ };
74
+ }
75
+ /**
76
+ * Retrieves all record types for the specified SObject.
77
+ *
78
+ * @param objectName - The Salesforce object API name (e.g., 'Account', 'Case')
79
+ * @returns ServiceResult containing an array of RecordTypeInfo, or empty array if none exist
80
+ */
81
+ async getRecordTypes(objectName) {
82
+ const startTime = Date.now();
83
+ const emptyResult = [];
84
+ // Validate required
85
+ const requiredError = validateRequiredString(objectName, 'Object name');
86
+ if (requiredError) {
87
+ return createFailureResult(emptyResult, ServiceErrorCodes.RECORD_TYPE_OBJECT_NAME_REQUIRED, requiredError, {
88
+ metadata: { duration: Date.now() - startTime },
89
+ });
90
+ }
91
+ // Validate format
92
+ const formatError = validateObjectName(objectName);
93
+ if (formatError) {
94
+ return createFailureResult(emptyResult, ServiceErrorCodes.RECORD_TYPE_INVALID_OBJECT_NAME, formatError, {
95
+ metadata: { duration: Date.now() - startTime },
96
+ });
97
+ }
98
+ try {
99
+ const queryResult = await this.queryRecordTypes(objectName);
100
+ if (!queryResult.success) {
101
+ return createFailureResult(emptyResult, ServiceErrorCodes.RECORD_TYPE_QUERY_FAILED, queryResult.message ?? 'Record type query failed', { metadata: { duration: Date.now() - startTime } });
102
+ }
103
+ const recordTypes = queryResult.data.records.map((record) => RecordTypeService.mapToRecordTypeInfo(record));
104
+ const duration = Date.now() - startTime;
105
+ this.logger?.log(`Found ${recordTypes.length} record types for ${objectName}`);
106
+ return createSuccessResult(recordTypes, {
107
+ message: `Found ${recordTypes.length} record types for ${objectName}`,
108
+ metadata: { duration },
109
+ });
110
+ }
111
+ catch (error) {
112
+ const errorMessage = error instanceof Error ? error.message : String(error);
113
+ this.logger?.log(`Record type query failed: ${errorMessage}`);
114
+ return createFailureResult(emptyResult, ServiceErrorCodes.RECORD_TYPE_QUERY_FAILED, errorMessage, {
115
+ metadata: { duration: Date.now() - startTime },
116
+ });
117
+ }
118
+ }
119
+ /**
120
+ * Retrieves record count distribution across record types for an object.
121
+ *
122
+ * Queries the actual object records grouped by RecordTypeId, then enriches
123
+ * with record type metadata (names, developer names).
124
+ *
125
+ * @param objectName - The Salesforce object API name
126
+ * @returns ServiceResult containing array of RecordTypeDistribution
127
+ */
128
+ async getRecordTypeDistribution(objectName) {
129
+ const startTime = Date.now();
130
+ const emptyResult = [];
131
+ // Validate required
132
+ const requiredError = validateRequiredString(objectName, 'Object name');
133
+ if (requiredError) {
134
+ return createFailureResult(emptyResult, ServiceErrorCodes.RECORD_TYPE_OBJECT_NAME_REQUIRED, requiredError, {
135
+ metadata: { duration: Date.now() - startTime },
136
+ });
137
+ }
138
+ // Validate format
139
+ const formatError = validateObjectName(objectName);
140
+ if (formatError) {
141
+ return createFailureResult(emptyResult, ServiceErrorCodes.RECORD_TYPE_INVALID_OBJECT_NAME, formatError, {
142
+ metadata: { duration: Date.now() - startTime },
143
+ });
144
+ }
145
+ try {
146
+ // Step 1: Get existing record types for metadata enrichment
147
+ const recordTypesResult = await this.getRecordTypes(objectName);
148
+ if (!recordTypesResult.success) {
149
+ return createFailureResult(emptyResult, ServiceErrorCodes.RECORD_TYPE_QUERY_FAILED, recordTypesResult.message ?? 'Record type query failed', {
150
+ metadata: { duration: Date.now() - startTime },
151
+ });
152
+ }
153
+ // If no record types exist, return empty array
154
+ if (recordTypesResult.data.length === 0) {
155
+ return createSuccessResult(emptyResult, {
156
+ message: `No record types found for ${objectName}`,
157
+ metadata: { duration: Date.now() - startTime },
158
+ });
159
+ }
160
+ // Step 2: Query record counts grouped by RecordTypeId
161
+ const countSoql = new CuneiformQueryBuilder()
162
+ .select(['RecordTypeId', 'COUNT(Id) cnt'])
163
+ .from(objectName)
164
+ .groupBy(['RecordTypeId'])
165
+ .toSOQL();
166
+ const countResult = await this.soqlAdapter.query(countSoql);
167
+ if (!countResult.success) {
168
+ return createFailureResult(emptyResult, ServiceErrorCodes.RECORD_TYPE_QUERY_FAILED, countResult.message ?? 'Record count query failed', {
169
+ metadata: { duration: Date.now() - startTime },
170
+ });
171
+ }
172
+ // Step 3: Compute total and build distribution
173
+ const countRecords = countResult.data.records;
174
+ const total = countRecords.reduce((sum, record) => sum + record.cnt, 0);
175
+ // Build a lookup map from record type ID to metadata
176
+ const recordTypeMap = new Map();
177
+ for (const rt of recordTypesResult.data) {
178
+ recordTypeMap.set(rt.id, rt);
179
+ }
180
+ // Step 4: Enrich with record type names and compute percentages
181
+ const distribution = countRecords
182
+ .map((record) => {
183
+ const rtInfo = recordTypeMap.get(record.RecordTypeId);
184
+ return {
185
+ recordTypeId: record.RecordTypeId,
186
+ developerName: rtInfo?.developerName ?? 'Unknown',
187
+ name: rtInfo?.name ?? 'Unknown',
188
+ recordCount: record.cnt,
189
+ percentage: total > 0 ? Math.round((record.cnt / total) * 10_000) / 100 : 0,
190
+ };
191
+ })
192
+ // Step 5: Sort by recordCount descending
193
+ .sort((a, b) => b.recordCount - a.recordCount);
194
+ const duration = Date.now() - startTime;
195
+ this.logger?.log(`Found ${distribution.length} record type distributions for ${objectName}`);
196
+ return createSuccessResult(distribution, {
197
+ message: `Found ${distribution.length} record type distributions for ${objectName}`,
198
+ metadata: { duration },
199
+ });
200
+ }
201
+ catch (error) {
202
+ const errorMessage = error instanceof Error ? error.message : String(error);
203
+ this.logger?.log(`Record type distribution query failed: ${errorMessage}`);
204
+ return createFailureResult(emptyResult, ServiceErrorCodes.RECORD_TYPE_QUERY_FAILED, errorMessage, {
205
+ metadata: { duration: Date.now() - startTime },
206
+ });
207
+ }
208
+ }
209
+ /**
210
+ * Retrieves only active record types for the specified SObject.
211
+ *
212
+ * @param objectName - The Salesforce object API name (e.g., 'Account', 'Case')
213
+ * @returns ServiceResult containing an array of active RecordTypeInfo
214
+ */
215
+ async getActiveRecordTypes(objectName) {
216
+ return this.getRecordTypesByStatus(objectName, 'active');
217
+ }
218
+ /**
219
+ * Retrieves record types for the specified SObject filtered by activity status.
220
+ *
221
+ * @param objectName - The Salesforce object API name (e.g., 'Account', 'Case')
222
+ * @param status - Filter: 'active' (default), 'all', or 'inactive'
223
+ * @returns ServiceResult containing an array of filtered RecordTypeInfo
224
+ */
225
+ async getRecordTypesByStatus(objectName, status = 'active') {
226
+ const result = await this.getRecordTypes(objectName);
227
+ if (!result.success) {
228
+ return result;
229
+ }
230
+ let filtered;
231
+ let label;
232
+ switch (status) {
233
+ case 'all':
234
+ filtered = result.data;
235
+ label = 'total';
236
+ break;
237
+ case 'inactive':
238
+ filtered = result.data.filter((rt) => !rt.isActive);
239
+ label = 'inactive';
240
+ break;
241
+ default:
242
+ filtered = result.data.filter((rt) => rt.isActive);
243
+ label = 'active';
244
+ break;
245
+ }
246
+ return createSuccessResult(filtered, {
247
+ message: `Found ${filtered.length} ${label} record types for ${objectName}`,
248
+ metadata: result.metadata,
249
+ });
250
+ }
251
+ /**
252
+ * Executes the RecordType SOQL query, falling back to exclude IsPersonType
253
+ * when Person Accounts are not enabled in the target org.
254
+ */
255
+ async queryRecordTypes(objectName) {
256
+ const baseFields = ['Id', 'Name', 'DeveloperName', 'SobjectType', 'IsActive', 'BusinessProcessId'];
257
+ // Try with IsPersonType first (available when Person Accounts are enabled)
258
+ const fullSoql = new CuneiformQueryBuilder()
259
+ .select([...baseFields, 'IsPersonType'])
260
+ .from('RecordType')
261
+ .where('SobjectType', '=', objectName)
262
+ .orderBy('Name', 'ASC')
263
+ .toSOQL();
264
+ this.logger?.log(`Querying record types for: ${objectName}`);
265
+ const fullResult = await this.soqlAdapter.query(fullSoql);
266
+ if (fullResult.success) {
267
+ return fullResult;
268
+ }
269
+ // If the query failed due to IsPersonType not existing, retry without it
270
+ const errorMsg = fullResult.message ?? '';
271
+ if (errorMsg.includes('INVALID_FIELD') || errorMsg.includes('IsPersonType')) {
272
+ this.logger?.log('IsPersonType not available — retrying without Person Account field');
273
+ const fallbackSoql = new CuneiformQueryBuilder()
274
+ .select(baseFields)
275
+ .from('RecordType')
276
+ .where('SobjectType', '=', objectName)
277
+ .orderBy('Name', 'ASC')
278
+ .toSOQL();
279
+ return this.soqlAdapter.query(fallbackSoql);
280
+ }
281
+ return fullResult;
282
+ }
283
+ }
284
+ //# sourceMappingURL=RecordTypeService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RecordTypeService.js","sourceRoot":"","sources":["../../src/services/RecordTypeService.ts"],"names":[],"mappings":"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"}
@@ -66,8 +66,20 @@ export declare class SFDMUService {
66
66
  /**
67
67
  * Parses record count from SFDMU stdout output.
68
68
  *
69
- * @param stdout - Standard output from SFDMU
70
- * @returns Parsed record count or undefined if not found
69
+ * SFDMU (Salesforce Data Move Utility) outputs record counts in several formats
70
+ * depending on the operation type and verbosity level:
71
+ * - Summary lines: "Total: 100 records" — single authoritative count, checked first
72
+ * - Per-batch lines: "Processed 8 records" repeated per batch — summed to get total
73
+ * - Alternate phrasing: "100 records processed"
74
+ *
75
+ * Per-batch counts must be summed: SFDMU emits "Processed N records" once per batch
76
+ * (CLI-3140), so taking only the first match caps the reported count at the batch size.
77
+ *
78
+ * Tested against SFDMU v4.x output. If patterns fail to match, returns undefined
79
+ * (graceful degradation — record count is informational, not required).
80
+ *
81
+ * @param stdout - Standard output from SFDMU execution
82
+ * @returns Parsed record count or undefined if no pattern matched
71
83
  */
72
84
  private static parseRecordCount;
73
85
  /**
@@ -91,7 +103,9 @@ export declare class SFDMUService {
91
103
  /**
92
104
  * Verifies that SFDMU is installed and available.
93
105
  *
94
- * @throws SfError if SFDMU is not installed, with installation instructions
106
+ * @returns Promise that resolves when SFDMU installation is verified
107
+ * @throws SfError with code 'SFCLINotFound' if Salesforce CLI is not installed
108
+ * @throws SfError with code from SFDMUErrorCodes.NOT_INSTALLED if SFDMU plugin is missing
95
109
  */
96
110
  verifyInstallation(): Promise<void>;
97
111
  /**
@@ -1,7 +1,9 @@
1
1
  /*
2
- * Copyright (c) 2026, PeerNova Inc. All rights reserved.
3
- * SPDX-License-Identifier: BSD-3-Clause
4
- * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
2
+ * Copyright (c) 2026, PeerNova, Inc. All Rights Reserved.
3
+ * PROPRIETARY AND CONFIDENTIAL. Unauthorized copying, modification,
4
+ * or distribution is strictly prohibited. Use is governed by the
5
+ * Master Subscription Agreement (MSA) between PeerNova, Inc. and the
6
+ * licensee. See LICENSE file in the repo root.
5
7
  */
6
8
  import { execFile } from 'node:child_process';
7
9
  import { promisify } from 'node:util';
@@ -59,7 +61,13 @@ export class SFDMUService {
59
61
  * @returns Array of command line arguments
60
62
  */
61
63
  static buildArgs(options, operation) {
62
- const args = ['sfdmu:run', '--path', options.configPath];
64
+ // --noprompt: skip the interactive "Continue the job (y/n)?" prompt SFDMU raises
65
+ // when source CSV columns don't match the export.json query (CSVIssuesReport
66
+ // entries). In CI's non-TTY stdin, the abandoned prompt makes the sfdmu:run
67
+ // oclif command exit non-zero even when the migration itself completes — see
68
+ // CLI-3039 run 25355904571 where SFDMU logged "Exit code 0 (SUCCESS)" yet the
69
+ // child process exit was 1.
70
+ const args = ['sfdmu:run', '--path', options.configPath, '--noprompt'];
63
71
  // For export: source=org, target=csvfile (writes CSV files)
64
72
  // For import: source=csvfile, target=org (reads CSV files)
65
73
  if (operation === 'export' && options.sourceOrg) {
@@ -70,27 +78,50 @@ export class SFDMUService {
70
78
  args.push('--sourceusername', 'csvfile');
71
79
  args.push('--targetusername', options.targetOrg);
72
80
  }
73
- // Add API preference if specified
81
+ // REST API is preferred for small datasets (<10k records) — lower overhead than Bulk.
82
+ // Bulk API is the default for large datasets — optimized for throughput.
74
83
  if (options.useBulkAPI === false) {
75
84
  args.push('--apiversion', 'rest');
76
85
  }
86
+ // Note: SFDMU does not support a --simulation flag. Simulation mode is handled
87
+ // at the operation layer (DefinitionImportOperation) by skipping the SFDMU call
88
+ // entirely. The simulation field on ISFDMUOptions is retained for callers to
89
+ // indicate intent, but it is NOT passed as a CLI argument.
77
90
  return args;
78
91
  }
79
92
  /**
80
93
  * Parses record count from SFDMU stdout output.
81
94
  *
82
- * @param stdout - Standard output from SFDMU
83
- * @returns Parsed record count or undefined if not found
95
+ * SFDMU (Salesforce Data Move Utility) outputs record counts in several formats
96
+ * depending on the operation type and verbosity level:
97
+ * - Summary lines: "Total: 100 records" — single authoritative count, checked first
98
+ * - Per-batch lines: "Processed 8 records" repeated per batch — summed to get total
99
+ * - Alternate phrasing: "100 records processed"
100
+ *
101
+ * Per-batch counts must be summed: SFDMU emits "Processed N records" once per batch
102
+ * (CLI-3140), so taking only the first match caps the reported count at the batch size.
103
+ *
104
+ * Tested against SFDMU v4.x output. If patterns fail to match, returns undefined
105
+ * (graceful degradation — record count is informational, not required).
106
+ *
107
+ * @param stdout - Standard output from SFDMU execution
108
+ * @returns Parsed record count or undefined if no pattern matched
84
109
  */
85
110
  static parseRecordCount(stdout) {
86
- // SFDMU outputs record counts in various formats
87
- // Examples: "Processed 100 records", "Total: 100 records"
88
- const patterns = [/Processed\s+(\d+)\s+records?/i, /Total[:\s]+(\d+)\s+records?/i, /(\d+)\s+records?\s+processed/i];
89
- for (const pattern of patterns) {
90
- const match = stdout.match(pattern);
91
- if (match?.[1]) {
92
- return parseInt(match[1], 10);
93
- }
111
+ // Check for a single authoritative total first (avoids summing batches when a summary exists)
112
+ const totalMatch = stdout.match(/Total[:\s]+(\d+)\s+records?/i);
113
+ if (totalMatch?.[1]) {
114
+ return parseInt(totalMatch[1], 10);
115
+ }
116
+ // Sum all "Processed N records" occurrences — SFDMU emits one per batch
117
+ const processedMatches = [...stdout.matchAll(/Processed\s+(\d+)\s+records?/gi)];
118
+ if (processedMatches.length > 0) {
119
+ return processedMatches.reduce((sum, m) => sum + parseInt(m[1], 10), 0);
120
+ }
121
+ // Alternate word order: "N records processed"
122
+ const altMatch = stdout.match(/(\d+)\s+records?\s+processed/i);
123
+ if (altMatch?.[1]) {
124
+ return parseInt(altMatch[1], 10);
94
125
  }
95
126
  return undefined;
96
127
  }
@@ -135,7 +166,9 @@ export class SFDMUService {
135
166
  /**
136
167
  * Verifies that SFDMU is installed and available.
137
168
  *
138
- * @throws SfError if SFDMU is not installed, with installation instructions
169
+ * @returns Promise that resolves when SFDMU installation is verified
170
+ * @throws SfError with code 'SFCLINotFound' if Salesforce CLI is not installed
171
+ * @throws SfError with code from SFDMUErrorCodes.NOT_INSTALLED if SFDMU plugin is missing
139
172
  */
140
173
  async verifyInstallation() {
141
174
  try {