@fnndsc/brasa 0.33.4 → 0.35.0
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/api/models.d.ts +1 -2
- package/dist/api/models.js.map +1 -1
- package/dist/buildinfo.json +1 -1
- package/dist/builtins/debug.d.ts +1 -1
- package/dist/builtins/debug.js +12 -8
- package/dist/builtins/debug.js.map +1 -1
- package/dist/builtins/executable.d.ts +1 -1
- package/dist/builtins/executable.js +2 -1
- package/dist/builtins/executable.js.map +1 -1
- package/dist/builtins/fs/acl.d.ts +1 -16
- package/dist/builtins/fs/acl.js +3 -1
- package/dist/builtins/fs/acl.js.map +1 -1
- package/dist/builtins/fs/archive.js +1 -1
- package/dist/builtins/fs/archive.js.map +1 -1
- package/dist/builtins/fs/cat.d.ts +1 -1
- package/dist/builtins/fs/cat.js +47 -7
- package/dist/builtins/fs/cat.js.map +1 -1
- package/dist/builtins/fs/cd.d.ts +1 -19
- package/dist/builtins/fs/cd.js +45 -94
- package/dist/builtins/fs/cd.js.map +1 -1
- package/dist/builtins/fs/configWrite.d.ts +1 -1
- package/dist/builtins/fs/configWrite.js +1 -1
- package/dist/builtins/fs/configWrite.js.map +1 -1
- package/dist/builtins/fs/cp.d.ts +1 -1
- package/dist/builtins/fs/cp.js +19 -13
- package/dist/builtins/fs/cp.js.map +1 -1
- package/dist/builtins/fs/download.d.ts +1 -1
- package/dist/builtins/fs/download.js +2 -1
- package/dist/builtins/fs/download.js.map +1 -1
- package/dist/builtins/fs/du.d.ts +10 -1
- package/dist/builtins/fs/du.js +36 -2
- package/dist/builtins/fs/du.js.map +1 -1
- package/dist/builtins/fs/edit.d.ts +1 -1
- package/dist/builtins/fs/edit.js +10 -4
- package/dist/builtins/fs/edit.js.map +1 -1
- package/dist/builtins/fs/entries.d.ts +43 -0
- package/dist/builtins/fs/entries.js +81 -0
- package/dist/builtins/fs/entries.js.map +1 -0
- package/dist/builtins/fs/ls.d.ts +1 -2
- package/dist/builtins/fs/ls.js +70 -10
- package/dist/builtins/fs/ls.js.map +1 -1
- package/dist/builtins/fs/mkdir.d.ts +1 -1
- package/dist/builtins/fs/mkdir.js +29 -20
- package/dist/builtins/fs/mkdir.js.map +1 -1
- package/dist/builtins/fs/mv.d.ts +1 -1
- package/dist/builtins/fs/mv.js +40 -23
- package/dist/builtins/fs/mv.js.map +1 -1
- package/dist/builtins/fs/pull.d.ts +1 -1
- package/dist/builtins/fs/pull.js +2 -1
- package/dist/builtins/fs/pull.js.map +1 -1
- package/dist/builtins/fs/pwd.d.ts +1 -1
- package/dist/builtins/fs/pwd.js +9 -45
- package/dist/builtins/fs/pwd.js.map +1 -1
- package/dist/builtins/fs/rm.d.ts +1 -22
- package/dist/builtins/fs/rm.js +33 -58
- package/dist/builtins/fs/rm.js.map +1 -1
- package/dist/builtins/fs/rmdir.d.ts +1 -1
- package/dist/builtins/fs/rmdir.js +21 -40
- package/dist/builtins/fs/rmdir.js.map +1 -1
- package/dist/builtins/fs/touch.d.ts +1 -1
- package/dist/builtins/fs/touch.js +64 -25
- package/dist/builtins/fs/touch.js.map +1 -1
- package/dist/builtins/fs/tree.d.ts +1 -1
- package/dist/builtins/fs/tree.js +26 -3
- package/dist/builtins/fs/tree.js.map +1 -1
- package/dist/builtins/fs/upload.d.ts +1 -1
- package/dist/builtins/fs/upload.js +3 -1
- package/dist/builtins/fs/upload.js.map +1 -1
- package/dist/builtins/fs/xattr.d.ts +1 -10
- package/dist/builtins/fs/xattr.js +3 -1
- package/dist/builtins/fs/xattr.js.map +1 -1
- package/dist/builtins/games/bytes.d.ts +1 -1
- package/dist/builtins/games/bytes.js +2 -1
- package/dist/builtins/games/bytes.js.map +1 -1
- package/dist/builtins/games/chimes.d.ts +1 -13
- package/dist/builtins/games/chimes.js +1 -1
- package/dist/builtins/games/chimes.js.map +1 -1
- package/dist/builtins/games/chrislab.d.ts +33 -0
- package/dist/builtins/games/chrislab.js +117 -0
- package/dist/builtins/games/chrislab.js.map +1 -0
- package/dist/builtins/games/cowsay.d.ts +1 -11
- package/dist/builtins/games/cowsay.js +1 -1
- package/dist/builtins/games/cowsay.js.map +1 -1
- package/dist/builtins/games/figlet.d.ts +1 -11
- package/dist/builtins/games/figlet.js +1 -1
- package/dist/builtins/games/figlet.js.map +1 -1
- package/dist/builtins/games/lab.d.ts +1 -43
- package/dist/builtins/games/lab.js +7 -111
- package/dist/builtins/games/lab.js.map +1 -1
- package/dist/builtins/games/lolcat.d.ts +1 -11
- package/dist/builtins/games/lolcat.js +1 -1
- package/dist/builtins/games/lolcat.js.map +1 -1
- package/dist/builtins/games/morse.d.ts +1 -10
- package/dist/builtins/games/morse.js +1 -1
- package/dist/builtins/games/morse.js.map +1 -1
- package/dist/builtins/games/numbers.d.ts +1 -10
- package/dist/builtins/games/numbers.js +1 -1
- package/dist/builtins/games/numbers.js.map +1 -1
- package/dist/builtins/games/play.d.ts +1 -11
- package/dist/builtins/games/play.js +1 -1
- package/dist/builtins/games/play.js.map +1 -1
- package/dist/builtins/games/qr.d.ts +1 -12
- package/dist/builtins/games/qr.js +1 -1
- package/dist/builtins/games/qr.js.map +1 -1
- package/dist/builtins/games/show.d.ts +1 -12
- package/dist/builtins/games/show.js +1 -1
- package/dist/builtins/games/show.js.map +1 -1
- package/dist/builtins/games/sky.d.ts +1 -11
- package/dist/builtins/games/sky.js +1 -1
- package/dist/builtins/games/sky.js.map +1 -1
- package/dist/builtins/games/text.d.ts +1 -10
- package/dist/builtins/games/text.js +1 -1
- package/dist/builtins/games/text.js.map +1 -1
- package/dist/builtins/games/wtf.d.ts +1 -9
- package/dist/builtins/games/wtf.js +1 -1
- package/dist/builtins/games/wtf.js.map +1 -1
- package/dist/builtins/help.d.ts +18 -15
- package/dist/builtins/help.js +51 -1200
- package/dist/builtins/help.js.map +1 -1
- package/dist/builtins/net/connect.d.ts +1 -1
- package/dist/builtins/net/connect.js +2 -1
- package/dist/builtins/net/connect.js.map +1 -1
- package/dist/builtins/net/cubepath.d.ts +1 -1
- package/dist/builtins/net/cubepath.js +1 -1
- package/dist/builtins/net/cubepath.js.map +1 -1
- package/dist/builtins/net/logout.d.ts +1 -1
- package/dist/builtins/net/logout.js +1 -1
- package/dist/builtins/net/logout.js.map +1 -1
- package/dist/builtins/net/netstat.d.ts +1 -1
- package/dist/builtins/net/netstat.js +1 -2
- package/dist/builtins/net/netstat.js.map +1 -1
- package/dist/builtins/net/pacs.d.ts +1 -1
- package/dist/builtins/net/pacs.js +3 -2
- package/dist/builtins/net/pacs.js.map +1 -1
- package/dist/builtins/net/pacsUtils.js +2 -1
- package/dist/builtins/net/pacsUtils.js.map +1 -1
- package/dist/builtins/net/query.csv.js +1 -1
- package/dist/builtins/net/query.csv.js.map +1 -1
- package/dist/builtins/net/query.d.ts +2 -2
- package/dist/builtins/net/query.fanout.d.ts +1 -1
- package/dist/builtins/net/query.fanout.js +1 -1
- package/dist/builtins/net/query.fanout.js.map +1 -1
- package/dist/builtins/net/query.js +3 -2
- package/dist/builtins/net/query.js.map +1 -1
- package/dist/builtins/net/status.d.ts +1 -1
- package/dist/builtins/net/status.js +2 -1
- package/dist/builtins/net/status.js.map +1 -1
- package/dist/builtins/parametersofplugin.d.ts +1 -1
- package/dist/builtins/parametersofplugin.js +1 -1
- package/dist/builtins/parametersofplugin.js.map +1 -1
- package/dist/builtins/pluginExecute.d.ts +1 -1
- package/dist/builtins/pluginExecute.js +3 -1
- package/dist/builtins/pluginExecute.js.map +1 -1
- package/dist/builtins/proc.d.ts +1 -2
- package/dist/builtins/proc.js +4 -3
- package/dist/builtins/proc.js.map +1 -1
- package/dist/builtins/res/compute.d.ts +1 -1
- package/dist/builtins/res/compute.js +2 -1
- package/dist/builtins/res/compute.js.map +1 -1
- package/dist/builtins/res/dicom.d.ts +2 -2
- package/dist/builtins/res/dicom.js +1 -2
- package/dist/builtins/res/dicom.js.map +1 -1
- package/dist/builtins/res/expect.d.ts +1 -1
- package/dist/builtins/res/expect.js +2 -1
- package/dist/builtins/res/expect.js.map +1 -1
- package/dist/builtins/res/feed.d.ts +1 -1
- package/dist/builtins/res/feed.diagram.d.ts +1 -2
- package/dist/builtins/res/feed.diagram.js +2 -2
- package/dist/builtins/res/feed.diagram.js.map +1 -1
- package/dist/builtins/res/feed.js +3 -1
- package/dist/builtins/res/feed.js.map +1 -1
- package/dist/builtins/res/feed.tree.d.ts +1 -1
- package/dist/builtins/res/feed.tree.js +1 -1
- package/dist/builtins/res/feed.tree.js.map +1 -1
- package/dist/builtins/res/files.d.ts +1 -1
- package/dist/builtins/res/files.js +1 -1
- package/dist/builtins/res/files.js.map +1 -1
- package/dist/builtins/res/gather.d.ts +1 -1
- package/dist/builtins/res/gather.js +1 -1
- package/dist/builtins/res/gather.js.map +1 -1
- package/dist/builtins/res/gather.store.js.map +1 -1
- package/dist/builtins/res/group.d.ts +1 -1
- package/dist/builtins/res/group.js +1 -1
- package/dist/builtins/res/group.js.map +1 -1
- package/dist/builtins/res/image.d.ts +1 -20
- package/dist/builtins/res/image.js +1 -2
- package/dist/builtins/res/image.js.map +1 -1
- package/dist/builtins/res/pipeline.d.ts +1 -1
- package/dist/builtins/res/pipeline.diagram.d.ts +1 -1
- package/dist/builtins/res/pipeline.diagram.js +2 -2
- package/dist/builtins/res/pipeline.diagram.js.map +1 -1
- package/dist/builtins/res/pipeline.js +3 -1
- package/dist/builtins/res/pipeline.js.map +1 -1
- package/dist/builtins/res/play.d.ts +1 -1
- package/dist/builtins/res/play.js +2 -1
- package/dist/builtins/res/play.js.map +1 -1
- package/dist/builtins/res/plugin.d.ts +1 -1
- package/dist/builtins/res/plugin.info.d.ts +1 -1
- package/dist/builtins/res/plugin.info.js +2 -1
- package/dist/builtins/res/plugin.info.js.map +1 -1
- package/dist/builtins/res/plugin.js +2 -2
- package/dist/builtins/res/plugin.js.map +1 -1
- package/dist/builtins/res/plugininstance.d.ts +1 -1
- package/dist/builtins/res/plugininstance.js +1 -1
- package/dist/builtins/res/plugininstance.js.map +1 -1
- package/dist/builtins/res/pluginmeta.d.ts +1 -1
- package/dist/builtins/res/pluginmeta.js +1 -1
- package/dist/builtins/res/pluginmeta.js.map +1 -1
- package/dist/builtins/res/record.d.ts +1 -1
- package/dist/builtins/res/record.js +1 -1
- package/dist/builtins/res/record.js.map +1 -1
- package/dist/builtins/res/tag.d.ts +1 -1
- package/dist/builtins/res/tag.js +1 -1
- package/dist/builtins/res/tag.js.map +1 -1
- package/dist/builtins/res/user.d.ts +1 -1
- package/dist/builtins/res/user.js +2 -1
- package/dist/builtins/res/user.js.map +1 -1
- package/dist/builtins/res/workflow.d.ts +1 -1
- package/dist/builtins/res/workflow.js +1 -1
- package/dist/builtins/res/workflow.js.map +1 -1
- package/dist/builtins/store.d.ts +1 -1
- package/dist/builtins/store.js +2 -1
- package/dist/builtins/store.js.map +1 -1
- package/dist/builtins/sys/cal.d.ts +1 -12
- package/dist/builtins/sys/cal.js +1 -1
- package/dist/builtins/sys/cal.js.map +1 -1
- package/dist/builtins/sys/context.d.ts +1 -1
- package/dist/builtins/sys/context.js +1 -1
- package/dist/builtins/sys/context.js.map +1 -1
- package/dist/builtins/sys/date.d.ts +1 -12
- package/dist/builtins/sys/date.js +1 -1
- package/dist/builtins/sys/date.js.map +1 -1
- package/dist/builtins/sys/fortune.d.ts +1 -11
- package/dist/builtins/sys/fortune.js +1 -1
- package/dist/builtins/sys/fortune.js.map +1 -1
- package/dist/builtins/sys/motd.d.ts +1 -18
- package/dist/builtins/sys/motd.js +3 -3
- package/dist/builtins/sys/motd.js.map +1 -1
- package/dist/builtins/sys/notes.d.ts +1 -2
- package/dist/builtins/sys/notes.js +1 -2
- package/dist/builtins/sys/notes.js.map +1 -1
- package/dist/builtins/sys/physicalmode.d.ts +1 -1
- package/dist/builtins/sys/physicalmode.js +1 -1
- package/dist/builtins/sys/physicalmode.js.map +1 -1
- package/dist/builtins/sys/timing.d.ts +1 -1
- package/dist/builtins/sys/timing.js +1 -1
- package/dist/builtins/sys/timing.js.map +1 -1
- package/dist/builtins/sys/version.d.ts +1 -7
- package/dist/builtins/sys/version.js +1 -1
- package/dist/builtins/sys/version.js.map +1 -1
- package/dist/builtins/sys/weather.d.ts +1 -1
- package/dist/builtins/sys/weather.js +1 -1
- package/dist/builtins/sys/weather.js.map +1 -1
- package/dist/builtins/sys/whoami.d.ts +1 -1
- package/dist/builtins/sys/whoami.js +2 -1
- package/dist/builtins/sys/whoami.js.map +1 -1
- package/dist/builtins/utils.d.ts +2 -19
- package/dist/builtins/utils.js +5 -55
- package/dist/builtins/utils.js.map +1 -1
- package/dist/builtins/wildcard.d.ts +4 -53
- package/dist/builtins/wildcard.js +3 -177
- package/dist/builtins/wildcard.js.map +1 -1
- package/dist/chris/backend.d.ts +22 -0
- package/dist/chris/backend.js +102 -0
- package/dist/chris/backend.js.map +1 -0
- package/dist/chris/binEntry.js.map +1 -0
- package/dist/chris/binMount.d.ts +60 -0
- package/dist/chris/binMount.js +154 -0
- package/dist/chris/binMount.js.map +1 -0
- package/dist/{core → chris}/chiliDelegate.d.ts +1 -1
- package/dist/{core → chris}/chiliDelegate.js +1 -1
- package/dist/chris/chiliDelegate.js.map +1 -0
- package/dist/chris/chrisCommands.d.ts +14 -0
- package/dist/chris/chrisCommands.js +168 -0
- package/dist/chris/chrisCommands.js.map +1 -0
- package/dist/chris/commandFallback.d.ts +3 -0
- package/dist/chris/commandFallback.js +113 -0
- package/dist/chris/commandFallback.js.map +1 -0
- package/dist/chris/completion.d.ts +3 -0
- package/dist/chris/completion.js +100 -0
- package/dist/chris/completion.js.map +1 -0
- package/dist/chris/connect.js.map +1 -0
- package/dist/chris/debug.d.ts +10 -0
- package/dist/chris/debug.js +9 -0
- package/dist/chris/debug.js.map +1 -0
- package/dist/chris/files.d.ts +16 -0
- package/dist/chris/files.js +141 -0
- package/dist/chris/files.js.map +1 -0
- package/dist/chris/filesystem.d.ts +3 -0
- package/dist/chris/filesystem.js +57 -0
- package/dist/chris/filesystem.js.map +1 -0
- package/dist/chris/help.d.ts +16 -0
- package/dist/chris/help.js +1193 -0
- package/dist/chris/help.js.map +1 -0
- package/dist/chris/jobsState.js.map +1 -0
- package/dist/chris/mounts.d.ts +7 -0
- package/dist/chris/mounts.js +34 -0
- package/dist/chris/mounts.js.map +1 -0
- package/dist/chris/navigation.d.ts +40 -0
- package/dist/chris/navigation.js +160 -0
- package/dist/chris/navigation.js.map +1 -0
- package/dist/{core → chris}/promptContext.d.ts +2 -2
- package/dist/{core → chris}/promptContext.js +3 -3
- package/dist/chris/promptContext.js.map +1 -0
- package/dist/chris/references.d.ts +14 -0
- package/dist/chris/references.js +113 -0
- package/dist/chris/references.js.map +1 -0
- package/dist/chris/tasks.d.ts +31 -0
- package/dist/chris/tasks.js +55 -0
- package/dist/chris/tasks.js.map +1 -0
- package/dist/chris/universeLayout.js.map +1 -0
- package/dist/chris/watch.d.ts +3 -0
- package/dist/chris/watch.js +15 -0
- package/dist/chris/watch.js.map +1 -0
- package/dist/core/answerKinds.d.ts +32 -0
- package/dist/core/answerKinds.js +56 -0
- package/dist/core/answerKinds.js.map +1 -0
- package/dist/core/backend.d.ts +261 -0
- package/dist/core/backend.js +32 -0
- package/dist/core/backend.js.map +1 -0
- package/dist/core/commandOrder.d.ts +16 -0
- package/dist/core/commandOrder.js +17 -0
- package/dist/core/commandOrder.js.map +1 -0
- package/dist/core/commandRegistry.d.ts +120 -0
- package/dist/core/commandRegistry.js +124 -0
- package/dist/core/commandRegistry.js.map +1 -0
- package/dist/core/coreCommands.d.ts +16 -0
- package/dist/core/coreCommands.js +156 -0
- package/dist/core/coreCommands.js.map +1 -0
- package/dist/core/dispatch.d.ts +2 -19
- package/dist/core/dispatch.js +86 -447
- package/dist/core/dispatch.js.map +1 -1
- package/dist/core/elevation.d.ts +5 -5
- package/dist/core/elevation.js +12 -7
- package/dist/core/elevation.js.map +1 -1
- package/dist/core/engine.d.ts +28 -18
- package/dist/core/engine.js +44 -119
- package/dist/core/engine.js.map +1 -1
- package/dist/core/errorText.d.ts +14 -0
- package/dist/core/errorText.js +26 -0
- package/dist/core/errorText.js.map +1 -0
- package/dist/core/expansion.d.ts +0 -2
- package/dist/core/expansion.js +43 -101
- package/dist/core/expansion.js.map +1 -1
- package/dist/core/fileRefusal.d.ts +4 -15
- package/dist/core/fileRefusal.js +4 -26
- package/dist/core/fileRefusal.js.map +1 -1
- package/dist/core/filesystem.d.ts +27 -0
- package/dist/core/filesystem.js +45 -0
- package/dist/core/filesystem.js.map +1 -0
- package/dist/core/handlerRun.d.ts +30 -0
- package/dist/core/handlerRun.js +34 -0
- package/dist/core/handlerRun.js.map +1 -0
- package/dist/core/paths.d.ts +18 -0
- package/dist/core/paths.js +49 -0
- package/dist/core/paths.js.map +1 -0
- package/dist/core/preprocess.d.ts +1 -1
- package/dist/core/preprocess.js +1 -1
- package/dist/core/preprocess.js.map +1 -1
- package/dist/core/sink.d.ts +3 -25
- package/dist/core/sink.js +0 -8
- package/dist/core/sink.js.map +1 -1
- package/dist/core/surface.d.ts +3 -179
- package/dist/core/surface.js.map +1 -1
- package/dist/core/taskWatch.d.ts +42 -0
- package/dist/core/taskWatch.js +142 -0
- package/dist/core/taskWatch.js.map +1 -0
- package/dist/core/tasks.d.ts +46 -0
- package/dist/core/tasks.js +102 -0
- package/dist/core/tasks.js.map +1 -0
- package/dist/core.d.ts +22 -0
- package/dist/core.js +23 -0
- package/dist/core.js.map +1 -0
- package/dist/index.d.ts +8 -5
- package/dist/index.js +17 -5
- package/dist/index.js.map +1 -1
- package/dist/lib/completer/index.js +41 -99
- package/dist/lib/completer/index.js.map +1 -1
- package/dist/lib/prefetch.js +2 -2
- package/dist/lib/prefetch.js.map +1 -1
- package/dist/lib/vfs/listing.d.ts +1 -1
- package/dist/lib/vfs/providers/static.d.ts +15 -6
- package/dist/lib/vfs/providers/static.js +20 -43
- package/dist/lib/vfs/providers/static.js.map +1 -1
- package/dist/lib/vfs/providers/static_content.d.ts +4 -4
- package/dist/lib/vfs/providers/static_content.js +4 -24
- package/dist/lib/vfs/providers/static_content.js.map +1 -1
- package/dist/lib/vfs/vfs.d.ts +11 -2
- package/dist/lib/vfs/vfs.js +90 -51
- package/dist/lib/vfs/vfs.js.map +1 -1
- package/dist/lib/wildcard.d.ts +57 -0
- package/dist/lib/wildcard.js +183 -0
- package/dist/lib/wildcard.js.map +1 -0
- package/dist/notes.json +1 -1
- package/dist/null/backend.d.ts +29 -0
- package/dist/null/backend.js +41 -0
- package/dist/null/backend.js.map +1 -0
- package/dist/session/answer.d.ts +4 -4
- package/dist/session/answer.js +0 -2
- package/dist/session/answer.js.map +1 -1
- package/dist/session/index.d.ts +12 -10
- package/dist/session/index.js +9 -38
- package/dist/session/index.js.map +1 -1
- package/package.json +12 -6
- package/dist/builtins/fs/folderExists.d.ts +0 -8
- package/dist/builtins/fs/folderExists.js +0 -67
- package/dist/builtins/fs/folderExists.js.map +0 -1
- package/dist/command-keys.d.ts +0 -8
- package/dist/command-keys.js +0 -37
- package/dist/command-keys.js.map +0 -1
- package/dist/core/chiliDelegate.js.map +0 -1
- package/dist/core/connect.js.map +0 -1
- package/dist/core/jobsState.js.map +0 -1
- package/dist/core/promptContext.js.map +0 -1
- package/dist/lib/vfs/providers/binEntry.js.map +0 -1
- package/dist/universe/universeLayout.js.map +0 -1
- /package/dist/{lib/vfs/providers → chris}/binEntry.d.ts +0 -0
- /package/dist/{lib/vfs/providers → chris}/binEntry.js +0 -0
- /package/dist/{core → chris}/connect.d.ts +0 -0
- /package/dist/{core → chris}/connect.js +0 -0
- /package/dist/{core → chris}/jobsState.d.ts +0 -0
- /package/dist/{core → chris}/jobsState.js +0 -0
- /package/dist/{universe → chris}/universeLayout.d.ts +0 -0
- /package/dist/{universe → chris}/universeLayout.js +0 -0
|
@@ -2,21 +2,19 @@
|
|
|
2
2
|
* @file Static VFS Content Handler.
|
|
3
3
|
*
|
|
4
4
|
* Implements specialized virtual file reading and content generation
|
|
5
|
-
* for static
|
|
5
|
+
* for the core's static directories (/usr/bin, /usr/games, /usr/share/doc).
|
|
6
6
|
*
|
|
7
7
|
* @module
|
|
8
8
|
*/
|
|
9
|
-
import { Ok, Err, errorStack } from '@fnndsc/cumin';
|
|
10
9
|
import { commandHelp_get } from '../../../builtins/help.js';
|
|
11
|
-
import {
|
|
12
|
-
import { binPipelineSummary_render, binPipelineSummary_try, } from './binEntry.js';
|
|
10
|
+
import { Ok, Err, errorStack } from '@fnndsc/fond';
|
|
13
11
|
/**
|
|
14
12
|
* Reads virtual file content under command and builtin static paths.
|
|
15
13
|
*
|
|
16
|
-
*
|
|
14
|
+
* A builtin's help for /usr/bin and /usr/games, and the release notes for /usr/share/doc.
|
|
17
15
|
*
|
|
18
16
|
* @param pathStr - The absolute virtual path of the file to read.
|
|
19
|
-
* @param prefix - The prefix of the calling provider (e.g. '/usr/bin'
|
|
17
|
+
* @param prefix - The prefix of the calling provider (e.g. '/usr/bin').
|
|
20
18
|
* @returns Promise resolving to a Result containing the file contents as a string.
|
|
21
19
|
*/
|
|
22
20
|
export async function staticVfs_read(pathStr, prefix) {
|
|
@@ -42,24 +40,6 @@ export async function staticVfs_read(pathStr, prefix) {
|
|
|
42
40
|
errorStack.stack_push("error", `No such document: ${effectivePath}`);
|
|
43
41
|
return Err();
|
|
44
42
|
}
|
|
45
|
-
if (prefix === "/bin") {
|
|
46
|
-
const commandName = effectivePath.substring("/bin/".length);
|
|
47
|
-
const pipelineSummary = binPipelineSummary_try(commandName);
|
|
48
|
-
if (pipelineSummary !== null)
|
|
49
|
-
return Ok(binPipelineSummary_render(pipelineSummary));
|
|
50
|
-
const specifier = pluginSpecifier_parse(commandName);
|
|
51
|
-
if (specifier === null) {
|
|
52
|
-
errorStack.stack_push("error", `Unknown /bin entry: ${commandName}`);
|
|
53
|
-
return Err();
|
|
54
|
-
}
|
|
55
|
-
// The manual is a projection of the plugin model — the same facts
|
|
56
|
-
// `plugin info` puts on the wire, so a terminal and a graphical
|
|
57
|
-
// surface cannot end up describing different plugins.
|
|
58
|
-
const built = await pluginInfo_build(specifier);
|
|
59
|
-
if (!built.ok)
|
|
60
|
-
return Err();
|
|
61
|
-
return Ok(pluginInfoText_render(built.value));
|
|
62
|
-
}
|
|
63
43
|
errorStack.stack_push("error", `File not found: ${pathStr}`);
|
|
64
44
|
return Err();
|
|
65
45
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"static_content.js","sourceRoot":"","sources":["../../../../src/lib/vfs/providers/static_content.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"static_content.js","sourceRoot":"","sources":["../../../../src/lib/vfs/providers/static_content.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAU,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE3D;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,OAAe,EAAE,MAAc;IAClE,IAAI,CAAC;QACH,IAAI,aAAa,GAAW,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,OAAO,CAAC;QAC9E,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,IAAI,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5D,aAAa,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC7C,CAAC;QAED,IAAI,MAAM,KAAK,UAAU,IAAI,MAAM,KAAK,YAAY,EAAE,CAAC;YACrD,MAAM,WAAW,GAAW,aAAa,CAAC,SAAS,CAAC,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC;YACzE,MAAM,OAAO,GAAuB,eAAe,CAAC,WAAW,CAAC,CAAC;YACjE,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1B,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC;YACrB,CAAC;YACD,UAAU,CAAC,UAAU,CAAC,OAAO,EAAE,kCAAkC,WAAW,EAAE,CAAC,CAAC;YAChF,OAAO,GAAG,EAAE,CAAC;QACf,CAAC;QAED,IAAI,MAAM,KAAK,gBAAgB,EAAE,CAAC;YAChC,IAAI,aAAa,KAAK,qBAAqB,EAAE,CAAC;gBAC5C,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,gCAAgC,CAAC,CAAC;gBACrE,OAAO,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC;YACzB,CAAC;YACD,UAAU,CAAC,UAAU,CAAC,OAAO,EAAE,qBAAqB,aAAa,EAAE,CAAC,CAAC;YACrE,OAAO,GAAG,EAAE,CAAC;QACf,CAAC;QAED,UAAU,CAAC,UAAU,CAAC,OAAO,EAAE,mBAAmB,OAAO,EAAE,CAAC,CAAC;QAC7D,OAAO,GAAG,EAAE,CAAC;IACf,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,MAAM,GAAG,GAAW,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3E,UAAU,CAAC,UAAU,CAAC,OAAO,EAAE,qCAAqC,MAAM,KAAK,GAAG,EAAE,CAAC,CAAC;QACtF,OAAO,GAAG,EAAE,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,OAAe,EAAE,MAAc;IACxE,MAAM,GAAG,GAAmB,MAAM,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAClE,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;QACX,OAAO,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,GAAG,EAAE,CAAC;AACf,CAAC"}
|
package/dist/lib/vfs/vfs.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type
|
|
2
|
-
import { Result
|
|
1
|
+
import { type ListingItem, type CommandEnvelope } from '@fnndsc/menu';
|
|
2
|
+
import { Result } from '@fnndsc/fond';
|
|
3
3
|
/**
|
|
4
4
|
* Virtual File System Router.
|
|
5
5
|
* Dispatches operations to Virtual or Native providers.
|
|
@@ -66,6 +66,15 @@ export declare class VFS {
|
|
|
66
66
|
* @param options - Sort options forwarded to the parent listing.
|
|
67
67
|
*/
|
|
68
68
|
private directoryEntry_get;
|
|
69
|
+
/**
|
|
70
|
+
* Finds a path's own entry in its parent's listing, read afresh when it is
|
|
71
|
+
* not kept: the answer to `ls FILE` when the path does not list as a
|
|
72
|
+
* folder.
|
|
73
|
+
*
|
|
74
|
+
* @param absolutePath - The path that did not list.
|
|
75
|
+
* @returns Its entry when the parent holds it and it is not a folder, else null.
|
|
76
|
+
*/
|
|
77
|
+
private entryFromParent_fetch;
|
|
69
78
|
/**
|
|
70
79
|
* Finds a non-directory target in its cached parent listing.
|
|
71
80
|
*
|
package/dist/lib/vfs/vfs.js
CHANGED
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @file Virtual File System Router.
|
|
3
3
|
*
|
|
4
|
-
* Handles path resolution and dispatching to
|
|
5
|
-
*
|
|
4
|
+
* Handles path resolution and dispatching to the session's filesystem: the
|
|
5
|
+
* backend's mounts and fallback, and the core's own (`/usr`).
|
|
6
6
|
*
|
|
7
7
|
* @module
|
|
8
8
|
*/
|
|
9
|
-
import { vfsDispatcher } from '@fnndsc/salsa';
|
|
10
9
|
import { session } from '../../session/index.js';
|
|
11
10
|
import chalk from 'chalk';
|
|
12
11
|
import * as path from 'path';
|
|
13
12
|
import { ambient_publish, ambient_hasListeners } from '../../core/ambient.js';
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
16
|
-
import { listCache_get, Ok, Err, errorStack, feedTags_byFeed, envelope_ok, envelope_error } from '@fnndsc/cumin';
|
|
13
|
+
import { envelope_ok, envelope_error } from '@fnndsc/menu';
|
|
14
|
+
import { listingCache_get, listingCache_holds, vfsDispatcher_get } from '../../core/filesystem.js';
|
|
17
15
|
import { spinner } from '../spinner.js';
|
|
18
|
-
import { error_stripDebugPrefix } from '../../
|
|
16
|
+
import { error_stripDebugPrefix } from '../../core/errorText.js';
|
|
19
17
|
import { listingItemsFromVfs_make } from './listing.js';
|
|
18
|
+
import { Ok, Err, errorStack, grid_render, long_render, listingItems_sort, LISTING_LOOK_PLAIN } from '@fnndsc/fond';
|
|
19
|
+
import { backendInstalled_get } from '../../core/backend.js';
|
|
20
20
|
export class VFS {
|
|
21
21
|
/**
|
|
22
22
|
* Gets data for a directory (Virtual or Native).
|
|
@@ -44,11 +44,11 @@ export class VFS {
|
|
|
44
44
|
if (inflight)
|
|
45
45
|
return inflight;
|
|
46
46
|
const run = (async () => {
|
|
47
|
-
const fetched = await
|
|
47
|
+
const fetched = await vfsDispatcher_get().list(effectivePath, {});
|
|
48
48
|
if (!fetched.ok)
|
|
49
49
|
return;
|
|
50
50
|
const items = listingItemsFromVfs_make(fetched.value);
|
|
51
|
-
|
|
51
|
+
listingCache_get().cache_set(effectivePath, items);
|
|
52
52
|
ambient_publish({
|
|
53
53
|
kind: 'envelope',
|
|
54
54
|
envelope: { status: 'ok', rendered: '', model: { kind: 'fs.listing', data: [{ path: effectivePath, items, fresh: true }] } },
|
|
@@ -82,18 +82,18 @@ export class VFS {
|
|
|
82
82
|
const entry = await this.directoryEntry_get(effectivePath, options);
|
|
83
83
|
return entry.ok ? Ok({ path: effectivePath, items: entry.value, fresh: true }) : Err();
|
|
84
84
|
}
|
|
85
|
-
//
|
|
86
|
-
//
|
|
87
|
-
const
|
|
88
|
-
// Check cache first
|
|
89
|
-
const listCache =
|
|
90
|
-
if (
|
|
85
|
+
// A path the backend keeps its own freshness for (ChRIS: /proc) skips
|
|
86
|
+
// the listing cache entirely, so its refreshes and live reads show.
|
|
87
|
+
const cacheable = listingCache_holds(effectivePath);
|
|
88
|
+
// Check cache first
|
|
89
|
+
const listCache = listingCache_get();
|
|
90
|
+
if (cacheable) {
|
|
91
91
|
const cached = listCache.cache_get(effectivePath);
|
|
92
92
|
if (cached && (cached.fresh || ambient_hasListeners())) {
|
|
93
93
|
if (!cached.fresh)
|
|
94
94
|
void this.listing_revalidate(effectivePath);
|
|
95
95
|
const sortField = options.sort || 'name';
|
|
96
|
-
const sortedItems =
|
|
96
|
+
const sortedItems = listingItems_sort(cached.data, sortField, options.reverse);
|
|
97
97
|
return Ok({ path: effectivePath, items: sortedItems, fresh: cached.fresh });
|
|
98
98
|
}
|
|
99
99
|
// Shell wildcard expansion reads and caches the parent directory before
|
|
@@ -105,15 +105,25 @@ export class VFS {
|
|
|
105
105
|
}
|
|
106
106
|
}
|
|
107
107
|
// Delegate path queries to the unified vfsDispatcher (which handles both virtual and native paths)
|
|
108
|
-
const
|
|
108
|
+
const beforeList = errorStack.checkpoint_mark();
|
|
109
|
+
const vfsResult = await vfsDispatcher_get().list(effectivePath, options);
|
|
109
110
|
if (vfsResult.ok) {
|
|
110
111
|
const items = listingItemsFromVfs_make(vfsResult.value);
|
|
111
|
-
// Cache the results
|
|
112
|
-
if (
|
|
112
|
+
// Cache the results, where the backend lets them be kept
|
|
113
|
+
if (cacheable) {
|
|
113
114
|
listCache.cache_set(effectivePath, items);
|
|
114
115
|
}
|
|
115
116
|
return Ok({ path: effectivePath, items, fresh: true });
|
|
116
117
|
}
|
|
118
|
+
// `ls FILE` names the file, as POSIX ls does: a path that will not
|
|
119
|
+
// list as a folder is looked for in its parent, and an entry that is
|
|
120
|
+
// not a folder is the answer. The failed listing's complaint goes with
|
|
121
|
+
// it; a path the parent does not hold still fails as it did.
|
|
122
|
+
const entry = await this.entryFromParent_fetch(effectivePath);
|
|
123
|
+
if (entry !== null) {
|
|
124
|
+
errorStack.checkpoint_drain(beforeList);
|
|
125
|
+
return Ok({ path: effectivePath, items: [entry], fresh: true });
|
|
126
|
+
}
|
|
117
127
|
return Err();
|
|
118
128
|
}
|
|
119
129
|
catch (error) {
|
|
@@ -136,14 +146,17 @@ export class VFS {
|
|
|
136
146
|
return Ok([{ name: '/', type: 'vfs', size: 0, owner: 'root', date: '' }]);
|
|
137
147
|
}
|
|
138
148
|
// Fetch parent listing (use cache when available)
|
|
139
|
-
const listCache =
|
|
149
|
+
const listCache = listingCache_get();
|
|
140
150
|
let parentItems = null;
|
|
141
151
|
const cached = listCache.cache_get(parentPath);
|
|
142
152
|
if (cached) {
|
|
143
153
|
parentItems = cached.data;
|
|
144
154
|
}
|
|
145
155
|
else {
|
|
146
|
-
|
|
156
|
+
// The parent is read only to find one name; what it could not read is not this answer's.
|
|
157
|
+
const parentMark = errorStack.checkpoint_mark();
|
|
158
|
+
const parentResult = await vfsDispatcher_get().list(parentPath, options);
|
|
159
|
+
errorStack.checkpoint_drain(parentMark);
|
|
147
160
|
if (parentResult.ok) {
|
|
148
161
|
parentItems = listingItemsFromVfs_make(parentResult.value);
|
|
149
162
|
listCache.cache_set(parentPath, parentItems);
|
|
@@ -154,8 +167,48 @@ export class VFS {
|
|
|
154
167
|
if (match)
|
|
155
168
|
return Ok([match]);
|
|
156
169
|
}
|
|
157
|
-
//
|
|
158
|
-
|
|
170
|
+
// The parent does not name it. A path that lists is a folder all the
|
|
171
|
+
// same (a mount the parent's listing does not show); one that does not
|
|
172
|
+
// is not there, and saying so is the answer: a folder made up from the
|
|
173
|
+
// path's name read as one that exists, to `ls -d` and to `du` alike.
|
|
174
|
+
const mark = errorStack.checkpoint_mark();
|
|
175
|
+
const itself = await vfsDispatcher_get().list(absolutePath, options);
|
|
176
|
+
errorStack.checkpoint_drain(mark);
|
|
177
|
+
if (itself.ok) {
|
|
178
|
+
return Ok([{ name: baseName, type: 'dir', size: 0, owner: 'system', date: '' }]);
|
|
179
|
+
}
|
|
180
|
+
errorStack.stack_push('error', `Cannot list ${absolutePath}: No such file or directory`);
|
|
181
|
+
return Err();
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Finds a path's own entry in its parent's listing, read afresh when it is
|
|
185
|
+
* not kept: the answer to `ls FILE` when the path does not list as a
|
|
186
|
+
* folder.
|
|
187
|
+
*
|
|
188
|
+
* @param absolutePath - The path that did not list.
|
|
189
|
+
* @returns Its entry when the parent holds it and it is not a folder, else null.
|
|
190
|
+
*/
|
|
191
|
+
async entryFromParent_fetch(absolutePath) {
|
|
192
|
+
if (absolutePath === '/')
|
|
193
|
+
return null;
|
|
194
|
+
const baseName = path.posix.basename(absolutePath);
|
|
195
|
+
const parentPath = path.posix.dirname(absolutePath);
|
|
196
|
+
let parentItems = listingCache_get().cache_get(parentPath)?.data ?? null;
|
|
197
|
+
if (parentItems === null) {
|
|
198
|
+
const parentMark = errorStack.checkpoint_mark();
|
|
199
|
+
const parent = await vfsDispatcher_get().list(parentPath, {});
|
|
200
|
+
// The parent was only asked to find one name; what it could not read is not this listing's.
|
|
201
|
+
errorStack.checkpoint_drain(parentMark);
|
|
202
|
+
if (!parent.ok)
|
|
203
|
+
return null;
|
|
204
|
+
parentItems = listingItemsFromVfs_make(parent.value);
|
|
205
|
+
if (listingCache_holds(parentPath))
|
|
206
|
+
listingCache_get().cache_set(parentPath, parentItems);
|
|
207
|
+
}
|
|
208
|
+
const item = parentItems.find((candidate) => candidate.name === baseName);
|
|
209
|
+
if (!item || item.type === 'dir' || item.type === 'vfs' || item.type === 'job')
|
|
210
|
+
return null;
|
|
211
|
+
return item;
|
|
159
212
|
}
|
|
160
213
|
/**
|
|
161
214
|
* Finds a non-directory target in its cached parent listing.
|
|
@@ -166,7 +219,7 @@ export class VFS {
|
|
|
166
219
|
leafFromParentCache_get(absolutePath) {
|
|
167
220
|
const baseName = path.posix.basename(absolutePath);
|
|
168
221
|
const parentPath = path.posix.dirname(absolutePath);
|
|
169
|
-
const cached =
|
|
222
|
+
const cached = listingCache_get().cache_get(parentPath);
|
|
170
223
|
if (!cached)
|
|
171
224
|
return null;
|
|
172
225
|
const item = cached.data.find((candidate) => candidate.name === baseName);
|
|
@@ -198,7 +251,7 @@ export class VFS {
|
|
|
198
251
|
// A cache miss will wait on the wire; a stale entry may be served at
|
|
199
252
|
// once (listing_get decides, and revalidates behind it where a host can
|
|
200
253
|
// carry the refresh).
|
|
201
|
-
const isCacheMiss = !
|
|
254
|
+
const isCacheMiss = !listingCache_get().cache_get(effectivePath);
|
|
202
255
|
// For cache miss, show loading indicator after 500ms timeout
|
|
203
256
|
let spinnerStarted = false; // Flag to track if spinner was actually started
|
|
204
257
|
let spinnerDelayTimeout = null;
|
|
@@ -209,11 +262,11 @@ export class VFS {
|
|
|
209
262
|
}, 500);
|
|
210
263
|
}
|
|
211
264
|
// Only this listing's walk may name a parent whose links went unchecked.
|
|
212
|
-
const
|
|
213
|
-
|
|
265
|
+
const unreadLinks_take = async () => (await backendInstalled_get()?.vfs?.unreadLinks_take?.()) ?? [];
|
|
266
|
+
await unreadLinks_take();
|
|
214
267
|
// Fetch data (may be from cache)
|
|
215
268
|
const listing = await this.listing_get(targetPath, options);
|
|
216
|
-
const blindParents =
|
|
269
|
+
const blindParents = await unreadLinks_take();
|
|
217
270
|
const result = listing.ok ? Ok(listing.value.items) : Err();
|
|
218
271
|
// Clear loading timeout and indicator
|
|
219
272
|
if (spinnerDelayTimeout) {
|
|
@@ -246,9 +299,10 @@ export class VFS {
|
|
|
246
299
|
}
|
|
247
300
|
// Render based on options. A long listing over feeds shows their tags:
|
|
248
301
|
// one map for the whole listing, never a read per feed.
|
|
302
|
+
const look = backendInstalled_get()?.listingLook ?? LISTING_LOOK_PLAIN;
|
|
249
303
|
let rendered = options.long
|
|
250
|
-
? `${long_render(await
|
|
251
|
-
: `${grid_render(result.value, { oneColumn: !!options.oneColumn })}\n`;
|
|
304
|
+
? `${long_render(await longRows_annotate(result.value), { human: !!options.human }, look)}\n`
|
|
305
|
+
: `${grid_render(result.value, { oneColumn: !!options.oneColumn }, look)}\n`;
|
|
252
306
|
// Served stale: say so. The refresh is already running behind this
|
|
253
307
|
// answer and reaches every surface as an ambient listing.
|
|
254
308
|
if (listing.ok && !listing.value.fresh) {
|
|
@@ -266,29 +320,14 @@ export class VFS {
|
|
|
266
320
|
*/
|
|
267
321
|
export const vfs = new VFS();
|
|
268
322
|
/**
|
|
269
|
-
*
|
|
270
|
-
* (
|
|
271
|
-
* cannot be read leaves the rows as they were.
|
|
323
|
+
* What a long listing's rows carry beyond the listing, from the backend
|
|
324
|
+
* (ChRIS: a feed's tags).
|
|
272
325
|
*
|
|
273
326
|
* @param items - The rows.
|
|
274
|
-
* @returns The rows,
|
|
327
|
+
* @returns The rows, annotated.
|
|
275
328
|
*/
|
|
276
|
-
async function
|
|
277
|
-
const
|
|
278
|
-
|
|
279
|
-
return match === null ? null : Number(match[1]);
|
|
280
|
-
};
|
|
281
|
-
if (!items.some((item) => feedOf(item.name) !== null))
|
|
282
|
-
return items;
|
|
283
|
-
const map = await feedTags_byFeed();
|
|
284
|
-
if (!map.ok) {
|
|
285
|
-
errorStack.stack_pop();
|
|
286
|
-
return items;
|
|
287
|
-
}
|
|
288
|
-
return items.map((item) => {
|
|
289
|
-
const feedId = feedOf(item.name);
|
|
290
|
-
const tags = feedId === null ? undefined : map.value.get(feedId);
|
|
291
|
-
return tags === undefined ? item : { ...item, tags };
|
|
292
|
-
});
|
|
329
|
+
async function longRows_annotate(items) {
|
|
330
|
+
const annotate = backendInstalled_get()?.vfs?.longRows_annotate;
|
|
331
|
+
return annotate === undefined ? items : await annotate(items);
|
|
293
332
|
}
|
|
294
333
|
//# sourceMappingURL=vfs.js.map
|
package/dist/lib/vfs/vfs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vfs.js","sourceRoot":"","sources":["../../../src/lib/vfs/vfs.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"vfs.js","sourceRoot":"","sources":["../../../src/lib/vfs/vfs.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import type { ListingItem } from '@fnndsc/menu';
|
|
2
|
+
import { ShellWord } from './parser.js';
|
|
3
|
+
import { Result } from '@fnndsc/fond';
|
|
4
|
+
/**
|
|
5
|
+
* Checks if a string contains wildcard characters.
|
|
6
|
+
*
|
|
7
|
+
* @param arg - The argument to check.
|
|
8
|
+
* @returns True if the argument contains wildcards.
|
|
9
|
+
*/
|
|
10
|
+
export declare function string_checkHasWildcard(arg: string): boolean;
|
|
11
|
+
/** A VFS item selected by wildcard expansion. */
|
|
12
|
+
export interface WildcardMatch {
|
|
13
|
+
path: string;
|
|
14
|
+
type: ListingItem['type'];
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Expands one quote-aware shell word against the ChRIS filesystem.
|
|
18
|
+
*
|
|
19
|
+
* @param word - Parsed shell word.
|
|
20
|
+
* @returns Expanded words, or the original word when it has no match.
|
|
21
|
+
*/
|
|
22
|
+
export declare function shellWord_expand(word: ShellWord): Promise<Result<ShellWord[]>>;
|
|
23
|
+
/**
|
|
24
|
+
* Expands selected quote-aware shell words in argument order.
|
|
25
|
+
*
|
|
26
|
+
* @param words - Parsed shell words.
|
|
27
|
+
* @param eligible - Predicate that preserves explicit cross-realm operands.
|
|
28
|
+
* @returns Expanded words, retaining literal words when no path matches.
|
|
29
|
+
*/
|
|
30
|
+
export declare function shellWords_expand(words: readonly ShellWord[], eligible: (word: ShellWord, index: number) => boolean): Promise<Result<ShellWord[]>>;
|
|
31
|
+
/**
|
|
32
|
+
* Expands a wildcard pattern against the current directory with item type.
|
|
33
|
+
*
|
|
34
|
+
* @param pattern - The glob pattern (e.g., "*.ts", "test*.json").
|
|
35
|
+
* @returns A Promise resolving to Result<WildcardMatch[]>.
|
|
36
|
+
* Ok([]) = no matches (not an error).
|
|
37
|
+
* Err(...) = couldn't expand (API failure, permission denied, etc.).
|
|
38
|
+
*/
|
|
39
|
+
export declare function wildcard_expandMatches(pattern: string): Promise<Result<WildcardMatch[]>>;
|
|
40
|
+
/**
|
|
41
|
+
* Expands a wildcard pattern against the current directory.
|
|
42
|
+
*
|
|
43
|
+
* @param pattern - The glob pattern (e.g., "*.ts", "test*.json").
|
|
44
|
+
* @returns A Promise resolving to Result<string[]>.
|
|
45
|
+
* Ok([]) = no matches (not an error).
|
|
46
|
+
* Err(...) = couldn't expand (API failure, permission denied, etc.).
|
|
47
|
+
*/
|
|
48
|
+
export declare function wildcard_expand(pattern: string): Promise<Result<string[]>>;
|
|
49
|
+
/**
|
|
50
|
+
* Expands all wildcards in an argument list.
|
|
51
|
+
*
|
|
52
|
+
* @param args - The argument list potentially containing wildcards.
|
|
53
|
+
* @returns A Promise resolving to Result<string[]>.
|
|
54
|
+
* On error expanding any pattern, returns the error.
|
|
55
|
+
* Empty matches return the original pattern.
|
|
56
|
+
*/
|
|
57
|
+
export declare function wildcards_expandAll(args: string[]): Promise<Result<string[]>>;
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Wildcard expansion for shell commands.
|
|
3
|
+
*
|
|
4
|
+
* Matches glob patterns against the session's filesystem.
|
|
5
|
+
*
|
|
6
|
+
* @module
|
|
7
|
+
*/
|
|
8
|
+
import { minimatch } from 'minimatch';
|
|
9
|
+
import { listingItemsFromVfs_make } from './vfs/listing.js';
|
|
10
|
+
import { session } from '../session/index.js';
|
|
11
|
+
import { shellWord_literal, shellWord_unquoted } from './parser.js';
|
|
12
|
+
import { path_resolve } from '../core/paths.js';
|
|
13
|
+
import { backendInstalled_get } from '../core/backend.js';
|
|
14
|
+
import { listingCache_get, vfsDispatcher_get } from '../core/filesystem.js';
|
|
15
|
+
import { Ok, Err, errorStack } from '@fnndsc/fond';
|
|
16
|
+
/**
|
|
17
|
+
* Checks if a string contains wildcard characters.
|
|
18
|
+
*
|
|
19
|
+
* @param arg - The argument to check.
|
|
20
|
+
* @returns True if the argument contains wildcards.
|
|
21
|
+
*/
|
|
22
|
+
export function string_checkHasWildcard(arg) {
|
|
23
|
+
return /[*?[\]]/.test(arg);
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Expands a rendered pattern and its quote-aware minimatch pattern.
|
|
27
|
+
*
|
|
28
|
+
* @param value - Rendered shell-word value.
|
|
29
|
+
* @param globPattern - Quote-aware minimatch pattern.
|
|
30
|
+
* @returns A Promise resolving to Result<WildcardMatch[]>.
|
|
31
|
+
* Ok([]) = no matches (not an error).
|
|
32
|
+
* Err(...) = couldn't expand (API failure, permission denied, etc.).
|
|
33
|
+
*/
|
|
34
|
+
async function wildcardMatches_expand(value, globPattern) {
|
|
35
|
+
try {
|
|
36
|
+
// Get current directory
|
|
37
|
+
const cwd = await session.getCWD();
|
|
38
|
+
const resolvedValue = await path_resolve(value);
|
|
39
|
+
const resolvedPattern = await path_resolve(globPattern);
|
|
40
|
+
// Handle patterns with directory components (e.g., "data/*.txt")
|
|
41
|
+
let searchDir = cwd;
|
|
42
|
+
let physicalSearchDir = cwd;
|
|
43
|
+
let matchPattern = resolvedPattern;
|
|
44
|
+
// Resolve the non-wildcard parent directory before listing. This gives
|
|
45
|
+
// `~/...` its normal meaning and follows a CFS `.chrislink` parent while
|
|
46
|
+
// retaining the caller's logical spelling in the expanded result.
|
|
47
|
+
if (resolvedValue.includes('/')) {
|
|
48
|
+
const valueParts = resolvedValue.split('/');
|
|
49
|
+
const patternParts = resolvedPattern.split('/');
|
|
50
|
+
const lastPart = patternParts.pop() || '*';
|
|
51
|
+
valueParts.pop();
|
|
52
|
+
const dirPart = valueParts.join('/');
|
|
53
|
+
searchDir = dirPart || '/';
|
|
54
|
+
physicalSearchDir = (await backendInstalled_get()?.vfs?.path_physical?.(searchDir)) ?? searchDir;
|
|
55
|
+
matchPattern = lastPart;
|
|
56
|
+
}
|
|
57
|
+
// List files in the directory (check cache first)
|
|
58
|
+
let items = [];
|
|
59
|
+
const listCache = listingCache_get();
|
|
60
|
+
const cached = listCache.cache_get(physicalSearchDir);
|
|
61
|
+
if (cached) {
|
|
62
|
+
items = cached.data;
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
const vfsResult = await vfsDispatcher_get().list(physicalSearchDir);
|
|
66
|
+
if (vfsResult.ok) {
|
|
67
|
+
items = listingItemsFromVfs_make(vfsResult.value);
|
|
68
|
+
listCache.cache_set(physicalSearchDir, items);
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
return Err();
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
// Filter items by pattern
|
|
75
|
+
const matches = items
|
|
76
|
+
.filter((item) => minimatch(item.name, matchPattern))
|
|
77
|
+
.map((item) => {
|
|
78
|
+
// Return a full path if we searched a different directory.
|
|
79
|
+
const itemPath = searchDir !== cwd
|
|
80
|
+
? `${searchDir}/${item.name}`.replace(/\/+/g, '/')
|
|
81
|
+
: item.name;
|
|
82
|
+
return {
|
|
83
|
+
path: itemPath,
|
|
84
|
+
type: item.type,
|
|
85
|
+
};
|
|
86
|
+
});
|
|
87
|
+
// Ok([]) for no matches (not an error)
|
|
88
|
+
return Ok(matches);
|
|
89
|
+
}
|
|
90
|
+
catch (error) {
|
|
91
|
+
const errorMsg = error instanceof Error ? error.message : String(error);
|
|
92
|
+
errorStack.stack_push("error", `Failed to expand wildcard '${value}': ${errorMsg}`);
|
|
93
|
+
return Err();
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Expands one quote-aware shell word against the ChRIS filesystem.
|
|
98
|
+
*
|
|
99
|
+
* @param word - Parsed shell word.
|
|
100
|
+
* @returns Expanded words, or the original word when it has no match.
|
|
101
|
+
*/
|
|
102
|
+
export async function shellWord_expand(word) {
|
|
103
|
+
if (!word.pathnameExpansion)
|
|
104
|
+
return Ok([word]);
|
|
105
|
+
const result = await wildcardMatches_expand(word.value, word.globPattern);
|
|
106
|
+
if (!result.ok)
|
|
107
|
+
return result;
|
|
108
|
+
if (result.value.length === 0)
|
|
109
|
+
return Ok([word]);
|
|
110
|
+
return Ok(result.value.map((match) => ({
|
|
111
|
+
...shellWord_literal(match.path),
|
|
112
|
+
pathnameExpanded: true,
|
|
113
|
+
})));
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Expands selected quote-aware shell words in argument order.
|
|
117
|
+
*
|
|
118
|
+
* @param words - Parsed shell words.
|
|
119
|
+
* @param eligible - Predicate that preserves explicit cross-realm operands.
|
|
120
|
+
* @returns Expanded words, retaining literal words when no path matches.
|
|
121
|
+
*/
|
|
122
|
+
export async function shellWords_expand(words, eligible) {
|
|
123
|
+
const expanded = [];
|
|
124
|
+
for (const [index, word] of words.entries()) {
|
|
125
|
+
if (!eligible(word, index)) {
|
|
126
|
+
expanded.push(word);
|
|
127
|
+
continue;
|
|
128
|
+
}
|
|
129
|
+
const result = await shellWord_expand(word);
|
|
130
|
+
if (!result.ok)
|
|
131
|
+
return result;
|
|
132
|
+
expanded.push(...result.value);
|
|
133
|
+
}
|
|
134
|
+
return Ok(expanded);
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Expands a wildcard pattern against the current directory with item type.
|
|
138
|
+
*
|
|
139
|
+
* @param pattern - The glob pattern (e.g., "*.ts", "test*.json").
|
|
140
|
+
* @returns A Promise resolving to Result<WildcardMatch[]>.
|
|
141
|
+
* Ok([]) = no matches (not an error).
|
|
142
|
+
* Err(...) = couldn't expand (API failure, permission denied, etc.).
|
|
143
|
+
*/
|
|
144
|
+
export async function wildcard_expandMatches(pattern) {
|
|
145
|
+
if (!string_checkHasWildcard(pattern))
|
|
146
|
+
return Ok([{ path: pattern, type: 'file' }]);
|
|
147
|
+
return wildcardMatches_expand(pattern, pattern);
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Expands a wildcard pattern against the current directory.
|
|
151
|
+
*
|
|
152
|
+
* @param pattern - The glob pattern (e.g., "*.ts", "test*.json").
|
|
153
|
+
* @returns A Promise resolving to Result<string[]>.
|
|
154
|
+
* Ok([]) = no matches (not an error).
|
|
155
|
+
* Err(...) = couldn't expand (API failure, permission denied, etc.).
|
|
156
|
+
*/
|
|
157
|
+
export async function wildcard_expand(pattern) {
|
|
158
|
+
if (!string_checkHasWildcard(pattern))
|
|
159
|
+
return Ok([pattern]);
|
|
160
|
+
const word = shellWord_unquoted(pattern);
|
|
161
|
+
const result = await shellWord_expand(word);
|
|
162
|
+
if (!result.ok)
|
|
163
|
+
return result;
|
|
164
|
+
if (result.value.length === 1 && result.value[0] === word)
|
|
165
|
+
return Ok([]);
|
|
166
|
+
return Ok(result.value.map((match) => match.value));
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Expands all wildcards in an argument list.
|
|
170
|
+
*
|
|
171
|
+
* @param args - The argument list potentially containing wildcards.
|
|
172
|
+
* @returns A Promise resolving to Result<string[]>.
|
|
173
|
+
* On error expanding any pattern, returns the error.
|
|
174
|
+
* Empty matches return the original pattern.
|
|
175
|
+
*/
|
|
176
|
+
export async function wildcards_expandAll(args) {
|
|
177
|
+
const words = args.map((arg) => shellWord_unquoted(arg));
|
|
178
|
+
const result = await shellWords_expand(words, () => true);
|
|
179
|
+
if (!result.ok)
|
|
180
|
+
return result;
|
|
181
|
+
return Ok(result.value.map((word) => word.value));
|
|
182
|
+
}
|
|
183
|
+
//# sourceMappingURL=wildcard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wildcard.js","sourceRoot":"","sources":["../../src/lib/wildcard.ts"],"names":[],"mappings":"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"}
|