@sonisoft/now-sdk-ext-cli 2.0.0-alpha.0 → 2.0.1

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 (353) hide show
  1. package/README.md +2912 -313
  2. package/dist/commands/aggregate/count.d.ts +16 -0
  3. package/dist/commands/aggregate/count.d.ts.map +1 -0
  4. package/dist/commands/aggregate/count.js +67 -0
  5. package/dist/commands/aggregate/count.js.map +1 -0
  6. package/dist/commands/aggregate/group.d.ts +24 -0
  7. package/dist/commands/aggregate/group.d.ts.map +1 -0
  8. package/dist/commands/aggregate/group.js +120 -0
  9. package/dist/commands/aggregate/group.js.map +1 -0
  10. package/dist/commands/aggregate/query.d.ts +21 -0
  11. package/dist/commands/aggregate/query.d.ts.map +1 -0
  12. package/dist/commands/aggregate/query.js +100 -0
  13. package/dist/commands/aggregate/query.js.map +1 -0
  14. package/dist/commands/app/index.d.ts +0 -1
  15. package/dist/commands/app/index.d.ts.map +1 -1
  16. package/dist/commands/app/index.js +2 -2
  17. package/dist/commands/app/index.js.map +1 -1
  18. package/dist/commands/app/install.d.ts +0 -1
  19. package/dist/commands/app/install.d.ts.map +1 -1
  20. package/dist/commands/app/install.js +1 -2
  21. package/dist/commands/app/install.js.map +1 -1
  22. package/dist/commands/app/repo-install.d.ts +0 -1
  23. package/dist/commands/app/repo-install.d.ts.map +1 -1
  24. package/dist/commands/app/repo-install.js +1 -3
  25. package/dist/commands/app/repo-install.js.map +1 -1
  26. package/dist/commands/app/repo-list.d.ts +0 -1
  27. package/dist/commands/app/repo-list.d.ts.map +1 -1
  28. package/dist/commands/app/repo-list.js +1 -3
  29. package/dist/commands/app/repo-list.js.map +1 -1
  30. package/dist/commands/app/uninstall.d.ts +0 -1
  31. package/dist/commands/app/uninstall.d.ts.map +1 -1
  32. package/dist/commands/app/uninstall.js +1 -2
  33. package/dist/commands/app/uninstall.js.map +1 -1
  34. package/dist/commands/atf/index.d.ts +0 -46
  35. package/dist/commands/atf/index.d.ts.map +1 -1
  36. package/dist/commands/atf/index.js +48 -121
  37. package/dist/commands/atf/index.js.map +1 -1
  38. package/dist/commands/attachment/get.d.ts +14 -0
  39. package/dist/commands/attachment/get.d.ts.map +1 -0
  40. package/dist/commands/attachment/get.js +44 -0
  41. package/dist/commands/attachment/get.js.map +1 -0
  42. package/dist/commands/attachment/list.d.ts +16 -0
  43. package/dist/commands/attachment/list.d.ts.map +1 -0
  44. package/dist/commands/attachment/list.js +60 -0
  45. package/dist/commands/attachment/list.js.map +1 -0
  46. package/dist/commands/attachment/upload.d.ts +17 -0
  47. package/dist/commands/attachment/upload.d.ts.map +1 -0
  48. package/dist/commands/attachment/upload.js +71 -0
  49. package/dist/commands/attachment/upload.js.map +1 -0
  50. package/dist/commands/batch/create.d.ts +15 -0
  51. package/dist/commands/batch/create.d.ts.map +1 -0
  52. package/dist/commands/batch/create.js +56 -0
  53. package/dist/commands/batch/create.js.map +1 -0
  54. package/dist/commands/batch/update.d.ts +15 -0
  55. package/dist/commands/batch/update.d.ts.map +1 -0
  56. package/dist/commands/batch/update.js +56 -0
  57. package/dist/commands/batch/update.js.map +1 -0
  58. package/dist/commands/bulk/delete.d.ts +18 -0
  59. package/dist/commands/bulk/delete.d.ts.map +1 -0
  60. package/dist/commands/bulk/delete.js +95 -0
  61. package/dist/commands/bulk/delete.js.map +1 -0
  62. package/dist/commands/bulk/update.d.ts +19 -0
  63. package/dist/commands/bulk/update.d.ts.map +1 -0
  64. package/dist/commands/bulk/update.js +110 -0
  65. package/dist/commands/bulk/update.js.map +1 -0
  66. package/dist/commands/exec/index.d.ts +0 -1
  67. package/dist/commands/exec/index.d.ts.map +1 -1
  68. package/dist/commands/exec/index.js +12 -22
  69. package/dist/commands/exec/index.js.map +1 -1
  70. package/dist/commands/flow/action.d.ts +19 -0
  71. package/dist/commands/flow/action.d.ts.map +1 -0
  72. package/dist/commands/flow/action.js +88 -0
  73. package/dist/commands/flow/action.js.map +1 -0
  74. package/dist/commands/flow/cancel.d.ts +17 -0
  75. package/dist/commands/flow/cancel.d.ts.map +1 -0
  76. package/dist/commands/flow/cancel.js +60 -0
  77. package/dist/commands/flow/cancel.js.map +1 -0
  78. package/dist/commands/flow/error.d.ts +16 -0
  79. package/dist/commands/flow/error.d.ts.map +1 -0
  80. package/dist/commands/flow/error.js +51 -0
  81. package/dist/commands/flow/error.js.map +1 -0
  82. package/dist/commands/flow/message.d.ts +18 -0
  83. package/dist/commands/flow/message.d.ts.map +1 -0
  84. package/dist/commands/flow/message.js +66 -0
  85. package/dist/commands/flow/message.js.map +1 -0
  86. package/dist/commands/flow/outputs.d.ts +16 -0
  87. package/dist/commands/flow/outputs.d.ts.map +1 -0
  88. package/dist/commands/flow/outputs.js +55 -0
  89. package/dist/commands/flow/outputs.js.map +1 -0
  90. package/dist/commands/flow/run.d.ts +19 -0
  91. package/dist/commands/flow/run.d.ts.map +1 -0
  92. package/dist/commands/flow/run.js +98 -0
  93. package/dist/commands/flow/run.js.map +1 -0
  94. package/dist/commands/flow/status.d.ts +16 -0
  95. package/dist/commands/flow/status.d.ts.map +1 -0
  96. package/dist/commands/flow/status.js +52 -0
  97. package/dist/commands/flow/status.js.map +1 -0
  98. package/dist/commands/flow/subflow.d.ts +19 -0
  99. package/dist/commands/flow/subflow.d.ts.map +1 -0
  100. package/dist/commands/flow/subflow.js +92 -0
  101. package/dist/commands/flow/subflow.js.map +1 -0
  102. package/dist/commands/health/check.d.ts +20 -0
  103. package/dist/commands/health/check.d.ts.map +1 -0
  104. package/dist/commands/health/check.js +105 -0
  105. package/dist/commands/health/check.js.map +1 -0
  106. package/dist/commands/log/index.d.ts +2 -26
  107. package/dist/commands/log/index.d.ts.map +1 -1
  108. package/dist/commands/log/index.js +23 -251
  109. package/dist/commands/log/index.js.map +1 -1
  110. package/dist/commands/query/app.d.ts +17 -0
  111. package/dist/commands/query/app.d.ts.map +1 -0
  112. package/dist/commands/query/app.js +81 -0
  113. package/dist/commands/query/app.js.map +1 -0
  114. package/dist/commands/query/columns.d.ts +16 -0
  115. package/dist/commands/query/columns.d.ts.map +1 -0
  116. package/dist/commands/query/columns.js +76 -0
  117. package/dist/commands/query/columns.js.map +1 -0
  118. package/dist/commands/query/index.d.ts +19 -0
  119. package/dist/commands/query/index.d.ts.map +1 -0
  120. package/dist/commands/query/index.js +94 -0
  121. package/dist/commands/query/index.js.map +1 -0
  122. package/dist/commands/query/syslog.d.ts +16 -0
  123. package/dist/commands/query/syslog.d.ts.map +1 -0
  124. package/dist/commands/query/syslog.js +67 -0
  125. package/dist/commands/query/syslog.js.map +1 -0
  126. package/dist/commands/schema/field.d.ts +16 -0
  127. package/dist/commands/schema/field.d.ts.map +1 -0
  128. package/dist/commands/schema/field.js +62 -0
  129. package/dist/commands/schema/field.js.map +1 -0
  130. package/dist/commands/schema/index.d.ts +19 -0
  131. package/dist/commands/schema/index.d.ts.map +1 -0
  132. package/dist/commands/schema/index.js +90 -0
  133. package/dist/commands/schema/index.js.map +1 -0
  134. package/dist/commands/schema/validate-catalog.d.ts +15 -0
  135. package/dist/commands/schema/validate-catalog.d.ts.map +1 -0
  136. package/dist/commands/schema/validate-catalog.js +58 -0
  137. package/dist/commands/schema/validate-catalog.js.map +1 -0
  138. package/dist/commands/scope/index.d.ts +14 -0
  139. package/dist/commands/scope/index.d.ts.map +1 -0
  140. package/dist/commands/scope/index.js +58 -0
  141. package/dist/commands/scope/index.js.map +1 -0
  142. package/dist/commands/scope/set.d.ts +14 -0
  143. package/dist/commands/scope/set.d.ts.map +1 -0
  144. package/dist/commands/scope/set.js +44 -0
  145. package/dist/commands/scope/set.js.map +1 -0
  146. package/dist/commands/script-sync/pull.d.ts +16 -0
  147. package/dist/commands/script-sync/pull.d.ts.map +1 -0
  148. package/dist/commands/script-sync/pull.js +74 -0
  149. package/dist/commands/script-sync/pull.js.map +1 -0
  150. package/dist/commands/script-sync/push.d.ts +16 -0
  151. package/dist/commands/script-sync/push.d.ts.map +1 -0
  152. package/dist/commands/script-sync/push.js +73 -0
  153. package/dist/commands/script-sync/push.js.map +1 -0
  154. package/dist/commands/script-sync/sync.d.ts +15 -0
  155. package/dist/commands/script-sync/sync.d.ts.map +1 -0
  156. package/dist/commands/script-sync/sync.js +71 -0
  157. package/dist/commands/script-sync/sync.js.map +1 -0
  158. package/dist/commands/search/add-table.d.ts +16 -0
  159. package/dist/commands/search/add-table.d.ts.map +1 -0
  160. package/dist/commands/search/add-table.js +68 -0
  161. package/dist/commands/search/add-table.js.map +1 -0
  162. package/dist/commands/search/groups.d.ts +12 -0
  163. package/dist/commands/search/groups.d.ts.map +1 -0
  164. package/dist/commands/search/groups.js +42 -0
  165. package/dist/commands/search/groups.js.map +1 -0
  166. package/dist/commands/search/index.d.ts +18 -0
  167. package/dist/commands/search/index.d.ts.map +1 -0
  168. package/dist/commands/search/index.js +103 -0
  169. package/dist/commands/search/index.js.map +1 -0
  170. package/dist/commands/search/tables.d.ts +14 -0
  171. package/dist/commands/search/tables.d.ts.map +1 -0
  172. package/dist/commands/search/tables.js +50 -0
  173. package/dist/commands/search/tables.js.map +1 -0
  174. package/dist/commands/store/install.d.ts +19 -0
  175. package/dist/commands/store/install.d.ts.map +1 -0
  176. package/dist/commands/store/install.js +90 -0
  177. package/dist/commands/store/install.js.map +1 -0
  178. package/dist/commands/store/search.d.ts +16 -0
  179. package/dist/commands/store/search.d.ts.map +1 -0
  180. package/dist/commands/store/search.js +67 -0
  181. package/dist/commands/store/search.js.map +1 -0
  182. package/dist/commands/store/update.d.ts +18 -0
  183. package/dist/commands/store/update.d.ts.map +1 -0
  184. package/dist/commands/store/update.js +83 -0
  185. package/dist/commands/store/update.js.map +1 -0
  186. package/dist/commands/store/validate.d.ts +14 -0
  187. package/dist/commands/store/validate.d.ts.map +1 -0
  188. package/dist/commands/store/validate.js +43 -0
  189. package/dist/commands/store/validate.js.map +1 -0
  190. package/dist/commands/task/approve.d.ts +15 -0
  191. package/dist/commands/task/approve.d.ts.map +1 -0
  192. package/dist/commands/task/approve.js +66 -0
  193. package/dist/commands/task/approve.js.map +1 -0
  194. package/dist/commands/task/assign.d.ts +17 -0
  195. package/dist/commands/task/assign.d.ts.map +1 -0
  196. package/dist/commands/task/assign.js +86 -0
  197. package/dist/commands/task/assign.js.map +1 -0
  198. package/dist/commands/task/close.d.ts +16 -0
  199. package/dist/commands/task/close.d.ts.map +1 -0
  200. package/dist/commands/task/close.js +71 -0
  201. package/dist/commands/task/close.js.map +1 -0
  202. package/dist/commands/task/comment.d.ts +17 -0
  203. package/dist/commands/task/comment.d.ts.map +1 -0
  204. package/dist/commands/task/comment.js +86 -0
  205. package/dist/commands/task/comment.js.map +1 -0
  206. package/dist/commands/task/find.d.ts +15 -0
  207. package/dist/commands/task/find.d.ts.map +1 -0
  208. package/dist/commands/task/find.js +65 -0
  209. package/dist/commands/task/find.js.map +1 -0
  210. package/dist/commands/task/resolve.d.ts +16 -0
  211. package/dist/commands/task/resolve.d.ts.map +1 -0
  212. package/dist/commands/task/resolve.js +71 -0
  213. package/dist/commands/task/resolve.js.map +1 -0
  214. package/dist/commands/update-set/clone.d.ts +15 -0
  215. package/dist/commands/update-set/clone.d.ts.map +1 -0
  216. package/dist/commands/update-set/clone.js +50 -0
  217. package/dist/commands/update-set/clone.js.map +1 -0
  218. package/dist/commands/update-set/create.d.ts +16 -0
  219. package/dist/commands/update-set/create.d.ts.map +1 -0
  220. package/dist/commands/update-set/create.js +60 -0
  221. package/dist/commands/update-set/create.js.map +1 -0
  222. package/dist/commands/update-set/current.d.ts +14 -0
  223. package/dist/commands/update-set/current.d.ts.map +1 -0
  224. package/dist/commands/update-set/current.js +55 -0
  225. package/dist/commands/update-set/current.js.map +1 -0
  226. package/dist/commands/update-set/index.d.ts +15 -0
  227. package/dist/commands/update-set/index.d.ts.map +1 -0
  228. package/dist/commands/update-set/index.js +56 -0
  229. package/dist/commands/update-set/index.js.map +1 -0
  230. package/dist/commands/update-set/inspect.d.ts +14 -0
  231. package/dist/commands/update-set/inspect.d.ts.map +1 -0
  232. package/dist/commands/update-set/inspect.js +43 -0
  233. package/dist/commands/update-set/inspect.js.map +1 -0
  234. package/dist/commands/update-set/move.d.ts +16 -0
  235. package/dist/commands/update-set/move.d.ts.map +1 -0
  236. package/dist/commands/update-set/move.js +57 -0
  237. package/dist/commands/update-set/move.js.map +1 -0
  238. package/dist/commands/workflow/create.d.ts +14 -0
  239. package/dist/commands/workflow/create.d.ts.map +1 -0
  240. package/dist/commands/workflow/create.js +50 -0
  241. package/dist/commands/workflow/create.js.map +1 -0
  242. package/dist/commands/workflow/publish.d.ts +15 -0
  243. package/dist/commands/workflow/publish.d.ts.map +1 -0
  244. package/dist/commands/workflow/publish.js +53 -0
  245. package/dist/commands/workflow/publish.js.map +1 -0
  246. package/dist/commands/xml/export.d.ts +17 -0
  247. package/dist/commands/xml/export.d.ts.map +1 -0
  248. package/dist/commands/xml/export.js +87 -0
  249. package/dist/commands/xml/export.js.map +1 -0
  250. package/dist/commands/xml/import.d.ts +16 -0
  251. package/dist/commands/xml/import.d.ts.map +1 -0
  252. package/dist/commands/xml/import.js +69 -0
  253. package/dist/commands/xml/import.js.map +1 -0
  254. package/dist/common/authenticated-command.d.ts +5 -2
  255. package/dist/common/authenticated-command.d.ts.map +1 -1
  256. package/dist/common/authenticated-command.js +12 -3
  257. package/dist/common/authenticated-command.js.map +1 -1
  258. package/dist/common/base-command.d.ts +2 -2
  259. package/dist/common/base-command.d.ts.map +1 -1
  260. package/dist/common/base-command.js +0 -1
  261. package/dist/common/base-command.js.map +1 -1
  262. package/dist/common/scope-autocomplete.js +0 -1
  263. package/dist/common/scope-autocomplete.js.map +1 -1
  264. package/dist/services/aggregate-display.service.d.ts +18 -0
  265. package/dist/services/aggregate-display.service.d.ts.map +1 -0
  266. package/dist/services/aggregate-display.service.js +83 -0
  267. package/dist/services/aggregate-display.service.js.map +1 -0
  268. package/dist/services/app-display.service.d.ts +36 -0
  269. package/dist/services/app-display.service.d.ts.map +1 -0
  270. package/dist/services/app-display.service.js +101 -0
  271. package/dist/services/app-display.service.js.map +1 -0
  272. package/dist/services/atf-result-formatter.service.d.ts +64 -0
  273. package/dist/services/atf-result-formatter.service.d.ts.map +1 -0
  274. package/dist/services/atf-result-formatter.service.js +83 -0
  275. package/dist/services/atf-result-formatter.service.js.map +1 -0
  276. package/dist/services/attachment-display.service.d.ts +18 -0
  277. package/dist/services/attachment-display.service.d.ts.map +1 -0
  278. package/dist/services/attachment-display.service.js +93 -0
  279. package/dist/services/attachment-display.service.js.map +1 -0
  280. package/dist/services/batch-display.service.d.ts +11 -0
  281. package/dist/services/batch-display.service.d.ts.map +1 -0
  282. package/dist/services/batch-display.service.js +75 -0
  283. package/dist/services/batch-display.service.js.map +1 -0
  284. package/dist/services/bulk-display.service.d.ts +11 -0
  285. package/dist/services/bulk-display.service.d.ts.map +1 -0
  286. package/dist/services/bulk-display.service.js +85 -0
  287. package/dist/services/bulk-display.service.js.map +1 -0
  288. package/dist/services/code-search-display.service.d.ts +23 -0
  289. package/dist/services/code-search-display.service.d.ts.map +1 -0
  290. package/dist/services/code-search-display.service.js +130 -0
  291. package/dist/services/code-search-display.service.js.map +1 -0
  292. package/dist/services/flow-display.service.d.ts +10 -0
  293. package/dist/services/flow-display.service.d.ts.map +1 -0
  294. package/dist/services/flow-display.service.js +164 -0
  295. package/dist/services/flow-display.service.js.map +1 -0
  296. package/dist/services/health-display.service.d.ts +8 -0
  297. package/dist/services/health-display.service.d.ts.map +1 -0
  298. package/dist/services/health-display.service.js +91 -0
  299. package/dist/services/health-display.service.js.map +1 -0
  300. package/dist/services/log-filter.service.d.ts +31 -0
  301. package/dist/services/log-filter.service.d.ts.map +1 -0
  302. package/dist/services/log-filter.service.js +117 -0
  303. package/dist/services/log-filter.service.js.map +1 -0
  304. package/dist/services/log-formatter.service.d.ts +30 -0
  305. package/dist/services/log-formatter.service.d.ts.map +1 -0
  306. package/dist/services/log-formatter.service.js +122 -0
  307. package/dist/services/log-formatter.service.js.map +1 -0
  308. package/dist/services/query-display.service.d.ts +23 -0
  309. package/dist/services/query-display.service.d.ts.map +1 -0
  310. package/dist/services/query-display.service.js +152 -0
  311. package/dist/services/query-display.service.js.map +1 -0
  312. package/dist/services/schema-display.service.d.ts +18 -0
  313. package/dist/services/schema-display.service.d.ts.map +1 -0
  314. package/dist/services/schema-display.service.js +106 -0
  315. package/dist/services/schema-display.service.js.map +1 -0
  316. package/dist/services/scope-display.service.d.ts +18 -0
  317. package/dist/services/scope-display.service.d.ts.map +1 -0
  318. package/dist/services/scope-display.service.js +83 -0
  319. package/dist/services/scope-display.service.js.map +1 -0
  320. package/dist/services/script-parameter.service.d.ts +16 -0
  321. package/dist/services/script-parameter.service.d.ts.map +1 -0
  322. package/dist/services/script-parameter.service.js +34 -0
  323. package/dist/services/script-parameter.service.js.map +1 -0
  324. package/dist/services/script-sync-display.service.d.ts +13 -0
  325. package/dist/services/script-sync-display.service.d.ts.map +1 -0
  326. package/dist/services/script-sync-display.service.js +71 -0
  327. package/dist/services/script-sync-display.service.js.map +1 -0
  328. package/dist/services/store-app-display.service.d.ts +16 -0
  329. package/dist/services/store-app-display.service.d.ts.map +1 -0
  330. package/dist/services/store-app-display.service.js +114 -0
  331. package/dist/services/store-app-display.service.js.map +1 -0
  332. package/dist/services/task-display.service.d.ts +14 -0
  333. package/dist/services/task-display.service.d.ts.map +1 -0
  334. package/dist/services/task-display.service.js +86 -0
  335. package/dist/services/task-display.service.js.map +1 -0
  336. package/dist/services/update-set-display.service.d.ts +28 -0
  337. package/dist/services/update-set-display.service.d.ts.map +1 -0
  338. package/dist/services/update-set-display.service.js +150 -0
  339. package/dist/services/update-set-display.service.js.map +1 -0
  340. package/dist/services/workflow-display.service.d.ts +13 -0
  341. package/dist/services/workflow-display.service.d.ts.map +1 -0
  342. package/dist/services/workflow-display.service.js +53 -0
  343. package/dist/services/workflow-display.service.js.map +1 -0
  344. package/dist/services/xml-display.service.d.ts +11 -0
  345. package/dist/services/xml-display.service.d.ts.map +1 -0
  346. package/dist/services/xml-display.service.js +55 -0
  347. package/dist/services/xml-display.service.js.map +1 -0
  348. package/dist/util/log-factory.d.ts +5 -0
  349. package/dist/util/log-factory.d.ts.map +1 -0
  350. package/dist/util/log-factory.js +8 -0
  351. package/dist/util/log-factory.js.map +1 -0
  352. package/oclif.manifest.json +5506 -387
  353. package/package.json +83 -23
@@ -0,0 +1,103 @@
1
+ import { Flags } from '@oclif/core';
2
+ import { CodeSearch } from '@sonisoft/now-sdk-ext-core';
3
+ import { AuthenticatedCommand } from '../../common/authenticated-command.js';
4
+ import { isNilOrEmpty } from '../../common/utils.js';
5
+ import { CodeSearchDisplayService } from '../../services/code-search-display.service.js';
6
+ export class Search extends AuthenticatedCommand {
7
+ static args = {};
8
+ static description = 'Search platform code across a ServiceNow instance.\n\n' +
9
+ 'This command allows you to search through code stored on the platform, including scripts, ' +
10
+ 'business rules, UI pages, and other scriptable records. You can search globally, within a ' +
11
+ 'specific application scope, or within a specific table and search group.\n\n' +
12
+ 'Features:\n' +
13
+ ' • Full-text code search across the platform\n' +
14
+ ' • Scope-specific search within application boundaries\n' +
15
+ ' • Table-specific search within a search group\n' +
16
+ ' • JSON output for CI/CD integration\n' +
17
+ ' • Configurable result limits';
18
+ static examples = [
19
+ {
20
+ command: '<%= config.bin %> <%= command.id %> --term "GlideRecord" --auth dev-instance',
21
+ description: 'Search for a term across the entire instance',
22
+ },
23
+ {
24
+ command: '<%= config.bin %> <%= command.id %> --term "getValue" --scope x_my_app --auth dev-instance',
25
+ description: 'Search within a specific application scope',
26
+ },
27
+ {
28
+ command: '<%= config.bin %> <%= command.id %> --term "initialize" --search-group "Script Includes" --table sys_script_include --auth dev-instance',
29
+ description: 'Search within a specific table and search group',
30
+ },
31
+ {
32
+ command: '<%= config.bin %> <%= command.id %> --term "GlideRecord" --limit 10 --json --auth dev-instance',
33
+ description: 'Search with a result limit and JSON output',
34
+ },
35
+ ];
36
+ static flags = {
37
+ 'limit': Flags.integer({
38
+ char: 'l',
39
+ description: 'Maximum number of results to return',
40
+ required: false,
41
+ }),
42
+ 'scope': Flags.string({
43
+ char: 's',
44
+ description: 'Application scope to search within',
45
+ required: false,
46
+ }),
47
+ 'search-group': Flags.string({
48
+ char: 'g',
49
+ description: 'Search group to search within (required when using --table)',
50
+ required: false,
51
+ }),
52
+ 'table': Flags.string({
53
+ description: 'Table name to search within (requires --search-group)',
54
+ required: false,
55
+ }),
56
+ 'term': Flags.string({
57
+ char: 't',
58
+ description: 'Search term to look for in platform code',
59
+ required: true,
60
+ }),
61
+ };
62
+ async run() {
63
+ const { flags } = await this.parse(Search);
64
+ const displayService = new CodeSearchDisplayService();
65
+ try {
66
+ const codeSearch = new CodeSearch(this.instance);
67
+ let results;
68
+ const jsonOutput = flags.json ?? false;
69
+ if (!isNilOrEmpty(flags.table) && !isNilOrEmpty(flags['search-group'])) {
70
+ // Search within a specific table and search group
71
+ this.log(`Searching for "${flags.term}" in table "${flags.table}" (group: ${flags['search-group']})...`);
72
+ results = await codeSearch.searchInTable(flags.term, flags.table, flags['search-group']);
73
+ const lines = displayService.formatSearchResults(Array.isArray(results) ? results : [results], jsonOutput);
74
+ for (const line of lines) {
75
+ jsonOutput ? console.log(line) : this.log(line);
76
+ }
77
+ }
78
+ else if (isNilOrEmpty(flags.scope)) {
79
+ // Global search
80
+ this.log(`Searching for "${flags.term}"...`);
81
+ results = await codeSearch.search({ limit: flags.limit, term: flags.term });
82
+ const lines = displayService.formatSearchResults(results, jsonOutput);
83
+ for (const line of lines) {
84
+ jsonOutput ? console.log(line) : this.log(line);
85
+ }
86
+ }
87
+ else {
88
+ // Search within an application scope
89
+ this.log(`Searching for "${flags.term}" in scope "${flags.scope}"...`);
90
+ results = await codeSearch.searchInApp(flags.term, flags.scope);
91
+ const lines = displayService.formatSearchResults(results, jsonOutput);
92
+ for (const line of lines) {
93
+ jsonOutput ? console.log(line) : this.log(line);
94
+ }
95
+ }
96
+ }
97
+ catch (error) {
98
+ this._logger.error("Error occurred when executing code search.", error);
99
+ this.error(error);
100
+ }
101
+ }
102
+ }
103
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/search/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { AuthenticatedCommand } from '../../common/authenticated-command.js';
2
+ export declare class SearchTables extends AuthenticatedCommand<typeof SearchTables> {
3
+ static args: {};
4
+ static description: string;
5
+ static examples: {
6
+ command: string;
7
+ description: string;
8
+ }[];
9
+ static flags: {
10
+ 'search-group': import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
11
+ };
12
+ run(): Promise<void>;
13
+ }
14
+ //# sourceMappingURL=tables.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tables.d.ts","sourceRoot":"","sources":["../../../src/commands/search/tables.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAA;AAG5E,qBAAa,YAAa,SAAQ,oBAAoB,CAAC,OAAO,YAAY,CAAC;IAEzE,MAAM,CAAC,IAAI,KACV;IACH,MAAM,CAAC,WAAW,SAOgC;IAClD,MAAM,CAAC,QAAQ;;;QASZ;IACH,MAAM,CAAC,KAAK;;MAMT;IAEK,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAmB3B"}
@@ -0,0 +1,50 @@
1
+ import { Flags } from '@oclif/core';
2
+ import { CodeSearch } from '@sonisoft/now-sdk-ext-core';
3
+ import { AuthenticatedCommand } from '../../common/authenticated-command.js';
4
+ import { CodeSearchDisplayService } from '../../services/code-search-display.service.js';
5
+ export class SearchTables extends AuthenticatedCommand {
6
+ static args = {};
7
+ static description = 'List tables configured for a specific code search group.\n\n' +
8
+ 'Each search group contains one or more tables that are indexed for code search. Use this ' +
9
+ 'command to discover which tables belong to a search group, including the fields that are ' +
10
+ 'searchable on each table.\n\n' +
11
+ 'Features:\n' +
12
+ ' • List all tables in a search group\n' +
13
+ ' • View searchable fields per table\n' +
14
+ ' • JSON output for scripting and automation';
15
+ static examples = [
16
+ {
17
+ command: '<%= config.bin %> <%= command.id %> --search-group "Script Includes" --auth dev-instance',
18
+ description: 'List tables in a search group',
19
+ },
20
+ {
21
+ command: '<%= config.bin %> <%= command.id %> --search-group "Business Rules" --json --auth dev-instance',
22
+ description: 'List tables with JSON output',
23
+ },
24
+ ];
25
+ static flags = {
26
+ 'search-group': Flags.string({
27
+ char: 'g',
28
+ description: 'Search group name to list tables for',
29
+ required: true,
30
+ }),
31
+ };
32
+ async run() {
33
+ const { flags } = await this.parse(SearchTables);
34
+ const displayService = new CodeSearchDisplayService();
35
+ try {
36
+ const codeSearch = new CodeSearch(this.instance);
37
+ this.log(`Retrieving tables for search group "${flags['search-group']}"...`);
38
+ const tables = await codeSearch.getTablesForSearchGroup(flags['search-group']);
39
+ const lines = displayService.formatTablesForGroup(tables, flags['search-group'], (flags.json ?? false) ?? false);
40
+ for (const line of lines) {
41
+ (flags.json ?? false) ? console.log(line) : this.log(line);
42
+ }
43
+ }
44
+ catch (error) {
45
+ this._logger.error("Error occurred when retrieving tables for search group.", error);
46
+ this.error(error);
47
+ }
48
+ }
49
+ }
50
+ //# sourceMappingURL=tables.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tables.js","sourceRoot":"","sources":["../../../src/commands/search/tables.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AAEvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAA;AAC5E,OAAO,EAAE,wBAAwB,EAAE,MAAM,+CAA+C,CAAA;AAExF,MAAM,OAAO,YAAa,SAAQ,oBAAyC;IAEzE,MAAM,CAAC,IAAI,GAAG,EACb,CAAA;IACH,MAAM,CAAC,WAAW,GAAG,8DAA8D;QAC/E,2FAA2F;QAC3F,2FAA2F;QAC3F,+BAA+B;QAC/B,aAAa;QACb,yCAAyC;QACzC,wCAAwC;QACxC,8CAA8C,CAAA;IAClD,MAAM,CAAC,QAAQ,GAAG;QACd;YACE,OAAO,EAAE,0FAA0F;YACnG,WAAW,EAAE,+BAA+B;SAC7C;QACD;YACE,OAAO,EAAE,gGAAgG;YACzG,WAAW,EAAE,8BAA8B;SAC5C;KACF,CAAA;IACH,MAAM,CAAC,KAAK,GAAG;QACX,cAAc,EAAE,KAAK,CAAC,MAAM,CAAC;YAC3B,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,sCAAsC;YACnD,QAAQ,EAAE,IAAI;SACf,CAAC;KACH,CAAA;IAED,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;QAChD,MAAM,cAAc,GAAG,IAAI,wBAAwB,EAAE,CAAA;QAErD,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;YAEhD,IAAI,CAAC,GAAG,CAAC,uCAAuC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAA;YAC5E,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,uBAAuB,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAA;YAE9E,MAAM,KAAK,GAAG,cAAc,CAAC,oBAAoB,CAAC,MAAM,EAAE,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,CAAA;YAChH,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;YAC5D,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,yDAAyD,EAAE,KAAc,CAAC,CAAA;YAC7F,IAAI,CAAC,KAAK,CAAC,KAAc,CAAC,CAAA;QAC5B,CAAC;IACH,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { AuthenticatedCommand } from '../../common/authenticated-command.js';
2
+ export declare class Install extends AuthenticatedCommand<typeof Install> {
3
+ static args: {};
4
+ static description: string;
5
+ static examples: {
6
+ command: string;
7
+ description: string;
8
+ }[];
9
+ static flags: {
10
+ 'app-id': import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
11
+ 'demo-data': import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
12
+ 'no-wait': import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
13
+ 'poll-interval': import("@oclif/core/lib/interfaces/parser.js").OptionFlag<number, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
14
+ timeout: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<number, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
15
+ version: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
16
+ };
17
+ run(): Promise<void>;
18
+ }
19
+ //# sourceMappingURL=install.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../src/commands/store/install.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAA;AAG5E,qBAAa,OAAQ,SAAQ,oBAAoB,CAAC,OAAO,OAAO,CAAC;IAE/D,MAAM,CAAC,IAAI,KACV;IACH,MAAM,CAAC,WAAW,SAAsD;IACxE,MAAM,CAAC,QAAQ;;;QAaZ;IACH,MAAM,CAAC,KAAK;;;;;;;MA+BT;IAEK,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA4C3B"}
@@ -0,0 +1,90 @@
1
+ import { Flags } from '@oclif/core';
2
+ import { ApplicationManager } from '@sonisoft/now-sdk-ext-core';
3
+ import { AuthenticatedCommand } from '../../common/authenticated-command.js';
4
+ import { formatInstallResult } from '../../services/store-app-display.service.js';
5
+ export class Install extends AuthenticatedCommand {
6
+ static args = {};
7
+ static description = 'Install an application from the ServiceNow Store.';
8
+ static examples = [
9
+ {
10
+ command: '<%= config.bin %> <%= command.id %> --app-id abc123 --version 1.0.0 --auth dev',
11
+ description: 'Install a store application and wait for completion',
12
+ },
13
+ {
14
+ command: '<%= config.bin %> <%= command.id %> --app-id abc123 --version 1.0.0 --no-wait --auth dev',
15
+ description: 'Install without waiting for completion',
16
+ },
17
+ {
18
+ command: '<%= config.bin %> <%= command.id %> -a abc123 -v 1.0.0 --demo-data --auth dev',
19
+ description: 'Install with demo data',
20
+ },
21
+ ];
22
+ static flags = {
23
+ 'app-id': Flags.string({
24
+ char: 'a',
25
+ description: 'Store application sys_id',
26
+ required: true,
27
+ }),
28
+ 'demo-data': Flags.boolean({
29
+ default: false,
30
+ description: 'Load demo data during installation',
31
+ required: false,
32
+ }),
33
+ 'no-wait': Flags.boolean({
34
+ default: false,
35
+ description: 'Do not wait for installation to complete',
36
+ required: false,
37
+ }),
38
+ 'poll-interval': Flags.integer({
39
+ default: 5000,
40
+ description: 'Polling interval in milliseconds',
41
+ required: false,
42
+ }),
43
+ timeout: Flags.integer({
44
+ default: 1_800_000,
45
+ description: 'Installation timeout in milliseconds',
46
+ required: false,
47
+ }),
48
+ version: Flags.string({
49
+ char: 'v',
50
+ description: 'Application version to install',
51
+ required: true,
52
+ }),
53
+ };
54
+ async run() {
55
+ const { flags } = await this.parse(Install);
56
+ try {
57
+ const appId = flags['app-id'];
58
+ const version = flags.version;
59
+ const demoData = flags['demo-data'];
60
+ const noWait = flags['no-wait'];
61
+ const pollInterval = flags['poll-interval'];
62
+ const timeout = flags.timeout;
63
+ this.log(`Installing store application ${appId} (version: ${version})...`);
64
+ const appMgr = new ApplicationManager(this.instance);
65
+ let result;
66
+ const jsonOutput = flags.json ?? false;
67
+ if (noWait) {
68
+ result = await appMgr.installStoreApplication({
69
+ appId,
70
+ loadDemoData: demoData,
71
+ version,
72
+ });
73
+ this.log('Installation initiated. Use progress ID to monitor status.');
74
+ }
75
+ else {
76
+ this.log(`Waiting for installation to complete (poll: ${pollInterval}ms, timeout: ${timeout}ms)...`);
77
+ result = await appMgr.installStoreApplicationAndWait({ appId, loadDemoData: demoData, version }, pollInterval, timeout);
78
+ }
79
+ const lines = formatInstallResult(result, jsonOutput);
80
+ for (const line of lines) {
81
+ jsonOutput ? console.log(line) : this.log(line);
82
+ }
83
+ }
84
+ catch (error) {
85
+ this._logger.error("Error occurred when installing store application.", error);
86
+ this.error(error);
87
+ }
88
+ }
89
+ }
90
+ //# sourceMappingURL=install.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/commands/store/install.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AACnC,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AAE/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAA;AAC5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAA;AAEjF,MAAM,OAAO,OAAQ,SAAQ,oBAAoC;IAE/D,MAAM,CAAC,IAAI,GAAG,EACb,CAAA;IACH,MAAM,CAAC,WAAW,GAAG,mDAAmD,CAAA;IACxE,MAAM,CAAC,QAAQ,GAAG;QACd;YACE,OAAO,EAAE,gFAAgF;YACzF,WAAW,EAAE,qDAAqD;SACnE;QACD;YACE,OAAO,EAAE,0FAA0F;YACnG,WAAW,EAAE,wCAAwC;SACtD;QACD;YACE,OAAO,EAAE,+EAA+E;YACxF,WAAW,EAAE,wBAAwB;SACtC;KACF,CAAA;IACH,MAAM,CAAC,KAAK,GAAG;QACX,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC;YACrB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,0BAA0B;YACvC,QAAQ,EAAE,IAAI;SACf,CAAC;QACF,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC;YACzB,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,oCAAoC;YACjD,QAAQ,EAAE,KAAK;SAChB,CAAC;QACF,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC;YACvB,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,0CAA0C;YACvD,QAAQ,EAAE,KAAK;SAChB,CAAC;QACF,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC;YAC7B,OAAO,EAAE,IAAI;YACb,WAAW,EAAE,kCAAkC;YAC/C,QAAQ,EAAE,KAAK;SAChB,CAAC;QACF,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC;YACrB,OAAO,EAAE,SAAS;YAClB,WAAW,EAAE,sCAAsC;YACnD,QAAQ,EAAE,KAAK;SAChB,CAAC;QACF,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC;YACpB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,gCAAgC;YAC7C,QAAQ,EAAE,IAAI;SACf,CAAC;KACH,CAAA;IAED,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAE3C,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAW,CAAA;YACvC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAiB,CAAA;YACvC,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,CAAC,CAAA;YACnC,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC,CAAA;YAC/B,MAAM,YAAY,GAAG,KAAK,CAAC,eAAe,CAAW,CAAA;YACrD,MAAM,OAAO,GAAG,KAAK,CAAC,OAAiB,CAAA;YAEvC,IAAI,CAAC,GAAG,CAAC,gCAAgC,KAAK,cAAc,OAAO,MAAM,CAAC,CAAA;YAE1E,MAAM,MAAM,GAAG,IAAI,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;YAEpD,IAAI,MAAW,CAAA;YAEf,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,CAAA;YAEtC,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC;oBAC5C,KAAK;oBACL,YAAY,EAAE,QAAQ;oBACtB,OAAO;iBACR,CAAC,CAAA;gBACF,IAAI,CAAC,GAAG,CAAC,4DAA4D,CAAC,CAAA;YACxE,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,GAAG,CAAC,+CAA+C,YAAY,gBAAgB,OAAO,QAAQ,CAAC,CAAA;gBACpG,MAAM,GAAG,MAAM,MAAM,CAAC,8BAA8B,CAClD,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,OAAO,EAAE,EAC1C,YAAY,EACZ,OAAO,CACR,CAAA;YACH,CAAC;YAED,MAAM,KAAK,GAAG,mBAAmB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;YACrD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;YACjD,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,mDAAmD,EAAE,KAAc,CAAC,CAAA;YACvF,IAAI,CAAC,KAAK,CAAC,KAAc,CAAC,CAAA;QAC5B,CAAC;IACH,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { AuthenticatedCommand } from '../../common/authenticated-command.js';
2
+ export declare class Search extends AuthenticatedCommand<typeof Search> {
3
+ static args: {};
4
+ static description: string;
5
+ static examples: {
6
+ command: string;
7
+ description: string;
8
+ }[];
9
+ static flags: {
10
+ limit: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<number, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
11
+ tab: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
12
+ term: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
13
+ };
14
+ run(): Promise<void>;
15
+ }
16
+ //# sourceMappingURL=search.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../../src/commands/store/search.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAA;AAG5E,qBAAa,MAAO,SAAQ,oBAAoB,CAAC,OAAO,MAAM,CAAC;IAE7D,MAAM,CAAC,IAAI,KACV;IACH,MAAM,CAAC,WAAW,SAAqD;IACvE,MAAM,CAAC,QAAQ;;;QAaZ;IACH,MAAM,CAAC,KAAK;;;;MAiBT;IAEK,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA6B3B"}
@@ -0,0 +1,67 @@
1
+ import { Flags } from '@oclif/core';
2
+ import { ApplicationManager } from '@sonisoft/now-sdk-ext-core';
3
+ import { AuthenticatedCommand } from '../../common/authenticated-command.js';
4
+ import { formatSearchResults } from '../../services/store-app-display.service.js';
5
+ export class Search extends AuthenticatedCommand {
6
+ static args = {};
7
+ static description = 'Search for applications in the ServiceNow Store.';
8
+ static examples = [
9
+ {
10
+ command: '<%= config.bin %> <%= command.id %> --term "ITSM" --auth dev',
11
+ description: 'Search for applications matching a term',
12
+ },
13
+ {
14
+ command: '<%= config.bin %> <%= command.id %> --tab installed --auth dev',
15
+ description: 'List installed applications',
16
+ },
17
+ {
18
+ command: '<%= config.bin %> <%= command.id %> --tab updates --limit 10 --auth dev',
19
+ description: 'List applications with available updates',
20
+ },
21
+ ];
22
+ static flags = {
23
+ limit: Flags.integer({
24
+ default: 20,
25
+ description: 'Maximum number of results to return',
26
+ required: false,
27
+ }),
28
+ tab: Flags.string({
29
+ default: 'available_for_you',
30
+ description: 'Store tab context to search',
31
+ options: ['available_for_you', 'installed', 'updates'],
32
+ required: false,
33
+ }),
34
+ term: Flags.string({
35
+ char: 't',
36
+ description: 'Search term',
37
+ required: false,
38
+ }),
39
+ };
40
+ async run() {
41
+ const { flags } = await this.parse(Search);
42
+ try {
43
+ const tab = flags.tab;
44
+ const { term } = flags;
45
+ const limit = flags.limit;
46
+ this.log(`Searching store applications (tab: ${tab})...`);
47
+ if (term) {
48
+ this.log(`Search term: ${term}`);
49
+ }
50
+ const appMgr = new ApplicationManager(this.instance);
51
+ const results = await appMgr.searchApplications({
52
+ limit,
53
+ searchKey: term,
54
+ tabContext: tab,
55
+ });
56
+ const lines = formatSearchResults(results, (flags.json ?? false) ?? false);
57
+ for (const line of lines) {
58
+ (flags.json ?? false) ? console.log(line) : this.log(line);
59
+ }
60
+ }
61
+ catch (error) {
62
+ this._logger.error("Error occurred when searching store applications.", error);
63
+ this.error(error);
64
+ }
65
+ }
66
+ }
67
+ //# sourceMappingURL=search.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.js","sourceRoot":"","sources":["../../../src/commands/store/search.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AACnC,OAAO,EAAmB,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AAEhF,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAA;AAC5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAA;AAEjF,MAAM,OAAO,MAAO,SAAQ,oBAAmC;IAE7D,MAAM,CAAC,IAAI,GAAG,EACb,CAAA;IACH,MAAM,CAAC,WAAW,GAAG,kDAAkD,CAAA;IACvE,MAAM,CAAC,QAAQ,GAAG;QACd;YACE,OAAO,EAAE,8DAA8D;YACvE,WAAW,EAAE,yCAAyC;SACvD;QACD;YACE,OAAO,EAAE,gEAAgE;YACzE,WAAW,EAAE,6BAA6B;SAC3C;QACD;YACE,OAAO,EAAE,yEAAyE;YAClF,WAAW,EAAE,0CAA0C;SACxD;KACF,CAAA;IACH,MAAM,CAAC,KAAK,GAAG;QACX,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC;YACnB,OAAO,EAAE,EAAE;YACX,WAAW,EAAE,qCAAqC;YAClD,QAAQ,EAAE,KAAK;SAChB,CAAC;QACF,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC;YAChB,OAAO,EAAE,mBAAmB;YAC5B,WAAW,EAAE,6BAA6B;YAC1C,OAAO,EAAE,CAAC,mBAAmB,EAAE,WAAW,EAAE,SAAS,CAAC;YACtD,QAAQ,EAAE,KAAK;SAChB,CAAC;QACF,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC;YACjB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,aAAa;YAC1B,QAAQ,EAAE,KAAK;SAChB,CAAC;KACH,CAAA;IAED,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QAE1C,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,KAAK,CAAC,GAAa,CAAA;YAC/B,MAAM,EAAC,IAAI,EAAC,GAAG,KAAK,CAAA;YACpB,MAAM,KAAK,GAAG,KAAK,CAAC,KAAe,CAAA;YAEnC,IAAI,CAAC,GAAG,CAAC,sCAAsC,GAAG,MAAM,CAAC,CAAA;YACzD,IAAI,IAAI,EAAE,CAAC;gBACT,IAAI,CAAC,GAAG,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAA;YAClC,CAAC;YAED,MAAM,MAAM,GAAG,IAAI,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;YACpD,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC;gBAC9C,KAAK;gBACL,SAAS,EAAE,IAAI;gBACf,UAAU,EAAE,GAAsB;aACnC,CAAC,CAAA;YAEF,MAAM,KAAK,GAAG,mBAAmB,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,CAAA;YAC1E,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;YAC5D,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,mDAAmD,EAAE,KAAc,CAAC,CAAA;YACvF,IAAI,CAAC,KAAK,CAAC,KAAc,CAAC,CAAA;QAC5B,CAAC;IACH,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { AuthenticatedCommand } from '../../common/authenticated-command.js';
2
+ export declare class Update extends AuthenticatedCommand<typeof Update> {
3
+ static args: {};
4
+ static description: string;
5
+ static examples: {
6
+ command: string;
7
+ description: string;
8
+ }[];
9
+ static flags: {
10
+ 'app-id': import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
11
+ 'no-wait': import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
12
+ 'poll-interval': import("@oclif/core/lib/interfaces/parser.js").OptionFlag<number, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
13
+ timeout: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<number, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
14
+ version: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
15
+ };
16
+ run(): Promise<void>;
17
+ }
18
+ //# sourceMappingURL=update.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../src/commands/store/update.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAA;AAG5E,qBAAa,MAAO,SAAQ,oBAAoB,CAAC,OAAO,MAAM,CAAC;IAE7D,MAAM,CAAC,IAAI,KACV;IACH,MAAM,CAAC,WAAW,SAA4D;IAC9E,MAAM,CAAC,QAAQ;;;QAaZ;IACH,MAAM,CAAC,KAAK;;;;;;MA0BT;IAEK,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA0C3B"}
@@ -0,0 +1,83 @@
1
+ import { Flags } from '@oclif/core';
2
+ import { ApplicationManager } from '@sonisoft/now-sdk-ext-core';
3
+ import { AuthenticatedCommand } from '../../common/authenticated-command.js';
4
+ import { formatInstallResult } from '../../services/store-app-display.service.js';
5
+ export class Update extends AuthenticatedCommand {
6
+ static args = {};
7
+ static description = 'Update a ServiceNow Store application to a new version.';
8
+ static examples = [
9
+ {
10
+ command: '<%= config.bin %> <%= command.id %> --app-id abc123 --version 2.0.0 --auth dev',
11
+ description: 'Update a store application and wait for completion',
12
+ },
13
+ {
14
+ command: '<%= config.bin %> <%= command.id %> --app-id abc123 --version 2.0.0 --no-wait --auth dev',
15
+ description: 'Update without waiting for completion',
16
+ },
17
+ {
18
+ command: '<%= config.bin %> <%= command.id %> -a abc123 -v 2.0.0 --timeout 3600000 --auth dev',
19
+ description: 'Update with custom timeout (1 hour)',
20
+ },
21
+ ];
22
+ static flags = {
23
+ 'app-id': Flags.string({
24
+ char: 'a',
25
+ description: 'Store application sys_id',
26
+ required: true,
27
+ }),
28
+ 'no-wait': Flags.boolean({
29
+ default: false,
30
+ description: 'Do not wait for update to complete',
31
+ required: false,
32
+ }),
33
+ 'poll-interval': Flags.integer({
34
+ default: 5000,
35
+ description: 'Polling interval in milliseconds',
36
+ required: false,
37
+ }),
38
+ timeout: Flags.integer({
39
+ default: 1_800_000,
40
+ description: 'Update timeout in milliseconds',
41
+ required: false,
42
+ }),
43
+ version: Flags.string({
44
+ char: 'v',
45
+ description: 'Target application version',
46
+ required: true,
47
+ }),
48
+ };
49
+ async run() {
50
+ const { flags } = await this.parse(Update);
51
+ try {
52
+ const appId = flags['app-id'];
53
+ const version = flags.version;
54
+ const noWait = flags['no-wait'];
55
+ const pollInterval = flags['poll-interval'];
56
+ const timeout = flags.timeout;
57
+ this.log(`Updating store application ${appId} to version ${version}...`);
58
+ const appMgr = new ApplicationManager(this.instance);
59
+ let result;
60
+ const jsonOutput = flags.json ?? false;
61
+ if (noWait) {
62
+ result = await appMgr.updateStoreApplication({
63
+ appId,
64
+ version,
65
+ });
66
+ this.log('Update initiated. Use progress ID to monitor status.');
67
+ }
68
+ else {
69
+ this.log(`Waiting for update to complete (poll: ${pollInterval}ms, timeout: ${timeout}ms)...`);
70
+ result = await appMgr.updateStoreApplicationAndWait({ appId, version }, pollInterval, timeout);
71
+ }
72
+ const lines = formatInstallResult(result, jsonOutput);
73
+ for (const line of lines) {
74
+ jsonOutput ? console.log(line) : this.log(line);
75
+ }
76
+ }
77
+ catch (error) {
78
+ this._logger.error("Error occurred when updating store application.", error);
79
+ this.error(error);
80
+ }
81
+ }
82
+ }
83
+ //# sourceMappingURL=update.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/commands/store/update.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { AuthenticatedCommand } from '../../common/authenticated-command.js';
2
+ export declare class Validate extends AuthenticatedCommand<typeof Validate> {
3
+ static args: {};
4
+ static description: string;
5
+ static examples: {
6
+ command: string;
7
+ description: string;
8
+ }[];
9
+ static flags: {
10
+ file: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
11
+ };
12
+ run(): Promise<void>;
13
+ }
14
+ //# sourceMappingURL=validate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../../src/commands/store/validate.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAA;AAG5E,qBAAa,QAAS,SAAQ,oBAAoB,CAAC,OAAO,QAAQ,CAAC;IAEjE,MAAM,CAAC,IAAI,KACV;IACH,MAAM,CAAC,WAAW,SAAmD;IACrE,MAAM,CAAC,QAAQ;;;QAKZ;IACH,MAAM,CAAC,KAAK;;MAMT;IAEK,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAwB3B"}
@@ -0,0 +1,43 @@
1
+ import { Flags } from '@oclif/core';
2
+ import { ApplicationManager } from '@sonisoft/now-sdk-ext-core';
3
+ import { readFileSync } from 'node:fs';
4
+ import { AuthenticatedCommand } from '../../common/authenticated-command.js';
5
+ import { formatValidationResult } from '../../services/store-app-display.service.js';
6
+ export class Validate extends AuthenticatedCommand {
7
+ static args = {};
8
+ static description = 'Validate a batch installation definition file.';
9
+ static examples = [
10
+ {
11
+ command: '<%= config.bin %> <%= command.id %> --file ./batch-definition.json --auth dev',
12
+ description: 'Validate a batch definition file',
13
+ },
14
+ ];
15
+ static flags = {
16
+ file: Flags.string({
17
+ char: 'f',
18
+ description: 'Path to batch definition JSON file',
19
+ required: true,
20
+ }),
21
+ };
22
+ async run() {
23
+ const { flags } = await this.parse(Validate);
24
+ try {
25
+ const filePath = flags.file;
26
+ this.log(`Validating batch definition file: ${filePath}...`);
27
+ // Read and parse file to ensure it is valid JSON
28
+ const fileContent = readFileSync(filePath, 'utf-8');
29
+ JSON.parse(fileContent);
30
+ const appMgr = new ApplicationManager(this.instance);
31
+ const result = await appMgr.validateBatchDefinition(filePath);
32
+ const lines = formatValidationResult(result, (flags.json ?? false) ?? false);
33
+ for (const line of lines) {
34
+ (flags.json ?? false) ? console.log(line) : this.log(line);
35
+ }
36
+ }
37
+ catch (error) {
38
+ this._logger.error("Error occurred when validating batch definition.", error);
39
+ this.error(error);
40
+ }
41
+ }
42
+ }
43
+ //# sourceMappingURL=validate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../src/commands/store/validate.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AACnC,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAEtC,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAA;AAC5E,OAAO,EAAE,sBAAsB,EAAE,MAAM,6CAA6C,CAAA;AAEpF,MAAM,OAAO,QAAS,SAAQ,oBAAqC;IAEjE,MAAM,CAAC,IAAI,GAAG,EACb,CAAA;IACH,MAAM,CAAC,WAAW,GAAG,gDAAgD,CAAA;IACrE,MAAM,CAAC,QAAQ,GAAG;QACd;YACE,OAAO,EAAE,+EAA+E;YACxF,WAAW,EAAE,kCAAkC;SAChD;KACF,CAAA;IACH,MAAM,CAAC,KAAK,GAAG;QACX,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC;YACjB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,oCAAoC;YACjD,QAAQ,EAAE,IAAI;SACf,CAAC;KACH,CAAA;IAED,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;QAE5C,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAc,CAAA;YAErC,IAAI,CAAC,GAAG,CAAC,qCAAqC,QAAQ,KAAK,CAAC,CAAA;YAE5D,iDAAiD;YACjD,MAAM,WAAW,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;YACnD,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;YAEvB,MAAM,MAAM,GAAG,IAAI,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;YACpD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAA;YAE7D,MAAM,KAAK,GAAG,sBAAsB,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,CAAA;YAC5E,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;YAC5D,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,kDAAkD,EAAE,KAAc,CAAC,CAAA;YACtF,IAAI,CAAC,KAAK,CAAC,KAAc,CAAC,CAAA;QAC5B,CAAC;IACH,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { AuthenticatedCommand } from '../../common/authenticated-command.js';
2
+ export declare class Approve extends AuthenticatedCommand<typeof Approve> {
3
+ static args: {};
4
+ static description: string;
5
+ static examples: {
6
+ command: string;
7
+ description: string;
8
+ }[];
9
+ static flags: {
10
+ comments: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
11
+ number: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
12
+ };
13
+ run(): Promise<void>;
14
+ }
15
+ //# sourceMappingURL=approve.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"approve.d.ts","sourceRoot":"","sources":["../../../src/commands/task/approve.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAA;AAI5E,qBAAa,OAAQ,SAAQ,oBAAoB,CAAC,OAAO,OAAO,CAAC;IAE/D,MAAM,CAAC,IAAI,KACV;IACH,MAAM,CAAC,WAAW,SAMqC;IACvD,MAAM,CAAC,QAAQ;;;QASZ;IACH,MAAM,CAAC,KAAK;;;MAWT;IAEK,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAgC3B"}