@sonisoft/now-sdk-ext-cli 1.1.0-alpha.3 → 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 (355) hide show
  1. package/README.md +4587 -197
  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 +4 -2
  15. package/dist/commands/app/index.d.ts.map +1 -1
  16. package/dist/commands/app/index.js +27 -6
  17. package/dist/commands/app/index.js.map +1 -1
  18. package/dist/commands/app/install.d.ts +4 -2
  19. package/dist/commands/app/install.d.ts.map +1 -1
  20. package/dist/commands/app/install.js +41 -8
  21. package/dist/commands/app/install.js.map +1 -1
  22. package/dist/commands/app/repo-install.d.ts +18 -0
  23. package/dist/commands/app/repo-install.d.ts.map +1 -0
  24. package/dist/commands/app/repo-install.js +171 -0
  25. package/dist/commands/app/repo-install.js.map +1 -0
  26. package/dist/commands/app/repo-list.d.ts +16 -0
  27. package/dist/commands/app/repo-list.d.ts.map +1 -0
  28. package/dist/commands/app/repo-list.js +150 -0
  29. package/dist/commands/app/repo-list.js.map +1 -0
  30. package/dist/commands/app/uninstall.d.ts +15 -0
  31. package/dist/commands/app/uninstall.d.ts.map +1 -0
  32. package/dist/commands/app/uninstall.js +69 -0
  33. package/dist/commands/app/uninstall.js.map +1 -0
  34. package/dist/commands/atf/index.d.ts +25 -0
  35. package/dist/commands/atf/index.d.ts.map +1 -0
  36. package/dist/commands/atf/index.js +183 -0
  37. package/dist/commands/atf/index.js.map +1 -0
  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 +17 -4
  67. package/dist/commands/exec/index.d.ts.map +1 -1
  68. package/dist/commands/exec/index.js +278 -28
  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 +22 -0
  107. package/dist/commands/log/index.d.ts.map +1 -0
  108. package/dist/commands/log/index.js +190 -0
  109. package/dist/commands/log/index.js.map +1 -0
  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 +14 -5
  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.d.ts +20 -0
  263. package/dist/common/scope-autocomplete.d.ts.map +1 -0
  264. package/dist/common/scope-autocomplete.js +93 -0
  265. package/dist/common/scope-autocomplete.js.map +1 -0
  266. package/dist/services/aggregate-display.service.d.ts +18 -0
  267. package/dist/services/aggregate-display.service.d.ts.map +1 -0
  268. package/dist/services/aggregate-display.service.js +83 -0
  269. package/dist/services/aggregate-display.service.js.map +1 -0
  270. package/dist/services/app-display.service.d.ts +36 -0
  271. package/dist/services/app-display.service.d.ts.map +1 -0
  272. package/dist/services/app-display.service.js +101 -0
  273. package/dist/services/app-display.service.js.map +1 -0
  274. package/dist/services/atf-result-formatter.service.d.ts +64 -0
  275. package/dist/services/atf-result-formatter.service.d.ts.map +1 -0
  276. package/dist/services/atf-result-formatter.service.js +83 -0
  277. package/dist/services/atf-result-formatter.service.js.map +1 -0
  278. package/dist/services/attachment-display.service.d.ts +18 -0
  279. package/dist/services/attachment-display.service.d.ts.map +1 -0
  280. package/dist/services/attachment-display.service.js +93 -0
  281. package/dist/services/attachment-display.service.js.map +1 -0
  282. package/dist/services/batch-display.service.d.ts +11 -0
  283. package/dist/services/batch-display.service.d.ts.map +1 -0
  284. package/dist/services/batch-display.service.js +75 -0
  285. package/dist/services/batch-display.service.js.map +1 -0
  286. package/dist/services/bulk-display.service.d.ts +11 -0
  287. package/dist/services/bulk-display.service.d.ts.map +1 -0
  288. package/dist/services/bulk-display.service.js +85 -0
  289. package/dist/services/bulk-display.service.js.map +1 -0
  290. package/dist/services/code-search-display.service.d.ts +23 -0
  291. package/dist/services/code-search-display.service.d.ts.map +1 -0
  292. package/dist/services/code-search-display.service.js +130 -0
  293. package/dist/services/code-search-display.service.js.map +1 -0
  294. package/dist/services/flow-display.service.d.ts +10 -0
  295. package/dist/services/flow-display.service.d.ts.map +1 -0
  296. package/dist/services/flow-display.service.js +164 -0
  297. package/dist/services/flow-display.service.js.map +1 -0
  298. package/dist/services/health-display.service.d.ts +8 -0
  299. package/dist/services/health-display.service.d.ts.map +1 -0
  300. package/dist/services/health-display.service.js +91 -0
  301. package/dist/services/health-display.service.js.map +1 -0
  302. package/dist/services/log-filter.service.d.ts +31 -0
  303. package/dist/services/log-filter.service.d.ts.map +1 -0
  304. package/dist/services/log-filter.service.js +117 -0
  305. package/dist/services/log-filter.service.js.map +1 -0
  306. package/dist/services/log-formatter.service.d.ts +30 -0
  307. package/dist/services/log-formatter.service.d.ts.map +1 -0
  308. package/dist/services/log-formatter.service.js +122 -0
  309. package/dist/services/log-formatter.service.js.map +1 -0
  310. package/dist/services/query-display.service.d.ts +23 -0
  311. package/dist/services/query-display.service.d.ts.map +1 -0
  312. package/dist/services/query-display.service.js +152 -0
  313. package/dist/services/query-display.service.js.map +1 -0
  314. package/dist/services/schema-display.service.d.ts +18 -0
  315. package/dist/services/schema-display.service.d.ts.map +1 -0
  316. package/dist/services/schema-display.service.js +106 -0
  317. package/dist/services/schema-display.service.js.map +1 -0
  318. package/dist/services/scope-display.service.d.ts +18 -0
  319. package/dist/services/scope-display.service.d.ts.map +1 -0
  320. package/dist/services/scope-display.service.js +83 -0
  321. package/dist/services/scope-display.service.js.map +1 -0
  322. package/dist/services/script-parameter.service.d.ts +16 -0
  323. package/dist/services/script-parameter.service.d.ts.map +1 -0
  324. package/dist/services/script-parameter.service.js +34 -0
  325. package/dist/services/script-parameter.service.js.map +1 -0
  326. package/dist/services/script-sync-display.service.d.ts +13 -0
  327. package/dist/services/script-sync-display.service.d.ts.map +1 -0
  328. package/dist/services/script-sync-display.service.js +71 -0
  329. package/dist/services/script-sync-display.service.js.map +1 -0
  330. package/dist/services/store-app-display.service.d.ts +16 -0
  331. package/dist/services/store-app-display.service.d.ts.map +1 -0
  332. package/dist/services/store-app-display.service.js +114 -0
  333. package/dist/services/store-app-display.service.js.map +1 -0
  334. package/dist/services/task-display.service.d.ts +14 -0
  335. package/dist/services/task-display.service.d.ts.map +1 -0
  336. package/dist/services/task-display.service.js +86 -0
  337. package/dist/services/task-display.service.js.map +1 -0
  338. package/dist/services/update-set-display.service.d.ts +28 -0
  339. package/dist/services/update-set-display.service.d.ts.map +1 -0
  340. package/dist/services/update-set-display.service.js +150 -0
  341. package/dist/services/update-set-display.service.js.map +1 -0
  342. package/dist/services/workflow-display.service.d.ts +13 -0
  343. package/dist/services/workflow-display.service.d.ts.map +1 -0
  344. package/dist/services/workflow-display.service.js +53 -0
  345. package/dist/services/workflow-display.service.js.map +1 -0
  346. package/dist/services/xml-display.service.d.ts +11 -0
  347. package/dist/services/xml-display.service.d.ts.map +1 -0
  348. package/dist/services/xml-display.service.js +55 -0
  349. package/dist/services/xml-display.service.js.map +1 -0
  350. package/dist/util/log-factory.d.ts +5 -0
  351. package/dist/util/log-factory.d.ts.map +1 -0
  352. package/dist/util/log-factory.js +8 -0
  353. package/dist/util/log-factory.js.map +1 -0
  354. package/oclif.manifest.json +5847 -49
  355. package/package.json +107 -28
@@ -0,0 +1,81 @@
1
+ /* eslint-disable perfectionist/sort-objects */
2
+ import { Flags } from '@oclif/core';
3
+ import { TableAPIRequest } from '@sonisoft/now-sdk-ext-core';
4
+ import { AuthenticatedCommand } from '../../common/authenticated-command.js';
5
+ import { QueryDisplayService } from '../../services/query-display.service.js';
6
+ export class QueryApp extends AuthenticatedCommand {
7
+ static args = {};
8
+ static description = 'Search for applications by name across scoped apps and plugins.\n\n' +
9
+ 'Searches the sys_scope table for applications matching the provided search term.\n\n' +
10
+ 'Features:\n' +
11
+ ' \u2022 Search by name (case-insensitive contains)\n' +
12
+ ' \u2022 Filter active/inactive applications\n' +
13
+ ' \u2022 Configurable result limit\n' +
14
+ ' \u2022 JSON output for scripting';
15
+ static examples = [
16
+ {
17
+ description: 'Search for ITSM applications',
18
+ command: '<%= config.bin %> <%= command.id %> --search "ITSM" --auth dev',
19
+ },
20
+ {
21
+ description: 'Search active apps only',
22
+ command: '<%= config.bin %> <%= command.id %> --search "HR" --active --auth dev',
23
+ },
24
+ ];
25
+ static flags = {
26
+ 'search': Flags.string({
27
+ char: 's',
28
+ description: 'Application name search term',
29
+ required: true,
30
+ }),
31
+ 'active': Flags.boolean({
32
+ char: 'a',
33
+ description: 'Only show active applications',
34
+ required: false,
35
+ default: false,
36
+ }),
37
+ 'limit': Flags.integer({
38
+ char: 'l',
39
+ description: 'Maximum number of results to return',
40
+ required: false,
41
+ default: 20,
42
+ }),
43
+ 'json': Flags.boolean({
44
+ char: 'j',
45
+ description: 'Output results as JSON',
46
+ required: false,
47
+ default: false,
48
+ }),
49
+ };
50
+ async run() {
51
+ const { flags } = await this.parse(QueryApp);
52
+ const displayService = new QueryDisplayService();
53
+ try {
54
+ const tableAPI = new TableAPIRequest(this.instance);
55
+ this.log(`Searching for applications matching: "${flags.search}"`);
56
+ let query = `nameLIKE${flags.search}`;
57
+ if (flags.active) {
58
+ query += '^active=true';
59
+ }
60
+ const queryParams = {
61
+ sysparm_query: query,
62
+ sysparm_limit: flags.limit,
63
+ sysparm_display_value: 'false',
64
+ sysparm_fields: 'sys_id,name,scope,version,active,short_description',
65
+ };
66
+ const response = await tableAPI.get('sys_scope', queryParams);
67
+ const records = response?.data?.result ?? response?.bodyObject?.result ?? [];
68
+ // Add source field for display
69
+ const apps = records.map((r) => ({ ...r, source: 'sys_scope' }));
70
+ const lines = displayService.formatAppResults(apps, flags.search, flags.json ?? false);
71
+ for (const line of lines) {
72
+ (flags.json ?? false) ? console.log(line) : this.log(line);
73
+ }
74
+ }
75
+ catch (error) {
76
+ this._logger.error("Error occurred when searching for applications.", error);
77
+ this.error(error);
78
+ }
79
+ }
80
+ }
81
+ //# sourceMappingURL=app.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../../../src/commands/query/app.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { AuthenticatedCommand } from '../../common/authenticated-command.js';
2
+ export declare class QueryColumns extends AuthenticatedCommand<typeof QueryColumns> {
3
+ static args: {};
4
+ static description: string;
5
+ static examples: {
6
+ description: string;
7
+ command: string;
8
+ }[];
9
+ static flags: {
10
+ table: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
11
+ search: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
12
+ json: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
13
+ };
14
+ run(): Promise<void>;
15
+ }
16
+ //# sourceMappingURL=columns.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"columns.d.ts","sourceRoot":"","sources":["../../../src/commands/query/columns.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAA;AAG5E,qBAAa,YAAa,SAAQ,oBAAoB,CAAC,OAAO,YAAY,CAAC;IAEzE,MAAM,CAAC,IAAI,KAAK;IAClB,MAAM,CAAC,WAAW,SAMuB;IACzC,MAAM,CAAC,QAAQ;;;QAaZ;IACH,MAAM,CAAC,KAAK;;;;MAiBT;IAEK,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAqC3B"}
@@ -0,0 +1,76 @@
1
+ /* eslint-disable perfectionist/sort-objects */
2
+ import { Flags } from '@oclif/core';
3
+ import { SchemaDiscovery } from '@sonisoft/now-sdk-ext-core';
4
+ import { AuthenticatedCommand } from '../../common/authenticated-command.js';
5
+ import { QueryDisplayService } from '../../services/query-display.service.js';
6
+ export class QueryColumns extends AuthenticatedCommand {
7
+ static args = {};
8
+ static description = 'List and search columns (fields) on a ServiceNow table.\n\n' +
9
+ 'Retrieves all field definitions for a table from the sys_dictionary, with optional ' +
10
+ 'name/label filtering.\n\n' +
11
+ 'Features:\n' +
12
+ ' \u2022 List all fields with types, lengths, and constraints\n' +
13
+ ' \u2022 Search/filter fields by name or label\n' +
14
+ ' \u2022 JSON output for scripting';
15
+ static examples = [
16
+ {
17
+ description: 'List all columns on the incident table',
18
+ command: '<%= config.bin %> <%= command.id %> --table incident --auth dev',
19
+ },
20
+ {
21
+ description: 'Search for date-related columns',
22
+ command: '<%= config.bin %> <%= command.id %> --table incident --search "date" --auth dev',
23
+ },
24
+ {
25
+ description: 'List columns as JSON',
26
+ command: '<%= config.bin %> <%= command.id %> --table incident --json --auth dev',
27
+ },
28
+ ];
29
+ static flags = {
30
+ 'table': Flags.string({
31
+ char: 't',
32
+ description: 'ServiceNow table name to list columns for',
33
+ required: true,
34
+ }),
35
+ 'search': Flags.string({
36
+ char: 's',
37
+ description: 'Filter columns by name or label (case-insensitive)',
38
+ required: false,
39
+ }),
40
+ 'json': Flags.boolean({
41
+ char: 'j',
42
+ description: 'Output results as JSON',
43
+ required: false,
44
+ default: false,
45
+ }),
46
+ };
47
+ async run() {
48
+ const { flags } = await this.parse(QueryColumns);
49
+ const displayService = new QueryDisplayService();
50
+ try {
51
+ const schemaDiscovery = new SchemaDiscovery(this.instance);
52
+ this.log(`Listing columns for table: ${flags.table}`);
53
+ const schema = await schemaDiscovery.discoverTableSchema(flags.table, {});
54
+ if (!schema || !schema.fields) {
55
+ this.error(`Failed to retrieve columns for table: ${flags.table}`);
56
+ return;
57
+ }
58
+ let { fields } = schema;
59
+ // Apply search filter if provided
60
+ if (flags.search) {
61
+ const searchLower = flags.search.toLowerCase();
62
+ fields = fields.filter((f) => (f.name || '').toLowerCase().includes(searchLower) ||
63
+ (f.label || '').toLowerCase().includes(searchLower));
64
+ }
65
+ const lines = displayService.formatColumnsResults(fields, flags.table, flags.search, flags.json ?? false);
66
+ for (const line of lines) {
67
+ (flags.json ?? false) ? console.log(line) : this.log(line);
68
+ }
69
+ }
70
+ catch (error) {
71
+ this._logger.error("Error occurred when listing table columns.", error);
72
+ this.error(error);
73
+ }
74
+ }
75
+ }
76
+ //# sourceMappingURL=columns.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"columns.js","sourceRoot":"","sources":["../../../src/commands/query/columns.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import { AuthenticatedCommand } from '../../common/authenticated-command.js';
2
+ export declare class Query extends AuthenticatedCommand<typeof Query> {
3
+ static args: {};
4
+ static description: string;
5
+ static examples: {
6
+ description: string;
7
+ command: string;
8
+ }[];
9
+ static flags: {
10
+ table: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
11
+ query: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
12
+ fields: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
13
+ 'display-value': import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
14
+ limit: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<number, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
15
+ json: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
16
+ };
17
+ run(): Promise<void>;
18
+ }
19
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/query/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAA;AAG5E,qBAAa,KAAM,SAAQ,oBAAoB,CAAC,OAAO,KAAK,CAAC;IAE3D,MAAM,CAAC,IAAI,KAAK;IAClB,MAAM,CAAC,WAAW,SAQiC;IACnD,MAAM,CAAC,QAAQ;;;QAaZ;IACH,MAAM,CAAC,KAAK;;;;;;;MAmCT;IAEK,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAgC3B"}
@@ -0,0 +1,94 @@
1
+ /* eslint-disable perfectionist/sort-objects */
2
+ import { Flags } from '@oclif/core';
3
+ import { TableAPIRequest } from '@sonisoft/now-sdk-ext-core';
4
+ import { AuthenticatedCommand } from '../../common/authenticated-command.js';
5
+ import { QueryDisplayService } from '../../services/query-display.service.js';
6
+ export class Query extends AuthenticatedCommand {
7
+ static args = {};
8
+ static description = 'Query any ServiceNow table using the Table API.\n\n' +
9
+ 'Retrieve records from any table with support for encoded queries, field selection, ' +
10
+ 'display values, and configurable limits.\n\n' +
11
+ 'Features:\n' +
12
+ ' \u2022 Query any table with encoded query strings\n' +
13
+ ' \u2022 Select specific fields to return\n' +
14
+ ' \u2022 Toggle display values vs. internal values\n' +
15
+ ' \u2022 Configurable record limit\n' +
16
+ ' \u2022 JSON output for scripting and CI/CD';
17
+ static examples = [
18
+ {
19
+ description: 'Query active incidents',
20
+ command: '<%= config.bin %> <%= command.id %> --table incident --query "active=true" --limit 10 --auth dev',
21
+ },
22
+ {
23
+ description: 'Query with specific fields and display values',
24
+ command: '<%= config.bin %> <%= command.id %> --table incident --query "priority=1" --fields "number,short_description,state" --display-value --auth dev',
25
+ },
26
+ {
27
+ description: 'Query as JSON output',
28
+ command: '<%= config.bin %> <%= command.id %> --table sys_user --query "active=true" --limit 5 --json --auth dev',
29
+ },
30
+ ];
31
+ static flags = {
32
+ 'table': Flags.string({
33
+ char: 't',
34
+ description: 'ServiceNow table name to query',
35
+ required: true,
36
+ }),
37
+ 'query': Flags.string({
38
+ char: 'q',
39
+ description: 'ServiceNow encoded query string',
40
+ required: false,
41
+ default: '',
42
+ }),
43
+ 'fields': Flags.string({
44
+ char: 'f',
45
+ description: 'Comma-separated list of fields to return',
46
+ required: false,
47
+ }),
48
+ 'display-value': Flags.boolean({
49
+ char: 'd',
50
+ description: 'Return display values instead of internal values',
51
+ required: false,
52
+ default: false,
53
+ }),
54
+ 'limit': Flags.integer({
55
+ char: 'l',
56
+ description: 'Maximum number of records to return',
57
+ required: false,
58
+ default: 20,
59
+ }),
60
+ 'json': Flags.boolean({
61
+ char: 'j',
62
+ description: 'Output results as JSON',
63
+ required: false,
64
+ default: false,
65
+ }),
66
+ };
67
+ async run() {
68
+ const { flags } = await this.parse(Query);
69
+ const displayService = new QueryDisplayService();
70
+ try {
71
+ const tableAPI = new TableAPIRequest(this.instance);
72
+ this.log(`Querying table: ${flags.table}`);
73
+ const queryParams = {
74
+ sysparm_query: flags.query || '',
75
+ sysparm_limit: flags.limit,
76
+ sysparm_display_value: flags['display-value'] ? 'true' : 'false',
77
+ };
78
+ if (flags.fields) {
79
+ queryParams.sysparm_fields = flags.fields;
80
+ }
81
+ const response = await tableAPI.get(flags.table, queryParams);
82
+ const records = response?.data?.result ?? response?.bodyObject?.result ?? [];
83
+ const lines = displayService.formatTableResults(records, flags.table, flags.json ?? false);
84
+ for (const line of lines) {
85
+ (flags.json ?? false) ? console.log(line) : this.log(line);
86
+ }
87
+ }
88
+ catch (error) {
89
+ this._logger.error("Error occurred when querying table.", error);
90
+ this.error(error);
91
+ }
92
+ }
93
+ }
94
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/query/index.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAE/C,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAE5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAA;AAC5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,yCAAyC,CAAA;AAE7E,MAAM,OAAO,KAAM,SAAQ,oBAAkC;IAE3D,MAAM,CAAC,IAAI,GAAG,EAAE,CAAA;IAClB,MAAM,CAAC,WAAW,GAAG,qDAAqD;QACtE,qFAAqF;QACrF,8CAA8C;QAC9C,aAAa;QACb,uDAAuD;QACvD,6CAA6C;QAC7C,sDAAsD;QACtD,sCAAsC;QACtC,8CAA8C,CAAC;IACnD,MAAM,CAAC,QAAQ,GAAG;QACd;YACE,WAAW,EAAE,wBAAwB;YACrC,OAAO,EAAE,kGAAkG;SAC5G;QACD;YACE,WAAW,EAAE,+CAA+C;YAC5D,OAAO,EAAE,gJAAgJ;SAC1J;QACD;YACE,WAAW,EAAE,sBAAsB;YACnC,OAAO,EAAE,wGAAwG;SAClH;KACF,CAAA;IACH,MAAM,CAAC,KAAK,GAAG;QACX,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC;YACpB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,gCAAgC;YAC7C,QAAQ,EAAE,IAAI;SACf,CAAC;QACF,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC;YACpB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,iCAAiC;YAC9C,QAAQ,EAAE,KAAK;YACf,OAAO,EAAE,EAAE;SACZ,CAAC;QACF,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC;YACrB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,0CAA0C;YACvD,QAAQ,EAAE,KAAK;SAChB,CAAC;QACF,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC;YAC7B,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,kDAAkD;YAC/D,QAAQ,EAAE,KAAK;YACf,OAAO,EAAE,KAAK;SACf,CAAC;QACF,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC;YACrB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,qCAAqC;YAClD,QAAQ,EAAE,KAAK;YACf,OAAO,EAAE,EAAE;SACZ,CAAC;QACF,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC;YACpB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,wBAAwB;YACrC,QAAQ,EAAE,KAAK;YACf,OAAO,EAAE,KAAK;SACf,CAAC;KACH,CAAA;IAED,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC1C,MAAM,cAAc,GAAG,IAAI,mBAAmB,EAAE,CAAC;QAEjD,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAEpD,IAAI,CAAC,GAAG,CAAC,mBAAmB,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;YAE3C,MAAM,WAAW,GAAwB;gBACvC,aAAa,EAAE,KAAK,CAAC,KAAK,IAAI,EAAE;gBAChC,aAAa,EAAE,KAAK,CAAC,KAAK;gBAC1B,qBAAqB,EAAE,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO;aACjE,CAAC;YAEF,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;gBACjB,WAAW,CAAC,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC;YAC5C,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAoB,KAAK,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;YACjF,MAAM,OAAO,GAAG,QAAQ,EAAE,IAAI,EAAE,MAAM,IAAI,QAAQ,EAAE,UAAU,EAAE,MAAM,IAAI,EAAE,CAAC;YAE7E,MAAM,KAAK,GAAG,cAAc,CAAC,kBAAkB,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC;YAC3F,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,CAAC;YAC7D,CAAC;QAEH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,qCAAqC,EAAE,KAAc,CAAC,CAAC;YAC1E,IAAI,CAAC,KAAK,CAAC,KAAc,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { AuthenticatedCommand } from '../../common/authenticated-command.js';
2
+ export declare class QuerySyslog extends AuthenticatedCommand<typeof QuerySyslog> {
3
+ static args: {};
4
+ static description: string;
5
+ static examples: {
6
+ description: string;
7
+ command: string;
8
+ }[];
9
+ static flags: {
10
+ query: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
11
+ limit: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<number, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
12
+ json: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
13
+ };
14
+ run(): Promise<void>;
15
+ }
16
+ //# sourceMappingURL=syslog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"syslog.d.ts","sourceRoot":"","sources":["../../../src/commands/query/syslog.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAA;AAG5E,qBAAa,WAAY,SAAQ,oBAAoB,CAAC,OAAO,WAAW,CAAC;IAEvE,MAAM,CAAC,IAAI,KAAK;IAClB,MAAM,CAAC,WAAW,SAOuB;IACzC,MAAM,CAAC,QAAQ;;;QAaZ;IACH,MAAM,CAAC,KAAK;;;;MAkBT;IAEK,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAqB3B"}
@@ -0,0 +1,67 @@
1
+ /* eslint-disable perfectionist/sort-objects */
2
+ import { Flags } from '@oclif/core';
3
+ import { SyslogReader } from '@sonisoft/now-sdk-ext-core';
4
+ import { AuthenticatedCommand } from '../../common/authenticated-command.js';
5
+ import { QueryDisplayService } from '../../services/query-display.service.js';
6
+ export class QuerySyslog extends AuthenticatedCommand {
7
+ static args = {};
8
+ static description = 'Query ServiceNow system logs (one-shot, non-tailing).\n\n' +
9
+ 'Retrieves syslog records with optional encoded query filtering and configurable limits. ' +
10
+ 'For real-time log tailing, use the "log tail" command instead.\n\n' +
11
+ 'Features:\n' +
12
+ ' \u2022 Query syslog with encoded query strings\n' +
13
+ ' \u2022 Configurable record limit\n' +
14
+ ' \u2022 Formatted table output with timestamps, levels, and sources\n' +
15
+ ' \u2022 JSON output for scripting';
16
+ static examples = [
17
+ {
18
+ description: 'Query recent error logs',
19
+ command: '<%= config.bin %> <%= command.id %> --query "level=2" --limit 20 --auth dev',
20
+ },
21
+ {
22
+ description: 'Query all recent syslog entries',
23
+ command: '<%= config.bin %> <%= command.id %> --limit 50 --auth dev',
24
+ },
25
+ {
26
+ description: 'Query syslog as JSON',
27
+ command: '<%= config.bin %> <%= command.id %> --query "sourceLIKEincident" --json --auth dev',
28
+ },
29
+ ];
30
+ static flags = {
31
+ 'query': Flags.string({
32
+ char: 'q',
33
+ description: 'ServiceNow encoded query string for filtering syslog records',
34
+ required: false,
35
+ }),
36
+ 'limit': Flags.integer({
37
+ char: 'l',
38
+ description: 'Maximum number of syslog records to return',
39
+ required: false,
40
+ default: 100,
41
+ }),
42
+ 'json': Flags.boolean({
43
+ char: 'j',
44
+ description: 'Output results as JSON',
45
+ required: false,
46
+ default: false,
47
+ }),
48
+ };
49
+ async run() {
50
+ const { flags } = await this.parse(QuerySyslog);
51
+ const displayService = new QueryDisplayService();
52
+ try {
53
+ const syslogReader = new SyslogReader(this.instance);
54
+ this.log('Querying syslog records...');
55
+ const records = await syslogReader.querySyslog(flags.query, flags.limit);
56
+ const lines = displayService.formatSyslogResults(records, flags.json ?? 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 querying syslog.", error);
63
+ this.error(error);
64
+ }
65
+ }
66
+ }
67
+ //# sourceMappingURL=syslog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"syslog.js","sourceRoot":"","sources":["../../../src/commands/query/syslog.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAE/C,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAEzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAA;AAC5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,yCAAyC,CAAA;AAE7E,MAAM,OAAO,WAAY,SAAQ,oBAAwC;IAEvE,MAAM,CAAC,IAAI,GAAG,EAAE,CAAA;IAClB,MAAM,CAAC,WAAW,GAAG,2DAA2D;QAC5E,0FAA0F;QAC1F,oEAAoE;QACpE,aAAa;QACb,oDAAoD;QACpD,sCAAsC;QACtC,wEAAwE;QACxE,oCAAoC,CAAC;IACzC,MAAM,CAAC,QAAQ,GAAG;QACd;YACE,WAAW,EAAE,yBAAyB;YACtC,OAAO,EAAE,6EAA6E;SACvF;QACD;YACE,WAAW,EAAE,iCAAiC;YAC9C,OAAO,EAAE,2DAA2D;SACrE;QACD;YACE,WAAW,EAAE,sBAAsB;YACnC,OAAO,EAAE,oFAAoF;SAC9F;KACF,CAAA;IACH,MAAM,CAAC,KAAK,GAAG;QACX,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC;YACpB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,8DAA8D;YAC3E,QAAQ,EAAE,KAAK;SAChB,CAAC;QACF,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC;YACrB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,4CAA4C;YACzD,QAAQ,EAAE,KAAK;YACf,OAAO,EAAE,GAAG;SACb,CAAC;QACF,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC;YACpB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,wBAAwB;YACrC,QAAQ,EAAE,KAAK;YACf,OAAO,EAAE,KAAK;SACf,CAAC;KACH,CAAA;IAED,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAChD,MAAM,cAAc,GAAG,IAAI,mBAAmB,EAAE,CAAC;QAEjD,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAErD,IAAI,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;YAEvC,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;YAEzE,MAAM,KAAK,GAAG,cAAc,CAAC,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC;YAC/E,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,CAAC;YAC7D,CAAC;QAEH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,sCAAsC,EAAE,KAAc,CAAC,CAAC;YAC3E,IAAI,CAAC,KAAK,CAAC,KAAc,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { AuthenticatedCommand } from '../../common/authenticated-command.js';
2
+ export declare class Field extends AuthenticatedCommand<typeof Field> {
3
+ static args: {};
4
+ static description: string;
5
+ static examples: {
6
+ description: string;
7
+ command: string;
8
+ }[];
9
+ static flags: {
10
+ table: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
11
+ field: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
12
+ json: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
13
+ };
14
+ run(): Promise<void>;
15
+ }
16
+ //# sourceMappingURL=field.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field.d.ts","sourceRoot":"","sources":["../../../src/commands/schema/field.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAA;AAG5E,qBAAa,KAAM,SAAQ,oBAAoB,CAAC,OAAO,KAAK,CAAC;IAE3D,MAAM,CAAC,IAAI,KACV;IACH,MAAM,CAAC,WAAW,SAEgF;IAClG,MAAM,CAAC,QAAQ;;;QASZ;IACH,MAAM,CAAC,KAAK;;;;MAiBT;IAEK,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA0B3B"}
@@ -0,0 +1,62 @@
1
+ /* eslint-disable @typescript-eslint/no-unused-vars */
2
+ /* eslint-disable perfectionist/sort-objects */
3
+ import { Flags } from '@oclif/core';
4
+ import { SchemaDiscovery } from '@sonisoft/now-sdk-ext-core';
5
+ import { AuthenticatedCommand } from '../../common/authenticated-command.js';
6
+ import { SchemaDisplayService } from '../../services/schema-display.service.js';
7
+ export class Field extends AuthenticatedCommand {
8
+ static args = {};
9
+ static description = 'Get detailed information about a specific field on a ServiceNow table.\n\n' +
10
+ 'This command retrieves comprehensive details about a single field, including its type, constraints, ' +
11
+ 'choices, and other metadata. Useful for understanding field definitions during development.';
12
+ static examples = [
13
+ {
14
+ description: 'Explain the state field on incident table',
15
+ command: '<%= config.bin %> <%= command.id %> --table incident --field state --auth dev',
16
+ },
17
+ {
18
+ description: 'Explain the priority field on incident table with JSON output',
19
+ command: '<%= config.bin %> <%= command.id %> --table incident --field priority --json --auth dev',
20
+ },
21
+ ];
22
+ static flags = {
23
+ 'table': Flags.string({
24
+ char: 't',
25
+ description: 'ServiceNow table name',
26
+ required: true,
27
+ }),
28
+ 'field': Flags.string({
29
+ char: 'f',
30
+ description: 'Field name to explain',
31
+ required: true,
32
+ }),
33
+ 'json': Flags.boolean({
34
+ char: 'j',
35
+ description: 'Output results as JSON',
36
+ required: false,
37
+ default: false,
38
+ }),
39
+ };
40
+ async run() {
41
+ const { args, flags } = await this.parse(Field);
42
+ const displayService = new SchemaDisplayService();
43
+ try {
44
+ const schemaDiscovery = new SchemaDiscovery(this.instance);
45
+ this.log(`Explaining field "${flags.field}" on table "${flags.table}"`);
46
+ const fieldInfo = await schemaDiscovery.explainField(flags.table, flags.field);
47
+ if (!fieldInfo) {
48
+ this.error(`Failed to explain field "${flags.field}" on table "${flags.table}"`);
49
+ return;
50
+ }
51
+ const lines = displayService.formatFieldExplanation(fieldInfo, (flags.json ?? false) ?? false);
52
+ for (const line of lines) {
53
+ (flags.json ?? false) ? console.log(line) : this.log(line);
54
+ }
55
+ }
56
+ catch (error) {
57
+ this._logger.error("Error occurred when explaining field.", error);
58
+ this.error(error);
59
+ }
60
+ }
61
+ }
62
+ //# sourceMappingURL=field.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field.js","sourceRoot":"","sources":["../../../src/commands/schema/field.ts"],"names":[],"mappings":"AAAA,sDAAsD;AACtD,+CAA+C;AAE/C,OAAO,EAAgB,KAAK,EAAC,MAAM,aAAa,CAAA;AAChD,OAAO,EAAyB,eAAe,EAAsB,MAAM,4BAA4B,CAAC;AAExG,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAA;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,0CAA0C,CAAA;AAE/E,MAAM,OAAO,KAAM,SAAQ,oBAAkC;IAE3D,MAAM,CAAC,IAAI,GAAG,EACb,CAAA;IACH,MAAM,CAAC,WAAW,GAAG,4EAA4E;QAC7F,sGAAsG;QACtG,6FAA6F,CAAC;IAClG,MAAM,CAAC,QAAQ,GAAG;QACd;YACE,WAAW,EAAE,2CAA2C;YACxD,OAAO,EAAE,+EAA+E;SACzF;QACD;YACE,WAAW,EAAE,+DAA+D;YAC5E,OAAO,EAAE,yFAAyF;SACnG;KACF,CAAA;IACH,MAAM,CAAC,KAAK,GAAG;QACX,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC;YACpB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,uBAAuB;YACpC,QAAQ,EAAE,IAAI;SACf,CAAC;QACF,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC;YACpB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,uBAAuB;YACpC,QAAQ,EAAE,IAAI;SACf,CAAC;QACF,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC;YACpB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,wBAAwB;YACrC,QAAQ,EAAE,KAAK;YACf,OAAO,EAAE,KAAK;SACf,CAAC;KACH,CAAA;IAED,KAAK,CAAC,GAAG;QACP,MAAM,EAAC,IAAI,EAAE,KAAK,EAAC,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC9C,MAAM,cAAc,GAAG,IAAI,oBAAoB,EAAE,CAAC;QAElD,IAAI,CAAC;YACH,MAAM,eAAe,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAE3D,IAAI,CAAC,GAAG,CAAC,qBAAqB,KAAK,CAAC,KAAK,eAAe,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;YAExE,MAAM,SAAS,GAAG,MAAM,eAAe,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;YAE/E,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,IAAI,CAAC,KAAK,CAAC,4BAA4B,KAAK,CAAC,KAAK,eAAe,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;gBACjF,OAAO;YACT,CAAC;YAED,MAAM,KAAK,GAAG,cAAc,CAAC,sBAAsB,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC;YAC/F,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,CAAC;YAC7D,CAAC;QAEH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,uCAAuC,EAAE,KAAc,CAAC,CAAC;YAC5E,IAAI,CAAC,KAAK,CAAC,KAAc,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { AuthenticatedCommand } from '../../common/authenticated-command.js';
2
+ export declare class Schema extends AuthenticatedCommand<typeof Schema> {
3
+ static args: {};
4
+ static description: string;
5
+ static examples: {
6
+ description: string;
7
+ command: string;
8
+ }[];
9
+ static flags: {
10
+ table: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
11
+ 'include-choices': import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
12
+ 'include-relationships': import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
13
+ 'include-ui-policies': import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
14
+ 'include-business-rules': import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
15
+ json: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
16
+ };
17
+ run(): Promise<void>;
18
+ }
19
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/schema/index.ts"],"names":[],"mappings":"AAMA,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,SAS+B;IACjD,MAAM,CAAC,QAAQ;;;QASZ;IACH,MAAM,CAAC,KAAK;;;;;;;MAgCT;IAEK,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAiC3B"}
@@ -0,0 +1,90 @@
1
+ /* eslint-disable @typescript-eslint/no-unused-vars */
2
+ /* eslint-disable perfectionist/sort-objects */
3
+ import { Flags } from '@oclif/core';
4
+ import { SchemaDiscovery } from '@sonisoft/now-sdk-ext-core';
5
+ import { AuthenticatedCommand } from '../../common/authenticated-command.js';
6
+ import { SchemaDisplayService } from '../../services/schema-display.service.js';
7
+ export class Schema extends AuthenticatedCommand {
8
+ static args = {};
9
+ static description = 'Discover and inspect a ServiceNow table schema including fields, types, and relationships.\n\n' +
10
+ 'This command retrieves the full schema definition for a ServiceNow table, including all fields, ' +
11
+ 'their types, constraints, and optionally choices, relationships, UI policies, and business rules.\n\n' +
12
+ 'Features:\n' +
13
+ ' \u2022 List all fields with types, lengths, and constraints\n' +
14
+ ' \u2022 Optionally include field choices\n' +
15
+ ' \u2022 Optionally include table relationships\n' +
16
+ ' \u2022 Optionally include UI policies\n' +
17
+ ' \u2022 Optionally include business rules\n' +
18
+ ' \u2022 JSON output for CI/CD integration';
19
+ static examples = [
20
+ {
21
+ description: 'Discover incident table schema',
22
+ command: '<%= config.bin %> <%= command.id %> --table incident --auth dev',
23
+ },
24
+ {
25
+ description: 'Include choices and relationships',
26
+ command: '<%= config.bin %> <%= command.id %> --table incident --include-choices --include-relationships --auth dev',
27
+ },
28
+ ];
29
+ static flags = {
30
+ 'table': Flags.string({
31
+ char: 't',
32
+ description: 'ServiceNow table name to discover schema for',
33
+ required: true,
34
+ }),
35
+ 'include-choices': Flags.boolean({
36
+ description: 'Include field choices in the schema output',
37
+ required: false,
38
+ default: false,
39
+ }),
40
+ 'include-relationships': Flags.boolean({
41
+ description: 'Include table relationships in the schema output',
42
+ required: false,
43
+ default: false,
44
+ }),
45
+ 'include-ui-policies': Flags.boolean({
46
+ description: 'Include UI policies in the schema output',
47
+ required: false,
48
+ default: false,
49
+ }),
50
+ 'include-business-rules': Flags.boolean({
51
+ description: 'Include business rules in the schema output',
52
+ required: false,
53
+ default: false,
54
+ }),
55
+ 'json': Flags.boolean({
56
+ char: 'j',
57
+ description: 'Output results as JSON',
58
+ required: false,
59
+ default: false,
60
+ }),
61
+ };
62
+ async run() {
63
+ const { args, flags } = await this.parse(Schema);
64
+ const displayService = new SchemaDisplayService();
65
+ try {
66
+ const schemaDiscovery = new SchemaDiscovery(this.instance);
67
+ this.log(`Discovering schema for table: ${flags.table}`);
68
+ const options = {
69
+ includeChoices: flags['include-choices'],
70
+ includeRelationships: flags['include-relationships'],
71
+ includeUiPolicies: flags['include-ui-policies'],
72
+ includeBusinessRules: flags['include-business-rules'],
73
+ };
74
+ const schema = await schemaDiscovery.discoverTableSchema(flags.table, options);
75
+ if (!schema) {
76
+ this.error(`Failed to discover schema for table: ${flags.table}`);
77
+ return;
78
+ }
79
+ const lines = displayService.formatTableSchema(schema, (flags.json ?? false) ?? false);
80
+ for (const line of lines) {
81
+ (flags.json ?? false) ? console.log(line) : this.log(line);
82
+ }
83
+ }
84
+ catch (error) {
85
+ this._logger.error("Error occurred when discovering table schema.", error);
86
+ this.error(error);
87
+ }
88
+ }
89
+ }
90
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/schema/index.ts"],"names":[],"mappings":"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"}