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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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 +57 -0
  106. package/lib/commands/cuneiform/definition/export.js +133 -0
  107. package/lib/commands/cuneiform/definition/export.js.map +1 -0
  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 +54 -0
  112. package/lib/commands/cuneiform/definition/import.js +118 -0
  113. package/lib/commands/cuneiform/definition/import.js.map +1 -0
  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 +53 -0
  247. package/lib/models/sfdmu-types.js +23 -0
  248. package/lib/models/sfdmu-types.js.map +1 -0
  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 +155 -0
  268. package/lib/operations/DefinitionExportOperation.js +281 -0
  269. package/lib/operations/DefinitionExportOperation.js.map +1 -0
  270. package/lib/operations/DefinitionImportOperation.d.ts +144 -0
  271. package/lib/operations/DefinitionImportOperation.js +357 -0
  272. package/lib/operations/DefinitionImportOperation.js.map +1 -0
  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 +133 -0
  364. package/lib/services/SFDMUService.js +295 -0
  365. package/lib/services/SFDMUService.js.map +1 -0
  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 +84 -0
  463. package/messages/definition.get.md +147 -0
  464. package/messages/definition.import.md +65 -0
  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 +2887 -2149
  482. package/oclif.manifest.json +2813 -31
  483. package/package.json +94 -19
  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,134 @@
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
+ /**
11
+ * Error codes for profile request delete operations.
12
+ * Re-exported from ServiceErrorCodes for convenience.
13
+ */
14
+ export const ProfileRequestDeleteErrorCodes = {
15
+ DELETE_FAILED: ServiceErrorCodes.REQUEST_DELETE_FAILED,
16
+ INVALID_IDS: ServiceErrorCodes.REQUEST_INVALID_IDS,
17
+ NO_DELETABLE: ServiceErrorCodes.REQUEST_NO_DELETABLE,
18
+ PARTIAL_FAILURE: ServiceErrorCodes.REQUEST_DELETE_PARTIAL_FAILURE,
19
+ };
20
+ /**
21
+ * Orchestrates deletion of profiling requests.
22
+ *
23
+ * Delegates to ProfileRequestService for the actual delete logic.
24
+ * Manages user-facing concerns: confirmation prompts, dry-run previews,
25
+ * and timing metadata.
26
+ *
27
+ * @example
28
+ * ```typescript
29
+ * const operation = new ProfileRequestDeleteOperation(profileRequestService);
30
+ * const result = await operation.execute({ all: true, dryRun: true });
31
+ * ```
32
+ */
33
+ export class ProfileRequestDeleteOperation {
34
+ profileRequestService;
35
+ logger;
36
+ constructor(profileRequestService, logger) {
37
+ this.profileRequestService = profileRequestService;
38
+ this.logger = logger;
39
+ }
40
+ /**
41
+ * Creates the empty delete result structure.
42
+ */
43
+ static emptyResult(dryRun) {
44
+ return {
45
+ deleted: [],
46
+ failed: [],
47
+ dryRun,
48
+ totalDeletable: 0,
49
+ };
50
+ }
51
+ /**
52
+ * Executes the profile request delete operation.
53
+ *
54
+ * @param options - Delete operation options
55
+ * @returns ServiceResult containing the delete outcome
56
+ */
57
+ async execute(options) {
58
+ const startTime = Date.now();
59
+ const dryRun = options.dryRun ?? false;
60
+ const emptyResult = ProfileRequestDeleteOperation.emptyResult(dryRun);
61
+ try {
62
+ this.logger?.log('Starting profile request delete operation');
63
+ // Validate mutually exclusive options
64
+ const hasAll = options.all === true;
65
+ const hasIds = options.requestIds !== undefined && options.requestIds.length > 0;
66
+ if (hasAll && hasIds) {
67
+ return createFailureResult(emptyResult, ProfileRequestDeleteErrorCodes.INVALID_IDS, 'The --all and --request-ids flags are mutually exclusive. Provide one or the other.', { metadata: { duration: Date.now() - startTime } });
68
+ }
69
+ if (!hasAll && !hasIds) {
70
+ return createFailureResult(emptyResult, ProfileRequestDeleteErrorCodes.INVALID_IDS, 'You must provide either --all or --request-ids to specify which requests to delete.', { metadata: { duration: Date.now() - startTime } });
71
+ }
72
+ const serviceOptions = {
73
+ all: options.all,
74
+ requestIds: options.requestIds,
75
+ };
76
+ const needsConfirmation = !dryRun && !options.noPrompt && !!options.onConfirm;
77
+ // Discovery: dry-run first when confirmation is needed, or honour explicit dryRun
78
+ const discoveryResult = await this.profileRequestService.deleteRequests({
79
+ ...serviceOptions,
80
+ dryRun: dryRun || needsConfirmation,
81
+ });
82
+ if (!discoveryResult.success) {
83
+ // For partial failures, notify caller so the spinner shows the correct count
84
+ if (discoveryResult.errorCode === ProfileRequestDeleteErrorCodes.PARTIAL_FAILURE) {
85
+ options.onDeletableFound?.(discoveryResult.data.totalDeletable);
86
+ }
87
+ // Preserve result.data so callers can access deleted/failed arrays
88
+ return createFailureResult(discoveryResult.data, discoveryResult.errorCode ?? ProfileRequestDeleteErrorCodes.DELETE_FAILED, discoveryResult.message ?? 'Delete operation failed', {
89
+ metadata: { duration: Date.now() - startTime },
90
+ });
91
+ }
92
+ const discoveryData = discoveryResult.data;
93
+ // Notify caller about deletable requests found
94
+ options.onDeletableFound?.(discoveryData.totalDeletable);
95
+ // Prompt user for confirmation before executing
96
+ if (needsConfirmation) {
97
+ return await this.executeWithConfirmation(serviceOptions, discoveryData.totalDeletable, emptyResult, options, startTime);
98
+ }
99
+ // No confirmation needed (dryRun or noPrompt) — return discovery result directly
100
+ const duration = Date.now() - startTime;
101
+ this.logger?.log(`Delete operation completed in ${duration}ms`);
102
+ return createSuccessResult(discoveryData, {
103
+ message: discoveryResult.message,
104
+ metadata: { duration },
105
+ });
106
+ }
107
+ catch (error) {
108
+ const errorMessage = error instanceof Error ? error.message : String(error);
109
+ this.logger?.log(`Delete operation failed: ${errorMessage}`);
110
+ return createFailureResult(emptyResult, ProfileRequestDeleteErrorCodes.DELETE_FAILED, errorMessage, {
111
+ metadata: { duration: Date.now() - startTime },
112
+ });
113
+ }
114
+ }
115
+ /**
116
+ * Prompts for confirmation then executes the actual deletion.
117
+ * Extracted to keep execute() within cyclomatic complexity limits.
118
+ */
119
+ async executeWithConfirmation(serviceOptions, totalDeletable, emptyResult, options, startTime) {
120
+ const confirmed = await options.onConfirm(totalDeletable);
121
+ if (!confirmed) {
122
+ this.logger?.log('Delete operation aborted by user');
123
+ return createSuccessResult({ ...emptyResult, totalDeletable }, { message: 'Deletion aborted by user.', metadata: { duration: Date.now() - startTime, userCancelled: true } });
124
+ }
125
+ const executeResult = await this.profileRequestService.deleteRequests({ ...serviceOptions, dryRun: false });
126
+ if (!executeResult.success) {
127
+ return createFailureResult(executeResult.data, executeResult.errorCode ?? ProfileRequestDeleteErrorCodes.DELETE_FAILED, executeResult.message ?? 'Delete operation failed', { metadata: { duration: Date.now() - startTime } });
128
+ }
129
+ const duration = Date.now() - startTime;
130
+ this.logger?.log(`Delete operation completed in ${duration}ms`);
131
+ return createSuccessResult(executeResult.data, { message: executeResult.message, metadata: { duration } });
132
+ }
133
+ }
134
+ //# sourceMappingURL=ProfileRequestDeleteOperation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProfileRequestDeleteOperation.js","sourceRoot":"","sources":["../../src/operations/ProfileRequestDeleteOperation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ import { type ServiceResult } from '../models/service-result.js';
2
+ import { ProfileRequestService } from '../services/ProfileRequestService.js';
3
+ import type { IProfileRequest, ProfileRequestStatus } from '../models/profile-request-types.js';
4
+ /**
5
+ * Options for the profile request list operation.
6
+ */
7
+ export type ProfileRequestListOperationOptions = {
8
+ /** Filter by request status */
9
+ status?: ProfileRequestStatus;
10
+ /** Pagination limit (default 25, max 200) */
11
+ limit?: number;
12
+ /** Pagination offset */
13
+ offset?: number;
14
+ };
15
+ /**
16
+ * Error codes for profile request list operations.
17
+ * Re-exported from ServiceErrorCodes for convenience.
18
+ */
19
+ export declare const ProfileRequestListErrorCodes: {
20
+ readonly QUERY_FAILED: "E4900";
21
+ readonly OPERATION_FAILED: "E4900";
22
+ };
23
+ /**
24
+ * Orchestrates listing profiling requests.
25
+ *
26
+ * Thin orchestrator that delegates to ProfileRequestService.listRequests()
27
+ * and tracks operation timing.
28
+ */
29
+ export declare class ProfileRequestListOperation {
30
+ private readonly service;
31
+ constructor(service: ProfileRequestService);
32
+ /**
33
+ * Executes the profile request list operation.
34
+ *
35
+ * @param options - Filtering and pagination options
36
+ * @returns ServiceResult containing an array of IProfileRequest
37
+ */
38
+ execute(options: ProfileRequestListOperationOptions): Promise<ServiceResult<IProfileRequest[]>>;
39
+ }
@@ -0,0 +1,61 @@
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
+ /**
11
+ * Error codes for profile request list operations.
12
+ * Re-exported from ServiceErrorCodes for convenience.
13
+ */
14
+ export const ProfileRequestListErrorCodes = {
15
+ QUERY_FAILED: ServiceErrorCodes.REQUEST_LIST_QUERY_FAILED,
16
+ OPERATION_FAILED: ServiceErrorCodes.REQUEST_LIST_QUERY_FAILED,
17
+ };
18
+ /**
19
+ * Orchestrates listing profiling requests.
20
+ *
21
+ * Thin orchestrator that delegates to ProfileRequestService.listRequests()
22
+ * and tracks operation timing.
23
+ */
24
+ export class ProfileRequestListOperation {
25
+ service;
26
+ constructor(service) {
27
+ this.service = service;
28
+ }
29
+ /**
30
+ * Executes the profile request list operation.
31
+ *
32
+ * @param options - Filtering and pagination options
33
+ * @returns ServiceResult containing an array of IProfileRequest
34
+ */
35
+ async execute(options) {
36
+ const startTime = Date.now();
37
+ try {
38
+ const result = await this.service.listRequests({
39
+ status: options.status,
40
+ limit: options.limit,
41
+ offset: options.offset,
42
+ });
43
+ if (!result.success) {
44
+ return createFailureResult([], result.errorCode ?? ProfileRequestListErrorCodes.QUERY_FAILED, result.message, {
45
+ metadata: { duration: Date.now() - startTime },
46
+ });
47
+ }
48
+ return createSuccessResult(result.data, {
49
+ message: result.message,
50
+ metadata: { duration: Date.now() - startTime },
51
+ });
52
+ }
53
+ catch (error) {
54
+ const errorMessage = error instanceof Error ? error.message : String(error);
55
+ return createFailureResult([], ProfileRequestListErrorCodes.OPERATION_FAILED, errorMessage, {
56
+ metadata: { duration: Date.now() - startTime },
57
+ });
58
+ }
59
+ }
60
+ }
61
+ //# sourceMappingURL=ProfileRequestListOperation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProfileRequestListOperation.js","sourceRoot":"","sources":["../../src/operations/ProfileRequestListOperation.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAsB,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAG3G,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAgB1D;;;GAGG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG;IAC1C,YAAY,EAAE,iBAAiB,CAAC,yBAAyB;IACzD,gBAAgB,EAAE,iBAAiB,CAAC,yBAAyB;CACrD,CAAC;AAEX;;;;;GAKG;AACH,MAAM,OAAO,2BAA2B;IACF;IAApC,YAAoC,OAA8B;QAA9B,YAAO,GAAP,OAAO,CAAuB;IAAG,CAAC;IAEtE;;;;;OAKG;IACI,KAAK,CAAC,OAAO,CAAC,OAA2C;QAC9D,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE7B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;gBAC7C,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,MAAM,EAAE,OAAO,CAAC,MAAM;aACvB,CAAC,CAAC;YAEH,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,OAAO,mBAAmB,CAAC,EAAE,EAAE,MAAM,CAAC,SAAS,IAAI,4BAA4B,CAAC,YAAY,EAAE,MAAM,CAAC,OAAO,EAAE;oBAC5G,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,EAAE;iBAC/C,CAAC,CAAC;YACL,CAAC;YAED,OAAO,mBAAmB,CAAC,MAAM,CAAC,IAAI,EAAE;gBACtC,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,EAAE;aAC/C,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAE5E,OAAO,mBAAmB,CAAC,EAAE,EAAE,4BAA4B,CAAC,gBAAgB,EAAE,YAAY,EAAE;gBAC1F,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,EAAE;aAC/C,CAAC,CAAC;QACL,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,134 @@
1
+ import { type ServiceResult } from '../models/service-result.js';
2
+ import { ProfilingDefinitionService } from '../services/ProfilingDefinitionService.js';
3
+ import { ProfilingSummaryService, type PurgeSummaryRecord, type SummaryDeleteProgressEvent } from '../services/ProfilingSummaryService.js';
4
+ /**
5
+ * Options for the summary purge operation.
6
+ */
7
+ export type SummaryPurgeOptions = {
8
+ /** Target org username or alias */
9
+ targetOrg: string;
10
+ /** Specific summary IDs to delete — exclusive mode */
11
+ ids?: string[];
12
+ /** Purge all summaries (can be combined with filter flags) */
13
+ all?: boolean;
14
+ /** Filter by target object API name (resolves through definitions) */
15
+ objectName?: string;
16
+ /** Filter by definition category */
17
+ category?: string;
18
+ /** Filter by definition active status */
19
+ isActive?: boolean;
20
+ /** Maximum number of summaries to process */
21
+ limit?: number;
22
+ /** Only delete non-latest summaries (preserve latest per definition) */
23
+ prune?: boolean;
24
+ /** Preview mode — categorize without deleting */
25
+ dryRun?: boolean;
26
+ /** Skip interactive confirmation prompt */
27
+ noPrompt?: boolean;
28
+ /** Callback when summaries are found */
29
+ onSummariesFound?: (count: number) => void;
30
+ /** Callback for user confirmation before deletion */
31
+ onPreviewReady?: (preview: SummaryPurgePreview) => Promise<boolean>;
32
+ /** Progress callback for per-summary status updates */
33
+ onProgress?: (event: SummaryDeleteProgressEvent) => void;
34
+ /** Optional logger */
35
+ logger?: Console;
36
+ };
37
+ /**
38
+ * Preview data for user confirmation.
39
+ */
40
+ export type SummaryPurgePreview = {
41
+ /** Summaries eligible for deletion */
42
+ deletable: PurgeSummaryRecord[];
43
+ /** Summaries skipped due to non-terminal status */
44
+ skippedByStatus: PurgeSummaryRecord[];
45
+ /** Summaries skipped because they are the latest (prune mode) */
46
+ skippedByPrune: PurgeSummaryRecord[];
47
+ /** Total summaries matched */
48
+ total: number;
49
+ /** Whether prune mode is active */
50
+ pruneMode: boolean;
51
+ };
52
+ /**
53
+ * Result of a summary purge operation.
54
+ */
55
+ export type SummaryPurgeResult = {
56
+ /** Number of summaries successfully deleted */
57
+ deleted: number;
58
+ /** Number of summaries skipped */
59
+ skipped: number;
60
+ /** Number of summaries that failed to delete */
61
+ failed: number;
62
+ /** Total number of summaries processed */
63
+ total: number;
64
+ /** Summaries skipped by non-terminal status */
65
+ skippedByStatus: PurgeSummaryRecord[];
66
+ /** Summaries skipped by prune (latest preserved) */
67
+ skippedByPrune: PurgeSummaryRecord[];
68
+ /** Whether the operation was cancelled by the user */
69
+ cancelled?: boolean;
70
+ /** Whether dry-run mode was active */
71
+ dryRun?: boolean;
72
+ /** Dry-run preview data */
73
+ preview?: SummaryPurgePreview;
74
+ };
75
+ /**
76
+ * Error codes for summary purge operations.
77
+ * Re-exported from ServiceErrorCodes (E4510-E4517) for convenience.
78
+ */
79
+ export declare const SummaryPurgeErrorCodes: {
80
+ readonly NO_SELECTION_CRITERIA: "E4510";
81
+ readonly MUTUALLY_EXCLUSIVE: "E4511";
82
+ readonly QUERY_FAILED: "E4512";
83
+ readonly NO_ELIGIBLE_SUMMARIES: "E4513";
84
+ readonly DELETE_FAILED: "E4514";
85
+ readonly USER_CANCELLED: "E4515";
86
+ readonly OPERATION_FAILED: "E4516";
87
+ readonly INVALID_IDS: "E4517";
88
+ };
89
+ /**
90
+ * Orchestrates purging of profiling summaries.
91
+ *
92
+ * Supports two selection modes:
93
+ * 1. ID mode: Delete specific summaries by ID (exclusive)
94
+ * 2. Filter mode: Query definitions by filters, then resolve their summaries
95
+ *
96
+ * Two-level status filtering:
97
+ * - Definition level: Exclude definitions with non-terminal statuses
98
+ * - Summary level: Only delete summaries with terminal statuses
99
+ *
100
+ * Optional prune mode (--prune): Only delete non-latest summaries.
101
+ */
102
+ export declare class SummaryPurgeOperation {
103
+ private readonly definitionService;
104
+ private readonly summaryService;
105
+ private readonly logger?;
106
+ constructor(definitionService: ProfilingDefinitionService, summaryService: ProfilingSummaryService, logger?: Console | undefined);
107
+ /**
108
+ * Creates the empty result structure.
109
+ */
110
+ private static emptyResult;
111
+ /**
112
+ * Checks if filter flags are specified.
113
+ */
114
+ private static hasFilterFlags;
115
+ /**
116
+ * Executes the summary purge operation.
117
+ */
118
+ execute(options: SummaryPurgeOptions): Promise<ServiceResult<SummaryPurgeResult>>;
119
+ /**
120
+ * Executes purge in ID mode: delete specific summaries by ID.
121
+ *
122
+ * Queries summaries directly by ID (O(requested) instead of O(all summaries)).
123
+ * Terminal status filter is applied in the SOQL query.
124
+ */
125
+ private executeIdMode;
126
+ /**
127
+ * Executes purge in filter mode: query definitions by filters, then resolve summaries.
128
+ */
129
+ private executeFilterMode;
130
+ /**
131
+ * Handles confirmation, dry-run, and deletion execution.
132
+ */
133
+ private confirmAndDelete;
134
+ }
@@ -0,0 +1,257 @@
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 { validateSalesforceId } from '../services/validation.js';
10
+ import { ServiceErrorCodes } from '../adapters/errors.js';
11
+ /**
12
+ * Error codes for summary purge operations.
13
+ * Re-exported from ServiceErrorCodes (E4510-E4517) for convenience.
14
+ */
15
+ export const SummaryPurgeErrorCodes = {
16
+ NO_SELECTION_CRITERIA: ServiceErrorCodes.SUMMARY_PURGE_NO_SELECTION,
17
+ MUTUALLY_EXCLUSIVE: ServiceErrorCodes.SUMMARY_PURGE_MUTUALLY_EXCLUSIVE,
18
+ QUERY_FAILED: ServiceErrorCodes.SUMMARY_PURGE_QUERY_FAILED,
19
+ NO_ELIGIBLE_SUMMARIES: ServiceErrorCodes.SUMMARY_PURGE_NO_ELIGIBLE,
20
+ DELETE_FAILED: ServiceErrorCodes.SUMMARY_PURGE_DELETE_FAILED,
21
+ USER_CANCELLED: ServiceErrorCodes.SUMMARY_PURGE_USER_CANCELLED,
22
+ OPERATION_FAILED: ServiceErrorCodes.SUMMARY_PURGE_OPERATION_FAILED,
23
+ INVALID_IDS: ServiceErrorCodes.SUMMARY_PURGE_INVALID_IDS,
24
+ };
25
+ /**
26
+ * Orchestrates purging of profiling summaries.
27
+ *
28
+ * Supports two selection modes:
29
+ * 1. ID mode: Delete specific summaries by ID (exclusive)
30
+ * 2. Filter mode: Query definitions by filters, then resolve their summaries
31
+ *
32
+ * Two-level status filtering:
33
+ * - Definition level: Exclude definitions with non-terminal statuses
34
+ * - Summary level: Only delete summaries with terminal statuses
35
+ *
36
+ * Optional prune mode (--prune): Only delete non-latest summaries.
37
+ */
38
+ export class SummaryPurgeOperation {
39
+ definitionService;
40
+ summaryService;
41
+ logger;
42
+ constructor(definitionService, summaryService, logger) {
43
+ this.definitionService = definitionService;
44
+ this.summaryService = summaryService;
45
+ this.logger = logger;
46
+ }
47
+ /**
48
+ * Creates the empty result structure.
49
+ */
50
+ static emptyResult() {
51
+ return {
52
+ deleted: 0,
53
+ skipped: 0,
54
+ failed: 0,
55
+ total: 0,
56
+ skippedByStatus: [],
57
+ skippedByPrune: [],
58
+ };
59
+ }
60
+ /**
61
+ * Checks if filter flags are specified.
62
+ */
63
+ static hasFilterFlags(options) {
64
+ return options.objectName !== undefined || options.category !== undefined || options.isActive !== undefined;
65
+ }
66
+ /**
67
+ * Executes the summary purge operation.
68
+ */
69
+ async execute(options) {
70
+ const startTime = Date.now();
71
+ const emptyResult = SummaryPurgeOperation.emptyResult();
72
+ try {
73
+ this.logger?.log('Starting summary purge operation');
74
+ const hasIds = options.ids !== undefined && options.ids.length > 0;
75
+ const hasAll = options.all === true;
76
+ const hasFilters = SummaryPurgeOperation.hasFilterFlags(options);
77
+ // Mutual exclusivity: --ids cannot be combined with filter flags or --all
78
+ if (hasIds && (hasAll || hasFilters)) {
79
+ return createFailureResult(emptyResult, SummaryPurgeErrorCodes.MUTUALLY_EXCLUSIVE, 'The --ids flag is mutually exclusive with filter flags (--object-name, --category, --is-active, --all).', { metadata: { duration: Date.now() - startTime } });
80
+ }
81
+ // Must have at least one selection criterion
82
+ if (!hasIds && !hasAll && !hasFilters) {
83
+ return createFailureResult(emptyResult, SummaryPurgeErrorCodes.NO_SELECTION_CRITERIA, 'No selection criteria specified. Provide --all, --ids, or filter flags.', { metadata: { duration: Date.now() - startTime } });
84
+ }
85
+ if (hasIds) {
86
+ return await this.executeIdMode(options, startTime);
87
+ }
88
+ return await this.executeFilterMode(options, startTime);
89
+ }
90
+ catch (error) {
91
+ const errorMessage = error instanceof Error ? error.message : String(error);
92
+ this.logger?.log(`Summary purge operation failed: ${errorMessage}`);
93
+ return createFailureResult(emptyResult, SummaryPurgeErrorCodes.OPERATION_FAILED, errorMessage, {
94
+ metadata: { duration: Date.now() - startTime },
95
+ });
96
+ }
97
+ }
98
+ /**
99
+ * Executes purge in ID mode: delete specific summaries by ID.
100
+ *
101
+ * Queries summaries directly by ID (O(requested) instead of O(all summaries)).
102
+ * Terminal status filter is applied in the SOQL query.
103
+ */
104
+ async executeIdMode(options, startTime) {
105
+ const ids = options.ids;
106
+ // Validate all IDs
107
+ for (const id of ids) {
108
+ const idError = validateSalesforceId(id);
109
+ if (idError) {
110
+ return createFailureResult(SummaryPurgeOperation.emptyResult(), SummaryPurgeErrorCodes.INVALID_IDS, `Invalid summary ID: ${id} - ${idError}`, { metadata: { duration: Date.now() - startTime } });
111
+ }
112
+ }
113
+ this.logger?.log(`Fetching summaries by IDs: ${ids.join(', ')}`);
114
+ // Query summaries directly by ID (includes terminal status filter)
115
+ const summaryResult = await this.summaryService.getSummariesByIds(ids);
116
+ if (!summaryResult.success) {
117
+ return createFailureResult(SummaryPurgeOperation.emptyResult(), SummaryPurgeErrorCodes.QUERY_FAILED, summaryResult.message ?? 'Summary query failed', { metadata: { duration: Date.now() - startTime } });
118
+ }
119
+ const matched = summaryResult.data;
120
+ if (matched.length === 0) {
121
+ return createFailureResult(SummaryPurgeOperation.emptyResult(), SummaryPurgeErrorCodes.NO_ELIGIBLE_SUMMARIES, `No summaries found matching IDs: ${ids.join(', ')}`, { metadata: { duration: Date.now() - startTime } });
122
+ }
123
+ options.onSummariesFound?.(matched.length);
124
+ // All matched summaries are terminal (the query already filters for terminal status)
125
+ return this.confirmAndDelete(matched, [], [], options, startTime);
126
+ }
127
+ /**
128
+ * Executes purge in filter mode: query definitions by filters, then resolve summaries.
129
+ */
130
+ async executeFilterMode(options, startTime) {
131
+ // Build definition query options
132
+ const queryOptions = {};
133
+ if (options.objectName !== undefined) {
134
+ queryOptions.objectNames = [options.objectName];
135
+ }
136
+ if (options.category !== undefined) {
137
+ queryOptions.category = options.category;
138
+ }
139
+ if (options.isActive !== undefined) {
140
+ queryOptions.isActive = options.isActive;
141
+ }
142
+ this.logger?.log('Fetching definitions with filters...');
143
+ const defsResult = await this.definitionService.getAllDefinitions(queryOptions);
144
+ if (!defsResult.success) {
145
+ return createFailureResult(SummaryPurgeOperation.emptyResult(), SummaryPurgeErrorCodes.QUERY_FAILED, defsResult.message ?? 'Definition query failed', { metadata: { duration: Date.now() - startTime } });
146
+ }
147
+ if (defsResult.data.length === 0) {
148
+ return createFailureResult(SummaryPurgeOperation.emptyResult(), SummaryPurgeErrorCodes.NO_ELIGIBLE_SUMMARIES, 'No definitions found matching the specified criteria.', { metadata: { duration: Date.now() - startTime } });
149
+ }
150
+ // Two-level filtering: exclude definitions currently being profiled.
151
+ // Definition statuses: NOT PROFILED, IN PROGRESS, COMPLETE, COMPLETE w/ FAILURES, ERROR
152
+ // Only IN PROGRESS definitions should be excluded — all others have completed their profiling run.
153
+ const NON_TERMINAL_DEFINITION_STATUSES = new Set(['IN PROGRESS']);
154
+ const eligibleDefs = defsResult.data.filter((def) => !NON_TERMINAL_DEFINITION_STATUSES.has(def.status));
155
+ if (eligibleDefs.length === 0) {
156
+ return createFailureResult(SummaryPurgeOperation.emptyResult(), SummaryPurgeErrorCodes.NO_ELIGIBLE_SUMMARIES, 'No definitions with terminal status found. All matching definitions are currently in progress.', { metadata: { duration: Date.now() - startTime } });
157
+ }
158
+ const eligibleDefIds = eligibleDefs.map((d) => d.id);
159
+ // Query summaries for eligible definitions
160
+ const summaryResult = await this.summaryService.getSummariesForPurge({
161
+ definitionIds: eligibleDefIds,
162
+ pruneOnly: options.prune,
163
+ });
164
+ if (!summaryResult.success) {
165
+ return createFailureResult(SummaryPurgeOperation.emptyResult(), SummaryPurgeErrorCodes.QUERY_FAILED, summaryResult.message ?? 'Summary query failed', { metadata: { duration: Date.now() - startTime } });
166
+ }
167
+ let allSummaries = summaryResult.data;
168
+ // Apply limit (bypassed when --all is specified)
169
+ if (options.limit !== undefined && options.limit > 0 && !options.all) {
170
+ allSummaries = allSummaries.slice(0, options.limit);
171
+ }
172
+ if (allSummaries.length === 0) {
173
+ return createFailureResult(SummaryPurgeOperation.emptyResult(), SummaryPurgeErrorCodes.NO_ELIGIBLE_SUMMARIES, options.prune
174
+ ? 'No non-latest summaries found matching the specified criteria.'
175
+ : 'No summaries found matching the specified criteria.', { metadata: { duration: Date.now() - startTime } });
176
+ }
177
+ options.onSummariesFound?.(allSummaries.length);
178
+ // All returned summaries already have terminal status (filtered by the service query).
179
+ // No additional status filtering needed here.
180
+ return this.confirmAndDelete(allSummaries, [], [], options, startTime);
181
+ }
182
+ /**
183
+ * Handles confirmation, dry-run, and deletion execution.
184
+ */
185
+ async confirmAndDelete(deletable, skippedByStatus, skippedByPrune, options, startTime) {
186
+ const total = deletable.length + skippedByStatus.length + skippedByPrune.length;
187
+ const preview = {
188
+ deletable,
189
+ skippedByStatus,
190
+ skippedByPrune,
191
+ total,
192
+ pruneMode: options.prune === true,
193
+ };
194
+ // Invoke preview callback for user confirmation
195
+ if (options.onPreviewReady && !options.dryRun && !options.noPrompt) {
196
+ const proceed = await options.onPreviewReady(preview);
197
+ if (!proceed) {
198
+ return createSuccessResult({
199
+ ...SummaryPurgeOperation.emptyResult(),
200
+ total,
201
+ cancelled: true,
202
+ skippedByStatus,
203
+ skippedByPrune,
204
+ }, {
205
+ message: 'Purge cancelled by user.',
206
+ metadata: { duration: Date.now() - startTime },
207
+ });
208
+ }
209
+ }
210
+ // Dry-run mode
211
+ if (options.dryRun) {
212
+ return createSuccessResult({
213
+ ...SummaryPurgeOperation.emptyResult(),
214
+ deleted: deletable.length,
215
+ total,
216
+ dryRun: true,
217
+ preview,
218
+ skippedByStatus,
219
+ skippedByPrune,
220
+ }, {
221
+ message: `Dry-run: ${deletable.length} deletable, ${skippedByStatus.length} skipped by status, ${skippedByPrune.length} preserved (latest)`,
222
+ metadata: { duration: Date.now() - startTime },
223
+ });
224
+ }
225
+ // Nothing to delete
226
+ if (deletable.length === 0) {
227
+ return createSuccessResult({
228
+ ...SummaryPurgeOperation.emptyResult(),
229
+ total,
230
+ skipped: skippedByStatus.length + skippedByPrune.length,
231
+ skippedByStatus,
232
+ skippedByPrune,
233
+ }, {
234
+ message: 'No summaries eligible for deletion.',
235
+ metadata: { duration: Date.now() - startTime },
236
+ });
237
+ }
238
+ // Execute deletion
239
+ const deleteResult = await this.summaryService.deleteSummaries(deletable, options.onProgress);
240
+ if (!deleteResult.success) {
241
+ return createFailureResult(SummaryPurgeOperation.emptyResult(), SummaryPurgeErrorCodes.DELETE_FAILED, deleteResult.message ?? 'Delete operation failed', { metadata: { duration: Date.now() - startTime } });
242
+ }
243
+ const { deleted, skipped, failed } = deleteResult.data;
244
+ return createSuccessResult({
245
+ deleted,
246
+ skipped: skipped + skippedByStatus.length + skippedByPrune.length,
247
+ failed,
248
+ total,
249
+ skippedByStatus,
250
+ skippedByPrune,
251
+ }, {
252
+ message: `Purged ${deleted} profiling summaries`,
253
+ metadata: { duration: Date.now() - startTime },
254
+ });
255
+ }
256
+ }
257
+ //# sourceMappingURL=SummaryPurgeOperation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SummaryPurgeOperation.js","sourceRoot":"","sources":["../../src/operations/SummaryPurgeOperation.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAsB,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAW3G,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAyF1D;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,qBAAqB,EAAE,iBAAiB,CAAC,0BAA0B;IACnE,kBAAkB,EAAE,iBAAiB,CAAC,gCAAgC;IACtE,YAAY,EAAE,iBAAiB,CAAC,0BAA0B;IAC1D,qBAAqB,EAAE,iBAAiB,CAAC,yBAAyB;IAClE,aAAa,EAAE,iBAAiB,CAAC,2BAA2B;IAC5D,cAAc,EAAE,iBAAiB,CAAC,4BAA4B;IAC9D,gBAAgB,EAAE,iBAAiB,CAAC,8BAA8B;IAClE,WAAW,EAAE,iBAAiB,CAAC,yBAAyB;CAChD,CAAC;AAEX;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,qBAAqB;IAEb;IACA;IACA;IAHnB,YACmB,iBAA6C,EAC7C,cAAuC,EACvC,MAAgB;QAFhB,sBAAiB,GAAjB,iBAAiB,CAA4B;QAC7C,mBAAc,GAAd,cAAc,CAAyB;QACvC,WAAM,GAAN,MAAM,CAAU;IAChC,CAAC;IAEJ;;OAEG;IACK,MAAM,CAAC,WAAW;QACxB,OAAO;YACL,OAAO,EAAE,CAAC;YACV,OAAO,EAAE,CAAC;YACV,MAAM,EAAE,CAAC;YACT,KAAK,EAAE,CAAC;YACR,eAAe,EAAE,EAAE;YACnB,cAAc,EAAE,EAAE;SACnB,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,cAAc,CAAC,OAA4B;QACxD,OAAO,OAAO,CAAC,UAAU,KAAK,SAAS,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,CAAC;IAC9G,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,OAAO,CAAC,OAA4B;QAC/C,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,MAAM,WAAW,GAAG,qBAAqB,CAAC,WAAW,EAAE,CAAC;QAExD,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,kCAAkC,CAAC,CAAC;YAErD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,KAAK,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;YACnE,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,KAAK,IAAI,CAAC;YACpC,MAAM,UAAU,GAAG,qBAAqB,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;YAEjE,0EAA0E;YAC1E,IAAI,MAAM,IAAI,CAAC,MAAM,IAAI,UAAU,CAAC,EAAE,CAAC;gBACrC,OAAO,mBAAmB,CACxB,WAAW,EACX,sBAAsB,CAAC,kBAAkB,EACzC,yGAAyG,EACzG,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,EAAE,EAAE,CACnD,CAAC;YACJ,CAAC;YAED,6CAA6C;YAC7C,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;gBACtC,OAAO,mBAAmB,CACxB,WAAW,EACX,sBAAsB,CAAC,qBAAqB,EAC5C,yEAAyE,EACzE,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,EAAE,EAAE,CACnD,CAAC;YACJ,CAAC;YAED,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YACtD,CAAC;YAED,OAAO,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAC1D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC5E,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,mCAAmC,YAAY,EAAE,CAAC,CAAC;YAEpE,OAAO,mBAAmB,CAAC,WAAW,EAAE,sBAAsB,CAAC,gBAAgB,EAAE,YAAY,EAAE;gBAC7F,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,EAAE;aAC/C,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,aAAa,CACzB,OAA4B,EAC5B,SAAiB;QAEjB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAI,CAAC;QAEzB,mBAAmB;QACnB,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;YACrB,MAAM,OAAO,GAAG,oBAAoB,CAAC,EAAE,CAAC,CAAC;YACzC,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,mBAAmB,CACxB,qBAAqB,CAAC,WAAW,EAAE,EACnC,sBAAsB,CAAC,WAAW,EAClC,uBAAuB,EAAE,MAAM,OAAO,EAAE,EACxC,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,EAAE,EAAE,CACnD,CAAC;YACJ,CAAC;QACH,CAAC;QAED,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,8BAA8B,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEjE,mEAAmE;QACnE,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;QAEvE,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;YAC3B,OAAO,mBAAmB,CACxB,qBAAqB,CAAC,WAAW,EAAE,EACnC,sBAAsB,CAAC,YAAY,EACnC,aAAa,CAAC,OAAO,IAAI,sBAAsB,EAC/C,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,EAAE,EAAE,CACnD,CAAC;QACJ,CAAC;QAED,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC;QAEnC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,mBAAmB,CACxB,qBAAqB,CAAC,WAAW,EAAE,EACnC,sBAAsB,CAAC,qBAAqB,EAC5C,oCAAoC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EACpD,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,EAAE,EAAE,CACnD,CAAC;QACJ,CAAC;QAED,OAAO,CAAC,gBAAgB,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAE3C,qFAAqF;QACrF,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;IACpE,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,iBAAiB,CAC7B,OAA4B,EAC5B,SAAiB;QAEjB,iCAAiC;QACjC,MAAM,YAAY,GAAoD,EAAE,CAAC;QACzE,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;YACrC,YAAY,CAAC,WAAW,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAClD,CAAC;QACD,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YACnC,YAAY,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QAC3C,CAAC;QACD,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YACnC,YAAY,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QAC3C,CAAC;QAED,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,sCAAsC,CAAC,CAAC;QACzD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;QAEhF,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YACxB,OAAO,mBAAmB,CACxB,qBAAqB,CAAC,WAAW,EAAE,EACnC,sBAAsB,CAAC,YAAY,EACnC,UAAU,CAAC,OAAO,IAAI,yBAAyB,EAC/C,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,EAAE,EAAE,CACnD,CAAC;QACJ,CAAC;QAED,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjC,OAAO,mBAAmB,CACxB,qBAAqB,CAAC,WAAW,EAAE,EACnC,sBAAsB,CAAC,qBAAqB,EAC5C,uDAAuD,EACvD,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,EAAE,EAAE,CACnD,CAAC;QACJ,CAAC;QAED,qEAAqE;QACrE,wFAAwF;QACxF,mGAAmG;QACnG,MAAM,gCAAgC,GAAG,IAAI,GAAG,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;QAClE,MAAM,YAAY,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,CACzC,CAAC,GAAwB,EAAE,EAAE,CAAC,CAAC,gCAAgC,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAChF,CAAC;QAEF,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,OAAO,mBAAmB,CACxB,qBAAqB,CAAC,WAAW,EAAE,EACnC,sBAAsB,CAAC,qBAAqB,EAC5C,gGAAgG,EAChG,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,EAAE,EAAE,CACnD,CAAC;QACJ,CAAC;QAED,MAAM,cAAc,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAsB,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAE1E,2CAA2C;QAC3C,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,oBAAoB,CAAC;YACnE,aAAa,EAAE,cAAc;YAC7B,SAAS,EAAE,OAAO,CAAC,KAAK;SACzB,CAAC,CAAC;QAEH,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;YAC3B,OAAO,mBAAmB,CACxB,qBAAqB,CAAC,WAAW,EAAE,EACnC,sBAAsB,CAAC,YAAY,EACnC,aAAa,CAAC,OAAO,IAAI,sBAAsB,EAC/C,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,EAAE,EAAE,CACnD,CAAC;QACJ,CAAC;QAED,IAAI,YAAY,GAAG,aAAa,CAAC,IAAI,CAAC;QAEtC,iDAAiD;QACjD,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,IAAI,OAAO,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;YACrE,YAAY,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QACtD,CAAC;QAED,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,OAAO,mBAAmB,CACxB,qBAAqB,CAAC,WAAW,EAAE,EACnC,sBAAsB,CAAC,qBAAqB,EAC5C,OAAO,CAAC,KAAK;gBACX,CAAC,CAAC,gEAAgE;gBAClE,CAAC,CAAC,qDAAqD,EACzD,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,EAAE,EAAE,CACnD,CAAC;QACJ,CAAC;QAED,OAAO,CAAC,gBAAgB,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAEhD,uFAAuF;QACvF,8CAA8C;QAC9C,OAAO,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;IACzE,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,gBAAgB,CAC5B,SAA+B,EAC/B,eAAqC,EACrC,cAAoC,EACpC,OAA4B,EAC5B,SAAiB;QAEjB,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,GAAG,eAAe,CAAC,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC;QAChF,MAAM,OAAO,GAAwB;YACnC,SAAS;YACT,eAAe;YACf,cAAc;YACd,KAAK;YACL,SAAS,EAAE,OAAO,CAAC,KAAK,KAAK,IAAI;SAClC,CAAC;QAEF,gDAAgD;QAChD,IAAI,OAAO,CAAC,cAAc,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;YACnE,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;YACtD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,mBAAmB,CACxB;oBACE,GAAG,qBAAqB,CAAC,WAAW,EAAE;oBACtC,KAAK;oBACL,SAAS,EAAE,IAAI;oBACf,eAAe;oBACf,cAAc;iBACf,EACD;oBACE,OAAO,EAAE,0BAA0B;oBACnC,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,EAAE;iBAC/C,CACF,CAAC;YACJ,CAAC;QACH,CAAC;QAED,eAAe;QACf,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,OAAO,mBAAmB,CACxB;gBACE,GAAG,qBAAqB,CAAC,WAAW,EAAE;gBACtC,OAAO,EAAE,SAAS,CAAC,MAAM;gBACzB,KAAK;gBACL,MAAM,EAAE,IAAI;gBACZ,OAAO;gBACP,eAAe;gBACf,cAAc;aACf,EACD;gBACE,OAAO,EAAE,YAAY,SAAS,CAAC,MAAM,eAAe,eAAe,CAAC,MAAM,uBAAuB,cAAc,CAAC,MAAM,qBAAqB;gBAC3I,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,EAAE;aAC/C,CACF,CAAC;QACJ,CAAC;QAED,oBAAoB;QACpB,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO,mBAAmB,CACxB;gBACE,GAAG,qBAAqB,CAAC,WAAW,EAAE;gBACtC,KAAK;gBACL,OAAO,EAAE,eAAe,CAAC,MAAM,GAAG,cAAc,CAAC,MAAM;gBACvD,eAAe;gBACf,cAAc;aACf,EACD;gBACE,OAAO,EAAE,qCAAqC;gBAC9C,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,EAAE;aAC/C,CACF,CAAC;QACJ,CAAC;QAED,mBAAmB;QACnB,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,SAAS,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;QAE9F,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;YAC1B,OAAO,mBAAmB,CACxB,qBAAqB,CAAC,WAAW,EAAE,EACnC,sBAAsB,CAAC,aAAa,EACpC,YAAY,CAAC,OAAO,IAAI,yBAAyB,EACjD,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,EAAE,EAAE,CACnD,CAAC;QACJ,CAAC;QAED,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,YAAY,CAAC,IAAI,CAAC;QAEvD,OAAO,mBAAmB,CACxB;YACE,OAAO;YACP,OAAO,EAAE,OAAO,GAAG,eAAe,CAAC,MAAM,GAAG,cAAc,CAAC,MAAM;YACjE,MAAM;YACN,KAAK;YACL,eAAe;YACf,cAAc;SACf,EACD;YACE,OAAO,EAAE,UAAU,OAAO,sBAAsB;YAChD,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,EAAE;SAC/C,CACF,CAAC;IACJ,CAAC;CACF"}