@fnndsc/brasa 0.56.2 → 0.56.4

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 (333) hide show
  1. package/dist/buildinfo.json +1 -1
  2. package/dist/builtins/berth/berth.d.ts +11 -0
  3. package/dist/builtins/berth/berth.js +53 -22
  4. package/dist/builtins/berth/berth.js.map +1 -1
  5. package/dist/builtins/berth/berthCube.d.ts +17 -2
  6. package/dist/builtins/berth/berthCube.js +22 -10
  7. package/dist/builtins/berth/berthCube.js.map +1 -1
  8. package/dist/builtins/debug.d.ts +24 -3
  9. package/dist/builtins/debug.js +66 -13
  10. package/dist/builtins/debug.js.map +1 -1
  11. package/dist/builtins/fs/acl.args.d.ts +5 -38
  12. package/dist/builtins/fs/acl.args.js +6 -72
  13. package/dist/builtins/fs/acl.args.js.map +1 -1
  14. package/dist/builtins/fs/acl.d.ts +100 -10
  15. package/dist/builtins/fs/acl.js +222 -68
  16. package/dist/builtins/fs/acl.js.map +1 -1
  17. package/dist/builtins/fs/cat.args.d.ts +14 -15
  18. package/dist/builtins/fs/cat.args.js +13 -40
  19. package/dist/builtins/fs/cat.args.js.map +1 -1
  20. package/dist/builtins/fs/cat.d.ts +40 -3
  21. package/dist/builtins/fs/cat.js +89 -10
  22. package/dist/builtins/fs/cat.js.map +1 -1
  23. package/dist/builtins/fs/cd.d.ts +24 -6
  24. package/dist/builtins/fs/cd.js +71 -18
  25. package/dist/builtins/fs/cd.js.map +1 -1
  26. package/dist/builtins/fs/configWrite.d.ts +24 -8
  27. package/dist/builtins/fs/configWrite.js +77 -36
  28. package/dist/builtins/fs/configWrite.js.map +1 -1
  29. package/dist/builtins/fs/cp.d.ts +39 -4
  30. package/dist/builtins/fs/cp.js +120 -55
  31. package/dist/builtins/fs/cp.js.map +1 -1
  32. package/dist/builtins/fs/download.d.ts +12 -1
  33. package/dist/builtins/fs/download.js +24 -4
  34. package/dist/builtins/fs/download.js.map +1 -1
  35. package/dist/builtins/fs/du.d.ts +59 -33
  36. package/dist/builtins/fs/du.js +111 -79
  37. package/dist/builtins/fs/du.js.map +1 -1
  38. package/dist/builtins/fs/edit.d.ts +19 -4
  39. package/dist/builtins/fs/edit.js +77 -16
  40. package/dist/builtins/fs/edit.js.map +1 -1
  41. package/dist/builtins/fs/find.d.ts +25 -0
  42. package/dist/builtins/fs/find.js +76 -5
  43. package/dist/builtins/fs/find.js.map +1 -1
  44. package/dist/builtins/fs/mkdir.d.ts +28 -18
  45. package/dist/builtins/fs/mkdir.js +95 -66
  46. package/dist/builtins/fs/mkdir.js.map +1 -1
  47. package/dist/builtins/fs/mv.d.ts +34 -4
  48. package/dist/builtins/fs/mv.js +129 -64
  49. package/dist/builtins/fs/mv.js.map +1 -1
  50. package/dist/builtins/fs/pull.args.d.ts +56 -17
  51. package/dist/builtins/fs/pull.args.js +16 -66
  52. package/dist/builtins/fs/pull.args.js.map +1 -1
  53. package/dist/builtins/fs/pull.d.ts +62 -0
  54. package/dist/builtins/fs/pull.js +86 -22
  55. package/dist/builtins/fs/pull.js.map +1 -1
  56. package/dist/builtins/fs/pwd.d.ts +19 -5
  57. package/dist/builtins/fs/pwd.js +62 -8
  58. package/dist/builtins/fs/pwd.js.map +1 -1
  59. package/dist/builtins/fs/rm.d.ts +58 -21
  60. package/dist/builtins/fs/rm.js +99 -82
  61. package/dist/builtins/fs/rm.js.map +1 -1
  62. package/dist/builtins/fs/rmdir.d.ts +29 -11
  63. package/dist/builtins/fs/rmdir.js +87 -36
  64. package/dist/builtins/fs/rmdir.js.map +1 -1
  65. package/dist/builtins/fs/touch.d.ts +44 -9
  66. package/dist/builtins/fs/touch.js +91 -27
  67. package/dist/builtins/fs/touch.js.map +1 -1
  68. package/dist/builtins/fs/transferJobs.d.ts +64 -0
  69. package/dist/builtins/fs/transferJobs.js +98 -0
  70. package/dist/builtins/fs/transferJobs.js.map +1 -0
  71. package/dist/builtins/fs/tree.d.ts +36 -9
  72. package/dist/builtins/fs/tree.js +126 -36
  73. package/dist/builtins/fs/tree.js.map +1 -1
  74. package/dist/builtins/fs/upload.d.ts +35 -3
  75. package/dist/builtins/fs/upload.js +99 -14
  76. package/dist/builtins/fs/upload.js.map +1 -1
  77. package/dist/builtins/fs/xattr.args.d.ts +12 -33
  78. package/dist/builtins/fs/xattr.args.js +17 -95
  79. package/dist/builtins/fs/xattr.args.js.map +1 -1
  80. package/dist/builtins/fs/xattr.d.ts +98 -8
  81. package/dist/builtins/fs/xattr.js +163 -24
  82. package/dist/builtins/fs/xattr.js.map +1 -1
  83. package/dist/builtins/games/bytes.d.ts +201 -5
  84. package/dist/builtins/games/bytes.js +255 -54
  85. package/dist/builtins/games/bytes.js.map +1 -1
  86. package/dist/builtins/games/chimes.d.ts +180 -3
  87. package/dist/builtins/games/chimes.js +203 -26
  88. package/dist/builtins/games/chimes.js.map +1 -1
  89. package/dist/builtins/games/chrislab.d.ts +101 -3
  90. package/dist/builtins/games/chrislab.js +117 -17
  91. package/dist/builtins/games/chrislab.js.map +1 -1
  92. package/dist/builtins/games/cowsay.d.ts +93 -2
  93. package/dist/builtins/games/cowsay.js +90 -31
  94. package/dist/builtins/games/cowsay.js.map +1 -1
  95. package/dist/builtins/games/figlet.d.ts +70 -2
  96. package/dist/builtins/games/figlet.js +83 -6
  97. package/dist/builtins/games/figlet.js.map +1 -1
  98. package/dist/builtins/games/lab.d.ts +104 -5
  99. package/dist/builtins/games/lab.js +144 -6
  100. package/dist/builtins/games/lab.js.map +1 -1
  101. package/dist/builtins/games/lolcat.d.ts +61 -1
  102. package/dist/builtins/games/lolcat.js +59 -24
  103. package/dist/builtins/games/lolcat.js.map +1 -1
  104. package/dist/builtins/games/morse.d.ts +36 -1
  105. package/dist/builtins/games/morse.js +50 -2
  106. package/dist/builtins/games/morse.js.map +1 -1
  107. package/dist/builtins/games/numbers.d.ts +241 -5
  108. package/dist/builtins/games/numbers.js +298 -23
  109. package/dist/builtins/games/numbers.js.map +1 -1
  110. package/dist/builtins/games/play.d.ts +96 -6
  111. package/dist/builtins/games/play.js +137 -6
  112. package/dist/builtins/games/play.js.map +1 -1
  113. package/dist/builtins/games/qr.d.ts +40 -1
  114. package/dist/builtins/games/qr.js +51 -2
  115. package/dist/builtins/games/qr.js.map +1 -1
  116. package/dist/builtins/games/show.d.ts +131 -6
  117. package/dist/builtins/games/show.js +208 -20
  118. package/dist/builtins/games/show.js.map +1 -1
  119. package/dist/builtins/games/sky.d.ts +178 -4
  120. package/dist/builtins/games/sky.js +228 -12
  121. package/dist/builtins/games/sky.js.map +1 -1
  122. package/dist/builtins/games/text.d.ts +258 -7
  123. package/dist/builtins/games/text.js +310 -29
  124. package/dist/builtins/games/text.js.map +1 -1
  125. package/dist/builtins/games/trek.d.ts +67 -3
  126. package/dist/builtins/games/trek.js +63 -10
  127. package/dist/builtins/games/trek.js.map +1 -1
  128. package/dist/builtins/games/wtf.d.ts +58 -1
  129. package/dist/builtins/games/wtf.js +67 -6
  130. package/dist/builtins/games/wtf.js.map +1 -1
  131. package/dist/builtins/help.d.ts +38 -2
  132. package/dist/builtins/help.js +76 -769
  133. package/dist/builtins/help.js.map +1 -1
  134. package/dist/builtins/helpSections.js +4 -1
  135. package/dist/builtins/helpSections.js.map +1 -1
  136. package/dist/builtins/net/connect.d.ts +36 -3
  137. package/dist/builtins/net/connect.js +84 -26
  138. package/dist/builtins/net/connect.js.map +1 -1
  139. package/dist/builtins/net/cubepath.d.ts +49 -5
  140. package/dist/builtins/net/cubepath.js +69 -27
  141. package/dist/builtins/net/cubepath.js.map +1 -1
  142. package/dist/builtins/net/logout.d.ts +13 -4
  143. package/dist/builtins/net/logout.js +49 -3
  144. package/dist/builtins/net/logout.js.map +1 -1
  145. package/dist/builtins/net/netstat.d.ts +29 -4
  146. package/dist/builtins/net/netstat.js +64 -23
  147. package/dist/builtins/net/netstat.js.map +1 -1
  148. package/dist/builtins/net/pacs.d.ts +169 -15
  149. package/dist/builtins/net/pacs.js +92 -33
  150. package/dist/builtins/net/pacs.js.map +1 -1
  151. package/dist/builtins/net/query.args.d.ts +95 -0
  152. package/dist/builtins/net/query.args.js +26 -0
  153. package/dist/builtins/net/query.args.js.map +1 -0
  154. package/dist/builtins/net/query.d.ts +98 -5
  155. package/dist/builtins/net/query.js +89 -83
  156. package/dist/builtins/net/query.js.map +1 -1
  157. package/dist/builtins/net/status.d.ts +5 -3
  158. package/dist/builtins/net/status.js +5 -12
  159. package/dist/builtins/net/status.js.map +1 -1
  160. package/dist/builtins/parametersofplugin.d.ts +82 -3
  161. package/dist/builtins/parametersofplugin.js +79 -23
  162. package/dist/builtins/parametersofplugin.js.map +1 -1
  163. package/dist/builtins/proc.d.ts +210 -3
  164. package/dist/builtins/proc.js +210 -119
  165. package/dist/builtins/proc.js.map +1 -1
  166. package/dist/builtins/res/compute.d.ts +67 -3
  167. package/dist/builtins/res/compute.js +121 -35
  168. package/dist/builtins/res/compute.js.map +1 -1
  169. package/dist/builtins/res/dicom.d.ts +52 -3
  170. package/dist/builtins/res/dicom.js +82 -34
  171. package/dist/builtins/res/dicom.js.map +1 -1
  172. package/dist/builtins/res/expect.d.ts +52 -3
  173. package/dist/builtins/res/expect.js +92 -29
  174. package/dist/builtins/res/expect.js.map +1 -1
  175. package/dist/builtins/res/feed.d.ts +475 -3
  176. package/dist/builtins/res/feed.js +253 -158
  177. package/dist/builtins/res/feed.js.map +1 -1
  178. package/dist/builtins/res/files.d.ts +517 -3
  179. package/dist/builtins/res/files.js +124 -44
  180. package/dist/builtins/res/files.js.map +1 -1
  181. package/dist/builtins/res/gather.d.ts +113 -3
  182. package/dist/builtins/res/gather.js +153 -44
  183. package/dist/builtins/res/gather.js.map +1 -1
  184. package/dist/builtins/res/gather.process.d.ts +27 -19
  185. package/dist/builtins/res/gather.process.js +29 -59
  186. package/dist/builtins/res/gather.process.js.map +1 -1
  187. package/dist/builtins/res/group.d.ts +284 -3
  188. package/dist/builtins/res/group.js +147 -76
  189. package/dist/builtins/res/group.js.map +1 -1
  190. package/dist/builtins/res/image.d.ts +30 -2
  191. package/dist/builtins/res/image.js +62 -10
  192. package/dist/builtins/res/image.js.map +1 -1
  193. package/dist/builtins/res/play.d.ts +71 -9
  194. package/dist/builtins/res/play.js +124 -82
  195. package/dist/builtins/res/play.js.map +1 -1
  196. package/dist/builtins/res/plugininstance.d.ts +307 -2
  197. package/dist/builtins/res/plugininstance.js +122 -50
  198. package/dist/builtins/res/plugininstance.js.map +1 -1
  199. package/dist/builtins/res/pluginmeta.d.ts +244 -2
  200. package/dist/builtins/res/pluginmeta.js +98 -40
  201. package/dist/builtins/res/pluginmeta.js.map +1 -1
  202. package/dist/builtins/res/record.d.ts +37 -3
  203. package/dist/builtins/res/record.js +127 -57
  204. package/dist/builtins/res/record.js.map +1 -1
  205. package/dist/builtins/res/resourceList.d.ts +136 -0
  206. package/dist/builtins/res/resourceList.js +51 -0
  207. package/dist/builtins/res/resourceList.js.map +1 -0
  208. package/dist/builtins/res/tag.d.ts +244 -3
  209. package/dist/builtins/res/tag.js +97 -41
  210. package/dist/builtins/res/tag.js.map +1 -1
  211. package/dist/builtins/res/user.d.ts +122 -3
  212. package/dist/builtins/res/user.js +83 -21
  213. package/dist/builtins/res/user.js.map +1 -1
  214. package/dist/builtins/res/workflow.d.ts +244 -2
  215. package/dist/builtins/res/workflow.js +97 -40
  216. package/dist/builtins/res/workflow.js.map +1 -1
  217. package/dist/builtins/store.d.ts +85 -3
  218. package/dist/builtins/store.js +135 -68
  219. package/dist/builtins/store.js.map +1 -1
  220. package/dist/builtins/sys/apropos.d.ts +80 -5
  221. package/dist/builtins/sys/apropos.js +121 -15
  222. package/dist/builtins/sys/apropos.js.map +1 -1
  223. package/dist/builtins/sys/cal.d.ts +44 -5
  224. package/dist/builtins/sys/cal.js +57 -10
  225. package/dist/builtins/sys/cal.js.map +1 -1
  226. package/dist/builtins/sys/command.d.ts +20 -0
  227. package/dist/builtins/sys/command.js +31 -0
  228. package/dist/builtins/sys/command.js.map +1 -1
  229. package/dist/builtins/sys/context.d.ts +13 -3
  230. package/dist/builtins/sys/context.js +51 -4
  231. package/dist/builtins/sys/context.js.map +1 -1
  232. package/dist/builtins/sys/date.d.ts +56 -5
  233. package/dist/builtins/sys/date.js +63 -9
  234. package/dist/builtins/sys/date.js.map +1 -1
  235. package/dist/builtins/sys/echo.d.ts +63 -2
  236. package/dist/builtins/sys/echo.js +87 -8
  237. package/dist/builtins/sys/echo.js.map +1 -1
  238. package/dist/builtins/sys/fortune.d.ts +27 -2
  239. package/dist/builtins/sys/fortune.js +44 -2
  240. package/dist/builtins/sys/fortune.js.map +1 -1
  241. package/dist/builtins/sys/grep.d.ts +245 -11
  242. package/dist/builtins/sys/grep.js +418 -131
  243. package/dist/builtins/sys/grep.js.map +1 -1
  244. package/dist/builtins/sys/joblets.d.ts +66 -7
  245. package/dist/builtins/sys/joblets.js +101 -14
  246. package/dist/builtins/sys/joblets.js.map +1 -1
  247. package/dist/builtins/sys/motd.d.ts +37 -3
  248. package/dist/builtins/sys/motd.js +49 -8
  249. package/dist/builtins/sys/motd.js.map +1 -1
  250. package/dist/builtins/sys/notes.d.ts +75 -3
  251. package/dist/builtins/sys/notes.js +90 -29
  252. package/dist/builtins/sys/notes.js.map +1 -1
  253. package/dist/builtins/sys/physicalmode.d.ts +24 -3
  254. package/dist/builtins/sys/physicalmode.js +68 -14
  255. package/dist/builtins/sys/physicalmode.js.map +1 -1
  256. package/dist/builtins/sys/tasks.d.ts +74 -5
  257. package/dist/builtins/sys/tasks.js +102 -14
  258. package/dist/builtins/sys/tasks.js.map +1 -1
  259. package/dist/builtins/sys/textFilters.d.ts +673 -41
  260. package/dist/builtins/sys/textFilters.js +718 -263
  261. package/dist/builtins/sys/textFilters.js.map +1 -1
  262. package/dist/builtins/sys/timing.d.ts +24 -3
  263. package/dist/builtins/sys/timing.js +67 -14
  264. package/dist/builtins/sys/timing.js.map +1 -1
  265. package/dist/builtins/sys/variables.d.ts +70 -4
  266. package/dist/builtins/sys/variables.js +103 -31
  267. package/dist/builtins/sys/variables.js.map +1 -1
  268. package/dist/builtins/sys/version.d.ts +27 -2
  269. package/dist/builtins/sys/version.js +48 -3
  270. package/dist/builtins/sys/version.js.map +1 -1
  271. package/dist/builtins/sys/weather.d.ts +92 -15
  272. package/dist/builtins/sys/weather.js +71 -45
  273. package/dist/builtins/sys/weather.js.map +1 -1
  274. package/dist/builtins/sys/whoami.d.ts +38 -18
  275. package/dist/builtins/sys/whoami.js +112 -8
  276. package/dist/builtins/sys/whoami.js.map +1 -1
  277. package/dist/builtins/utils.d.ts +0 -37
  278. package/dist/builtins/utils.js +0 -86
  279. package/dist/builtins/utils.js.map +1 -1
  280. package/dist/chris/chrisCommands.js +58 -152
  281. package/dist/chris/chrisCommands.js.map +1 -1
  282. package/dist/chris/commandFallback.d.ts +12 -0
  283. package/dist/chris/commandFallback.js +47 -0
  284. package/dist/chris/commandFallback.js.map +1 -1
  285. package/dist/chris/filesystem.js +7 -5
  286. package/dist/chris/filesystem.js.map +1 -1
  287. package/dist/chris/help.js +0 -1018
  288. package/dist/chris/help.js.map +1 -1
  289. package/dist/chris/kinds.d.ts +21 -0
  290. package/dist/chris/kinds.js +114 -2
  291. package/dist/chris/kinds.js.map +1 -1
  292. package/dist/chris/mounts.d.ts +4 -4
  293. package/dist/chris/mounts.js +9 -16
  294. package/dist/chris/mounts.js.map +1 -1
  295. package/dist/chris/navigation.d.ts +2 -3
  296. package/dist/chris/navigation.js +6 -20
  297. package/dist/chris/navigation.js.map +1 -1
  298. package/dist/chris/pacsResources.d.ts +259 -0
  299. package/dist/chris/pacsResources.js +168 -0
  300. package/dist/chris/pacsResources.js.map +1 -0
  301. package/dist/core/commandDeclaration.d.ts +97 -7
  302. package/dist/core/commandDeclaration.js +21 -0
  303. package/dist/core/commandDeclaration.js.map +1 -1
  304. package/dist/core/commandParse.js +65 -17
  305. package/dist/core/commandParse.js.map +1 -1
  306. package/dist/core/commandRegistry.d.ts +4 -3
  307. package/dist/core/commandRegistry.js +36 -8
  308. package/dist/core/commandRegistry.js.map +1 -1
  309. package/dist/core/commandSchema.js +5 -2
  310. package/dist/core/commandSchema.js.map +1 -1
  311. package/dist/core/commandUsage.d.ts +15 -0
  312. package/dist/core/commandUsage.js +59 -7
  313. package/dist/core/commandUsage.js.map +1 -1
  314. package/dist/core/coreCommands.js +63 -212
  315. package/dist/core/coreCommands.js.map +1 -1
  316. package/dist/core/paths.d.ts +29 -1
  317. package/dist/core/paths.js +15 -2
  318. package/dist/core/paths.js.map +1 -1
  319. package/dist/core/preprocess.d.ts +3 -4
  320. package/dist/core/preprocess.js +4 -5
  321. package/dist/core/preprocess.js.map +1 -1
  322. package/dist/lib/completer/declared.js +7 -4
  323. package/dist/lib/completer/declared.js.map +1 -1
  324. package/dist/lib/completer/index.js +2 -7
  325. package/dist/lib/completer/index.js.map +1 -1
  326. package/dist/lib/parser.d.ts +0 -8
  327. package/dist/lib/parser.js +0 -11
  328. package/dist/lib/parser.js.map +1 -1
  329. package/dist/lib/vfs/vfs.d.ts +2 -1
  330. package/dist/lib/vfs/vfs.js +5 -4
  331. package/dist/lib/vfs/vfs.js.map +1 -1
  332. package/dist/notes.json +1 -1
  333. package/package.json +5 -5
@@ -0,0 +1,168 @@
1
+ import { command_declare } from '../core/commandDeclaration.js';
2
+ import { chiliCommand_run } from './chiliDelegate.js';
3
+ /** A resource listing's options, as chili's `list` takes them. */
4
+ const LIST_OPTIONS = {
5
+ page: { short: 'p', long: 'page', summary: 'Page size (default 20)', value: { name: 'size', kind: 'int', min: 1 } },
6
+ fields: { short: 'f', long: 'fields', summary: 'Comma-separated fields to display', value: { name: 'fields', kind: 'word' } },
7
+ search: { short: 's', long: 'search', summary: 'Search by comma-separated key:value pairs', value: { name: 'terms', kind: 'word' } },
8
+ sort: { long: 'sort', summary: 'Sort by field (name, size, date, owner, …)', value: { name: 'field', kind: 'word' } },
9
+ reverse: { short: 'r', long: 'reverse', summary: 'Reverse the sort order' },
10
+ table: { long: 'table', summary: 'Tabular output, with headers' },
11
+ csv: { long: 'csv', summary: 'CSV output (over --table)' },
12
+ };
13
+ /** A PACS server, as `--pacsserver` names one. */
14
+ const PACSSERVER_OPTION = { long: 'pacsserver', summary: 'The PACS server, by id or identifier (default: the context\'s)', value: { name: 'id', kind: 'word' } };
15
+ /**
16
+ * A parsed line written back as chili's words: the subcommand, each option
17
+ * given (`--long`, with its value), then the operands in order.
18
+ *
19
+ * @param grammar - The command's grammar.
20
+ * @param line - The line, parsed.
21
+ * @returns chili's words after the command.
22
+ *
23
+ * @example
24
+ * ```ts
25
+ * chiliWords_write(PACSQUERIES_GRAMMAR, { subcommand: 'decode', operands: { queryId: 7 }, options: { raw: true } }); // ['decode', '--raw', '7']
26
+ * ```
27
+ */
28
+ export function chiliWords_write(grammar, line) {
29
+ const scope = line.subcommand === null ? undefined : grammar.subcommands?.[line.subcommand];
30
+ const words = line.subcommand === null ? [] : [line.subcommand];
31
+ const options = Object.entries({ ...(scope?.options ?? {}), ...(grammar.options ?? {}) });
32
+ for (const [key, option] of options) {
33
+ const value = line.options[key];
34
+ const name = option.long !== undefined ? `--${option.long}` : `-${option.short ?? ''}`;
35
+ if (value === true)
36
+ words.push(name);
37
+ else if (typeof value === 'string' || typeof value === 'number')
38
+ words.push(name, String(value));
39
+ }
40
+ for (const operand of scope?.operands ?? grammar.operands ?? []) {
41
+ const value = line.operands[operand.name];
42
+ if (Array.isArray(value))
43
+ words.push(...value.map(String));
44
+ else if (value !== undefined)
45
+ words.push(String(value));
46
+ }
47
+ return words;
48
+ }
49
+ /**
50
+ * Runs a declared line through chili.
51
+ *
52
+ * @param name - The chili command.
53
+ * @param grammar - Its grammar.
54
+ * @param line - The line, parsed.
55
+ * @returns chili's captured output.
56
+ */
57
+ function chiliLine_run(name, grammar, line) {
58
+ return chiliCommand_run(name, ['-s', ...chiliWords_write(grammar, line)]);
59
+ }
60
+ /** What a `pacsservers` line may hold. */
61
+ const PACSSERVERS_GRAMMAR = {
62
+ subcommands: {
63
+ list: { summary: 'List the PACS servers CUBE registers', options: LIST_OPTIONS },
64
+ fieldslist: { summary: 'List the fields a PACS server has' },
65
+ },
66
+ };
67
+ /**
68
+ * `pacsservers <list [options] | fieldslist>`: the declaration.
69
+ *
70
+ * @example
71
+ * ```ts
72
+ * commands_register({ declarations: [pacsserversCommand] }, 'backend');
73
+ * ```
74
+ */
75
+ export const pacsserversCommand = command_declare({
76
+ name: 'pacsservers',
77
+ grammar: PACSSERVERS_GRAMMAR,
78
+ help: {
79
+ summary: 'List or inspect available PACS servers (context-aware)',
80
+ description: 'The PACS servers CUBE registers, as a resource listing: list them, or list the fields a server has.',
81
+ category: 'PACS',
82
+ examples: [
83
+ 'pacsservers list # List PACS servers',
84
+ 'pacsservers list --table # Table view',
85
+ 'pacsservers fieldslist # Show fields',
86
+ ],
87
+ },
88
+ // Listing servers changes nothing of the session.
89
+ holds: [],
90
+ handler: (line) => chiliLine_run('pacsservers', PACSSERVERS_GRAMMAR, line),
91
+ });
92
+ /** What a `pacsqueries` line may hold. */
93
+ const PACSQUERIES_GRAMMAR = {
94
+ subcommands: {
95
+ list: { summary: 'List the queries asked of the PACS server', options: { ...LIST_OPTIONS, pacsserver: PACSSERVER_OPTION } },
96
+ fieldslist: { summary: 'List the fields a PACS query has' },
97
+ create: {
98
+ summary: 'Create a PACS query against the current or given server',
99
+ operands: [{ name: 'query', kind: 'word', summary: 'The question: JSON, or comma-separated Key:Value pairs' }],
100
+ options: {
101
+ title: { long: 'title', summary: 'Title for the query', value: { name: 'title', kind: 'word' } },
102
+ description: { long: 'description', summary: 'A description for the query', value: { name: 'description', kind: 'word' } },
103
+ pacsserver: PACSSERVER_OPTION,
104
+ },
105
+ },
106
+ decode: {
107
+ summary: 'Decode the result payload of a PACS query',
108
+ operands: [{ name: 'queryId', kind: 'int', min: 1, summary: 'The query\'s id' }],
109
+ options: { raw: { long: 'raw', summary: 'Print the raw decoded JSON' } },
110
+ },
111
+ },
112
+ };
113
+ /**
114
+ * `pacsqueries <list | fieldslist | create <query> | decode <queryId>>`: the declaration.
115
+ *
116
+ * @example
117
+ * ```ts
118
+ * commands_register({ declarations: [pacsqueriesCommand] }, 'backend');
119
+ * ```
120
+ */
121
+ export const pacsqueriesCommand = command_declare({
122
+ name: 'pacsqueries',
123
+ grammar: PACSQUERIES_GRAMMAR,
124
+ help: {
125
+ summary: 'Create or list PACS queries (uses current pacsserver context unless overridden)',
126
+ description: 'The queries asked of a PACS, as a resource listing: list them (for the context\'s server unless --pacsserver names one), list their fields, create one, or decode one\'s answer.',
127
+ category: 'PACS',
128
+ examples: [
129
+ 'pacsqueries list # List for current pacsserver',
130
+ 'pacsqueries list --pacsserver PACSDCM # Override server',
131
+ 'pacsqueries create "PatientID:1234" --title "PID 1234"',
132
+ 'pacsqueries decode <id> # Decode a query result',
133
+ ],
134
+ },
135
+ handler: (line) => chiliLine_run('pacsqueries', PACSQUERIES_GRAMMAR, line),
136
+ });
137
+ /** What a `pacsretrieve` line may hold. */
138
+ const PACSRETRIEVE_GRAMMAR = {
139
+ subcommands: {
140
+ pull: { summary: 'Retrieve a query\'s DICOM data into ChRIS', operands: [{ name: 'queryId', kind: 'int', min: 1, summary: 'The query\'s id' }] },
141
+ report: { summary: 'Show the status of a query\'s retrieve', operands: [{ name: 'queryId', kind: 'int', min: 1, summary: 'The query\'s id' }] },
142
+ cancel: { summary: 'Cancel (delete) a retrieve', operands: [{ name: 'retrieveId', kind: 'int', min: 1, summary: 'The retrieve\'s id' }] },
143
+ },
144
+ };
145
+ /**
146
+ * `pacsretrieve <pull <queryId> | report <queryId> | cancel <retrieveId>>`: the declaration.
147
+ *
148
+ * @example
149
+ * ```ts
150
+ * commands_register({ declarations: [pacsretrieveCommand] }, 'backend');
151
+ * ```
152
+ */
153
+ export const pacsretrieveCommand = command_declare({
154
+ name: 'pacsretrieve',
155
+ grammar: PACSRETRIEVE_GRAMMAR,
156
+ help: {
157
+ summary: 'Pull or inspect DICOM retrieves for PACS queries',
158
+ description: 'A PACS query\'s retrieves: pull its DICOM data into ChRIS, report how far a retrieve has come, or cancel one.',
159
+ category: 'PACS',
160
+ examples: [
161
+ 'pacsretrieve pull <queryId> # Pull data for a query',
162
+ 'pacsretrieve report <queryId> # Show retrieve status',
163
+ 'pacsretrieve cancel <retrieveId> # Cancel a retrieve',
164
+ ],
165
+ },
166
+ handler: (line) => chiliLine_run('pacsretrieve', PACSRETRIEVE_GRAMMAR, line),
167
+ });
168
+ //# sourceMappingURL=pacsResources.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pacsResources.js","sourceRoot":"","sources":["../../src/chris/pacsResources.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAE,eAAe,EAA+G,MAAM,+BAA+B,CAAC;AAC7K,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,kEAAkE;AAClE,MAAM,YAAY,GAAG;IACnB,IAAI,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,wBAAwB,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE;IACnH,MAAM,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,mCAAmC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;IAC7H,MAAM,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,2CAA2C,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;IACpI,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,4CAA4C,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;IACrH,OAAO,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,wBAAwB,EAAE;IAC3E,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,8BAA8B,EAAE;IACjE,GAAG,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,2BAA2B,EAAE;CACzB,CAAC;AAEpC,kDAAkD;AAClD,MAAM,iBAAiB,GAAG,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,gEAAgE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAmC,CAAC;AAYlM;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAuB,EAAE,IAAe;IACvE,MAAM,KAAK,GAAkC,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC3H,MAAM,KAAK,GAAa,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC1E,MAAM,OAAO,GAAmC,MAAM,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,KAAK,EAAE,OAAO,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;IAC1H,KAAK,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACpC,MAAM,KAAK,GAAY,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACzC,MAAM,IAAI,GAAW,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC;QAC/F,IAAI,KAAK,KAAK,IAAI;YAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAChC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACnG,CAAC;IACD,KAAK,MAAM,OAAO,IAAI,KAAK,EAAE,QAAQ,IAAI,OAAO,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;QAChE,MAAM,KAAK,GAAY,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACnD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;aACtD,IAAI,KAAK,KAAK,SAAS;YAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC1D,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,aAAa,CAAC,IAAY,EAAE,OAAuB,EAAE,IAAe;IAC3E,OAAO,gBAAgB,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,GAAG,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;AAC5E,CAAC;AAED,0CAA0C;AAC1C,MAAM,mBAAmB,GAAG;IAC1B,WAAW,EAAE;QACX,IAAI,EAAE,EAAE,OAAO,EAAE,sCAAsC,EAAE,OAAO,EAAE,YAAY,EAAE;QAChF,UAAU,EAAE,EAAE,OAAO,EAAE,mCAAmC,EAAE;KAC7D;CACgC,CAAC;AAEpC;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,eAAe,CAAC;IAChD,IAAI,EAAE,aAAa;IACnB,OAAO,EAAE,mBAAmB;IAC5B,IAAI,EAAE;QACJ,OAAO,EAAE,wDAAwD;QACjE,WAAW,EAAE,qGAAqG;QAClH,QAAQ,EAAE,MAAM;QAChB,QAAQ,EAAE;YACR,8CAA8C;YAC9C,uCAAuC;YACvC,wCAAwC;SACzC;KACF;IACD,kDAAkD;IAClD,KAAK,EAAE,EAAE;IACT,OAAO,EAAE,CAAC,IAAkD,EAA4B,EAAE,CAAC,aAAa,CAAC,aAAa,EAAE,mBAAmB,EAAE,IAAI,CAAC;CACnJ,CAAC,CAAC;AAEH,0CAA0C;AAC1C,MAAM,mBAAmB,GAAG;IAC1B,WAAW,EAAE;QACX,IAAI,EAAE,EAAE,OAAO,EAAE,2CAA2C,EAAE,OAAO,EAAE,EAAE,GAAG,YAAY,EAAE,UAAU,EAAE,iBAAiB,EAAE,EAAE;QAC3H,UAAU,EAAE,EAAE,OAAO,EAAE,kCAAkC,EAAE;QAC3D,MAAM,EAAE;YACN,OAAO,EAAE,yDAAyD;YAClE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,wDAAwD,EAAE,CAAC;YAC9G,OAAO,EAAE;gBACP,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,qBAAqB,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;gBAChG,WAAW,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,6BAA6B,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;gBAC1H,UAAU,EAAE,iBAAiB;aAC9B;SACF;QACD,MAAM,EAAE;YACN,OAAO,EAAE,2CAA2C;YACpD,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC;YAChF,OAAO,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,4BAA4B,EAAE,EAAE;SACzE;KACF;CACgC,CAAC;AAEpC;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,eAAe,CAAC;IAChD,IAAI,EAAE,aAAa;IACnB,OAAO,EAAE,mBAAmB;IAC5B,IAAI,EAAE;QACJ,OAAO,EAAE,iFAAiF;QAC1F,WAAW,EAAE,kLAAkL;QAC/L,QAAQ,EAAE,MAAM;QAChB,QAAQ,EAAE;YACR,yEAAyE;YACzE,6DAA6D;YAC7D,wDAAwD;YACxD,mEAAmE;SACpE;KACF;IACD,OAAO,EAAE,CAAC,IAAkD,EAA4B,EAAE,CAAC,aAAa,CAAC,aAAa,EAAE,mBAAmB,EAAE,IAAI,CAAC;CACnJ,CAAC,CAAC;AAEH,2CAA2C;AAC3C,MAAM,oBAAoB,GAAG;IAC3B,WAAW,EAAE;QACX,IAAI,EAAE,EAAE,OAAO,EAAE,2CAA2C,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE;QAChJ,MAAM,EAAE,EAAE,OAAO,EAAE,wCAAwC,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE;QAC/I,MAAM,EAAE,EAAE,OAAO,EAAE,4BAA4B,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,oBAAoB,EAAE,CAAC,EAAE;KAC1I;CACgC,CAAC;AAEpC;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,eAAe,CAAC;IACjD,IAAI,EAAE,cAAc;IACpB,OAAO,EAAE,oBAAoB;IAC7B,IAAI,EAAE;QACJ,OAAO,EAAE,kDAAkD;QAC3D,WAAW,EAAE,+GAA+G;QAC5H,QAAQ,EAAE,MAAM;QAChB,QAAQ,EAAE;YACR,2DAA2D;YAC3D,0DAA0D;YAC1D,sDAAsD;SACvD;KACF;IACD,OAAO,EAAE,CAAC,IAAmD,EAA4B,EAAE,CAAC,aAAa,CAAC,cAAc,EAAE,oBAAoB,EAAE,IAAI,CAAC;CACtJ,CAAC,CAAC"}
@@ -17,6 +17,7 @@
17
17
  *
18
18
  * Key components:
19
19
  * - CommandGrammar: subcommands, operands and options, as a value.
20
+ * - BareGrammar: the line with no subcommand, and its own options.
20
21
  * - CommandDeclaration: the whole record for a parsed command.
21
22
  * - ExpressionDeclaration: the record for an expression-grammar command.
22
23
  * - CommandArguments: the typed object a handler receives.
@@ -82,11 +83,23 @@ export interface OperandGrammar extends ArgumentGrammar {
82
83
  readonly optional?: boolean;
83
84
  /** It takes every word left over: at most one operand of a grammar repeats. */
84
85
  readonly repeat?: boolean;
86
+ /**
87
+ * It stands only when this option (by its property) is not given: grep's
88
+ * pattern operand is gone once `-e` gives the pattern, and every word is a
89
+ * file. Such an operand is optional.
90
+ */
91
+ readonly unless?: string;
85
92
  }
86
93
  /** An option's value: an argument with the word usage shows for it (`<field>`). */
87
94
  export interface OptionValueGrammar extends ArgumentGrammar {
88
95
  /** The word usage shows: `--sort <field>`. */
89
96
  readonly name: string;
97
+ /**
98
+ * The value may be left out (GNU's `optional_argument`): it is given only
99
+ * in the same word, `--highlight=python` or `-hpython`, and the option
100
+ * alone (`--highlight`) reads as the empty value.
101
+ */
102
+ readonly optional?: boolean;
90
103
  }
91
104
  /**
92
105
  * One option: `-l`, `--long`, or both; a switch, or one that takes a value.
@@ -107,6 +120,17 @@ export interface OptionGrammar {
107
120
  readonly value?: OptionValueGrammar;
108
121
  /** A value option given more than once keeps every value; otherwise the last one counts. */
109
122
  readonly repeat?: boolean;
123
+ /**
124
+ * A value option given no value (last on the line, or before another
125
+ * option) is a question, not a refusal: the handler reads `null` and asks
126
+ * for the value (`query … --csv-to`).
127
+ */
128
+ readonly asks?: boolean;
129
+ /**
130
+ * A word of digits after a dash (`-5`) is this option with that value, as
131
+ * `head -5` is `head -n 5`. At most one option of a line says so.
132
+ */
133
+ readonly numeral?: boolean;
110
134
  }
111
135
  /** A grammar's options, by the property the handler reads them as. */
112
136
  export type OptionsGrammar = {
@@ -148,9 +172,23 @@ export interface CommandGrammar {
148
172
  readonly [word: string]: SubcommandGrammar;
149
173
  };
150
174
  /** What the command does with no subcommand; absent, a command with subcommands needs one. */
151
- readonly bare?: {
152
- readonly summary: string;
153
- };
175
+ readonly bare?: BareGrammar;
176
+ }
177
+ /**
178
+ * A command's line with no subcommand, when it has subcommands: what it does,
179
+ * and the options it takes of its own (`jobs --all`, as `jobs list --all`).
180
+ * The command's own options hold beside them.
181
+ *
182
+ * @example
183
+ * ```ts
184
+ * const bare: BareGrammar = { summary: 'List the first page', options: { all: { long: 'all', summary: 'Every page' } } };
185
+ * ```
186
+ */
187
+ export interface BareGrammar {
188
+ /** One line for help and the schema. */
189
+ readonly summary: string;
190
+ /** Its options. */
191
+ readonly options?: OptionsGrammar;
154
192
  }
155
193
  /**
156
194
  * A command's help prose: what `help` shows beside the usage the grammar
@@ -208,12 +246,14 @@ type GlobNamesOf<G> = G extends {
208
246
  type ExpandedOf<G> = {
209
247
  readonly [N in GlobNamesOf<G>]: boolean;
210
248
  };
211
- /** An option's value: a switch is a boolean; a value option its value, or every value when it repeats. */
249
+ /** An option's value: a switch is a boolean; a value option its value, or every value when it repeats; null when it asks. */
212
250
  type OptionValue<O> = O extends {
213
251
  readonly value: infer V;
214
252
  } ? O extends {
215
253
  readonly repeat: true;
216
- } ? KindValue<V>[] : KindValue<V> | undefined : boolean;
254
+ } ? KindValue<V>[] : KindValue<V> | undefined | (O extends {
255
+ readonly asks: true;
256
+ } ? null : never) : boolean;
217
257
  /** The options a grammar declares, by property. */
218
258
  type OptionsOf<G> = G extends {
219
259
  readonly options: infer M;
@@ -229,6 +269,23 @@ interface ParsedLine<S, G> {
229
269
  /** For each operand that globs, whether its words came from pathname expansion. */
230
270
  readonly expanded: ExpandedOf<S>;
231
271
  }
272
+ /** The options the bare command takes of its own. */
273
+ type BareOptionsOf<G> = G extends {
274
+ readonly bare: {
275
+ readonly options: infer M;
276
+ };
277
+ } ? {
278
+ readonly [K in keyof M]: OptionValue<M[K]>;
279
+ } : Record<never, never>;
280
+ /** The bare command's parsed line: the grammar's operands, its own options and the command's. */
281
+ interface BareParsedLine<G> {
282
+ /** The operands, by name. */
283
+ readonly operands: OperandsOf<G>;
284
+ /** The options, by property: the bare command's and the command's. */
285
+ readonly options: BareOptionsOf<G> & OptionsOf<G>;
286
+ /** For each operand that globs, whether its words came from pathname expansion. */
287
+ readonly expanded: ExpandedOf<G>;
288
+ }
232
289
  /** The bare command's line, when the grammar allows one. */
233
290
  type BareLine<G> = G extends {
234
291
  readonly subcommands: object;
@@ -236,9 +293,9 @@ type BareLine<G> = G extends {
236
293
  readonly bare: object;
237
294
  } ? {
238
295
  readonly subcommand: null;
239
- } & ParsedLine<G, G> : never : {
296
+ } & BareParsedLine<G> : never : {
240
297
  readonly subcommand: null;
241
- } & ParsedLine<G, G>;
298
+ } & BareParsedLine<G>;
242
299
  /** Each subcommand's line. */
243
300
  type SubcommandLine<G> = G extends {
244
301
  readonly subcommands: infer S;
@@ -269,6 +326,20 @@ export type CommandArguments<G extends CommandGrammar> = BareLine<G> | Subcomman
269
326
  export type SubcommandArguments<G extends CommandGrammar, K extends string> = Extract<CommandArguments<G>, {
270
327
  readonly subcommand: K;
271
328
  }>;
329
+ /**
330
+ * Another word that runs a command: the word alone, holding what the command
331
+ * holds, or the word with what it holds when that differs (`feeds`, a read,
332
+ * holds nothing while `feed` may create one).
333
+ *
334
+ * @example
335
+ * ```ts
336
+ * const aliases: readonly CommandAlias[] = [{ name: feeds, holds: [] }, job];
337
+ * ```
338
+ */
339
+ export type CommandAlias = string | {
340
+ readonly name: string;
341
+ readonly holds: readonly SessionPiece[];
342
+ };
272
343
  /**
273
344
  * A command parsed against its grammar: the one record that is its help,
274
345
  * its completion, its schema and its dispatch.
@@ -285,6 +356,8 @@ export interface CommandDeclaration<G extends CommandGrammar = CommandGrammar> {
285
356
  readonly grammar: G;
286
357
  /** What `help` says of it. */
287
358
  readonly help: CommandProse;
359
+ /** Other words that run it (`feeds` for `feed`): parsed, completed, listed and described as the command, usage and refusals saying the word typed. */
360
+ readonly aliases?: readonly CommandAlias[];
288
361
  /** The pieces of the session it changes while it runs; absent, it holds the whole session. */
289
362
  readonly holds?: readonly SessionPiece[];
290
363
  /**
@@ -314,6 +387,8 @@ export interface ExpressionDeclaration {
314
387
  readonly help: CommandProse & {
315
388
  readonly usage: string;
316
389
  };
390
+ /** Other words that run it, answered as the command. */
391
+ readonly aliases?: readonly CommandAlias[];
317
392
  /** The pieces of the session it changes while it runs. */
318
393
  readonly holds?: readonly SessionPiece[];
319
394
  /**
@@ -347,6 +422,21 @@ export type AnyCommandDeclaration = CommandDeclaration | ExpressionDeclaration;
347
422
  * ```
348
423
  */
349
424
  export declare function command_declare<const G extends CommandGrammar>(declaration: CommandDeclaration<G>): CommandDeclaration<G>;
425
+ /**
426
+ * The command under each of its other words: the same grammar, help and
427
+ * handler, named as typed, holding what that word holds. The registry
428
+ * answers each word with one of these; the schema and the migration count
429
+ * read the command once.
430
+ *
431
+ * @param declaration - The command.
432
+ * @returns One record per alias, in the order declared; none without aliases.
433
+ *
434
+ * @example
435
+ * ```ts
436
+ * commandAliases_list(feedCommand).map((alias) => alias.name); // [feeds]
437
+ * ```
438
+ */
439
+ export declare function commandAliases_list<D extends AnyCommandDeclaration>(declaration: D): D[];
350
440
  /**
351
441
  * Whether a declaration parses its line against a grammar (rather than an
352
442
  * expression language of its own).
@@ -13,6 +13,27 @@
13
13
  export function command_declare(declaration) {
14
14
  return declaration;
15
15
  }
16
+ /**
17
+ * The command under each of its other words: the same grammar, help and
18
+ * handler, named as typed, holding what that word holds. The registry
19
+ * answers each word with one of these; the schema and the migration count
20
+ * read the command once.
21
+ *
22
+ * @param declaration - The command.
23
+ * @returns One record per alias, in the order declared; none without aliases.
24
+ *
25
+ * @example
26
+ * ```ts
27
+ * commandAliases_list(feedCommand).map((alias) => alias.name); // [feeds]
28
+ * ```
29
+ */
30
+ export function commandAliases_list(declaration) {
31
+ return (declaration.aliases ?? []).map((alias) => {
32
+ const { aliases: _aliases, ...command } = declaration;
33
+ // The same record under another word: only the name and the holds differ.
34
+ return (typeof alias === 'string' ? { ...command, name: alias } : { ...command, name: alias.name, holds: alias.holds });
35
+ });
36
+ }
16
37
  /**
17
38
  * Whether a declaration parses its line against a grammar (rather than an
18
39
  * expression language of its own).
@@ -1 +1 @@
1
- {"version":3,"file":"commandDeclaration.js","sourceRoot":"","sources":["../../src/core/commandDeclaration.ts"],"names":[],"mappings":"AAoUA;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,eAAe,CAAiC,WAAkC;IAChG,OAAO,WAAW,CAAC;AACrB,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,oBAAoB,CAAC,WAAkC;IACrE,OAAO,WAAW,CAAC,OAAO,KAAK,YAAY,CAAC;AAC9C,CAAC"}
1
+ {"version":3,"file":"commandDeclaration.js","sourceRoot":"","sources":["../../src/core/commandDeclaration.ts"],"names":[],"mappings":"AA8YA;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,eAAe,CAAiC,WAAkC;IAChG,OAAO,WAAW,CAAC;AACrB,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,mBAAmB,CAAkC,WAAc;IACjF,OAAO,CAAC,WAAW,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAmB,EAAK,EAAE;QAChE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,OAAO,EAAE,GAAG,WAAW,CAAC;QACtD,0EAA0E;QAC1E,OAAO,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAM,CAAC;IAC/H,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,oBAAoB,CAAC,WAAkC;IACrE,OAAO,WAAW,CAAC,OAAO,KAAK,YAAY,CAAC;AAC9C,CAAC"}
@@ -5,7 +5,10 @@
5
5
  * 1. The line's shape is parsed, GNU `getopt_long` for every command: `-f`,
6
6
  * bundled short switches (`-rf`), `--force`; `--name x` and `--name=x`;
7
7
  * `--` ends the options; options may stand anywhere among the operands;
8
- * a word like `-3` is an operand when an operand of the line is numeric.
8
+ * a word like `-3` is an operand when an operand of the line is numeric,
9
+ * or the value of the option that says `numeral` (`head -3`); a value
10
+ * that may be left out (`--highlight[=lang]`) is only in its own word;
11
+ * a value option that `asks`, given no value, is a question (null).
9
12
  * Subcommand words and option names are literal and never globbed.
10
13
  * 2. Operands expand by kind: only a path operand that declares `glob` has
11
14
  * its wildcards matched.
@@ -36,6 +39,8 @@ import { commandUsage_render } from './commandUsage.js';
36
39
  import { exitCode_set } from './handlerRun.js';
37
40
  /** A word that reads as a negative number. */
38
41
  const NEGATIVE_NUMBER = /^-\d+(?:\.\d+)?$/;
42
+ /** A dash and digits: an option that says `numeral` with that value (`head -5`). */
43
+ const DASH_DIGITS = /^-\d+$/;
39
44
  /** A refusal raised while a line is parsed: its words, after `<command>: `. */
40
45
  class LineRefusal extends Error {
41
46
  /** The subcommand the line chose by then, for the usage that follows. */
@@ -50,14 +55,15 @@ class LineRefusal extends Error {
50
55
  }
51
56
  }
52
57
  /**
53
- * The options in reach once a subcommand is chosen: its own, then the command's.
58
+ * The options in reach once a subcommand is chosen, or none is: its own (the
59
+ * bare command's for none), then the command's.
54
60
  *
55
61
  * @param grammar - The command's grammar.
56
- * @param subcommand - The subcommand's grammar, or null.
62
+ * @param subcommand - The subcommand's grammar, or null for the bare command.
57
63
  * @returns The options.
58
64
  */
59
65
  function optionEntries_list(grammar, subcommand) {
60
- const own = subcommand?.options ?? {};
66
+ const own = subcommand === null ? (grammar.bare?.options ?? {}) : (subcommand.options ?? {});
61
67
  const command = grammar.options ?? {};
62
68
  return [...Object.entries(own), ...Object.entries(command)]
63
69
  .map(([key, option]) => ({ key, option }));
@@ -86,6 +92,19 @@ function option_record(options, entry, value) {
86
92
  const held = options.get(entry.key);
87
93
  options.set(entry.key, [...(Array.isArray(held) ? held : []), value]);
88
94
  }
95
+ /**
96
+ * Whether a value option stands with no value: nothing follows it, or, for
97
+ * one that asks, another option does.
98
+ *
99
+ * @param option - The option.
100
+ * @param next - The word after it, if any.
101
+ * @returns True when it has no value.
102
+ */
103
+ function value_isAbsent(option, next) {
104
+ if (next === undefined)
105
+ return true;
106
+ return option.asks === true && next.value.startsWith('-') && next.value.length > 1;
107
+ }
89
108
  /**
90
109
  * Reads one long option word, `--name` or `--name=value`, taking its value
91
110
  * from the next word when it wants one.
@@ -111,13 +130,18 @@ function longOption_read(words, at, walk, options) {
111
130
  option_record(options, entry, null);
112
131
  return at + 1;
113
132
  }
114
- if (inline !== null) {
115
- option_record(options, entry, inline);
133
+ if (inline !== null || entry.option.value.optional === true) {
134
+ // An optional value is only ever in the option's own word.
135
+ option_record(options, entry, inline ?? '');
116
136
  return at + 1;
117
137
  }
118
138
  const next = words[at + 1];
119
- if (next === undefined)
120
- throw new LineRefusal(`option '--${name}' wants a value (<${entry.option.value.name}>)`, walk.subcommand);
139
+ if (value_isAbsent(entry.option, next)) {
140
+ if (entry.option.asks !== true)
141
+ throw new LineRefusal(`option '--${name}' wants a value (<${entry.option.value.name}>)`, walk.subcommand);
142
+ options.set(entry.key, null);
143
+ return at + 1;
144
+ }
121
145
  option_record(options, entry, next.value);
122
146
  return at + 2;
123
147
  }
@@ -144,13 +168,17 @@ function shortOptions_read(words, at, walk, options) {
144
168
  continue;
145
169
  }
146
170
  const rest = text.slice(index + 1);
147
- if (rest !== '') {
171
+ if (rest !== '' || entry.option.value.optional === true) {
148
172
  option_record(options, entry, rest);
149
173
  return at + 1;
150
174
  }
151
175
  const next = words[at + 1];
152
- if (next === undefined)
153
- throw new LineRefusal(`option '-${letter}' wants a value (<${entry.option.value.name}>)`, walk.subcommand);
176
+ if (value_isAbsent(entry.option, next)) {
177
+ if (entry.option.asks !== true)
178
+ throw new LineRefusal(`option '-${letter}' wants a value (<${entry.option.value.name}>)`, walk.subcommand);
179
+ options.set(entry.key, null);
180
+ return at + 1;
181
+ }
154
182
  option_record(options, entry, next.value);
155
183
  return at + 2;
156
184
  }
@@ -164,16 +192,26 @@ function shortOptions_read(words, at, walk, options) {
164
192
  * @param word - The word.
165
193
  * @param walk - Where the parse stands.
166
194
  * @param operands - The operands so far.
167
- * @throws {LineRefusal} For a word that names no subcommand of a command that takes no bare operand.
195
+ * @param options - The options so far, which a chosen subcommand must take.
196
+ * @throws {LineRefusal} For a word that names no subcommand of a command that takes no bare operand, or a subcommand that does not take an option given before it.
168
197
  */
169
- function plainWord_take(grammar, word, walk, operands) {
198
+ function plainWord_take(grammar, word, walk, operands, options) {
170
199
  const subcommands = grammar.subcommands;
171
200
  if (subcommands !== undefined && walk.subcommand === null && operands.length === 0 && !walk.optionsEnded) {
172
201
  const chosen = Object.hasOwn(subcommands, word.value) ? subcommands[word.value] : undefined;
173
202
  if (chosen !== undefined) {
203
+ const entries = optionEntries_list(grammar, chosen);
204
+ // An option the bare command takes, given before a subcommand that does not take it, is refused, not dropped.
205
+ for (const key of options.keys()) {
206
+ if (entries.some((entry) => entry.key === key))
207
+ continue;
208
+ const given = walk.entries.find((entry) => entry.key === key)?.option;
209
+ const name = given?.long !== undefined ? `--${given.long}` : `-${given?.short ?? key}`;
210
+ throw new LineRefusal(`option '${name}' is not one ${word.value} takes`, word.value);
211
+ }
174
212
  walk.subcommand = word.value;
175
213
  walk.scope = chosen;
176
- walk.entries = optionEntries_list(grammar, chosen);
214
+ walk.entries = entries;
177
215
  return;
178
216
  }
179
217
  if ((grammar.operands ?? []).length === 0) {
@@ -201,7 +239,7 @@ function lineShape_parse(grammar, words) {
201
239
  const text = word.value;
202
240
  const reach = walk.scope?.operands ?? grammar.operands ?? [];
203
241
  if (walk.optionsEnded) {
204
- plainWord_take(grammar, word, walk, operands);
242
+ plainWord_take(grammar, word, walk, operands, options);
205
243
  at += 1;
206
244
  }
207
245
  else if (text === '--') {
@@ -211,11 +249,15 @@ function lineShape_parse(grammar, words) {
211
249
  else if (text.startsWith('--')) {
212
250
  at = longOption_read(words, at, walk, options);
213
251
  }
252
+ else if (DASH_DIGITS.test(text) && walk.entries.some((entry) => entry.option.numeral === true)) {
253
+ option_record(options, walk.entries.find((entry) => entry.option.numeral === true), text.slice(1));
254
+ at += 1;
255
+ }
214
256
  else if (text.startsWith('-') && text.length > 1 && !(NEGATIVE_NUMBER.test(text) && operands_takeNumbers(reach))) {
215
257
  at = shortOptions_read(words, at, walk, options);
216
258
  }
217
259
  else {
218
- plainWord_take(grammar, word, walk, operands);
260
+ plainWord_take(grammar, word, walk, operands, options);
219
261
  at += 1;
220
262
  }
221
263
  }
@@ -319,6 +361,10 @@ function optionValues_check(entries, given, subcommand) {
319
361
  values[key] = held === true;
320
362
  continue;
321
363
  }
364
+ if (held === null) {
365
+ values[key] = option.repeat === true ? [] : null;
366
+ continue;
367
+ }
322
368
  const where = option.long !== undefined ? `'--${option.long}'` : `'-${option.short ?? ''}'`;
323
369
  const checked = (Array.isArray(held) ? held : []).map((word) => word_check(option.value, word, where, subcommand));
324
370
  values[key] = option.repeat === true ? checked : checked.at(-1);
@@ -343,7 +389,9 @@ export async function commandLine_parse(declaration, words) {
343
389
  try {
344
390
  const shape = lineShape_parse(grammar, words);
345
391
  const scope = shape.subcommand === null ? null : (grammar.subcommands?.[shape.subcommand] ?? null);
346
- const operandGrammars = scope !== null ? (scope.operands ?? []) : (grammar.operands ?? []);
392
+ // An operand that stands only without an option is gone when the option is given.
393
+ const operandGrammars = (scope !== null ? (scope.operands ?? []) : (grammar.operands ?? []))
394
+ .filter((operand) => operand.unless === undefined || !shape.options.has(operand.unless));
347
395
  const assigned = operandWords_assign(operandGrammars, shape.operands, shape.subcommand);
348
396
  const operands = {};
349
397
  const expanded = {};
@@ -1 +1 @@
1
- {"version":3,"file":"commandParse.js","sourceRoot":"","sources":["../../src/core/commandParse.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"commandParse.js","sourceRoot":"","sources":["../../src/core/commandParse.ts"],"names":[],"mappings":"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"}