@fnndsc/brasa 0.56.1 → 0.56.3
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.
- package/dist/buildinfo.json +1 -1
- package/dist/builtins/berth/berth.d.ts +90 -3
- package/dist/builtins/berth/berth.js +129 -76
- package/dist/builtins/berth/berth.js.map +1 -1
- package/dist/builtins/berth/berthClose.d.ts +25 -6
- package/dist/builtins/berth/berthClose.js +8 -64
- package/dist/builtins/berth/berthClose.js.map +1 -1
- package/dist/builtins/berth/berthCube.d.ts +3 -2
- package/dist/builtins/berth/berthCube.js +9 -16
- package/dist/builtins/berth/berthCube.js.map +1 -1
- package/dist/builtins/berth/berthProcesses.js +33 -3
- package/dist/builtins/berth/berthProcesses.js.map +1 -1
- package/dist/builtins/debug.d.ts +24 -3
- package/dist/builtins/debug.js +66 -13
- package/dist/builtins/debug.js.map +1 -1
- package/dist/builtins/fs/acl.args.d.ts +5 -38
- package/dist/builtins/fs/acl.args.js +6 -72
- package/dist/builtins/fs/acl.args.js.map +1 -1
- package/dist/builtins/fs/acl.d.ts +100 -10
- package/dist/builtins/fs/acl.js +222 -68
- package/dist/builtins/fs/acl.js.map +1 -1
- package/dist/builtins/fs/cat.args.d.ts +14 -15
- package/dist/builtins/fs/cat.args.js +13 -40
- package/dist/builtins/fs/cat.args.js.map +1 -1
- package/dist/builtins/fs/cat.d.ts +40 -3
- package/dist/builtins/fs/cat.js +92 -13
- package/dist/builtins/fs/cat.js.map +1 -1
- package/dist/builtins/fs/cd.d.ts +24 -6
- package/dist/builtins/fs/cd.js +71 -18
- package/dist/builtins/fs/cd.js.map +1 -1
- package/dist/builtins/fs/configWrite.d.ts +24 -8
- package/dist/builtins/fs/configWrite.js +77 -36
- package/dist/builtins/fs/configWrite.js.map +1 -1
- package/dist/builtins/fs/cp.d.ts +39 -4
- package/dist/builtins/fs/cp.js +122 -56
- package/dist/builtins/fs/cp.js.map +1 -1
- package/dist/builtins/fs/download.d.ts +31 -4
- package/dist/builtins/fs/download.js +75 -38
- package/dist/builtins/fs/download.js.map +1 -1
- package/dist/builtins/fs/du.d.ts +59 -33
- package/dist/builtins/fs/du.js +111 -79
- package/dist/builtins/fs/du.js.map +1 -1
- package/dist/builtins/fs/edit.d.ts +19 -4
- package/dist/builtins/fs/edit.js +77 -16
- package/dist/builtins/fs/edit.js.map +1 -1
- package/dist/builtins/fs/find.d.ts +25 -0
- package/dist/builtins/fs/find.js +76 -5
- package/dist/builtins/fs/find.js.map +1 -1
- package/dist/builtins/fs/ls.d.ts +69 -4
- package/dist/builtins/fs/ls.js +84 -45
- package/dist/builtins/fs/ls.js.map +1 -1
- package/dist/builtins/fs/mkdir.d.ts +28 -18
- package/dist/builtins/fs/mkdir.js +95 -66
- package/dist/builtins/fs/mkdir.js.map +1 -1
- package/dist/builtins/fs/mv.d.ts +34 -4
- package/dist/builtins/fs/mv.js +129 -64
- package/dist/builtins/fs/mv.js.map +1 -1
- package/dist/builtins/fs/pull.args.d.ts +56 -17
- package/dist/builtins/fs/pull.args.js +16 -66
- package/dist/builtins/fs/pull.args.js.map +1 -1
- package/dist/builtins/fs/pull.d.ts +62 -0
- package/dist/builtins/fs/pull.js +123 -31
- package/dist/builtins/fs/pull.js.map +1 -1
- package/dist/builtins/fs/pwd.d.ts +19 -5
- package/dist/builtins/fs/pwd.js +62 -8
- package/dist/builtins/fs/pwd.js.map +1 -1
- package/dist/builtins/fs/rm.d.ts +58 -21
- package/dist/builtins/fs/rm.js +99 -82
- package/dist/builtins/fs/rm.js.map +1 -1
- package/dist/builtins/fs/rmdir.d.ts +29 -11
- package/dist/builtins/fs/rmdir.js +87 -36
- package/dist/builtins/fs/rmdir.js.map +1 -1
- package/dist/builtins/fs/touch.d.ts +44 -9
- package/dist/builtins/fs/touch.js +91 -27
- package/dist/builtins/fs/touch.js.map +1 -1
- package/dist/builtins/fs/tree.d.ts +36 -9
- package/dist/builtins/fs/tree.js +126 -36
- package/dist/builtins/fs/tree.js.map +1 -1
- package/dist/builtins/fs/upload.d.ts +22 -3
- package/dist/builtins/fs/upload.js +82 -14
- package/dist/builtins/fs/upload.js.map +1 -1
- package/dist/builtins/fs/xattr.args.d.ts +12 -33
- package/dist/builtins/fs/xattr.args.js +17 -95
- package/dist/builtins/fs/xattr.args.js.map +1 -1
- package/dist/builtins/fs/xattr.d.ts +98 -8
- package/dist/builtins/fs/xattr.js +163 -24
- package/dist/builtins/fs/xattr.js.map +1 -1
- package/dist/builtins/games/bytes.d.ts +201 -5
- package/dist/builtins/games/bytes.js +255 -54
- package/dist/builtins/games/bytes.js.map +1 -1
- package/dist/builtins/games/chimes.d.ts +180 -3
- package/dist/builtins/games/chimes.js +203 -26
- package/dist/builtins/games/chimes.js.map +1 -1
- package/dist/builtins/games/chrislab.d.ts +101 -3
- package/dist/builtins/games/chrislab.js +117 -17
- package/dist/builtins/games/chrislab.js.map +1 -1
- package/dist/builtins/games/cowsay.d.ts +93 -2
- package/dist/builtins/games/cowsay.js +90 -31
- package/dist/builtins/games/cowsay.js.map +1 -1
- package/dist/builtins/games/figlet.d.ts +70 -2
- package/dist/builtins/games/figlet.js +83 -6
- package/dist/builtins/games/figlet.js.map +1 -1
- package/dist/builtins/games/lab.d.ts +104 -5
- package/dist/builtins/games/lab.js +144 -6
- package/dist/builtins/games/lab.js.map +1 -1
- package/dist/builtins/games/lolcat.d.ts +61 -1
- package/dist/builtins/games/lolcat.js +59 -24
- package/dist/builtins/games/lolcat.js.map +1 -1
- package/dist/builtins/games/morse.d.ts +36 -1
- package/dist/builtins/games/morse.js +50 -2
- package/dist/builtins/games/morse.js.map +1 -1
- package/dist/builtins/games/numbers.d.ts +241 -5
- package/dist/builtins/games/numbers.js +298 -23
- package/dist/builtins/games/numbers.js.map +1 -1
- package/dist/builtins/games/play.d.ts +96 -6
- package/dist/builtins/games/play.js +137 -6
- package/dist/builtins/games/play.js.map +1 -1
- package/dist/builtins/games/qr.d.ts +40 -1
- package/dist/builtins/games/qr.js +51 -2
- package/dist/builtins/games/qr.js.map +1 -1
- package/dist/builtins/games/show.d.ts +131 -6
- package/dist/builtins/games/show.js +208 -20
- package/dist/builtins/games/show.js.map +1 -1
- package/dist/builtins/games/sky.d.ts +178 -4
- package/dist/builtins/games/sky.js +228 -12
- package/dist/builtins/games/sky.js.map +1 -1
- package/dist/builtins/games/text.d.ts +258 -7
- package/dist/builtins/games/text.js +310 -29
- package/dist/builtins/games/text.js.map +1 -1
- package/dist/builtins/games/trek.d.ts +67 -3
- package/dist/builtins/games/trek.js +63 -10
- package/dist/builtins/games/trek.js.map +1 -1
- package/dist/builtins/games/wtf.d.ts +58 -1
- package/dist/builtins/games/wtf.js +67 -6
- package/dist/builtins/games/wtf.js.map +1 -1
- package/dist/builtins/help.d.ts +41 -3
- package/dist/builtins/help.js +92 -796
- package/dist/builtins/help.js.map +1 -1
- package/dist/builtins/net/connect.d.ts +36 -3
- package/dist/builtins/net/connect.js +84 -26
- package/dist/builtins/net/connect.js.map +1 -1
- package/dist/builtins/net/cubepath.d.ts +49 -5
- package/dist/builtins/net/cubepath.js +69 -27
- package/dist/builtins/net/cubepath.js.map +1 -1
- package/dist/builtins/net/logout.d.ts +13 -4
- package/dist/builtins/net/logout.js +49 -3
- package/dist/builtins/net/logout.js.map +1 -1
- package/dist/builtins/net/netstat.d.ts +29 -4
- package/dist/builtins/net/netstat.js +64 -23
- package/dist/builtins/net/netstat.js.map +1 -1
- package/dist/builtins/net/pacs.d.ts +169 -15
- package/dist/builtins/net/pacs.js +92 -33
- package/dist/builtins/net/pacs.js.map +1 -1
- package/dist/builtins/net/query.args.d.ts +95 -0
- package/dist/builtins/net/query.args.js +26 -0
- package/dist/builtins/net/query.args.js.map +1 -0
- package/dist/builtins/net/query.d.ts +98 -5
- package/dist/builtins/net/query.js +89 -83
- package/dist/builtins/net/query.js.map +1 -1
- package/dist/builtins/net/status.d.ts +5 -3
- package/dist/builtins/net/status.js +5 -12
- package/dist/builtins/net/status.js.map +1 -1
- package/dist/builtins/parametersofplugin.d.ts +82 -3
- package/dist/builtins/parametersofplugin.js +79 -23
- package/dist/builtins/parametersofplugin.js.map +1 -1
- package/dist/builtins/proc.d.ts +210 -3
- package/dist/builtins/proc.js +210 -119
- package/dist/builtins/proc.js.map +1 -1
- package/dist/builtins/res/compute.d.ts +67 -3
- package/dist/builtins/res/compute.js +121 -35
- package/dist/builtins/res/compute.js.map +1 -1
- package/dist/builtins/res/dicom.d.ts +55 -7
- package/dist/builtins/res/dicom.js +86 -52
- package/dist/builtins/res/dicom.js.map +1 -1
- package/dist/builtins/res/expect.d.ts +52 -3
- package/dist/builtins/res/expect.js +92 -29
- package/dist/builtins/res/expect.js.map +1 -1
- package/dist/builtins/res/feed.d.ts +475 -3
- package/dist/builtins/res/feed.js +253 -158
- package/dist/builtins/res/feed.js.map +1 -1
- package/dist/builtins/res/files.d.ts +517 -3
- package/dist/builtins/res/files.js +124 -44
- package/dist/builtins/res/files.js.map +1 -1
- package/dist/builtins/res/gather.d.ts +113 -3
- package/dist/builtins/res/gather.js +153 -44
- package/dist/builtins/res/gather.js.map +1 -1
- package/dist/builtins/res/gather.process.d.ts +27 -19
- package/dist/builtins/res/gather.process.js +29 -59
- package/dist/builtins/res/gather.process.js.map +1 -1
- package/dist/builtins/res/group.d.ts +284 -3
- package/dist/builtins/res/group.js +147 -76
- package/dist/builtins/res/group.js.map +1 -1
- package/dist/builtins/res/image.d.ts +30 -2
- package/dist/builtins/res/image.js +62 -10
- package/dist/builtins/res/image.js.map +1 -1
- package/dist/builtins/res/play.d.ts +71 -9
- package/dist/builtins/res/play.js +124 -82
- package/dist/builtins/res/play.js.map +1 -1
- package/dist/builtins/res/plugininstance.d.ts +307 -2
- package/dist/builtins/res/plugininstance.js +122 -50
- package/dist/builtins/res/plugininstance.js.map +1 -1
- package/dist/builtins/res/pluginmeta.d.ts +244 -2
- package/dist/builtins/res/pluginmeta.js +98 -40
- package/dist/builtins/res/pluginmeta.js.map +1 -1
- package/dist/builtins/res/record.d.ts +37 -3
- package/dist/builtins/res/record.js +127 -57
- package/dist/builtins/res/record.js.map +1 -1
- package/dist/builtins/res/resourceList.d.ts +136 -0
- package/dist/builtins/res/resourceList.js +51 -0
- package/dist/builtins/res/resourceList.js.map +1 -0
- package/dist/builtins/res/tag.d.ts +244 -3
- package/dist/builtins/res/tag.js +97 -41
- package/dist/builtins/res/tag.js.map +1 -1
- package/dist/builtins/res/user.d.ts +122 -3
- package/dist/builtins/res/user.js +83 -21
- package/dist/builtins/res/user.js.map +1 -1
- package/dist/builtins/res/workflow.d.ts +244 -2
- package/dist/builtins/res/workflow.js +97 -40
- package/dist/builtins/res/workflow.js.map +1 -1
- package/dist/builtins/store.d.ts +85 -3
- package/dist/builtins/store.js +135 -68
- package/dist/builtins/store.js.map +1 -1
- package/dist/builtins/sys/apropos.d.ts +80 -5
- package/dist/builtins/sys/apropos.js +121 -15
- package/dist/builtins/sys/apropos.js.map +1 -1
- package/dist/builtins/sys/cal.d.ts +44 -5
- package/dist/builtins/sys/cal.js +57 -10
- package/dist/builtins/sys/cal.js.map +1 -1
- package/dist/builtins/sys/command.d.ts +20 -0
- package/dist/builtins/sys/command.js +31 -0
- package/dist/builtins/sys/command.js.map +1 -1
- package/dist/builtins/sys/context.d.ts +13 -3
- package/dist/builtins/sys/context.js +51 -4
- package/dist/builtins/sys/context.js.map +1 -1
- package/dist/builtins/sys/date.d.ts +56 -5
- package/dist/builtins/sys/date.js +63 -9
- package/dist/builtins/sys/date.js.map +1 -1
- package/dist/builtins/sys/echo.d.ts +63 -2
- package/dist/builtins/sys/echo.js +87 -8
- package/dist/builtins/sys/echo.js.map +1 -1
- package/dist/builtins/sys/fortune.d.ts +27 -2
- package/dist/builtins/sys/fortune.js +44 -2
- package/dist/builtins/sys/fortune.js.map +1 -1
- package/dist/builtins/sys/grep.d.ts +245 -11
- package/dist/builtins/sys/grep.js +418 -131
- package/dist/builtins/sys/grep.js.map +1 -1
- package/dist/builtins/sys/joblets.d.ts +66 -7
- package/dist/builtins/sys/joblets.js +101 -14
- package/dist/builtins/sys/joblets.js.map +1 -1
- package/dist/builtins/sys/motd.d.ts +37 -3
- package/dist/builtins/sys/motd.js +49 -8
- package/dist/builtins/sys/motd.js.map +1 -1
- package/dist/builtins/sys/notes.d.ts +75 -3
- package/dist/builtins/sys/notes.js +90 -29
- package/dist/builtins/sys/notes.js.map +1 -1
- package/dist/builtins/sys/physicalmode.d.ts +24 -3
- package/dist/builtins/sys/physicalmode.js +68 -14
- package/dist/builtins/sys/physicalmode.js.map +1 -1
- package/dist/builtins/sys/tasks.d.ts +74 -5
- package/dist/builtins/sys/tasks.js +102 -14
- package/dist/builtins/sys/tasks.js.map +1 -1
- package/dist/builtins/sys/textFilters.d.ts +673 -41
- package/dist/builtins/sys/textFilters.js +719 -264
- package/dist/builtins/sys/textFilters.js.map +1 -1
- package/dist/builtins/sys/timing.d.ts +24 -3
- package/dist/builtins/sys/timing.js +67 -14
- package/dist/builtins/sys/timing.js.map +1 -1
- package/dist/builtins/sys/variables.d.ts +70 -4
- package/dist/builtins/sys/variables.js +103 -31
- package/dist/builtins/sys/variables.js.map +1 -1
- package/dist/builtins/sys/version.d.ts +27 -2
- package/dist/builtins/sys/version.js +48 -3
- package/dist/builtins/sys/version.js.map +1 -1
- package/dist/builtins/sys/weather.d.ts +92 -15
- package/dist/builtins/sys/weather.js +71 -45
- package/dist/builtins/sys/weather.js.map +1 -1
- package/dist/builtins/sys/whoami.d.ts +38 -18
- package/dist/builtins/sys/whoami.js +112 -8
- package/dist/builtins/sys/whoami.js.map +1 -1
- package/dist/builtins/utils.d.ts +1 -38
- package/dist/builtins/utils.js +1 -87
- package/dist/builtins/utils.js.map +1 -1
- package/dist/chris/backend.js +2 -0
- package/dist/chris/backend.js.map +1 -1
- package/dist/chris/chrisCommands.js +62 -159
- package/dist/chris/chrisCommands.js.map +1 -1
- package/dist/chris/commandFallback.d.ts +12 -0
- package/dist/chris/commandFallback.js +47 -0
- package/dist/chris/commandFallback.js.map +1 -1
- package/dist/chris/files.js +24 -85
- package/dist/chris/files.js.map +1 -1
- package/dist/chris/filesystem.js +7 -5
- package/dist/chris/filesystem.js.map +1 -1
- package/dist/chris/help.js +0 -1082
- package/dist/chris/help.js.map +1 -1
- package/dist/chris/kinds.d.ts +30 -0
- package/dist/chris/kinds.js +154 -0
- package/dist/chris/kinds.js.map +1 -0
- package/dist/chris/mounts.d.ts +4 -4
- package/dist/chris/mounts.js +9 -16
- package/dist/chris/mounts.js.map +1 -1
- package/dist/chris/navigation.d.ts +2 -3
- package/dist/chris/navigation.js +6 -20
- package/dist/chris/navigation.js.map +1 -1
- package/dist/chris/pacsResources.d.ts +259 -0
- package/dist/chris/pacsResources.js +168 -0
- package/dist/chris/pacsResources.js.map +1 -0
- package/dist/chris/promptContext.d.ts +6 -0
- package/dist/chris/promptContext.js +3 -1
- package/dist/chris/promptContext.js.map +1 -1
- package/dist/core/argumentKinds.d.ts +107 -0
- package/dist/core/argumentKinds.js +223 -0
- package/dist/core/argumentKinds.js.map +1 -0
- package/dist/core/backend.d.ts +4 -1
- package/dist/core/backend.js.map +1 -1
- package/dist/core/commandDeclaration.d.ts +453 -0
- package/dist/core/commandDeclaration.js +52 -0
- package/dist/core/commandDeclaration.js.map +1 -0
- package/dist/core/commandParse.d.ts +64 -0
- package/dist/core/commandParse.js +468 -0
- package/dist/core/commandParse.js.map +1 -0
- package/dist/core/commandRegistry.d.ts +37 -0
- package/dist/core/commandRegistry.js +100 -3
- package/dist/core/commandRegistry.js.map +1 -1
- package/dist/core/commandSchema.d.ts +32 -0
- package/dist/core/commandSchema.js +117 -0
- package/dist/core/commandSchema.js.map +1 -0
- package/dist/core/commandUsage.d.ts +62 -0
- package/dist/core/commandUsage.js +247 -0
- package/dist/core/commandUsage.js.map +1 -0
- package/dist/core/coreCommands.js +66 -214
- package/dist/core/coreCommands.js.map +1 -1
- package/dist/core/dispatch.js +15 -8
- package/dist/core/dispatch.js.map +1 -1
- package/dist/core/paths.d.ts +51 -0
- package/dist/core/paths.js +86 -2
- package/dist/core/paths.js.map +1 -1
- package/dist/core/preprocess.d.ts +10 -9
- package/dist/core/preprocess.js +10 -20
- package/dist/core/preprocess.js.map +1 -1
- package/dist/core/warmupFailures.d.ts +34 -2
- package/dist/core/warmupFailures.js +43 -2
- package/dist/core/warmupFailures.js.map +1 -1
- package/dist/lib/completer/cfsPaths.d.ts +14 -0
- package/dist/lib/completer/cfsPaths.js +91 -0
- package/dist/lib/completer/cfsPaths.js.map +1 -0
- package/dist/lib/completer/declared.d.ts +15 -0
- package/dist/lib/completer/declared.js +189 -0
- package/dist/lib/completer/declared.js.map +1 -0
- package/dist/lib/completer/index.js +33 -79
- package/dist/lib/completer/index.js.map +1 -1
- package/dist/lib/parser.d.ts +5 -8
- package/dist/lib/parser.js +2 -11
- package/dist/lib/parser.js.map +1 -1
- package/dist/lib/vfs/vfs.d.ts +2 -1
- package/dist/lib/vfs/vfs.js +9 -6
- package/dist/lib/vfs/vfs.js.map +1 -1
- package/dist/lib/wildcard.js +2 -3
- package/dist/lib/wildcard.js.map +1 -1
- package/dist/notes.json +1 -1
- package/package.json +6 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pluginmeta.js","sourceRoot":"","sources":["../../../src/builtins/res/pluginmeta.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"pluginmeta.js","sourceRoot":"","sources":["../../../src/builtins/res/pluginmeta.ts"],"names":[],"mappings":"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"}
|
|
@@ -41,9 +41,43 @@ export declare function manifest_render(name: string, lines: string[], params: A
|
|
|
41
41
|
was: string;
|
|
42
42
|
}>): string;
|
|
43
43
|
/**
|
|
44
|
-
*
|
|
44
|
+
* `record [start <manifest> | stop | status]`: the declaration.
|
|
45
45
|
*
|
|
46
|
-
* @
|
|
47
|
-
*
|
|
46
|
+
* @example
|
|
47
|
+
* ```ts
|
|
48
|
+
* commands_register({ declarations: [recordCommand] }, 'backend');
|
|
49
|
+
* ```
|
|
50
|
+
*/
|
|
51
|
+
export declare const recordCommand: import("../../core/commandDeclaration.js").CommandDeclaration<{
|
|
52
|
+
readonly bare: {
|
|
53
|
+
readonly summary: "Whether anything is recording, and how much (as status)";
|
|
54
|
+
};
|
|
55
|
+
readonly subcommands: {
|
|
56
|
+
readonly start: {
|
|
57
|
+
readonly summary: "Begin capturing the lines this session runs";
|
|
58
|
+
readonly operands: readonly [{
|
|
59
|
+
readonly name: "manifest";
|
|
60
|
+
readonly kind: "cfsPath";
|
|
61
|
+
readonly summary: "The manifest to write when the recording stops";
|
|
62
|
+
}];
|
|
63
|
+
};
|
|
64
|
+
readonly stop: {
|
|
65
|
+
readonly summary: "Write the manifest and say what it holds";
|
|
66
|
+
};
|
|
67
|
+
readonly status: {
|
|
68
|
+
readonly summary: "Whether anything is recording, and how much";
|
|
69
|
+
};
|
|
70
|
+
};
|
|
71
|
+
}>;
|
|
72
|
+
/**
|
|
73
|
+
* `record` over words already split: the declaration's parse and handler.
|
|
74
|
+
*
|
|
75
|
+
* @param args - The words after `record`.
|
|
76
|
+
* @returns An envelope reporting what the recorder is doing, or what it wrote; or the refusal of a bad line.
|
|
77
|
+
*
|
|
78
|
+
* @example
|
|
79
|
+
* ```ts
|
|
80
|
+
* await builtin_record(['status']);
|
|
81
|
+
* ```
|
|
48
82
|
*/
|
|
49
83
|
export declare function builtin_record(args: string[]): Promise<CommandEnvelope>;
|
|
@@ -1,20 +1,35 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @file Builtin record command: writing a session down as a manifest.
|
|
3
3
|
*
|
|
4
|
-
* Subcommands: start, stop, status.
|
|
4
|
+
* Subcommands: start, stop, status. Declared in one record (`recordCommand`).
|
|
5
5
|
*
|
|
6
6
|
* Every verb lowers to a line the operator could have typed, so a session's
|
|
7
7
|
* line history is very nearly a manifest already — a press on a surface and
|
|
8
8
|
* a line at a console arrive at the same place, and the recorder sits there.
|
|
9
9
|
* That is why this costs almost nothing: the lowering was already the law.
|
|
10
10
|
*
|
|
11
|
+
* Key components:
|
|
12
|
+
* - recordCommand: the declaration.
|
|
13
|
+
* - builtin_record: the declaration run over words already split.
|
|
14
|
+
* - identifiers_offer, manifest_render: a recording to a shareable manifest.
|
|
15
|
+
*
|
|
16
|
+
* Typical usage:
|
|
17
|
+
* ```ts
|
|
18
|
+
* await builtin_record(['start', '~/flows/sag.mise']);
|
|
19
|
+
* await builtin_record(['stop']);
|
|
20
|
+
* ```
|
|
21
|
+
*
|
|
22
|
+
* Dependencies: the session's recorder; chili's touch and mkdir to write the file.
|
|
23
|
+
*
|
|
11
24
|
* @module
|
|
12
25
|
*/
|
|
13
26
|
import chalk from 'chalk';
|
|
14
27
|
import { files_touch as chefs_touch_cmd } from '@fnndsc/chili/commands/fs/touch.js';
|
|
15
28
|
import { files_mkdir as chefs_mkdir_cmd } from '@fnndsc/chili/commands/fs/mkdir.js';
|
|
16
29
|
import path from 'path';
|
|
17
|
-
import {
|
|
30
|
+
import { path_resolve } from '../utils.js';
|
|
31
|
+
import { command_declare } from '../../core/commandDeclaration.js';
|
|
32
|
+
import { declaredCommand_run } from '../../core/commandParse.js';
|
|
18
33
|
import { recorder_start, recorder_state, recorder_stop, } from '../../session/recorder.js';
|
|
19
34
|
import { envelope_ok, envelope_error } from '@fnndsc/menu';
|
|
20
35
|
import { exitCode_set } from '../../core/handlerRun.js';
|
|
@@ -85,67 +100,122 @@ export function manifest_render(name, lines, params) {
|
|
|
85
100
|
header.push(`@param ${param.name} = ${param.was}`);
|
|
86
101
|
return `${[...header, '', ...lines].join('\n')}\n`;
|
|
87
102
|
}
|
|
103
|
+
/** What a `record` line may hold. */
|
|
104
|
+
const RECORD_GRAMMAR = {
|
|
105
|
+
bare: { summary: 'Whether anything is recording, and how much (as status)' },
|
|
106
|
+
subcommands: {
|
|
107
|
+
start: {
|
|
108
|
+
summary: 'Begin capturing the lines this session runs',
|
|
109
|
+
operands: [{ name: 'manifest', kind: 'cfsPath', summary: 'The manifest to write when the recording stops' }],
|
|
110
|
+
},
|
|
111
|
+
stop: { summary: 'Write the manifest and say what it holds' },
|
|
112
|
+
status: { summary: 'Whether anything is recording, and how much' },
|
|
113
|
+
},
|
|
114
|
+
};
|
|
88
115
|
/**
|
|
89
|
-
*
|
|
116
|
+
* `record [start <manifest> | stop | status]`: the declaration.
|
|
117
|
+
*
|
|
118
|
+
* @example
|
|
119
|
+
* ```ts
|
|
120
|
+
* commands_register({ declarations: [recordCommand] }, 'backend');
|
|
121
|
+
* ```
|
|
122
|
+
*/
|
|
123
|
+
export const recordCommand = command_declare({
|
|
124
|
+
name: 'record',
|
|
125
|
+
grammar: RECORD_GRAMMAR,
|
|
126
|
+
help: {
|
|
127
|
+
summary: 'Write what this session does down as a manifest',
|
|
128
|
+
description: 'Write what this session does down as a manifest. A recording captures typed lines and the lines a surface mints from a press alike. It never invents expectations: adding `expect` lines is the author\'s act, and the one that turns a recording into a test. Identifiers a PACS line wears on its face (PatientID, AccessionNumber, PatientName) are offered as parameters, so the file is shareable rather than personal.',
|
|
129
|
+
category: 'Workflows',
|
|
130
|
+
examples: [
|
|
131
|
+
'record start ~/flows/sag-cohort.mise',
|
|
132
|
+
'# … do the work, by hand or by pressing …',
|
|
133
|
+
'record stop',
|
|
134
|
+
'play ~/flows/sag-cohort.mise --param MRN=1234567',
|
|
135
|
+
],
|
|
136
|
+
},
|
|
137
|
+
handler: async (args) => {
|
|
138
|
+
if (args.subcommand === 'start')
|
|
139
|
+
return recording_start(args.operands.manifest);
|
|
140
|
+
if (args.subcommand === 'stop')
|
|
141
|
+
return recording_stop();
|
|
142
|
+
return recording_status();
|
|
143
|
+
},
|
|
144
|
+
});
|
|
145
|
+
/**
|
|
146
|
+
* `record` over words already split: the declaration's parse and handler.
|
|
147
|
+
*
|
|
148
|
+
* @param args - The words after `record`.
|
|
149
|
+
* @returns An envelope reporting what the recorder is doing, or what it wrote; or the refusal of a bad line.
|
|
90
150
|
*
|
|
91
|
-
* @
|
|
92
|
-
*
|
|
151
|
+
* @example
|
|
152
|
+
* ```ts
|
|
153
|
+
* await builtin_record(['status']);
|
|
154
|
+
* ```
|
|
93
155
|
*/
|
|
94
156
|
export async function builtin_record(args) {
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
}
|
|
108
|
-
const resolved = await path_resolve(target);
|
|
109
|
-
recorder_start(resolved);
|
|
110
|
-
return envelope_ok(`${chalk.green(`record: recording to ${resolved}. Do the work; \`record stop\` writes it.`)}\n`);
|
|
157
|
+
return declaredCommand_run(recordCommand, args);
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Starts recording to a manifest, unless a recording is already under way.
|
|
161
|
+
*
|
|
162
|
+
* @param target - Where the manifest goes, as typed.
|
|
163
|
+
* @returns An envelope saying where the recording goes, or why it did not start.
|
|
164
|
+
*/
|
|
165
|
+
async function recording_start(target) {
|
|
166
|
+
const state = recorder_state();
|
|
167
|
+
if (state.target !== null) {
|
|
168
|
+
exitCode_set(1);
|
|
169
|
+
return envelope_error('', undefined, `${chalk.red(`record: already recording to ${state.target} — stop it first.`)}\n`);
|
|
111
170
|
}
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
});
|
|
127
|
-
if (!written) {
|
|
128
|
-
exitCode_set(1);
|
|
129
|
-
return envelope_error('', undefined, `${chalk.red(`record: could not write ${held.target}.`)}\n`);
|
|
130
|
-
}
|
|
131
|
-
const recorded = {
|
|
132
|
-
path: held.target,
|
|
133
|
-
lines: lines.length,
|
|
134
|
-
params,
|
|
135
|
-
elapsedMs: held.elapsedMs,
|
|
136
|
-
};
|
|
137
|
-
const offered = params.length === 0
|
|
138
|
-
? ''
|
|
139
|
-
: `${chalk.gray(` offered ${params.length} param${params.length === 1 ? '' : 's'}: `)}${params.map((param) => `${param.was} → \${${param.name}}`).join(', ')}\n`;
|
|
140
|
-
return envelope_ok(`${chalk.green(`record: wrote ${held.target} · ${lines.length} line${lines.length === 1 ? '' : 's'}`)}\n${offered}`, { kind: RECORD_MODEL_KIND, data: recorded });
|
|
171
|
+
const resolved = await path_resolve(target);
|
|
172
|
+
recorder_start(resolved);
|
|
173
|
+
return envelope_ok(`${chalk.green(`record: recording to ${resolved}. Do the work; \`record stop\` writes it.`)}\n`);
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Stops the recording and writes what it captured as a manifest.
|
|
177
|
+
*
|
|
178
|
+
* @returns An envelope saying what was written, with the recorded model; or why nothing was.
|
|
179
|
+
*/
|
|
180
|
+
async function recording_stop() {
|
|
181
|
+
const held = recorder_stop();
|
|
182
|
+
if (held === null) {
|
|
183
|
+
exitCode_set(1);
|
|
184
|
+
return envelope_error('', undefined, `${chalk.red('record: nothing is recording.')}\n`);
|
|
141
185
|
}
|
|
142
|
-
if (
|
|
143
|
-
|
|
144
|
-
if (state.target === null)
|
|
145
|
-
return envelope_ok(`${chalk.gray('Nothing is recording.')}\n`);
|
|
146
|
-
return envelope_ok(`${chalk.green(`Recording to ${state.target}`)} ${chalk.gray(`· ${state.lines} line${state.lines === 1 ? '' : 's'} · ${Math.round(state.elapsedMs / 1000)}s`)}\n`);
|
|
186
|
+
if (held.lines.length === 0) {
|
|
187
|
+
return envelope_ok(`${chalk.yellow(`record: nothing to write — the session ran no lines while recording.`)}\n`);
|
|
147
188
|
}
|
|
148
|
-
|
|
149
|
-
|
|
189
|
+
const { lines, params } = identifiers_offer(held.lines);
|
|
190
|
+
const name = path.posix.basename(held.target).replace(/\.[^.]+$/, '');
|
|
191
|
+
await chefs_mkdir_cmd(path.posix.dirname(held.target));
|
|
192
|
+
const written = await chefs_touch_cmd(held.target, {
|
|
193
|
+
withContents: manifest_render(name, lines, params),
|
|
194
|
+
});
|
|
195
|
+
if (!written) {
|
|
196
|
+
exitCode_set(1);
|
|
197
|
+
return envelope_error('', undefined, `${chalk.red(`record: could not write ${held.target}.`)}\n`);
|
|
198
|
+
}
|
|
199
|
+
const recorded = {
|
|
200
|
+
path: held.target,
|
|
201
|
+
lines: lines.length,
|
|
202
|
+
params,
|
|
203
|
+
elapsedMs: held.elapsedMs,
|
|
204
|
+
};
|
|
205
|
+
const offered = params.length === 0
|
|
206
|
+
? ''
|
|
207
|
+
: `${chalk.gray(` offered ${params.length} param${params.length === 1 ? '' : 's'}: `)}${params.map((param) => `${param.was} → \${${param.name}}`).join(', ')}\n`;
|
|
208
|
+
return envelope_ok(`${chalk.green(`record: wrote ${held.target} · ${lines.length} line${lines.length === 1 ? '' : 's'}`)}\n${offered}`, { kind: RECORD_MODEL_KIND, data: recorded });
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* Says whether anything is recording, and how much.
|
|
212
|
+
*
|
|
213
|
+
* @returns An envelope with the recorder's state.
|
|
214
|
+
*/
|
|
215
|
+
function recording_status() {
|
|
216
|
+
const state = recorder_state();
|
|
217
|
+
if (state.target === null)
|
|
218
|
+
return Promise.resolve(envelope_ok(`${chalk.gray('Nothing is recording.')}\n`));
|
|
219
|
+
return Promise.resolve(envelope_ok(`${chalk.green(`Recording to ${state.target}`)} ${chalk.gray(`· ${state.lines} line${state.lines === 1 ? '' : 's'} · ${Math.round(state.elapsedMs / 1000)}s`)}\n`));
|
|
150
220
|
}
|
|
151
221
|
//# sourceMappingURL=record.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"record.js","sourceRoot":"","sources":["../../../src/builtins/res/record.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"record.js","sourceRoot":"","sources":["../../../src/builtins/res/record.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file What the resource commands share: the options of a CUBE listing
|
|
3
|
+
* (`tags list --all --sort name`), the option bag chili's listings read, and
|
|
4
|
+
* a second name for a command (`tags` beside `tag`).
|
|
5
|
+
*
|
|
6
|
+
* A resource command lists a CUBE collection page by page (`list`), filters
|
|
7
|
+
* it (`search <field:value>`, which is `list --search`), and names its fields
|
|
8
|
+
* (`inspect`): the Resource Contract (packages/chell/CONTEXT.md). Its
|
|
9
|
+
* declaration spreads these options into its grammar, so every listing reads
|
|
10
|
+
* them alike and refuses the same unknown option.
|
|
11
|
+
*
|
|
12
|
+
* Key components:
|
|
13
|
+
* - RESOURCE_LIST_OPTIONS_GRAMMAR: the listing options, as grammar.
|
|
14
|
+
* - ResourceListOptions: what a handler reads of them.
|
|
15
|
+
* - resourceListBag_build: those options as the bag chili's listings read.
|
|
16
|
+
*
|
|
17
|
+
* Typical usage:
|
|
18
|
+
* ```ts
|
|
19
|
+
* const TAG_GRAMMAR = { options: { ...RESOURCE_LIST_OPTIONS_GRAMMAR }, … } as const satisfies CommandGrammar;
|
|
20
|
+
* await tags_fetchList(resourceListBag_build(args.options));
|
|
21
|
+
* ```
|
|
22
|
+
*
|
|
23
|
+
* Dependencies: types only.
|
|
24
|
+
*
|
|
25
|
+
* @module
|
|
26
|
+
*/
|
|
27
|
+
import type { CLIoptions } from '@fnndsc/chili/utils/cli.js';
|
|
28
|
+
/** The options every resource listing reads: paging, columns, the filter, the order, and the shape. */
|
|
29
|
+
export declare const RESOURCE_LIST_OPTIONS_GRAMMAR: {
|
|
30
|
+
readonly all: {
|
|
31
|
+
readonly long: "all";
|
|
32
|
+
readonly summary: "Fetch every page";
|
|
33
|
+
};
|
|
34
|
+
readonly limit: {
|
|
35
|
+
readonly long: "limit";
|
|
36
|
+
readonly summary: "Page size (default 20)";
|
|
37
|
+
readonly value: {
|
|
38
|
+
readonly name: "n";
|
|
39
|
+
readonly kind: "int";
|
|
40
|
+
readonly min: 1;
|
|
41
|
+
};
|
|
42
|
+
};
|
|
43
|
+
readonly offset: {
|
|
44
|
+
readonly long: "offset";
|
|
45
|
+
readonly summary: "Start this many rows in";
|
|
46
|
+
readonly value: {
|
|
47
|
+
readonly name: "n";
|
|
48
|
+
readonly kind: "int";
|
|
49
|
+
readonly min: 0;
|
|
50
|
+
};
|
|
51
|
+
};
|
|
52
|
+
readonly page: {
|
|
53
|
+
readonly long: "page";
|
|
54
|
+
readonly summary: "Page size, when --limit is not given";
|
|
55
|
+
readonly value: {
|
|
56
|
+
readonly name: "n";
|
|
57
|
+
readonly kind: "int";
|
|
58
|
+
readonly min: 1;
|
|
59
|
+
};
|
|
60
|
+
};
|
|
61
|
+
readonly fields: {
|
|
62
|
+
readonly long: "fields";
|
|
63
|
+
readonly summary: "The columns to show, comma-separated (inspect names them)";
|
|
64
|
+
readonly value: {
|
|
65
|
+
readonly name: "field,…";
|
|
66
|
+
readonly kind: "word";
|
|
67
|
+
};
|
|
68
|
+
};
|
|
69
|
+
readonly search: {
|
|
70
|
+
readonly long: "search";
|
|
71
|
+
readonly summary: "Filter by field:value, comma-separated (inspect names the fields)";
|
|
72
|
+
readonly value: {
|
|
73
|
+
readonly name: "field:value";
|
|
74
|
+
readonly kind: "word";
|
|
75
|
+
};
|
|
76
|
+
};
|
|
77
|
+
readonly sort: {
|
|
78
|
+
readonly long: "sort";
|
|
79
|
+
readonly summary: "Sort by a field";
|
|
80
|
+
readonly value: {
|
|
81
|
+
readonly name: "field";
|
|
82
|
+
readonly kind: "word";
|
|
83
|
+
};
|
|
84
|
+
};
|
|
85
|
+
readonly reverse: {
|
|
86
|
+
readonly long: "reverse";
|
|
87
|
+
readonly summary: "Reverse the sort";
|
|
88
|
+
};
|
|
89
|
+
readonly table: {
|
|
90
|
+
readonly long: "table";
|
|
91
|
+
readonly summary: "Tabular output";
|
|
92
|
+
};
|
|
93
|
+
readonly csv: {
|
|
94
|
+
readonly long: "csv";
|
|
95
|
+
readonly summary: "CSV output";
|
|
96
|
+
};
|
|
97
|
+
};
|
|
98
|
+
/** What a handler reads of the listing options. */
|
|
99
|
+
export interface ResourceListOptions {
|
|
100
|
+
/** Fetch every page. */
|
|
101
|
+
readonly all: boolean;
|
|
102
|
+
/** Page size. */
|
|
103
|
+
readonly limit: number | undefined;
|
|
104
|
+
/** Rows skipped first. */
|
|
105
|
+
readonly offset: number | undefined;
|
|
106
|
+
/** Page size when no limit is given. */
|
|
107
|
+
readonly page: number | undefined;
|
|
108
|
+
/** The columns, comma-separated. */
|
|
109
|
+
readonly fields: string | undefined;
|
|
110
|
+
/** The filter, `field:value[,field:value]`. */
|
|
111
|
+
readonly search: string | undefined;
|
|
112
|
+
/** The field sorted by. */
|
|
113
|
+
readonly sort: string | undefined;
|
|
114
|
+
/** Reverse the sort. */
|
|
115
|
+
readonly reverse: boolean;
|
|
116
|
+
/** Tabular output. */
|
|
117
|
+
readonly table: boolean;
|
|
118
|
+
/** CSV output. */
|
|
119
|
+
readonly csv: boolean;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* The listing options as the bag chili's listings read: only what the line
|
|
123
|
+
* gave, a number as the word it was typed as. A search term, when given,
|
|
124
|
+
* stands for `--search`, as `search <term>` is `list --search <term>`.
|
|
125
|
+
*
|
|
126
|
+
* @param options - The listing options read from the line.
|
|
127
|
+
* @param search - The search term of `search <term>`, which replaces any `--search`.
|
|
128
|
+
* @param extra - Further options the one listing reads (`feeds list --user`).
|
|
129
|
+
* @returns The bag.
|
|
130
|
+
*
|
|
131
|
+
* @example
|
|
132
|
+
* ```ts
|
|
133
|
+
* resourceListBag_build({ ...noOptions, limit: 5, all: true }); // { limit: '5', all: true }
|
|
134
|
+
* ```
|
|
135
|
+
*/
|
|
136
|
+
export declare function resourceListBag_build(options: ResourceListOptions, search?: string, extra?: CLIoptions): CLIoptions;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/** The options every resource listing reads: paging, columns, the filter, the order, and the shape. */
|
|
2
|
+
export const RESOURCE_LIST_OPTIONS_GRAMMAR = {
|
|
3
|
+
all: { long: 'all', summary: 'Fetch every page' },
|
|
4
|
+
limit: { long: 'limit', summary: 'Page size (default 20)', value: { name: 'n', kind: 'int', min: 1 } },
|
|
5
|
+
offset: { long: 'offset', summary: 'Start this many rows in', value: { name: 'n', kind: 'int', min: 0 } },
|
|
6
|
+
page: { long: 'page', summary: 'Page size, when --limit is not given', value: { name: 'n', kind: 'int', min: 1 } },
|
|
7
|
+
fields: { long: 'fields', summary: 'The columns to show, comma-separated (inspect names them)', value: { name: 'field,…', kind: 'word' } },
|
|
8
|
+
search: { long: 'search', summary: 'Filter by field:value, comma-separated (inspect names the fields)', value: { name: 'field:value', kind: 'word' } },
|
|
9
|
+
sort: { long: 'sort', summary: 'Sort by a field', value: { name: 'field', kind: 'word' } },
|
|
10
|
+
reverse: { long: 'reverse', summary: 'Reverse the sort' },
|
|
11
|
+
table: { long: 'table', summary: 'Tabular output' },
|
|
12
|
+
csv: { long: 'csv', summary: 'CSV output' },
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* The listing options as the bag chili's listings read: only what the line
|
|
16
|
+
* gave, a number as the word it was typed as. A search term, when given,
|
|
17
|
+
* stands for `--search`, as `search <term>` is `list --search <term>`.
|
|
18
|
+
*
|
|
19
|
+
* @param options - The listing options read from the line.
|
|
20
|
+
* @param search - The search term of `search <term>`, which replaces any `--search`.
|
|
21
|
+
* @param extra - Further options the one listing reads (`feeds list --user`).
|
|
22
|
+
* @returns The bag.
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* ```ts
|
|
26
|
+
* resourceListBag_build({ ...noOptions, limit: 5, all: true }); // { limit: '5', all: true }
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
export function resourceListBag_build(options, search, extra = {}) {
|
|
30
|
+
const bag = { ...extra };
|
|
31
|
+
const switches = ['all', 'reverse', 'table', 'csv'];
|
|
32
|
+
for (const name of switches) {
|
|
33
|
+
if (options[name])
|
|
34
|
+
bag[name] = true;
|
|
35
|
+
}
|
|
36
|
+
const numbers = ['limit', 'offset', 'page'];
|
|
37
|
+
for (const name of numbers) {
|
|
38
|
+
const value = options[name];
|
|
39
|
+
if (value !== undefined)
|
|
40
|
+
bag[name] = String(value);
|
|
41
|
+
}
|
|
42
|
+
if (options.fields !== undefined)
|
|
43
|
+
bag.fields = options.fields;
|
|
44
|
+
if (options.sort !== undefined)
|
|
45
|
+
bag.sort = options.sort;
|
|
46
|
+
const filter = search ?? options.search;
|
|
47
|
+
if (filter !== undefined)
|
|
48
|
+
bag.search = filter;
|
|
49
|
+
return bag;
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=resourceList.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resourceList.js","sourceRoot":"","sources":["../../../src/builtins/res/resourceList.ts"],"names":[],"mappings":"AA8BA,uGAAuG;AACvG,MAAM,CAAC,MAAM,6BAA6B,GAAG;IAC3C,GAAG,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,kBAAkB,EAAE;IACjD,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,wBAAwB,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE;IACtG,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,yBAAyB,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE;IACzG,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,sCAAsC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE;IAClH,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,2DAA2D,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;IAC1I,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,mEAAmE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;IACtJ,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;IAC1F,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,kBAAkB,EAAE;IACzD,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE;IACnD,GAAG,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE;CACV,CAAC;AA0BpC;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,qBAAqB,CAAC,OAA4B,EAAE,MAAe,EAAE,QAAoB,EAAE;IACzG,MAAM,GAAG,GAAe,EAAE,GAAG,KAAK,EAAE,CAAC;IACrC,MAAM,QAAQ,GAAuD,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IACxG,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC5B,IAAI,OAAO,CAAC,IAAI,CAAC;YAAE,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACtC,CAAC;IACD,MAAM,OAAO,GAA+C,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IACxF,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAuB,OAAO,CAAC,IAAI,CAAC,CAAC;QAChD,IAAI,KAAK,KAAK,SAAS;YAAE,GAAG,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IACrD,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS;QAAE,GAAG,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC9D,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS;QAAE,GAAG,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IACxD,MAAM,MAAM,GAAuB,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC;IAC5D,IAAI,MAAM,KAAK,SAAS;QAAE,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC;IAC9C,OAAO,GAAG,CAAC;AACb,CAAC"}
|