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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (488) hide show
  1. package/LICENSE +81 -30
  2. package/README.md +168 -134
  3. package/lib/adapters/connection-facade.d.ts +458 -0
  4. package/lib/adapters/connection-facade.js +379 -0
  5. package/lib/adapters/connection-facade.js.map +1 -0
  6. package/lib/adapters/errors.d.ts +547 -0
  7. package/lib/adapters/errors.js +937 -0
  8. package/lib/adapters/errors.js.map +1 -0
  9. package/lib/adapters/lifecycle.d.ts +112 -0
  10. package/lib/adapters/lifecycle.js +94 -0
  11. package/lib/adapters/lifecycle.js.map +1 -0
  12. package/lib/adapters/rest/cache.d.ts +69 -0
  13. package/lib/adapters/rest/cache.js +133 -0
  14. package/lib/adapters/rest/cache.js.map +1 -0
  15. package/lib/adapters/rest/index.d.ts +11 -0
  16. package/lib/adapters/rest/index.js +18 -0
  17. package/lib/adapters/rest/index.js.map +1 -0
  18. package/lib/adapters/rest/profiling-rest-client.d.ts +137 -0
  19. package/lib/adapters/rest/profiling-rest-client.js +115 -0
  20. package/lib/adapters/rest/profiling-rest-client.js.map +1 -0
  21. package/lib/adapters/rest/rest-api-adapter.d.ts +393 -0
  22. package/lib/adapters/rest/rest-api-adapter.js +764 -0
  23. package/lib/adapters/rest/rest-api-adapter.js.map +1 -0
  24. package/lib/adapters/rest/types.d.ts +34 -0
  25. package/lib/adapters/rest/types.js +9 -0
  26. package/lib/adapters/rest/types.js.map +1 -0
  27. package/lib/adapters/retry.d.ts +91 -0
  28. package/lib/adapters/retry.js +215 -0
  29. package/lib/adapters/retry.js.map +1 -0
  30. package/lib/adapters/soql/cuneiform-query-builder.d.ts +418 -0
  31. package/lib/adapters/soql/cuneiform-query-builder.js +606 -0
  32. package/lib/adapters/soql/cuneiform-query-builder.js.map +1 -0
  33. package/lib/adapters/soql/soql-query-adapter.d.ts +141 -0
  34. package/lib/adapters/soql/soql-query-adapter.js +259 -0
  35. package/lib/adapters/soql/soql-query-adapter.js.map +1 -0
  36. package/lib/adapters/soql/types.d.ts +37 -0
  37. package/lib/adapters/soql/types.js +19 -0
  38. package/lib/adapters/soql/types.js.map +1 -0
  39. package/lib/adapters/testing/index.d.ts +37 -0
  40. package/lib/adapters/testing/index.js +20 -0
  41. package/lib/adapters/testing/index.js.map +1 -0
  42. package/lib/adapters/testing/mock-connection.d.ts +77 -0
  43. package/lib/adapters/testing/mock-connection.js +207 -0
  44. package/lib/adapters/testing/mock-connection.js.map +1 -0
  45. package/lib/adapters/testing/mock-logger.d.ts +29 -0
  46. package/lib/adapters/testing/mock-logger.js +57 -0
  47. package/lib/adapters/testing/mock-logger.js.map +1 -0
  48. package/lib/adapters/testing/mock-mcp-adapters.d.ts +32 -0
  49. package/lib/adapters/testing/mock-mcp-adapters.js +52 -0
  50. package/lib/adapters/testing/mock-mcp-adapters.js.map +1 -0
  51. package/lib/adapters/testing/mock-oclif-config.d.ts +22 -0
  52. package/lib/adapters/testing/mock-oclif-config.js +90 -0
  53. package/lib/adapters/testing/mock-oclif-config.js.map +1 -0
  54. package/lib/adapters/testing/mock-rest-adapter.d.ts +26 -0
  55. package/lib/adapters/testing/mock-rest-adapter.js +243 -0
  56. package/lib/adapters/testing/mock-rest-adapter.js.map +1 -0
  57. package/lib/adapters/testing/mock-salesforce-connection.d.ts +40 -0
  58. package/lib/adapters/testing/mock-salesforce-connection.js +61 -0
  59. package/lib/adapters/testing/mock-salesforce-connection.js.map +1 -0
  60. package/lib/adapters/testing/mock-soql-adapter.d.ts +30 -0
  61. package/lib/adapters/testing/mock-soql-adapter.js +120 -0
  62. package/lib/adapters/testing/mock-soql-adapter.js.map +1 -0
  63. package/lib/adapters/testing/mock-tooling-adapter.d.ts +24 -0
  64. package/lib/adapters/testing/mock-tooling-adapter.js +163 -0
  65. package/lib/adapters/testing/mock-tooling-adapter.js.map +1 -0
  66. package/lib/adapters/testing/stub-connection.d.ts +93 -0
  67. package/lib/adapters/testing/stub-connection.js +97 -0
  68. package/lib/adapters/testing/stub-connection.js.map +1 -0
  69. package/lib/adapters/testing/stub-rest-adapter.d.ts +52 -0
  70. package/lib/adapters/testing/stub-rest-adapter.js +58 -0
  71. package/lib/adapters/testing/stub-rest-adapter.js.map +1 -0
  72. package/lib/adapters/testing/stub-soql-adapter.d.ts +56 -0
  73. package/lib/adapters/testing/stub-soql-adapter.js +50 -0
  74. package/lib/adapters/testing/stub-soql-adapter.js.map +1 -0
  75. package/lib/adapters/testing/types.d.ts +71 -0
  76. package/lib/adapters/testing/types.js +9 -0
  77. package/lib/adapters/testing/types.js.map +1 -0
  78. package/lib/adapters/tooling/index.d.ts +10 -0
  79. package/lib/adapters/tooling/index.js +17 -0
  80. package/lib/adapters/tooling/index.js.map +1 -0
  81. package/lib/adapters/tooling/tooling-api-adapter.d.ts +157 -0
  82. package/lib/adapters/tooling/tooling-api-adapter.js +339 -0
  83. package/lib/adapters/tooling/tooling-api-adapter.js.map +1 -0
  84. package/lib/adapters/tooling/types.d.ts +81 -0
  85. package/lib/adapters/tooling/types.js +9 -0
  86. package/lib/adapters/tooling/types.js.map +1 -0
  87. package/lib/adapters/types.d.ts +112 -0
  88. package/lib/adapters/types.js +169 -0
  89. package/lib/adapters/types.js.map +1 -0
  90. package/lib/base/cuneiform-command.d.ts +175 -0
  91. package/lib/base/cuneiform-command.js +326 -0
  92. package/lib/base/cuneiform-command.js.map +1 -0
  93. package/lib/commands/cuneiform/compatibility/check.d.ts +43 -0
  94. package/lib/commands/cuneiform/compatibility/check.js +114 -0
  95. package/lib/commands/cuneiform/compatibility/check.js.map +1 -0
  96. package/lib/commands/cuneiform/definition/create.d.ts +120 -0
  97. package/lib/commands/cuneiform/definition/create.js +737 -0
  98. package/lib/commands/cuneiform/definition/create.js.map +1 -0
  99. package/lib/commands/cuneiform/definition/export.d.ts +57 -0
  100. package/lib/commands/cuneiform/definition/export.js +133 -0
  101. package/lib/commands/cuneiform/definition/export.js.map +1 -0
  102. package/lib/commands/cuneiform/definition/get.d.ts +86 -0
  103. package/lib/commands/cuneiform/definition/get.js +277 -0
  104. package/lib/commands/cuneiform/definition/get.js.map +1 -0
  105. package/lib/commands/cuneiform/definition/import.d.ts +54 -0
  106. package/lib/commands/cuneiform/definition/import.js +118 -0
  107. package/lib/commands/cuneiform/definition/import.js.map +1 -0
  108. package/lib/commands/cuneiform/definition/list.d.ts +110 -0
  109. package/lib/commands/cuneiform/definition/list.js +351 -0
  110. package/lib/commands/cuneiform/definition/list.js.map +1 -0
  111. package/lib/commands/cuneiform/definition/purge.d.ts +109 -0
  112. package/lib/commands/cuneiform/definition/purge.js +578 -0
  113. package/lib/commands/cuneiform/definition/purge.js.map +1 -0
  114. package/lib/commands/cuneiform/definition/update.d.ts +58 -0
  115. package/lib/commands/cuneiform/definition/update.js +209 -0
  116. package/lib/commands/cuneiform/definition/update.js.map +1 -0
  117. package/lib/commands/cuneiform/mcp/serve.d.ts +56 -0
  118. package/lib/commands/cuneiform/mcp/serve.js +109 -0
  119. package/lib/commands/cuneiform/mcp/serve.js.map +1 -0
  120. package/lib/commands/cuneiform/object/describe.d.ts +61 -0
  121. package/lib/commands/cuneiform/object/describe.js +461 -0
  122. package/lib/commands/cuneiform/object/describe.js.map +1 -0
  123. package/lib/commands/cuneiform/object/list.d.ts +123 -0
  124. package/lib/commands/cuneiform/object/list.js +264 -0
  125. package/lib/commands/cuneiform/object/list.js.map +1 -0
  126. package/lib/commands/cuneiform/org/details.d.ts +99 -0
  127. package/lib/commands/cuneiform/org/details.js +521 -0
  128. package/lib/commands/cuneiform/org/details.js.map +1 -0
  129. package/lib/commands/cuneiform/org/reset.d.ts +46 -0
  130. package/lib/commands/cuneiform/org/reset.js +135 -0
  131. package/lib/commands/cuneiform/org/reset.js.map +1 -0
  132. package/lib/commands/cuneiform/profile/request/cancel.d.ts +59 -0
  133. package/lib/commands/cuneiform/profile/request/cancel.js +202 -0
  134. package/lib/commands/cuneiform/profile/request/cancel.js.map +1 -0
  135. package/lib/commands/cuneiform/profile/request/delete.d.ts +59 -0
  136. package/lib/commands/cuneiform/profile/request/delete.js +223 -0
  137. package/lib/commands/cuneiform/profile/request/delete.js.map +1 -0
  138. package/lib/commands/cuneiform/profile/request/list.d.ts +35 -0
  139. package/lib/commands/cuneiform/profile/request/list.js +102 -0
  140. package/lib/commands/cuneiform/profile/request/list.js.map +1 -0
  141. package/lib/commands/cuneiform/profile.d.ts +93 -0
  142. package/lib/commands/cuneiform/profile.js +353 -0
  143. package/lib/commands/cuneiform/profile.js.map +1 -0
  144. package/lib/commands/cuneiform/summary/purge.d.ts +80 -0
  145. package/lib/commands/cuneiform/summary/purge.js +467 -0
  146. package/lib/commands/cuneiform/summary/purge.js.map +1 -0
  147. package/lib/commands/cuneiform/summary/reprofile.d.ts +60 -0
  148. package/lib/commands/cuneiform/summary/reprofile.js +236 -0
  149. package/lib/commands/cuneiform/summary/reprofile.js.map +1 -0
  150. package/lib/commands/cuneiform/summary/stop.d.ts +59 -0
  151. package/lib/commands/cuneiform/summary/stop.js +234 -0
  152. package/lib/commands/cuneiform/summary/stop.js.map +1 -0
  153. package/lib/commands/cuneiform/user/details.d.ts +77 -0
  154. package/lib/commands/cuneiform/user/details.js +414 -0
  155. package/lib/commands/cuneiform/user/details.js.map +1 -0
  156. package/lib/constants/namespace-constants.d.ts +102 -0
  157. package/lib/constants/namespace-constants.js +225 -0
  158. package/lib/constants/namespace-constants.js.map +1 -0
  159. package/lib/debug/command-debug-proxy.d.ts +101 -0
  160. package/lib/debug/command-debug-proxy.js +171 -0
  161. package/lib/debug/command-debug-proxy.js.map +1 -0
  162. package/lib/debug/debug-logger.d.ts +85 -0
  163. package/lib/debug/debug-logger.js +133 -0
  164. package/lib/debug/debug-logger.js.map +1 -0
  165. package/lib/debug/service-debug-proxy.d.ts +30 -0
  166. package/lib/debug/service-debug-proxy.js +102 -0
  167. package/lib/debug/service-debug-proxy.js.map +1 -0
  168. package/lib/hooks/prerun.d.ts +25 -0
  169. package/lib/hooks/prerun.js +47 -0
  170. package/lib/hooks/prerun.js.map +1 -0
  171. package/lib/mcp/config/mcp-config.d.ts +55 -0
  172. package/lib/mcp/config/mcp-config.js +51 -0
  173. package/lib/mcp/config/mcp-config.js.map +1 -0
  174. package/lib/mcp/config/pagination.d.ts +96 -0
  175. package/lib/mcp/config/pagination.js +108 -0
  176. package/lib/mcp/config/pagination.js.map +1 -0
  177. package/lib/mcp/config/system-prompts.d.ts +18 -0
  178. package/lib/mcp/config/system-prompts.js +92 -0
  179. package/lib/mcp/config/system-prompts.js.map +1 -0
  180. package/lib/mcp/errors.d.ts +23 -0
  181. package/lib/mcp/errors.js +27 -0
  182. package/lib/mcp/errors.js.map +1 -0
  183. package/lib/mcp/schemas/input-schemas.d.ts +327 -0
  184. package/lib/mcp/schemas/input-schemas.js +310 -0
  185. package/lib/mcp/schemas/input-schemas.js.map +1 -0
  186. package/lib/mcp/server.d.ts +40 -0
  187. package/lib/mcp/server.js +316 -0
  188. package/lib/mcp/server.js.map +1 -0
  189. package/lib/mcp/tools/contactpoint-tools.d.ts +14 -0
  190. package/lib/mcp/tools/contactpoint-tools.js +34 -0
  191. package/lib/mcp/tools/contactpoint-tools.js.map +1 -0
  192. package/lib/mcp/tools/definition-io-tools.d.ts +19 -0
  193. package/lib/mcp/tools/definition-io-tools.js +152 -0
  194. package/lib/mcp/tools/definition-io-tools.js.map +1 -0
  195. package/lib/mcp/tools/definition-tools.d.ts +51 -0
  196. package/lib/mcp/tools/definition-tools.js +220 -0
  197. package/lib/mcp/tools/definition-tools.js.map +1 -0
  198. package/lib/mcp/tools/index.d.ts +37 -0
  199. package/lib/mcp/tools/index.js +88 -0
  200. package/lib/mcp/tools/index.js.map +1 -0
  201. package/lib/mcp/tools/object-tools.d.ts +22 -0
  202. package/lib/mcp/tools/object-tools.js +327 -0
  203. package/lib/mcp/tools/object-tools.js.map +1 -0
  204. package/lib/mcp/tools/org-tools.d.ts +14 -0
  205. package/lib/mcp/tools/org-tools.js +177 -0
  206. package/lib/mcp/tools/org-tools.js.map +1 -0
  207. package/lib/mcp/tools/profile-tools.d.ts +59 -0
  208. package/lib/mcp/tools/profile-tools.js +213 -0
  209. package/lib/mcp/tools/profile-tools.js.map +1 -0
  210. package/lib/mcp/tools/summary-tools.d.ts +14 -0
  211. package/lib/mcp/tools/summary-tools.js +38 -0
  212. package/lib/mcp/tools/summary-tools.js.map +1 -0
  213. package/lib/mcp/tools/tool-factory.d.ts +63 -0
  214. package/lib/mcp/tools/tool-factory.js +146 -0
  215. package/lib/mcp/tools/tool-factory.js.map +1 -0
  216. package/lib/mcp/tools/user-tools.d.ts +25 -0
  217. package/lib/mcp/tools/user-tools.js +167 -0
  218. package/lib/mcp/tools/user-tools.js.map +1 -0
  219. package/lib/models/cascade-skip-accumulator.d.ts +25 -0
  220. package/lib/models/cascade-skip-accumulator.js +9 -0
  221. package/lib/models/cascade-skip-accumulator.js.map +1 -0
  222. package/lib/models/date-literal.d.ts +280 -0
  223. package/lib/models/date-literal.js +1164 -0
  224. package/lib/models/date-literal.js.map +1 -0
  225. package/lib/models/object-describe-types.d.ts +173 -0
  226. package/lib/models/object-describe-types.js +9 -0
  227. package/lib/models/object-describe-types.js.map +1 -0
  228. package/lib/models/portability-recipe.d.ts +35 -0
  229. package/lib/models/portability-recipe.js +113 -0
  230. package/lib/models/portability-recipe.js.map +1 -0
  231. package/lib/models/profile-request-types.d.ts +118 -0
  232. package/lib/models/profile-request-types.js +23 -0
  233. package/lib/models/profile-request-types.js.map +1 -0
  234. package/lib/models/profiling-execution-types.d.ts +154 -0
  235. package/lib/models/profiling-execution-types.js +14 -0
  236. package/lib/models/profiling-execution-types.js.map +1 -0
  237. package/lib/models/service-result.d.ts +114 -0
  238. package/lib/models/service-result.js +81 -0
  239. package/lib/models/service-result.js.map +1 -0
  240. package/lib/models/sfdmu-types.d.ts +49 -0
  241. package/lib/models/sfdmu-types.js +23 -0
  242. package/lib/models/sfdmu-types.js.map +1 -0
  243. package/lib/models/status-types.d.ts +38 -0
  244. package/lib/models/status-types.js +12 -0
  245. package/lib/models/status-types.js.map +1 -0
  246. package/lib/models/summary-bulk-types.d.ts +61 -0
  247. package/lib/models/summary-bulk-types.js +23 -0
  248. package/lib/models/summary-bulk-types.js.map +1 -0
  249. package/lib/models/user-details-types.d.ts +188 -0
  250. package/lib/models/user-details-types.js +9 -0
  251. package/lib/models/user-details-types.js.map +1 -0
  252. package/lib/models/year-range.d.ts +78 -0
  253. package/lib/models/year-range.js +153 -0
  254. package/lib/models/year-range.js.map +1 -0
  255. package/lib/operations/CompatibilityCheckOperation.d.ts +62 -0
  256. package/lib/operations/CompatibilityCheckOperation.js +102 -0
  257. package/lib/operations/CompatibilityCheckOperation.js.map +1 -0
  258. package/lib/operations/DefinitionCreateOperation.d.ts +427 -0
  259. package/lib/operations/DefinitionCreateOperation.js +1270 -0
  260. package/lib/operations/DefinitionCreateOperation.js.map +1 -0
  261. package/lib/operations/DefinitionExportOperation.d.ts +155 -0
  262. package/lib/operations/DefinitionExportOperation.js +281 -0
  263. package/lib/operations/DefinitionExportOperation.js.map +1 -0
  264. package/lib/operations/DefinitionImportOperation.d.ts +144 -0
  265. package/lib/operations/DefinitionImportOperation.js +357 -0
  266. package/lib/operations/DefinitionImportOperation.js.map +1 -0
  267. package/lib/operations/DefinitionListOperation.d.ts +66 -0
  268. package/lib/operations/DefinitionListOperation.js +108 -0
  269. package/lib/operations/DefinitionListOperation.js.map +1 -0
  270. package/lib/operations/DefinitionPurgeOperation.d.ts +203 -0
  271. package/lib/operations/DefinitionPurgeOperation.js +465 -0
  272. package/lib/operations/DefinitionPurgeOperation.js.map +1 -0
  273. package/lib/operations/DefinitionUpdateOperation.d.ts +78 -0
  274. package/lib/operations/DefinitionUpdateOperation.js +142 -0
  275. package/lib/operations/DefinitionUpdateOperation.js.map +1 -0
  276. package/lib/operations/OrgDetailsOperation.d.ts +253 -0
  277. package/lib/operations/OrgDetailsOperation.js +456 -0
  278. package/lib/operations/OrgDetailsOperation.js.map +1 -0
  279. package/lib/operations/OrgResetOperation.d.ts +114 -0
  280. package/lib/operations/OrgResetOperation.js +209 -0
  281. package/lib/operations/OrgResetOperation.js.map +1 -0
  282. package/lib/operations/ProfileOperation.d.ts +192 -0
  283. package/lib/operations/ProfileOperation.js +371 -0
  284. package/lib/operations/ProfileOperation.js.map +1 -0
  285. package/lib/operations/ProfileRequestCancelOperation.d.ts +59 -0
  286. package/lib/operations/ProfileRequestCancelOperation.js +137 -0
  287. package/lib/operations/ProfileRequestCancelOperation.js.map +1 -0
  288. package/lib/operations/ProfileRequestDeleteOperation.d.ts +64 -0
  289. package/lib/operations/ProfileRequestDeleteOperation.js +134 -0
  290. package/lib/operations/ProfileRequestDeleteOperation.js.map +1 -0
  291. package/lib/operations/ProfileRequestListOperation.d.ts +39 -0
  292. package/lib/operations/ProfileRequestListOperation.js +61 -0
  293. package/lib/operations/ProfileRequestListOperation.js.map +1 -0
  294. package/lib/operations/SummaryPurgeOperation.d.ts +134 -0
  295. package/lib/operations/SummaryPurgeOperation.js +257 -0
  296. package/lib/operations/SummaryPurgeOperation.js.map +1 -0
  297. package/lib/operations/SummaryReprofileOperation.d.ts +88 -0
  298. package/lib/operations/SummaryReprofileOperation.js +174 -0
  299. package/lib/operations/SummaryReprofileOperation.js.map +1 -0
  300. package/lib/operations/SummaryStopOperation.d.ts +87 -0
  301. package/lib/operations/SummaryStopOperation.js +175 -0
  302. package/lib/operations/SummaryStopOperation.js.map +1 -0
  303. package/lib/services/BulkExecutionService.d.ts +120 -0
  304. package/lib/services/BulkExecutionService.js +535 -0
  305. package/lib/services/BulkExecutionService.js.map +1 -0
  306. package/lib/services/CompatibilityService.d.ts +81 -0
  307. package/lib/services/CompatibilityService.js +118 -0
  308. package/lib/services/CompatibilityService.js.map +1 -0
  309. package/lib/services/ConfigureMode.d.ts +98 -0
  310. package/lib/services/ConfigureMode.js +413 -0
  311. package/lib/services/ConfigureMode.js.map +1 -0
  312. package/lib/services/ContactPointService.d.ts +111 -0
  313. package/lib/services/ContactPointService.js +286 -0
  314. package/lib/services/ContactPointService.js.map +1 -0
  315. package/lib/services/DataAvailabilityService.d.ts +81 -0
  316. package/lib/services/DataAvailabilityService.js +128 -0
  317. package/lib/services/DataAvailabilityService.js.map +1 -0
  318. package/lib/services/DefinitionFieldGenerationService.d.ts +357 -0
  319. package/lib/services/DefinitionFieldGenerationService.js +899 -0
  320. package/lib/services/DefinitionFieldGenerationService.js.map +1 -0
  321. package/lib/services/DefinitionQueryBuilder.d.ts +92 -0
  322. package/lib/services/DefinitionQueryBuilder.js +328 -0
  323. package/lib/services/DefinitionQueryBuilder.js.map +1 -0
  324. package/lib/services/ObjectDescribeService.d.ts +436 -0
  325. package/lib/services/ObjectDescribeService.js +881 -0
  326. package/lib/services/ObjectDescribeService.js.map +1 -0
  327. package/lib/services/ObjectFilteringService.d.ts +484 -0
  328. package/lib/services/ObjectFilteringService.js +1080 -0
  329. package/lib/services/ObjectFilteringService.js.map +1 -0
  330. package/lib/services/ObjectListCommandService.d.ts +467 -0
  331. package/lib/services/ObjectListCommandService.js +904 -0
  332. package/lib/services/ObjectListCommandService.js.map +1 -0
  333. package/lib/services/ObjectListService.d.ts +201 -0
  334. package/lib/services/ObjectListService.js +350 -0
  335. package/lib/services/ObjectListService.js.map +1 -0
  336. package/lib/services/OrgInfoService.d.ts +493 -0
  337. package/lib/services/OrgInfoService.js +1142 -0
  338. package/lib/services/OrgInfoService.js.map +1 -0
  339. package/lib/services/PollingService.d.ts +105 -0
  340. package/lib/services/PollingService.js +117 -0
  341. package/lib/services/PollingService.js.map +1 -0
  342. package/lib/services/ProfileRequestService.d.ts +186 -0
  343. package/lib/services/ProfileRequestService.js +555 -0
  344. package/lib/services/ProfileRequestService.js.map +1 -0
  345. package/lib/services/ProfilingDefinitionService.d.ts +575 -0
  346. package/lib/services/ProfilingDefinitionService.js +1029 -0
  347. package/lib/services/ProfilingDefinitionService.js.map +1 -0
  348. package/lib/services/ProfilingExecutionService.d.ts +122 -0
  349. package/lib/services/ProfilingExecutionService.js +320 -0
  350. package/lib/services/ProfilingExecutionService.js.map +1 -0
  351. package/lib/services/ProfilingSummaryService.d.ts +292 -0
  352. package/lib/services/ProfilingSummaryService.js +688 -0
  353. package/lib/services/ProfilingSummaryService.js.map +1 -0
  354. package/lib/services/RecordTypeService.d.ts +129 -0
  355. package/lib/services/RecordTypeService.js +284 -0
  356. package/lib/services/RecordTypeService.js.map +1 -0
  357. package/lib/services/SFDMUService.d.ts +146 -0
  358. package/lib/services/SFDMUService.js +323 -0
  359. package/lib/services/SFDMUService.js.map +1 -0
  360. package/lib/services/TabDetectionService.d.ts +105 -0
  361. package/lib/services/TabDetectionService.js +206 -0
  362. package/lib/services/TabDetectionService.js.map +1 -0
  363. package/lib/services/UnconfigureMode.d.ts +74 -0
  364. package/lib/services/UnconfigureMode.js +378 -0
  365. package/lib/services/UnconfigureMode.js.map +1 -0
  366. package/lib/services/UserConfigurationService.d.ts +158 -0
  367. package/lib/services/UserConfigurationService.js +574 -0
  368. package/lib/services/UserConfigurationService.js.map +1 -0
  369. package/lib/services/UserConfigurationTypes.d.ts +181 -0
  370. package/lib/services/UserConfigurationTypes.js +14 -0
  371. package/lib/services/UserConfigurationTypes.js.map +1 -0
  372. package/lib/services/UserReadinessService.d.ts +347 -0
  373. package/lib/services/UserReadinessService.js +891 -0
  374. package/lib/services/UserReadinessService.js.map +1 -0
  375. package/lib/services/constants.d.ts +54 -0
  376. package/lib/services/constants.js +71 -0
  377. package/lib/services/constants.js.map +1 -0
  378. package/lib/services/namespace-constants.d.ts +1 -0
  379. package/lib/services/namespace-constants.js +11 -0
  380. package/lib/services/namespace-constants.js.map +1 -0
  381. package/lib/services/namespace-filter.d.ts +36 -0
  382. package/lib/services/namespace-filter.js +109 -0
  383. package/lib/services/namespace-filter.js.map +1 -0
  384. package/lib/services/validation.d.ts +47 -0
  385. package/lib/services/validation.js +119 -0
  386. package/lib/services/validation.js.map +1 -0
  387. package/lib/utils/batch-processor.d.ts +13 -0
  388. package/lib/utils/batch-processor.js +39 -0
  389. package/lib/utils/batch-processor.js.map +1 -0
  390. package/lib/utils/formatting/availability-grid.d.ts +81 -0
  391. package/lib/utils/formatting/availability-grid.js +94 -0
  392. package/lib/utils/formatting/availability-grid.js.map +1 -0
  393. package/lib/utils/formatting/business-process-grid.d.ts +51 -0
  394. package/lib/utils/formatting/business-process-grid.js +58 -0
  395. package/lib/utils/formatting/business-process-grid.js.map +1 -0
  396. package/lib/utils/formatting/command-display.d.ts +154 -0
  397. package/lib/utils/formatting/command-display.js +154 -0
  398. package/lib/utils/formatting/command-display.js.map +1 -0
  399. package/lib/utils/formatting/definition-create-display.d.ts +118 -0
  400. package/lib/utils/formatting/definition-create-display.js +230 -0
  401. package/lib/utils/formatting/definition-create-display.js.map +1 -0
  402. package/lib/utils/formatting/empty-states.d.ts +35 -0
  403. package/lib/utils/formatting/empty-states.js +70 -0
  404. package/lib/utils/formatting/empty-states.js.map +1 -0
  405. package/lib/utils/formatting/errors.d.ts +33 -0
  406. package/lib/utils/formatting/errors.js +72 -0
  407. package/lib/utils/formatting/errors.js.map +1 -0
  408. package/lib/utils/formatting/field-types.d.ts +32 -0
  409. package/lib/utils/formatting/field-types.js +88 -0
  410. package/lib/utils/formatting/field-types.js.map +1 -0
  411. package/lib/utils/formatting/index.d.ts +29 -0
  412. package/lib/utils/formatting/index.js +28 -0
  413. package/lib/utils/formatting/index.js.map +1 -0
  414. package/lib/utils/formatting/indicators.d.ts +113 -0
  415. package/lib/utils/formatting/indicators.js +161 -0
  416. package/lib/utils/formatting/indicators.js.map +1 -0
  417. package/lib/utils/formatting/loading-messages.d.ts +37 -0
  418. package/lib/utils/formatting/loading-messages.js +50 -0
  419. package/lib/utils/formatting/loading-messages.js.map +1 -0
  420. package/lib/utils/formatting/namespace-display.d.ts +31 -0
  421. package/lib/utils/formatting/namespace-display.js +64 -0
  422. package/lib/utils/formatting/namespace-display.js.map +1 -0
  423. package/lib/utils/formatting/numbers.d.ts +73 -0
  424. package/lib/utils/formatting/numbers.js +187 -0
  425. package/lib/utils/formatting/numbers.js.map +1 -0
  426. package/lib/utils/formatting/object-describe-display.d.ts +117 -0
  427. package/lib/utils/formatting/object-describe-display.js +447 -0
  428. package/lib/utils/formatting/object-describe-display.js.map +1 -0
  429. package/lib/utils/formatting/object-list-display.d.ts +225 -0
  430. package/lib/utils/formatting/object-list-display.js +718 -0
  431. package/lib/utils/formatting/object-list-display.js.map +1 -0
  432. package/lib/utils/formatting/org-identity.d.ts +15 -0
  433. package/lib/utils/formatting/org-identity.js +28 -0
  434. package/lib/utils/formatting/org-identity.js.map +1 -0
  435. package/lib/utils/formatting/record-age-grid.d.ts +41 -0
  436. package/lib/utils/formatting/record-age-grid.js +56 -0
  437. package/lib/utils/formatting/record-age-grid.js.map +1 -0
  438. package/lib/utils/formatting/sections.d.ts +108 -0
  439. package/lib/utils/formatting/sections.js +150 -0
  440. package/lib/utils/formatting/sections.js.map +1 -0
  441. package/lib/utils/formatting/tables.d.ts +90 -0
  442. package/lib/utils/formatting/tables.js +113 -0
  443. package/lib/utils/formatting/tables.js.map +1 -0
  444. package/lib/utils/formatting/user-details-display.d.ts +101 -0
  445. package/lib/utils/formatting/user-details-display.js +425 -0
  446. package/lib/utils/formatting/user-details-display.js.map +1 -0
  447. package/lib/utils/pagination/keypress-reader.d.ts +20 -0
  448. package/lib/utils/pagination/keypress-reader.js +63 -0
  449. package/lib/utils/pagination/keypress-reader.js.map +1 -0
  450. package/lib/utils/pagination/paginate-output.d.ts +48 -0
  451. package/lib/utils/pagination/paginate-output.js +136 -0
  452. package/lib/utils/pagination/paginate-output.js.map +1 -0
  453. package/messages/compatibility.check.md +71 -0
  454. package/messages/cuneiform.access.md +138 -0
  455. package/messages/definition.create.md +525 -0
  456. package/messages/definition.export.md +84 -0
  457. package/messages/definition.get.md +147 -0
  458. package/messages/definition.import.md +65 -0
  459. package/messages/definition.list.md +264 -0
  460. package/messages/definition.purge.md +330 -0
  461. package/messages/definition.update.md +118 -0
  462. package/messages/mcp.serve.md +66 -0
  463. package/messages/object.describe.md +205 -0
  464. package/messages/object.list.md +463 -0
  465. package/messages/org.details.md +386 -0
  466. package/messages/org.reset.md +71 -0
  467. package/messages/profile.md +243 -0
  468. package/messages/profile.request.cancel.md +143 -0
  469. package/messages/profile.request.delete.md +139 -0
  470. package/messages/profile.request.list.md +89 -0
  471. package/messages/summary.purge.md +218 -0
  472. package/messages/summary.reprofile.md +150 -0
  473. package/messages/summary.stop.md +157 -0
  474. package/messages/user.details.md +501 -0
  475. package/oclif.lock +3267 -2148
  476. package/oclif.manifest.json +2829 -31
  477. package/package.json +104 -18
  478. package/lib/commands/cuneiform/about.d.ts +0 -13
  479. package/lib/commands/cuneiform/about.js +0 -26
  480. package/lib/commands/cuneiform/about.js.map +0 -1
  481. package/lib/commands/hello/world.d.ts +0 -14
  482. package/lib/commands/hello/world.js +0 -27
  483. package/lib/commands/hello/world.js.map +0 -1
  484. package/lib/index.d.ts +0 -2
  485. package/lib/index.js +0 -2
  486. package/lib/index.js.map +0 -1
  487. package/messages/cuneiform.about.md +0 -19
  488. package/messages/hello.world.md +0 -29
@@ -0,0 +1,115 @@
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
+ /**
10
+ * REST API base URL for Cuneiform profiling endpoints.
11
+ * All actions are routed via POST to this URL with the action as the last path segment.
12
+ */
13
+ // Apex urlMapping is '/v1/profiling/*' — Salesforce auto-prepends namespace (pnova)
14
+ const PROFILING_REST_BASE = '/services/apexrest/pnova/v1/profiling';
15
+ /**
16
+ * Thin REST client for calling Cuneiform ISV profiling endpoints.
17
+ * Wraps the existing IRestApiAdapter.request<T>() method with typed payloads.
18
+ *
19
+ * @example
20
+ * ```typescript
21
+ * const client = new ProfilingRestClient(restAdapter);
22
+ * const result = await client.createSmart({
23
+ * objects: [{ name: 'Account', label: 'Account' }],
24
+ * method: 'metadata',
25
+ * options: { dryRun: true }
26
+ * });
27
+ * ```
28
+ */
29
+ export class ProfilingRestClient {
30
+ restAdapter;
31
+ constructor(restAdapter) {
32
+ this.restAdapter = restAdapter;
33
+ }
34
+ /**
35
+ * Calls the smart definition creation endpoint.
36
+ * Server handles naming, categorization, deduplication, and creation.
37
+ */
38
+ async createSmart(request) {
39
+ return this.post('create-smart', request);
40
+ }
41
+ /**
42
+ * Calls the object filtering endpoint.
43
+ * Server applies cost-optimized multi-criteria filter chain.
44
+ */
45
+ async filterObjects(request) {
46
+ return this.post('filter-objects', request);
47
+ }
48
+ /**
49
+ * Calls the object describe endpoint.
50
+ */
51
+ async describeObject(objectName, options) {
52
+ return this.post('describe-object', {
53
+ objectName,
54
+ ...options,
55
+ });
56
+ }
57
+ /**
58
+ * Calls the data availability grid endpoint.
59
+ */
60
+ async getDataAvailability(objects, years) {
61
+ return this.post('data-availability', { objects, years });
62
+ }
63
+ /**
64
+ * Calls the user readiness endpoint.
65
+ */
66
+ async checkUserReadiness(userId) {
67
+ return this.post('user-readiness', { userId });
68
+ }
69
+ /**
70
+ * Calls the org info endpoint.
71
+ */
72
+ async getOrgInfo() {
73
+ return this.post('org-info', {});
74
+ }
75
+ /**
76
+ * Calls the user-configure endpoint (ConfigurationProfileResource).
77
+ * Separate REST resource at /v1/profiling/configuration/.
78
+ */
79
+ async configureUser(options) {
80
+ const startTime = Date.now();
81
+ const result = await this.restAdapter.request({
82
+ url: '/services/apexrest/pnova/v1/profiling/configuration',
83
+ method: 'POST',
84
+ body: JSON.stringify(options),
85
+ headers: { 'content-type': 'application/json' },
86
+ });
87
+ if (!result.success) {
88
+ return createFailureResult(result.data, result.errorCode ?? 'REST_API_ERROR', result.message ?? 'REST API call to user-configure failed', { metadata: { duration: Date.now() - startTime } });
89
+ }
90
+ return createSuccessResult(result.data, {
91
+ message: 'User configuration completed via REST API',
92
+ metadata: { duration: Date.now() - startTime },
93
+ });
94
+ }
95
+ /**
96
+ * Generic POST to a profiling REST action.
97
+ */
98
+ async post(action, body) {
99
+ const startTime = Date.now();
100
+ const result = await this.restAdapter.request({
101
+ url: `${PROFILING_REST_BASE}/${action}`,
102
+ method: 'POST',
103
+ body: JSON.stringify(body),
104
+ headers: { 'content-type': 'application/json' },
105
+ });
106
+ if (!result.success) {
107
+ return createFailureResult(result.data, result.errorCode ?? 'REST_API_ERROR', result.message ?? `REST API call to ${action} failed`, { metadata: { duration: Date.now() - startTime } });
108
+ }
109
+ return createSuccessResult(result.data, {
110
+ message: `REST API call to ${action} succeeded`,
111
+ metadata: { duration: Date.now() - startTime },
112
+ });
113
+ }
114
+ }
115
+ //# sourceMappingURL=profiling-rest-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profiling-rest-client.js","sourceRoot":"","sources":["../../../src/adapters/rest/profiling-rest-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,393 @@
1
+ import type { IConnectionFacade, DescribeSObjectResult, DescribeGlobalResult, HttpRequest } from '../connection-facade.js';
2
+ import type { ServiceResult } from '../../models/service-result.js';
3
+ import type { RestApiAdapterConfig } from './types.js';
4
+ /**
5
+ * Result type for successful record insert operations.
6
+ */
7
+ export type InsertRecordResult = {
8
+ /** The ID of the newly created record */
9
+ id: string;
10
+ };
11
+ /**
12
+ * Result type for successful record update operations.
13
+ */
14
+ export type UpdateRecordResult = {
15
+ /** The ID of the updated record */
16
+ id: string;
17
+ /** Whether the update succeeded */
18
+ success: boolean;
19
+ };
20
+ /**
21
+ * Result type for successful record delete operations.
22
+ */
23
+ export type DeleteRecordResult = {
24
+ /** The ID of the deleted record */
25
+ id: string;
26
+ /** Whether the delete succeeded */
27
+ success: boolean;
28
+ };
29
+ /**
30
+ * Interface for REST API operations.
31
+ *
32
+ * Provides methods for describing Salesforce objects with caching support,
33
+ * and writing sObject records.
34
+ */
35
+ export type IRestApiAdapter = {
36
+ /**
37
+ * Describes a single Salesforce object.
38
+ *
39
+ * @param objectName - The API name of the object
40
+ * @returns ServiceResult containing the describe result
41
+ */
42
+ describeObject(objectName: string): Promise<ServiceResult<DescribeSObjectResult>>;
43
+ /**
44
+ * Retrieves global describe information for all accessible objects.
45
+ *
46
+ * @returns ServiceResult containing the global describe result
47
+ */
48
+ describeGlobal(): Promise<ServiceResult<DescribeGlobalResult>>;
49
+ /**
50
+ * Gets the record count for a Salesforce object.
51
+ *
52
+ * @param objectName - The API name of the object
53
+ * @returns ServiceResult containing the record count
54
+ */
55
+ getRecordCount(objectName: string): Promise<ServiceResult<number>>;
56
+ /**
57
+ * Gets record counts for multiple Salesforce objects using the bulk REST endpoint.
58
+ *
59
+ * Uses `GET /limits/recordCount?sObjects=...` for a single API call instead of
60
+ * N individual SOQL COUNT() queries. Falls back to per-object SOQL queries if
61
+ * the REST endpoint fails. Cached counts are resolved first; only uncached
62
+ * objects are included in the REST call.
63
+ *
64
+ * @param objectNames - Array of object API names
65
+ * @returns ServiceResult containing Map of object name to count
66
+ *
67
+ * @example
68
+ * ```typescript
69
+ * const result = await adapter.getRecordCounts(['Account', 'Contact', 'Lead']);
70
+ * if (result.success) {
71
+ * for (const [name, count] of result.data) {
72
+ * console.log(`${name}: ${count} records`);
73
+ * }
74
+ * }
75
+ * ```
76
+ */
77
+ getRecordCounts(objectNames: string[]): Promise<ServiceResult<Map<string, number>>>;
78
+ /**
79
+ * Describes multiple Salesforce objects.
80
+ *
81
+ * @param objectNames - Array of object API names
82
+ * @returns ServiceResult containing a map of object names to describe results
83
+ */
84
+ describeObjects(objectNames: string[]): Promise<ServiceResult<Map<string, DescribeSObjectResult>>>;
85
+ /**
86
+ * Inserts a new record into a Salesforce object.
87
+ *
88
+ * Uses the REST API POST /sobjects/{objectName} endpoint.
89
+ *
90
+ * @param objectName - The API name of the object (e.g., 'Account', 'PermissionSetAssignment')
91
+ * @param record - The field values for the new record
92
+ * @returns ServiceResult containing the created record's ID
93
+ *
94
+ * @example
95
+ * ```typescript
96
+ * // Insert a PermissionSetAssignment record
97
+ * const result = await adapter.insertRecord('PermissionSetAssignment', {
98
+ * AssigneeId: '005xx000001234567',
99
+ * PermissionSetId: '0PS000000000001'
100
+ * });
101
+ * if (result.success) {
102
+ * console.log(`Created record: ${result.data.id}`);
103
+ * }
104
+ * ```
105
+ */
106
+ insertRecord(objectName: string, record: Record<string, unknown>): Promise<ServiceResult<InsertRecordResult>>;
107
+ /**
108
+ * Updates an existing record in a Salesforce object.
109
+ *
110
+ * Uses the REST API PATCH /sobjects/{objectName}/{recordId} endpoint.
111
+ *
112
+ * @param objectName - The API name of the object (must use pnova__ namespace, e.g., 'pnova__Profiling_Definition__c')
113
+ * @param recordId - The ID of the record to update
114
+ * @param record - The field values to update
115
+ * @returns ServiceResult containing the update result with record ID and success status
116
+ *
117
+ * @example
118
+ * ```typescript
119
+ * // Update a Cuneiform record
120
+ * const result = await adapter.updateRecord('pnova__Profiling_Definition__c', '001xx000003DKMPAA4', {
121
+ * pnova__Prop_Name__c: 'Updated Definition',
122
+ * });
123
+ * if (result.success) {
124
+ * console.log(`Updated record: ${result.data.id}`);
125
+ * }
126
+ * ```
127
+ */
128
+ updateRecord(objectName: string, recordId: string, record: Record<string, unknown>): Promise<ServiceResult<UpdateRecordResult>>;
129
+ /**
130
+ * Deletes a record from a Salesforce object.
131
+ *
132
+ * Uses the REST API DELETE /sobjects/{objectName}/{recordId} endpoint.
133
+ *
134
+ * @param objectName - The API name of the object (must use pnova__ namespace, e.g., 'pnova__Profiling_Summary__c')
135
+ * @param recordId - The ID of the record to delete
136
+ * @returns ServiceResult containing the delete result with record ID and success status
137
+ *
138
+ * @example
139
+ * ```typescript
140
+ * // Delete a Cuneiform record
141
+ * const result = await adapter.deleteRecord('pnova__Profiling_Summary__c', '003xx000004TMJQAA4');
142
+ * if (result.success) {
143
+ * console.log(`Deleted record: ${result.data.id}`);
144
+ * }
145
+ * ```
146
+ */
147
+ deleteRecord(objectName: string, recordId: string): Promise<ServiceResult<DeleteRecordResult>>;
148
+ /**
149
+ * Makes a generic HTTP request to a custom Salesforce REST endpoint.
150
+ *
151
+ * Supports custom Apex REST endpoints (e.g., `/services/apexrest/pnova/v1/...`)
152
+ * and any other Salesforce REST API path. Unlike the typed methods above,
153
+ * this provides a pass-through for arbitrary request/response shapes.
154
+ *
155
+ * @param request - The HTTP request configuration (url, method, body, headers)
156
+ * @returns ServiceResult containing the deserialized response of type T
157
+ *
158
+ * @example
159
+ * ```typescript
160
+ * // Call a custom Apex REST endpoint
161
+ * const result = await adapter.request<{ success: boolean; results: Array<{ id: string }> }>({
162
+ * url: '/services/apexrest/pnova/v1/profiling/requests',
163
+ * method: 'POST',
164
+ * body: JSON.stringify({ id: definitionId }),
165
+ * headers: { 'content-type': 'application/json' },
166
+ * });
167
+ * ```
168
+ */
169
+ request<T>(request: HttpRequest): Promise<ServiceResult<T>>;
170
+ /**
171
+ * Invalidates cached entries.
172
+ *
173
+ * @param pattern - Optional pattern to match keys (supports * wildcard). If not provided, clears all entries.
174
+ */
175
+ invalidateCache(pattern?: string): void;
176
+ };
177
+ /**
178
+ * Adapter for REST API operations against Salesforce.
179
+ *
180
+ * Provides caching for describe operations to reduce API calls.
181
+ *
182
+ * @example
183
+ * ```typescript
184
+ * const adapter = new RestApiAdapter(connectionFacade);
185
+ *
186
+ * // Describe an object (cached)
187
+ * const result = await adapter.describeObject('Account');
188
+ *
189
+ * // Get global describe (cached)
190
+ * const global = await adapter.describeGlobal();
191
+ *
192
+ * // Describe multiple objects
193
+ * const describes = await adapter.describeObjects(['Account', 'Contact', 'Opportunity']);
194
+ *
195
+ * // Invalidate cache
196
+ * adapter.invalidateCache('describe:Account'); // Single object
197
+ * adapter.invalidateCache('describe:*'); // All describes
198
+ * adapter.invalidateCache(); // Everything
199
+ * ```
200
+ */
201
+ export declare class RestApiAdapter implements IRestApiAdapter {
202
+ private readonly connection;
203
+ private readonly logger?;
204
+ private readonly cache;
205
+ private readonly cacheEnabled;
206
+ private readonly lifecycle;
207
+ private readonly retryConfig?;
208
+ private readonly recordCountBatchSize;
209
+ /**
210
+ * Creates a new RestApiAdapter.
211
+ *
212
+ * @param connection - The connection facade to use for API calls
213
+ * @param config - Optional configuration
214
+ */
215
+ constructor(connection: IConnectionFacade, config?: RestApiAdapterConfig);
216
+ /**
217
+ * Validates that a write operation targets a permitted object.
218
+ *
219
+ * Only objects with the pnova__ namespace prefix are allowed for all write operations.
220
+ * A small set of standard objects (WRITE_ALLOWLIST) are allowed for specific operations.
221
+ *
222
+ * @param objectName - The API name of the target object
223
+ * @param operation - The write operation type
224
+ * @returns undefined if allowed, or an error code and message if blocked
225
+ */
226
+ private static validateWriteNamespace;
227
+ /**
228
+ * Describes a single Salesforce object.
229
+ *
230
+ * @param objectName - The API name of the object
231
+ * @returns ServiceResult containing the describe result
232
+ */
233
+ describeObject(objectName: string): Promise<ServiceResult<DescribeSObjectResult>>;
234
+ /**
235
+ * Retrieves global describe information for all accessible objects.
236
+ *
237
+ * @returns ServiceResult containing the global describe result
238
+ */
239
+ describeGlobal(): Promise<ServiceResult<DescribeGlobalResult>>;
240
+ /**
241
+ * Gets the record count for a Salesforce object.
242
+ *
243
+ * @param objectName - The API name of the object
244
+ * @returns ServiceResult containing the record count
245
+ */
246
+ getRecordCount(objectName: string): Promise<ServiceResult<number>>;
247
+ /**
248
+ * Describes multiple Salesforce objects.
249
+ *
250
+ * @param objectNames - Array of object API names
251
+ * @returns ServiceResult containing a map of object names to describe results
252
+ */
253
+ describeObjects(objectNames: string[]): Promise<ServiceResult<Map<string, DescribeSObjectResult>>>;
254
+ /**
255
+ * Gets record counts for multiple Salesforce objects using the bulk REST endpoint.
256
+ *
257
+ * Uses `GET /limits/recordCount` for a single API call instead of
258
+ * N individual SOQL `SELECT COUNT()` queries. Falls back to per-object SOQL queries
259
+ * if the REST endpoint is unavailable or fails.
260
+ *
261
+ * CLI-4214: the `/limits/recordCount` endpoint is a HINT — it returns ONLY objects with
262
+ * count > 0. Objects it omits (genuine empties and not-yet-counted recent writes) are
263
+ * ABSENT from the returned map, NOT fabricated as 0, so callers can distinguish a limits
264
+ * omission (reconcile it) from an authoritative 0. Counts present in the map (limits hits
265
+ * and SOQL-fallback results, including genuine 0s) are cached so subsequent
266
+ * `getRecordCount()` calls benefit; omitted objects leave the cache untouched.
267
+ *
268
+ * @param objectNames - Array of object API names
269
+ * @returns ServiceResult containing Map of object name to count (omits unknown objects)
270
+ */
271
+ getRecordCounts(objectNames: string[]): Promise<ServiceResult<Map<string, number>>>;
272
+ /**
273
+ * Inserts a new record into a Salesforce object.
274
+ *
275
+ * Uses the REST API POST /sobjects/{objectName} endpoint to create a record.
276
+ * Does not use caching since write operations should always execute.
277
+ *
278
+ * @param objectName - The API name of the object (e.g., 'Account', 'PermissionSetAssignment')
279
+ * @param record - The field values for the new record
280
+ * @returns ServiceResult containing the created record's ID
281
+ *
282
+ * @example
283
+ * ```typescript
284
+ * const result = await adapter.insertRecord('PermissionSetAssignment', {
285
+ * AssigneeId: '005xx000001234567',
286
+ * PermissionSetId: '0PS000000000001'
287
+ * });
288
+ * ```
289
+ */
290
+ insertRecord(objectName: string, record: Record<string, unknown>): Promise<ServiceResult<InsertRecordResult>>;
291
+ /**
292
+ * Updates an existing record in a Salesforce object.
293
+ *
294
+ * Uses the REST API PATCH /sobjects/{objectName}/{recordId} endpoint to update a record.
295
+ * Does not use caching since write operations should always execute.
296
+ *
297
+ * @param objectName - The API name of the object (e.g., 'Account', 'Contact')
298
+ * @param recordId - The ID of the record to update
299
+ * @param record - The field values to update
300
+ * @returns ServiceResult containing the update result with record ID and success status
301
+ */
302
+ updateRecord(objectName: string, recordId: string, record: Record<string, unknown>): Promise<ServiceResult<UpdateRecordResult>>;
303
+ /**
304
+ * Deletes a record from a Salesforce object.
305
+ *
306
+ * Uses the REST API DELETE /sobjects/{objectName}/{recordId} endpoint to delete a record.
307
+ * Does not use caching since write operations should always execute.
308
+ *
309
+ * @param objectName - The API name of the object (e.g., 'Account', 'Contact')
310
+ * @param recordId - The ID of the record to delete
311
+ * @returns ServiceResult containing the delete result with record ID and success status
312
+ */
313
+ deleteRecord(objectName: string, recordId: string): Promise<ServiceResult<DeleteRecordResult>>;
314
+ /**
315
+ * Makes a generic HTTP request to a custom Salesforce REST endpoint.
316
+ *
317
+ * Supports custom Apex REST endpoints and any other Salesforce REST API path.
318
+ * Does not use caching since custom endpoints have unpredictable response shapes.
319
+ *
320
+ * The namespace guard is enforced for write operations (POST, PATCH, PUT, DELETE) that
321
+ * target sObject endpoints (`/sobjects/{objectName}`). Custom Apex REST endpoints
322
+ * (e.g., `/services/apexrest/pnova/v1/...`) and GET requests are not affected.
323
+ *
324
+ * @param httpRequest - The HTTP request configuration
325
+ * @returns ServiceResult containing the deserialized response of type T
326
+ */
327
+ request<T>(httpRequest: HttpRequest): Promise<ServiceResult<T>>;
328
+ /**
329
+ * Invalidates cached entries.
330
+ *
331
+ * @param pattern - Optional pattern to match keys (supports * wildcard). If not provided, clears all entries.
332
+ */
333
+ invalidateCache(pattern?: string): void;
334
+ /**
335
+ * Fetches record counts via the bulk REST endpoint `/limits/recordCount`.
336
+ *
337
+ * @param objectNames - Object API names to fetch counts for
338
+ * @param results - Map to populate with counts
339
+ * @returns true if the REST endpoint succeeded, false if it failed
340
+ */
341
+ private fetchRecordCountsViaRest;
342
+ /**
343
+ * Fallback: fetches record counts via individual SOQL COUNT() queries.
344
+ *
345
+ * @param objectNames - Object API names to fetch counts for
346
+ * @param results - Map to populate with counts
347
+ */
348
+ private fetchRecordCountsViaSoql;
349
+ /**
350
+ * Handles DML insert errors and maps them to appropriate error codes.
351
+ *
352
+ * @param error - The caught error
353
+ * @param startTime - The operation start time for duration calculation
354
+ * @param emptyResult - The empty result to return on failure
355
+ * @param context - Context for logging (object name)
356
+ * @returns ServiceResult with success=false and mapped error code
357
+ */
358
+ private handleInsertError;
359
+ /**
360
+ * Handles DML update errors and maps them to appropriate error codes.
361
+ *
362
+ * @param error - The caught error
363
+ * @param startTime - The operation start time for duration calculation
364
+ * @param emptyResult - The empty result to return on failure
365
+ * @param context - Context for logging (object name/record ID)
366
+ * @returns ServiceResult with success=false and mapped error code
367
+ */
368
+ private handleUpdateError;
369
+ /**
370
+ * Handles DML delete errors and maps them to appropriate error codes.
371
+ *
372
+ * @param error - The caught error
373
+ * @param startTime - The operation start time for duration calculation
374
+ * @param emptyResult - The empty result to return on failure
375
+ * @param context - Context for logging (object name/record ID)
376
+ * @returns ServiceResult with success=false and mapped error code
377
+ */
378
+ private handleDeleteError;
379
+ /**
380
+ * Handles errors and maps them to appropriate error codes.
381
+ *
382
+ * Accepts SfError, jsforce errors, or unknown error types. Extracts Salesforce
383
+ * error codes when available and maps them to adapter-specific error codes.
384
+ *
385
+ * @param error - The caught error (SfError, jsforce error, or unknown)
386
+ * @param startTime - The operation start time for duration calculation
387
+ * @param emptyResult - The empty result to return on failure
388
+ * @param context - Context for logging (e.g., "Account", "global describe")
389
+ * @param defaultErrorCode - The default error code if no SF error code is found
390
+ * @returns ServiceResult with success=false and mapped error code
391
+ */
392
+ private handleError;
393
+ }