@ecmaos/kernel 0.10.1 → 0.10.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/.vite/manifest.json +12 -12
- package/dist/{browser-97JnRk6A.js → browser-BjnxDyrD.js} +2 -2
- package/dist/{browser-97JnRk6A.js.map → browser-BjnxDyrD.js.map} +1 -1
- package/dist/{index-BJ4HPRTi.js → index-9M8pZtzV.js} +2 -2
- package/dist/{index-BJ4HPRTi.js.map → index-9M8pZtzV.js.map} +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/classes/kernel_src_tree_auth.Auth.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/classes/kernel_src_tree_components.Component.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/classes/kernel_src_tree_components.Components.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/classes/kernel_src_tree_dom.Dom.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/classes/kernel_src_tree_events.Events.html +8 -8
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/classes/kernel_src_tree_fdtable.FDTable.html +14 -14
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/classes/kernel_src_tree_filesystem.Filesystem.html +12 -12
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/classes/kernel_src_tree_i18n.I18n.html +6 -6
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/classes/kernel_src_tree_intervals.Intervals.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/classes/kernel_src_tree_kernel.Kernel.html +68 -68
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/classes/kernel_src_tree_lib_commands.TerminalCommand.html +4 -4
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/classes/kernel_src_tree_log.Log.html +3 -3
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/classes/kernel_src_tree_memory.Memory.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/classes/kernel_src_tree_processes.Process.html +33 -33
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/classes/kernel_src_tree_processes.ProcessManager.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/classes/kernel_src_tree_protocol.Protocol.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/classes/kernel_src_tree_service.Service.html +10 -10
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/classes/kernel_src_tree_shell.Shell.html +16 -16
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/classes/kernel_src_tree_sockets.Sockets.html +7 -7
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/classes/kernel_src_tree_storage.Storage.html +8 -8
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/classes/kernel_src_tree_telemetry.Telemetry.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/classes/kernel_src_tree_terminal.Spinner.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/classes/kernel_src_tree_terminal.Terminal.html +38 -38
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/classes/kernel_src_tree_users.Users.html +13 -13
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/classes/kernel_src_tree_wasm.Wasm.html +8 -8
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/classes/kernel_src_tree_windows.Windows.html +8 -8
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/classes/kernel_src_tree_workers.Workers.html +4 -4
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/enums/kernel_src_tree_terminal.CommandPath.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/enums/types_kernel.KernelEvents.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/enums/types_kernel.KernelState.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/enums/types_processes.ProcessEvents.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/enums/types_terminal.TerminalEvents.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/functions/kernel_src_tree_lib_commands.TerminalCommands.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/functions/kernel_src_tree_lib_commands.clear.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/functions/kernel_src_tree_lib_commands.df.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/functions/kernel_src_tree_lib_commands.download.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/functions/kernel_src_tree_lib_commands.exportCmd.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/functions/kernel_src_tree_lib_commands.load.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/functions/kernel_src_tree_lib_commands.passwd.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/functions/kernel_src_tree_lib_commands.ps.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/functions/kernel_src_tree_lib_commands.reboot.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/functions/kernel_src_tree_lib_commands.screensaver.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/functions/kernel_src_tree_lib_commands.snake.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/functions/kernel_src_tree_lib_commands.su.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/functions/kernel_src_tree_lib_commands.upload.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/functions/kernel_src_tree_lib_commands_install.default.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/functions/kernel_src_tree_lib_commands_uninstall.default.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/functions/kernel_src_tree_lib_crontab.parseCrontabFile.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/functions/kernel_src_tree_lib_crontab.parseCrontabLine.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/functions/kernel_src_tree_lib_fstab.parseFstabFile.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/functions/kernel_src_tree_lib_fstab.parseFstabLine.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/functions/kernel_src_tree_lib_screensavers_blank.default.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/functions/kernel_src_tree_lib_screensavers_blank.exit.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/functions/kernel_src_tree_lib_screensavers_matrix.default.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/functions/kernel_src_tree_lib_screensavers_matrix.exit.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/functions/kernel_src_tree_wasi_preview1.default.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/functions/kernel_src_tree_wasi_preview2.default.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/kernel_src_tree_lib_commands.CommandArgs.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/kernel_src_tree_lib_crontab.CrontabEntry.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/kernel_src_tree_wasm.WasiComponentResult.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/kernel_src_tree_wasm.WasiStreamOptions.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_auth.Auth.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_components.Components.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_device.KernelDevice.html +4 -4
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_device.KernelDeviceCLIOptions.html +6 -6
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_device.KernelDeviceData.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_dom.Dom.html +6 -6
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_dom.DomOptions.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_events.Events.html +8 -8
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_filesystem.FileHeader.html +4 -4
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_filesystem.Filesystem.html +10 -10
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_filesystem.FilesystemDescriptions.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_filesystem.FstabEntry.html +5 -5
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_i18n.I18n.html +7 -7
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_i18n.I18nFilesystemAdapter.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_i18n.I18nNamespaces.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_i18n.I18nOptions.html +7 -7
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_i18n.I18nResourceLoadResult.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_intervals.ITimerHandle.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_intervals.Intervals.html +8 -8
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_kernel.BootOptions.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_kernel.Kernel.html +51 -51
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_kernel.KernelExecuteEvent.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_kernel.KernelExecuteOptions.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_kernel.KernelOptions.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_kernel.KernelPanicEvent.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_kernel.KernelShutdownEvent.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_kernel.KernelUploadEvent.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_keyboard.Keyboard.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_log.Log.html +10 -10
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_log.LogOptions.html +4 -4
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_memory.Memory.html +16 -16
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_modules.KernelModule.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_processes.FDTable.html +13 -13
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_processes.FileHandle.html +8 -8
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_processes.Process.html +31 -31
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_processes.ProcessEntryParams.html +16 -16
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_processes.ProcessExitEvent.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_processes.ProcessManager.html +8 -8
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_processes.ProcessOptions.html +18 -18
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_processes.ProcessPauseEvent.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_processes.ProcessResumeEvent.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_processes.ProcessStartEvent.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_processes.ProcessStopEvent.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_protocol.Protocol.html +3 -3
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_protocol.ProtocolOptions.html +3 -3
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_service.Service.html +9 -9
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_service.ServiceOptions.html +4 -4
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_shell.Shell.html +13 -13
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_shell.ShellOptions.html +7 -7
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_sockets.Sockets.html +7 -7
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_sockets.SocketsOptions.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_sockets.WebSocketConnection.html +8 -8
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_sockets.WebTransportConnection.html +8 -8
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_storage.StorageOptions.html +3 -3
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_storage.StorageProvider.html +7 -7
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_telemetry.Telemetry.html +3 -3
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_telemetry.TelemetryOptions.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_terminal.Terminal.html +36 -36
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_terminal.TerminalAttachEvent.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_terminal.TerminalCommand.html +4 -4
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_terminal.TerminalCreatedEvent.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_terminal.TerminalExecuteEvent.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_terminal.TerminalInputEvent.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_terminal.TerminalInterruptEvent.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_terminal.TerminalKeyEvent.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_terminal.TerminalListenEvent.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_terminal.TerminalMessageEvent.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_terminal.TerminalMountEvent.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_terminal.TerminalOptions.html +6 -6
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_terminal.TerminalPasteEvent.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_terminal.TerminalResizeEvent.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_terminal.TerminalUnlistenEvent.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_terminal.TerminalWriteEvent.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_terminal.TerminalWritelnEvent.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_users.AddUserOptions.html +4 -4
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_users.Passkey.html +7 -7
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_users.User.html +9 -9
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_users.Users.html +14 -14
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_users.UsersOptions.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_wasm.WasiComponentResult.html +3 -3
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_wasm.WasiStreamOptions.html +4 -4
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_wasm.Wasm.html +5 -5
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_wasm.WasmOptions.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_windows.WindowOptions.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_windows.Windows.html +7 -7
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_workers.Workers.html +3 -3
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/types/kernel_src_tree_fdtable.ZenFSFileHandle.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/types/types_auth.PasswordCredentialInit.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/types/types_components.ComponentListener.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/types/types_events.EventCallback.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/types/types_filesystem.FilesystemConfigMounts.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/types/types_filesystem.FilesystemOptions.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/types/types_filesystem.Fstab.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/types/types_filesystem.Path.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/types/types_i18n.I18nResourceBundle.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/types/types_intervals.CronMap.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/types/types_intervals.IntervalMap.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/types/types_memory.Address.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/types/types_memory.Collection.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/types/types_memory.Config.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/types/types_memory.Heap.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/types/types_memory.Stack.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/types/types_memory.StackFrame.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/types/types_modules.KernelModules.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/types/types_processes.ProcessStatus.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/types/types_processes.ProcessesMap.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/types/types_sockets.SocketConnection.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/types/types_sockets.WebSocketState.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/types/types_sockets.WebTransportState.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/types/types_users.GID.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/types/types_users.UID.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/types/types_windows.WindowId.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/variables/kernel_src_tree_device.DefaultDevices.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/variables/kernel_src_tree_dom.DefaultDomOptions.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/variables/kernel_src_tree_filesystem.DefaultFilesystemOptions.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/variables/kernel_src_tree_i18n.DefaultI18nOptions.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/variables/kernel_src_tree_log.DefaultLogOptions.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/variables/kernel_src_tree_service.DefaultServiceOptions.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/variables/kernel_src_tree_terminal.DefaultTerminalOptions.html +1 -1
- package/dist/initfs.tar.gz +0 -0
- package/dist/{install-CYHZu4La.js → install-C78wAcrD.js} +2 -2
- package/dist/{install-CYHZu4La.js.map → install-C78wAcrD.js.map} +1 -1
- package/dist/{kernel-CBc_SGe6.js → kernel-C3PA_-lt.js} +807 -512
- package/dist/{kernel-CBc_SGe6.js.map → kernel-C3PA_-lt.js.map} +1 -1
- package/dist/kernel.css +6 -6
- package/dist/kernel.d.ts +0 -8
- package/dist/kernel.js +1 -1
- package/dist/swapi.js +22 -18
- package/dist/toasters.png +0 -0
- package/dist/ui.js +4 -2
- package/dist/ui.js.map +1 -1
- package/dist/{uninstall-CGDotg6T.js → uninstall-qEkzPbxE.js} +2 -2
- package/dist/{uninstall-CGDotg6T.js.map → uninstall-qEkzPbxE.js.map} +1 -1
- package/package.json +12 -10
|
@@ -26,21 +26,21 @@ async function blank({ terminal }) {
|
|
|
26
26
|
if (!ctx) return false;
|
|
27
27
|
ctx.fillStyle = "black";
|
|
28
28
|
ctx.fillRect(0, 0, canvas.width, canvas.height);
|
|
29
|
-
canvas.addEventListener("click", () => exit$
|
|
30
|
-
document.addEventListener("click", () => exit$
|
|
31
|
-
document.addEventListener("mousemove", () => exit$
|
|
32
|
-
document.addEventListener("keydown", () => exit$
|
|
29
|
+
canvas.addEventListener("click", () => exit$3(canvas, terminal));
|
|
30
|
+
document.addEventListener("click", () => exit$3(canvas, terminal));
|
|
31
|
+
document.addEventListener("mousemove", () => exit$3(canvas, terminal));
|
|
32
|
+
document.addEventListener("keydown", () => exit$3(canvas, terminal));
|
|
33
33
|
}
|
|
34
34
|
__name(blank, "blank");
|
|
35
|
-
async function exit$
|
|
35
|
+
async function exit$3(canvas, terminal) {
|
|
36
36
|
canvas.remove();
|
|
37
37
|
terminal.listen();
|
|
38
38
|
}
|
|
39
|
-
__name(exit$
|
|
39
|
+
__name(exit$3, "exit$3");
|
|
40
40
|
const __vite_glob_0_0 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
41
41
|
__proto__: null,
|
|
42
42
|
default: blank,
|
|
43
|
-
exit: exit$
|
|
43
|
+
exit: exit$3
|
|
44
44
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
45
45
|
async function matrix({ terminal }) {
|
|
46
46
|
if (document.getElementById("screensaver")) return false;
|
|
@@ -74,20 +74,152 @@ async function matrix({ terminal }) {
|
|
|
74
74
|
}, "animatrix");
|
|
75
75
|
terminal.unlisten();
|
|
76
76
|
const interval = setInterval(animatrix, 33);
|
|
77
|
+
document.addEventListener("click", () => exit$2(interval, canvas, terminal));
|
|
78
|
+
document.addEventListener("mousemove", () => exit$2(interval, canvas, terminal));
|
|
79
|
+
document.addEventListener("keydown", () => exit$2(interval, canvas, terminal));
|
|
80
|
+
}
|
|
81
|
+
__name(matrix, "matrix");
|
|
82
|
+
async function exit$2(interval, canvas, terminal) {
|
|
83
|
+
clearInterval(interval);
|
|
84
|
+
canvas.remove();
|
|
85
|
+
terminal.listen();
|
|
86
|
+
}
|
|
87
|
+
__name(exit$2, "exit$2");
|
|
88
|
+
const __vite_glob_0_1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
89
|
+
__proto__: null,
|
|
90
|
+
default: matrix,
|
|
91
|
+
exit: exit$2
|
|
92
|
+
}, Symbol.toStringTag, { value: "Module" }));
|
|
93
|
+
async function toasters({ terminal }) {
|
|
94
|
+
if (document.getElementById("screensaver")) return false;
|
|
95
|
+
const canvas = document.createElement("canvas");
|
|
96
|
+
canvas.id = "screensaver";
|
|
97
|
+
canvas.width = globalThis.innerWidth;
|
|
98
|
+
canvas.height = globalThis.innerHeight;
|
|
99
|
+
canvas.style.position = "absolute";
|
|
100
|
+
canvas.style.top = "0";
|
|
101
|
+
canvas.style.left = "0";
|
|
102
|
+
canvas.style.zIndex = Number.MAX_SAFE_INTEGER.toString();
|
|
103
|
+
document.body.appendChild(canvas);
|
|
104
|
+
const ctx = canvas.getContext("2d");
|
|
105
|
+
if (!ctx) return false;
|
|
106
|
+
ctx.fillStyle = "black";
|
|
107
|
+
ctx.fillRect(0, 0, canvas.width, canvas.height);
|
|
108
|
+
const spritesheet = new Image();
|
|
109
|
+
spritesheet.src = "/toasters.png";
|
|
110
|
+
await new Promise((resolve2, reject) => {
|
|
111
|
+
spritesheet.onload = () => resolve2();
|
|
112
|
+
spritesheet.onerror = () => reject(new Error("Failed to load toasters spritesheet"));
|
|
113
|
+
});
|
|
114
|
+
if (spritesheet.width === 0 || spritesheet.height === 0) return false;
|
|
115
|
+
const toasterWidth = 65;
|
|
116
|
+
const toasterHeight = 58;
|
|
117
|
+
const toastWidth = 65;
|
|
118
|
+
const toastHeight = 39;
|
|
119
|
+
const toasterSpacing = spritesheet.width / 5;
|
|
120
|
+
const processSprite = /* @__PURE__ */ __name((sx, sy, width2, height) => {
|
|
121
|
+
const spriteCanvas = document.createElement("canvas");
|
|
122
|
+
spriteCanvas.width = width2;
|
|
123
|
+
spriteCanvas.height = height;
|
|
124
|
+
const spriteCtx = spriteCanvas.getContext("2d");
|
|
125
|
+
if (!spriteCtx) return spriteCanvas;
|
|
126
|
+
spriteCtx.drawImage(spritesheet, sx, sy, width2, height, 0, 0, width2, height);
|
|
127
|
+
const imageData = spriteCtx.getImageData(0, 0, width2, height);
|
|
128
|
+
const data = imageData.data;
|
|
129
|
+
for (let i2 = 0; i2 < data.length; i2 += 4) {
|
|
130
|
+
if (data[i2] === 17 && data[i2 + 1] === 17 && data[i2 + 2] === 17) {
|
|
131
|
+
data[i2 + 3] = 0;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
spriteCtx.putImageData(imageData, 0, 0);
|
|
135
|
+
return spriteCanvas;
|
|
136
|
+
}, "processSprite");
|
|
137
|
+
const toasterSprites = [];
|
|
138
|
+
for (let i2 = 0; i2 < 5; i2++) {
|
|
139
|
+
toasterSprites.push(processSprite(i2 * toasterSpacing, 0, toasterWidth, toasterHeight));
|
|
140
|
+
}
|
|
141
|
+
const toastSprite = processSprite(0, toasterHeight, toastWidth, toastHeight);
|
|
142
|
+
const toasters2 = [];
|
|
143
|
+
const toasts = [];
|
|
144
|
+
const maxToasters = 5;
|
|
145
|
+
const maxToasts = 20;
|
|
146
|
+
const createToaster = /* @__PURE__ */ __name(() => {
|
|
147
|
+
const baseY = Math.random() * (canvas.height - toasterHeight * 2) + toasterHeight;
|
|
148
|
+
return {
|
|
149
|
+
x: canvas.width + toasterWidth,
|
|
150
|
+
y: baseY,
|
|
151
|
+
vx: -(2 + Math.random() * 2),
|
|
152
|
+
vy: Math.sin(Math.random() * Math.PI * 2) * 0.5,
|
|
153
|
+
frame: 0,
|
|
154
|
+
frameCounter: 0,
|
|
155
|
+
baseY
|
|
156
|
+
};
|
|
157
|
+
}, "createToaster");
|
|
158
|
+
for (let i2 = 0; i2 < maxToasters; i2++) {
|
|
159
|
+
const toaster = createToaster();
|
|
160
|
+
toaster.x = canvas.width + i2 * toasterWidth * 3;
|
|
161
|
+
toasters2.push(toaster);
|
|
162
|
+
}
|
|
163
|
+
const animate = /* @__PURE__ */ __name(() => {
|
|
164
|
+
ctx.fillStyle = "black";
|
|
165
|
+
ctx.fillRect(0, 0, canvas.width, canvas.height);
|
|
166
|
+
for (let i2 = toasters2.length - 1; i2 >= 0; i2--) {
|
|
167
|
+
const toaster = toasters2[i2];
|
|
168
|
+
if (!toaster) continue;
|
|
169
|
+
toaster.frameCounter++;
|
|
170
|
+
if (toaster.frameCounter >= 5) {
|
|
171
|
+
toaster.frameCounter = 0;
|
|
172
|
+
toaster.frame = (toaster.frame + 1) % 5;
|
|
173
|
+
}
|
|
174
|
+
toaster.y = toaster.baseY + Math.sin(toaster.x * 0.01) * 20;
|
|
175
|
+
toaster.x += toaster.vx;
|
|
176
|
+
if (toaster.x < -toasterWidth) {
|
|
177
|
+
toasters2[i2] = createToaster();
|
|
178
|
+
toasters2[i2].x = canvas.width + toasterWidth;
|
|
179
|
+
}
|
|
180
|
+
const sprite = toasterSprites[toaster.frame];
|
|
181
|
+
if (sprite) ctx.drawImage(sprite, toaster.x, toaster.y);
|
|
182
|
+
if (Math.random() < 0.01 && toasts.length < maxToasts) {
|
|
183
|
+
toasts.push({
|
|
184
|
+
x: toaster.x + toasterWidth / 2,
|
|
185
|
+
y: toaster.y + toasterHeight,
|
|
186
|
+
vy: 1 + Math.random() * 2,
|
|
187
|
+
vx: (Math.random() - 0.5) * 0.5
|
|
188
|
+
});
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
for (let i2 = toasts.length - 1; i2 >= 0; i2--) {
|
|
192
|
+
const toast = toasts[i2];
|
|
193
|
+
if (!toast) continue;
|
|
194
|
+
toast.x += toast.vx;
|
|
195
|
+
toast.y += toast.vy;
|
|
196
|
+
if (toast.y > canvas.height) {
|
|
197
|
+
toasts.splice(i2, 1);
|
|
198
|
+
continue;
|
|
199
|
+
}
|
|
200
|
+
ctx.drawImage(
|
|
201
|
+
toastSprite,
|
|
202
|
+
toast.x - toastWidth / 2,
|
|
203
|
+
toast.y
|
|
204
|
+
);
|
|
205
|
+
}
|
|
206
|
+
}, "animate");
|
|
207
|
+
terminal.unlisten();
|
|
208
|
+
const interval = setInterval(animate, 33);
|
|
77
209
|
document.addEventListener("click", () => exit$1(interval, canvas, terminal));
|
|
78
210
|
document.addEventListener("mousemove", () => exit$1(interval, canvas, terminal));
|
|
79
211
|
document.addEventListener("keydown", () => exit$1(interval, canvas, terminal));
|
|
80
212
|
}
|
|
81
|
-
__name(
|
|
213
|
+
__name(toasters, "toasters");
|
|
82
214
|
async function exit$1(interval, canvas, terminal) {
|
|
83
215
|
clearInterval(interval);
|
|
84
216
|
canvas.remove();
|
|
85
217
|
terminal.listen();
|
|
86
218
|
}
|
|
87
219
|
__name(exit$1, "exit$1");
|
|
88
|
-
const
|
|
220
|
+
const __vite_glob_0_2 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
89
221
|
__proto__: null,
|
|
90
|
-
default:
|
|
222
|
+
default: toasters,
|
|
91
223
|
exit: exit$1
|
|
92
224
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
93
225
|
function getDefaultExportFromCjs$1(x2) {
|
|
@@ -24516,400 +24648,6 @@ const $pkg$1 = {
|
|
|
24516
24648
|
version: version$2
|
|
24517
24649
|
};
|
|
24518
24650
|
globalThis.__zenfs__ = Object.assign(Object.create(fs$2), { _version: $pkg$1.version });
|
|
24519
|
-
var __assign = /* @__PURE__ */ __name(function() {
|
|
24520
|
-
__assign = Object.assign || /* @__PURE__ */ __name(function __assign2(t2) {
|
|
24521
|
-
for (var s2, i2 = 1, n2 = arguments.length; i2 < n2; i2++) {
|
|
24522
|
-
s2 = arguments[i2];
|
|
24523
|
-
for (var p2 in s2) if (Object.prototype.hasOwnProperty.call(s2, p2)) t2[p2] = s2[p2];
|
|
24524
|
-
}
|
|
24525
|
-
return t2;
|
|
24526
|
-
}, "__assign");
|
|
24527
|
-
return __assign.apply(this, arguments);
|
|
24528
|
-
}, "__assign");
|
|
24529
|
-
var NotyfNotification = (
|
|
24530
|
-
/** @class */
|
|
24531
|
-
(function() {
|
|
24532
|
-
function NotyfNotification2(options) {
|
|
24533
|
-
this.options = options;
|
|
24534
|
-
this.listeners = {};
|
|
24535
|
-
}
|
|
24536
|
-
__name(NotyfNotification2, "NotyfNotification");
|
|
24537
|
-
NotyfNotification2.prototype.on = function(eventType, cb) {
|
|
24538
|
-
var callbacks = this.listeners[eventType] || [];
|
|
24539
|
-
this.listeners[eventType] = callbacks.concat([cb]);
|
|
24540
|
-
};
|
|
24541
|
-
NotyfNotification2.prototype.triggerEvent = function(eventType, event) {
|
|
24542
|
-
var _this = this;
|
|
24543
|
-
var callbacks = this.listeners[eventType] || [];
|
|
24544
|
-
callbacks.forEach(function(cb) {
|
|
24545
|
-
return cb({ target: _this, event });
|
|
24546
|
-
});
|
|
24547
|
-
};
|
|
24548
|
-
return NotyfNotification2;
|
|
24549
|
-
})()
|
|
24550
|
-
);
|
|
24551
|
-
var NotyfArrayEvent;
|
|
24552
|
-
(function(NotyfArrayEvent2) {
|
|
24553
|
-
NotyfArrayEvent2[NotyfArrayEvent2["Add"] = 0] = "Add";
|
|
24554
|
-
NotyfArrayEvent2[NotyfArrayEvent2["Remove"] = 1] = "Remove";
|
|
24555
|
-
})(NotyfArrayEvent || (NotyfArrayEvent = {}));
|
|
24556
|
-
var NotyfArray = (
|
|
24557
|
-
/** @class */
|
|
24558
|
-
(function() {
|
|
24559
|
-
function NotyfArray2() {
|
|
24560
|
-
this.notifications = [];
|
|
24561
|
-
}
|
|
24562
|
-
__name(NotyfArray2, "NotyfArray");
|
|
24563
|
-
NotyfArray2.prototype.push = function(elem) {
|
|
24564
|
-
this.notifications.push(elem);
|
|
24565
|
-
this.updateFn(elem, NotyfArrayEvent.Add, this.notifications);
|
|
24566
|
-
};
|
|
24567
|
-
NotyfArray2.prototype.splice = function(index2, num) {
|
|
24568
|
-
var elem = this.notifications.splice(index2, num)[0];
|
|
24569
|
-
this.updateFn(elem, NotyfArrayEvent.Remove, this.notifications);
|
|
24570
|
-
return elem;
|
|
24571
|
-
};
|
|
24572
|
-
NotyfArray2.prototype.indexOf = function(elem) {
|
|
24573
|
-
return this.notifications.indexOf(elem);
|
|
24574
|
-
};
|
|
24575
|
-
NotyfArray2.prototype.onUpdate = function(fn2) {
|
|
24576
|
-
this.updateFn = fn2;
|
|
24577
|
-
};
|
|
24578
|
-
return NotyfArray2;
|
|
24579
|
-
})()
|
|
24580
|
-
);
|
|
24581
|
-
var NotyfEvent;
|
|
24582
|
-
(function(NotyfEvent2) {
|
|
24583
|
-
NotyfEvent2["Dismiss"] = "dismiss";
|
|
24584
|
-
NotyfEvent2["Click"] = "click";
|
|
24585
|
-
})(NotyfEvent || (NotyfEvent = {}));
|
|
24586
|
-
var DEFAULT_OPTIONS = {
|
|
24587
|
-
types: [
|
|
24588
|
-
{
|
|
24589
|
-
type: "success",
|
|
24590
|
-
className: "notyf__toast--success",
|
|
24591
|
-
backgroundColor: "#3dc763",
|
|
24592
|
-
icon: {
|
|
24593
|
-
className: "notyf__icon--success",
|
|
24594
|
-
tagName: "i"
|
|
24595
|
-
}
|
|
24596
|
-
},
|
|
24597
|
-
{
|
|
24598
|
-
type: "error",
|
|
24599
|
-
className: "notyf__toast--error",
|
|
24600
|
-
backgroundColor: "#ed3d3d",
|
|
24601
|
-
icon: {
|
|
24602
|
-
className: "notyf__icon--error",
|
|
24603
|
-
tagName: "i"
|
|
24604
|
-
}
|
|
24605
|
-
}
|
|
24606
|
-
],
|
|
24607
|
-
duration: 2e3,
|
|
24608
|
-
ripple: true,
|
|
24609
|
-
position: {
|
|
24610
|
-
x: "right",
|
|
24611
|
-
y: "bottom"
|
|
24612
|
-
},
|
|
24613
|
-
dismissible: false
|
|
24614
|
-
};
|
|
24615
|
-
var NotyfView = (
|
|
24616
|
-
/** @class */
|
|
24617
|
-
(function() {
|
|
24618
|
-
function NotyfView2() {
|
|
24619
|
-
this.notifications = [];
|
|
24620
|
-
this.events = {};
|
|
24621
|
-
this.X_POSITION_FLEX_MAP = {
|
|
24622
|
-
left: "flex-start",
|
|
24623
|
-
center: "center",
|
|
24624
|
-
right: "flex-end"
|
|
24625
|
-
};
|
|
24626
|
-
this.Y_POSITION_FLEX_MAP = {
|
|
24627
|
-
top: "flex-start",
|
|
24628
|
-
center: "center",
|
|
24629
|
-
bottom: "flex-end"
|
|
24630
|
-
};
|
|
24631
|
-
var docFrag = document.createDocumentFragment();
|
|
24632
|
-
var notyfContainer = this._createHTMLElement({ tagName: "div", className: "notyf" });
|
|
24633
|
-
docFrag.appendChild(notyfContainer);
|
|
24634
|
-
document.body.appendChild(docFrag);
|
|
24635
|
-
this.container = notyfContainer;
|
|
24636
|
-
this.animationEndEventName = this._getAnimationEndEventName();
|
|
24637
|
-
this._createA11yContainer();
|
|
24638
|
-
}
|
|
24639
|
-
__name(NotyfView2, "NotyfView");
|
|
24640
|
-
NotyfView2.prototype.on = function(event, cb) {
|
|
24641
|
-
var _a3;
|
|
24642
|
-
this.events = __assign(__assign({}, this.events), (_a3 = {}, _a3[event] = cb, _a3));
|
|
24643
|
-
};
|
|
24644
|
-
NotyfView2.prototype.update = function(notification, type2) {
|
|
24645
|
-
if (type2 === NotyfArrayEvent.Add) {
|
|
24646
|
-
this.addNotification(notification);
|
|
24647
|
-
} else if (type2 === NotyfArrayEvent.Remove) {
|
|
24648
|
-
this.removeNotification(notification);
|
|
24649
|
-
}
|
|
24650
|
-
};
|
|
24651
|
-
NotyfView2.prototype.removeNotification = function(notification) {
|
|
24652
|
-
var _this = this;
|
|
24653
|
-
var renderedNotification = this._popRenderedNotification(notification);
|
|
24654
|
-
var node;
|
|
24655
|
-
if (!renderedNotification) {
|
|
24656
|
-
return;
|
|
24657
|
-
}
|
|
24658
|
-
node = renderedNotification.node;
|
|
24659
|
-
node.classList.add("notyf__toast--disappear");
|
|
24660
|
-
var handleEvent;
|
|
24661
|
-
node.addEventListener(this.animationEndEventName, handleEvent = /* @__PURE__ */ __name(function(event) {
|
|
24662
|
-
if (event.target === node) {
|
|
24663
|
-
node.removeEventListener(_this.animationEndEventName, handleEvent);
|
|
24664
|
-
_this.container.removeChild(node);
|
|
24665
|
-
}
|
|
24666
|
-
}, "handleEvent"));
|
|
24667
|
-
};
|
|
24668
|
-
NotyfView2.prototype.addNotification = function(notification) {
|
|
24669
|
-
var node = this._renderNotification(notification);
|
|
24670
|
-
this.notifications.push({ notification, node });
|
|
24671
|
-
this._announce(notification.options.message || "Notification");
|
|
24672
|
-
};
|
|
24673
|
-
NotyfView2.prototype._renderNotification = function(notification) {
|
|
24674
|
-
var _a3;
|
|
24675
|
-
var card = this._buildNotificationCard(notification);
|
|
24676
|
-
var className = notification.options.className;
|
|
24677
|
-
if (className) {
|
|
24678
|
-
(_a3 = card.classList).add.apply(_a3, className.split(" "));
|
|
24679
|
-
}
|
|
24680
|
-
this.container.appendChild(card);
|
|
24681
|
-
return card;
|
|
24682
|
-
};
|
|
24683
|
-
NotyfView2.prototype._popRenderedNotification = function(notification) {
|
|
24684
|
-
var idx = -1;
|
|
24685
|
-
for (var i2 = 0; i2 < this.notifications.length && idx < 0; i2++) {
|
|
24686
|
-
if (this.notifications[i2].notification === notification) {
|
|
24687
|
-
idx = i2;
|
|
24688
|
-
}
|
|
24689
|
-
}
|
|
24690
|
-
if (idx !== -1) {
|
|
24691
|
-
return this.notifications.splice(idx, 1)[0];
|
|
24692
|
-
}
|
|
24693
|
-
return;
|
|
24694
|
-
};
|
|
24695
|
-
NotyfView2.prototype.getXPosition = function(options) {
|
|
24696
|
-
var _a3;
|
|
24697
|
-
return ((_a3 = options === null || options === void 0 ? void 0 : options.position) === null || _a3 === void 0 ? void 0 : _a3.x) || "right";
|
|
24698
|
-
};
|
|
24699
|
-
NotyfView2.prototype.getYPosition = function(options) {
|
|
24700
|
-
var _a3;
|
|
24701
|
-
return ((_a3 = options === null || options === void 0 ? void 0 : options.position) === null || _a3 === void 0 ? void 0 : _a3.y) || "bottom";
|
|
24702
|
-
};
|
|
24703
|
-
NotyfView2.prototype.adjustContainerAlignment = function(options) {
|
|
24704
|
-
var align = this.X_POSITION_FLEX_MAP[this.getXPosition(options)];
|
|
24705
|
-
var justify = this.Y_POSITION_FLEX_MAP[this.getYPosition(options)];
|
|
24706
|
-
var style = this.container.style;
|
|
24707
|
-
style.setProperty("justify-content", justify);
|
|
24708
|
-
style.setProperty("align-items", align);
|
|
24709
|
-
};
|
|
24710
|
-
NotyfView2.prototype._buildNotificationCard = function(notification) {
|
|
24711
|
-
var _this = this;
|
|
24712
|
-
var options = notification.options;
|
|
24713
|
-
var iconOpts = options.icon;
|
|
24714
|
-
this.adjustContainerAlignment(options);
|
|
24715
|
-
var notificationElem = this._createHTMLElement({ tagName: "div", className: "notyf__toast" });
|
|
24716
|
-
var ripple = this._createHTMLElement({ tagName: "div", className: "notyf__ripple" });
|
|
24717
|
-
var wrapper = this._createHTMLElement({ tagName: "div", className: "notyf__wrapper" });
|
|
24718
|
-
var message = this._createHTMLElement({ tagName: "div", className: "notyf__message" });
|
|
24719
|
-
message.innerHTML = options.message || "";
|
|
24720
|
-
var mainColor = options.background || options.backgroundColor;
|
|
24721
|
-
if (iconOpts) {
|
|
24722
|
-
var iconContainer = this._createHTMLElement({ tagName: "div", className: "notyf__icon" });
|
|
24723
|
-
if (typeof iconOpts === "string" || iconOpts instanceof String)
|
|
24724
|
-
iconContainer.innerHTML = new String(iconOpts).valueOf();
|
|
24725
|
-
if (typeof iconOpts === "object") {
|
|
24726
|
-
var _a3 = iconOpts.tagName, tagName = _a3 === void 0 ? "i" : _a3, className_1 = iconOpts.className, text = iconOpts.text, _b3 = iconOpts.color, color = _b3 === void 0 ? mainColor : _b3;
|
|
24727
|
-
var iconElement = this._createHTMLElement({ tagName, className: className_1, text });
|
|
24728
|
-
if (color)
|
|
24729
|
-
iconElement.style.color = color;
|
|
24730
|
-
iconContainer.appendChild(iconElement);
|
|
24731
|
-
}
|
|
24732
|
-
wrapper.appendChild(iconContainer);
|
|
24733
|
-
}
|
|
24734
|
-
wrapper.appendChild(message);
|
|
24735
|
-
notificationElem.appendChild(wrapper);
|
|
24736
|
-
if (mainColor) {
|
|
24737
|
-
if (options.ripple) {
|
|
24738
|
-
ripple.style.background = mainColor;
|
|
24739
|
-
notificationElem.appendChild(ripple);
|
|
24740
|
-
} else {
|
|
24741
|
-
notificationElem.style.background = mainColor;
|
|
24742
|
-
}
|
|
24743
|
-
}
|
|
24744
|
-
if (options.dismissible) {
|
|
24745
|
-
var dismissWrapper = this._createHTMLElement({ tagName: "div", className: "notyf__dismiss" });
|
|
24746
|
-
var dismissButton = this._createHTMLElement({
|
|
24747
|
-
tagName: "button",
|
|
24748
|
-
className: "notyf__dismiss-btn"
|
|
24749
|
-
});
|
|
24750
|
-
dismissWrapper.appendChild(dismissButton);
|
|
24751
|
-
wrapper.appendChild(dismissWrapper);
|
|
24752
|
-
notificationElem.classList.add("notyf__toast--dismissible");
|
|
24753
|
-
dismissButton.addEventListener("click", function(event) {
|
|
24754
|
-
var _a4, _b4;
|
|
24755
|
-
(_b4 = (_a4 = _this.events)[NotyfEvent.Dismiss]) === null || _b4 === void 0 ? void 0 : _b4.call(_a4, { target: notification, event });
|
|
24756
|
-
event.stopPropagation();
|
|
24757
|
-
});
|
|
24758
|
-
}
|
|
24759
|
-
notificationElem.addEventListener("click", function(event) {
|
|
24760
|
-
var _a4, _b4;
|
|
24761
|
-
return (_b4 = (_a4 = _this.events)[NotyfEvent.Click]) === null || _b4 === void 0 ? void 0 : _b4.call(_a4, { target: notification, event });
|
|
24762
|
-
});
|
|
24763
|
-
var className = this.getYPosition(options) === "top" ? "upper" : "lower";
|
|
24764
|
-
notificationElem.classList.add("notyf__toast--" + className);
|
|
24765
|
-
return notificationElem;
|
|
24766
|
-
};
|
|
24767
|
-
NotyfView2.prototype._createHTMLElement = function(_a3) {
|
|
24768
|
-
var tagName = _a3.tagName, className = _a3.className, text = _a3.text;
|
|
24769
|
-
var elem = document.createElement(tagName);
|
|
24770
|
-
if (className) {
|
|
24771
|
-
elem.className = className;
|
|
24772
|
-
}
|
|
24773
|
-
elem.textContent = text || null;
|
|
24774
|
-
return elem;
|
|
24775
|
-
};
|
|
24776
|
-
NotyfView2.prototype._createA11yContainer = function() {
|
|
24777
|
-
var a11yContainer = this._createHTMLElement({ tagName: "div", className: "notyf-announcer" });
|
|
24778
|
-
a11yContainer.setAttribute("aria-atomic", "true");
|
|
24779
|
-
a11yContainer.setAttribute("aria-live", "polite");
|
|
24780
|
-
a11yContainer.style.border = "0";
|
|
24781
|
-
a11yContainer.style.clip = "rect(0 0 0 0)";
|
|
24782
|
-
a11yContainer.style.height = "1px";
|
|
24783
|
-
a11yContainer.style.margin = "-1px";
|
|
24784
|
-
a11yContainer.style.overflow = "hidden";
|
|
24785
|
-
a11yContainer.style.padding = "0";
|
|
24786
|
-
a11yContainer.style.position = "absolute";
|
|
24787
|
-
a11yContainer.style.width = "1px";
|
|
24788
|
-
a11yContainer.style.outline = "0";
|
|
24789
|
-
document.body.appendChild(a11yContainer);
|
|
24790
|
-
this.a11yContainer = a11yContainer;
|
|
24791
|
-
};
|
|
24792
|
-
NotyfView2.prototype._announce = function(message) {
|
|
24793
|
-
var _this = this;
|
|
24794
|
-
this.a11yContainer.textContent = "";
|
|
24795
|
-
setTimeout(function() {
|
|
24796
|
-
_this.a11yContainer.textContent = message;
|
|
24797
|
-
}, 100);
|
|
24798
|
-
};
|
|
24799
|
-
NotyfView2.prototype._getAnimationEndEventName = function() {
|
|
24800
|
-
var el2 = document.createElement("_fake");
|
|
24801
|
-
var transitions = {
|
|
24802
|
-
MozTransition: "animationend",
|
|
24803
|
-
OTransition: "oAnimationEnd",
|
|
24804
|
-
WebkitTransition: "webkitAnimationEnd",
|
|
24805
|
-
transition: "animationend"
|
|
24806
|
-
};
|
|
24807
|
-
var t2;
|
|
24808
|
-
for (t2 in transitions) {
|
|
24809
|
-
if (el2.style[t2] !== void 0) {
|
|
24810
|
-
return transitions[t2];
|
|
24811
|
-
}
|
|
24812
|
-
}
|
|
24813
|
-
return "animationend";
|
|
24814
|
-
};
|
|
24815
|
-
return NotyfView2;
|
|
24816
|
-
})()
|
|
24817
|
-
);
|
|
24818
|
-
var Notyf = (
|
|
24819
|
-
/** @class */
|
|
24820
|
-
(function() {
|
|
24821
|
-
function Notyf2(opts) {
|
|
24822
|
-
var _this = this;
|
|
24823
|
-
this.dismiss = this._removeNotification;
|
|
24824
|
-
this.notifications = new NotyfArray();
|
|
24825
|
-
this.view = new NotyfView();
|
|
24826
|
-
var types2 = this.registerTypes(opts);
|
|
24827
|
-
this.options = __assign(__assign({}, DEFAULT_OPTIONS), opts);
|
|
24828
|
-
this.options.types = types2;
|
|
24829
|
-
this.notifications.onUpdate(function(elem, type2) {
|
|
24830
|
-
return _this.view.update(elem, type2);
|
|
24831
|
-
});
|
|
24832
|
-
this.view.on(NotyfEvent.Dismiss, function(_a3) {
|
|
24833
|
-
var target = _a3.target, event = _a3.event;
|
|
24834
|
-
_this._removeNotification(target);
|
|
24835
|
-
target["triggerEvent"](NotyfEvent.Dismiss, event);
|
|
24836
|
-
});
|
|
24837
|
-
this.view.on(NotyfEvent.Click, function(_a3) {
|
|
24838
|
-
var target = _a3.target, event = _a3.event;
|
|
24839
|
-
return target["triggerEvent"](NotyfEvent.Click, event);
|
|
24840
|
-
});
|
|
24841
|
-
}
|
|
24842
|
-
__name(Notyf2, "Notyf");
|
|
24843
|
-
Notyf2.prototype.error = function(payload) {
|
|
24844
|
-
var options = this.normalizeOptions("error", payload);
|
|
24845
|
-
return this.open(options);
|
|
24846
|
-
};
|
|
24847
|
-
Notyf2.prototype.success = function(payload) {
|
|
24848
|
-
var options = this.normalizeOptions("success", payload);
|
|
24849
|
-
return this.open(options);
|
|
24850
|
-
};
|
|
24851
|
-
Notyf2.prototype.open = function(options) {
|
|
24852
|
-
var defaultOpts = this.options.types.find(function(_a3) {
|
|
24853
|
-
var type2 = _a3.type;
|
|
24854
|
-
return type2 === options.type;
|
|
24855
|
-
}) || {};
|
|
24856
|
-
var config2 = __assign(__assign({}, defaultOpts), options);
|
|
24857
|
-
this.assignProps(["ripple", "position", "dismissible"], config2);
|
|
24858
|
-
var notification = new NotyfNotification(config2);
|
|
24859
|
-
this._pushNotification(notification);
|
|
24860
|
-
return notification;
|
|
24861
|
-
};
|
|
24862
|
-
Notyf2.prototype.dismissAll = function() {
|
|
24863
|
-
while (this.notifications.splice(0, 1))
|
|
24864
|
-
;
|
|
24865
|
-
};
|
|
24866
|
-
Notyf2.prototype.assignProps = function(props, config2) {
|
|
24867
|
-
var _this = this;
|
|
24868
|
-
props.forEach(function(prop) {
|
|
24869
|
-
config2[prop] = config2[prop] == null ? _this.options[prop] : config2[prop];
|
|
24870
|
-
});
|
|
24871
|
-
};
|
|
24872
|
-
Notyf2.prototype._pushNotification = function(notification) {
|
|
24873
|
-
var _this = this;
|
|
24874
|
-
this.notifications.push(notification);
|
|
24875
|
-
var duration = notification.options.duration !== void 0 ? notification.options.duration : this.options.duration;
|
|
24876
|
-
if (duration) {
|
|
24877
|
-
setTimeout(function() {
|
|
24878
|
-
return _this._removeNotification(notification);
|
|
24879
|
-
}, duration);
|
|
24880
|
-
}
|
|
24881
|
-
};
|
|
24882
|
-
Notyf2.prototype._removeNotification = function(notification) {
|
|
24883
|
-
var index2 = this.notifications.indexOf(notification);
|
|
24884
|
-
if (index2 !== -1) {
|
|
24885
|
-
this.notifications.splice(index2, 1);
|
|
24886
|
-
}
|
|
24887
|
-
};
|
|
24888
|
-
Notyf2.prototype.normalizeOptions = function(type2, payload) {
|
|
24889
|
-
var options = { type: type2 };
|
|
24890
|
-
if (typeof payload === "string") {
|
|
24891
|
-
options.message = payload;
|
|
24892
|
-
} else if (typeof payload === "object") {
|
|
24893
|
-
options = __assign(__assign({}, options), payload);
|
|
24894
|
-
}
|
|
24895
|
-
return options;
|
|
24896
|
-
};
|
|
24897
|
-
Notyf2.prototype.registerTypes = function(opts) {
|
|
24898
|
-
var incomingTypes = (opts && opts.types || []).slice();
|
|
24899
|
-
var finalDefaultTypes = DEFAULT_OPTIONS.types.map(function(defaultType) {
|
|
24900
|
-
var userTypeIdx = -1;
|
|
24901
|
-
incomingTypes.forEach(function(t2, idx) {
|
|
24902
|
-
if (t2.type === defaultType.type)
|
|
24903
|
-
userTypeIdx = idx;
|
|
24904
|
-
});
|
|
24905
|
-
var userType = userTypeIdx !== -1 ? incomingTypes.splice(userTypeIdx, 1)[0] : {};
|
|
24906
|
-
return __assign(__assign({}, defaultType), userType);
|
|
24907
|
-
});
|
|
24908
|
-
return finalDefaultTypes.concat(incomingTypes);
|
|
24909
|
-
};
|
|
24910
|
-
return Notyf2;
|
|
24911
|
-
})()
|
|
24912
|
-
);
|
|
24913
24651
|
const global$1 = globalThis || void 0 || self;
|
|
24914
24652
|
var _globalThis$1 = typeof globalThis === "object" ? globalThis : typeof self === "object" ? self : typeof window === "object" ? window : typeof global$1 === "object" ? global$1 : {};
|
|
24915
24653
|
var VERSION$2 = "1.9.0";
|
|
@@ -26231,13 +25969,13 @@ const _Components = class _Components {
|
|
|
26231
25969
|
};
|
|
26232
25970
|
__name(_Components, "Components");
|
|
26233
25971
|
let Components = _Components;
|
|
26234
|
-
const pkg$
|
|
25972
|
+
const pkg$d = {
|
|
26235
25973
|
name: "audio",
|
|
26236
25974
|
version: "0.1.0",
|
|
26237
25975
|
description: "Web Audio API device driver"
|
|
26238
25976
|
};
|
|
26239
25977
|
async function cli$d(options) {
|
|
26240
|
-
options.kernel.log.debug(`${pkg$
|
|
25978
|
+
options.kernel.log.debug(`${pkg$d.name} CLI`, options.args);
|
|
26241
25979
|
const usage = `
|
|
26242
25980
|
Usage: audio <command>
|
|
26243
25981
|
|
|
@@ -26346,7 +26084,7 @@ async function test$2(kernel, shell) {
|
|
|
26346
26084
|
return 0;
|
|
26347
26085
|
}
|
|
26348
26086
|
__name(test$2, "test$2");
|
|
26349
|
-
async function getDrivers$
|
|
26087
|
+
async function getDrivers$d(kernel) {
|
|
26350
26088
|
const drivers = [];
|
|
26351
26089
|
drivers.push({
|
|
26352
26090
|
name: "audio",
|
|
@@ -26354,7 +26092,7 @@ async function getDrivers$c(kernel) {
|
|
|
26354
26092
|
major: 14,
|
|
26355
26093
|
minor: 4,
|
|
26356
26094
|
data: {
|
|
26357
|
-
version: pkg$
|
|
26095
|
+
version: pkg$d.version,
|
|
26358
26096
|
kernel: kernel.id,
|
|
26359
26097
|
context: new AudioContext()
|
|
26360
26098
|
}
|
|
@@ -26427,12 +26165,12 @@ async function getDrivers$c(kernel) {
|
|
|
26427
26165
|
});
|
|
26428
26166
|
return drivers;
|
|
26429
26167
|
}
|
|
26430
|
-
__name(getDrivers$
|
|
26168
|
+
__name(getDrivers$d, "getDrivers$d");
|
|
26431
26169
|
const AudioDevice = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
26432
26170
|
__proto__: null,
|
|
26433
26171
|
cli: cli$d,
|
|
26434
|
-
getDrivers: getDrivers$
|
|
26435
|
-
pkg: pkg$
|
|
26172
|
+
getDrivers: getDrivers$d,
|
|
26173
|
+
pkg: pkg$d
|
|
26436
26174
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
26437
26175
|
function isObject$8(input) {
|
|
26438
26176
|
return typeof input === "object" && input !== null;
|
|
@@ -26631,7 +26369,7 @@ ansi$5.erase = {
|
|
|
26631
26369
|
return csi$5 + (n2 || 0) + "K";
|
|
26632
26370
|
}, "inLine")
|
|
26633
26371
|
};
|
|
26634
|
-
const pkg$
|
|
26372
|
+
const pkg$c = {
|
|
26635
26373
|
name: "battery",
|
|
26636
26374
|
version: "0.1.0",
|
|
26637
26375
|
description: "Battery device driver"
|
|
@@ -26691,7 +26429,7 @@ Commands:
|
|
|
26691
26429
|
}
|
|
26692
26430
|
}
|
|
26693
26431
|
__name(cli$c, "cli$c");
|
|
26694
|
-
async function getDrivers$
|
|
26432
|
+
async function getDrivers$c(kernel) {
|
|
26695
26433
|
const drivers = [];
|
|
26696
26434
|
if ("getBattery" in navigator) {
|
|
26697
26435
|
const battery = await navigator.getBattery();
|
|
@@ -26718,14 +26456,14 @@ async function getDrivers$b(kernel) {
|
|
|
26718
26456
|
}
|
|
26719
26457
|
return drivers;
|
|
26720
26458
|
}
|
|
26721
|
-
__name(getDrivers$
|
|
26459
|
+
__name(getDrivers$c, "getDrivers$c");
|
|
26722
26460
|
const BatteryDevice = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
26723
26461
|
__proto__: null,
|
|
26724
26462
|
cli: cli$c,
|
|
26725
|
-
getDrivers: getDrivers$
|
|
26726
|
-
pkg: pkg$
|
|
26463
|
+
getDrivers: getDrivers$c,
|
|
26464
|
+
pkg: pkg$c
|
|
26727
26465
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
26728
|
-
const pkg$
|
|
26466
|
+
const pkg$b = {
|
|
26729
26467
|
name: "bluetooth",
|
|
26730
26468
|
version: "0.1.0",
|
|
26731
26469
|
description: "Web Bluetooth API device driver"
|
|
@@ -26976,7 +26714,7 @@ Commands:
|
|
|
26976
26714
|
}
|
|
26977
26715
|
}
|
|
26978
26716
|
__name(cli$b, "cli$b");
|
|
26979
|
-
async function getDrivers$
|
|
26717
|
+
async function getDrivers$b(kernel) {
|
|
26980
26718
|
const drivers = [{
|
|
26981
26719
|
name: "bluetooth",
|
|
26982
26720
|
init: /* @__PURE__ */ __name(() => ({
|
|
@@ -26996,12 +26734,12 @@ async function getDrivers$a(kernel) {
|
|
|
26996
26734
|
}];
|
|
26997
26735
|
return drivers;
|
|
26998
26736
|
}
|
|
26999
|
-
__name(getDrivers$
|
|
26737
|
+
__name(getDrivers$b, "getDrivers$b");
|
|
27000
26738
|
const BluetoothDevice = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
27001
26739
|
__proto__: null,
|
|
27002
26740
|
cli: cli$b,
|
|
27003
|
-
getDrivers: getDrivers$
|
|
27004
|
-
pkg: pkg$
|
|
26741
|
+
getDrivers: getDrivers$b,
|
|
26742
|
+
pkg: pkg$b
|
|
27005
26743
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
27006
26744
|
function isObject$7(input) {
|
|
27007
26745
|
return typeof input === "object" && input !== null;
|
|
@@ -27200,7 +26938,7 @@ ansi$4.erase = {
|
|
|
27200
26938
|
return csi$4 + (n2 || 0) + "K";
|
|
27201
26939
|
}, "inLine")
|
|
27202
26940
|
};
|
|
27203
|
-
const pkg$
|
|
26941
|
+
const pkg$a = {
|
|
27204
26942
|
name: "gamepad",
|
|
27205
26943
|
version: "0.1.0",
|
|
27206
26944
|
description: ""
|
|
@@ -27276,25 +27014,25 @@ Commands:
|
|
|
27276
27014
|
}
|
|
27277
27015
|
}
|
|
27278
27016
|
__name(cli$a, "cli$a");
|
|
27279
|
-
async function getDrivers$
|
|
27017
|
+
async function getDrivers$a(kernel) {
|
|
27280
27018
|
const drivers = [{
|
|
27281
27019
|
name: "gamepad",
|
|
27282
27020
|
init: /* @__PURE__ */ __name(() => ({
|
|
27283
27021
|
major: 13,
|
|
27284
27022
|
minor: 1,
|
|
27285
|
-
data: { kernelId: kernel.id, version: pkg$
|
|
27023
|
+
data: { kernelId: kernel.id, version: pkg$a.version }
|
|
27286
27024
|
}), "init"),
|
|
27287
27025
|
read: /* @__PURE__ */ __name(() => 0, "read"),
|
|
27288
27026
|
write: /* @__PURE__ */ __name(() => 0, "write")
|
|
27289
27027
|
}];
|
|
27290
27028
|
return drivers;
|
|
27291
27029
|
}
|
|
27292
|
-
__name(getDrivers$
|
|
27030
|
+
__name(getDrivers$a, "getDrivers$a");
|
|
27293
27031
|
const GamepadDevice = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
27294
27032
|
__proto__: null,
|
|
27295
27033
|
cli: cli$a,
|
|
27296
|
-
getDrivers: getDrivers$
|
|
27297
|
-
pkg: pkg$
|
|
27034
|
+
getDrivers: getDrivers$a,
|
|
27035
|
+
pkg: pkg$a
|
|
27298
27036
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
27299
27037
|
function isObject$6(input) {
|
|
27300
27038
|
return typeof input === "object" && input !== null;
|
|
@@ -27493,7 +27231,7 @@ ansi$3.erase = {
|
|
|
27493
27231
|
return csi$3 + (n2 || 0) + "K";
|
|
27494
27232
|
}, "inLine")
|
|
27495
27233
|
};
|
|
27496
|
-
const pkg$
|
|
27234
|
+
const pkg$9 = {
|
|
27497
27235
|
name: "geo",
|
|
27498
27236
|
version: "0.1.0",
|
|
27499
27237
|
description: "Geolocation device driver"
|
|
@@ -27563,7 +27301,7 @@ Commands:
|
|
|
27563
27301
|
}
|
|
27564
27302
|
}
|
|
27565
27303
|
__name(cli$9, "cli$9");
|
|
27566
|
-
async function getDrivers$
|
|
27304
|
+
async function getDrivers$9(kernel) {
|
|
27567
27305
|
const drivers = [];
|
|
27568
27306
|
if ("geolocation" in navigator) {
|
|
27569
27307
|
let lastPosition = {
|
|
@@ -27600,7 +27338,7 @@ async function getDrivers$8(kernel) {
|
|
|
27600
27338
|
minor: 101,
|
|
27601
27339
|
data: {
|
|
27602
27340
|
kernelId: kernel.id,
|
|
27603
|
-
version: pkg$
|
|
27341
|
+
version: pkg$9.version
|
|
27604
27342
|
}
|
|
27605
27343
|
}), "init"),
|
|
27606
27344
|
read: /* @__PURE__ */ __name((_2, buffer2) => {
|
|
@@ -27618,20 +27356,20 @@ async function getDrivers$8(kernel) {
|
|
|
27618
27356
|
}
|
|
27619
27357
|
return drivers;
|
|
27620
27358
|
}
|
|
27621
|
-
__name(getDrivers$
|
|
27359
|
+
__name(getDrivers$9, "getDrivers$9");
|
|
27622
27360
|
const GeoDevice = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
27623
27361
|
__proto__: null,
|
|
27624
27362
|
cli: cli$9,
|
|
27625
|
-
getDrivers: getDrivers$
|
|
27626
|
-
pkg: pkg$
|
|
27363
|
+
getDrivers: getDrivers$9,
|
|
27364
|
+
pkg: pkg$9
|
|
27627
27365
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
27628
|
-
const pkg$
|
|
27366
|
+
const pkg$8 = {
|
|
27629
27367
|
name: "gpu",
|
|
27630
27368
|
version: "0.1.0",
|
|
27631
27369
|
description: "WebGPU device driver"
|
|
27632
27370
|
};
|
|
27633
27371
|
async function cli$8(options) {
|
|
27634
|
-
options.kernel.log.debug(`${pkg$
|
|
27372
|
+
options.kernel.log.debug(`${pkg$8.name} CLI`, options.args);
|
|
27635
27373
|
const usage = `
|
|
27636
27374
|
Usage: gpu <command>
|
|
27637
27375
|
|
|
@@ -27658,7 +27396,7 @@ Launch chrome using: google-chrome --enable-unsafe-webgpu --enable-features=Vulk
|
|
|
27658
27396
|
return 0;
|
|
27659
27397
|
}
|
|
27660
27398
|
__name(cli$8, "cli$8");
|
|
27661
|
-
async function getDrivers$
|
|
27399
|
+
async function getDrivers$8(kernel) {
|
|
27662
27400
|
const drivers = [];
|
|
27663
27401
|
if ("gpu" in navigator) {
|
|
27664
27402
|
const adapter = await navigator.gpu.requestAdapter();
|
|
@@ -27686,7 +27424,7 @@ async function getDrivers$7(kernel) {
|
|
|
27686
27424
|
}
|
|
27687
27425
|
return drivers;
|
|
27688
27426
|
}
|
|
27689
|
-
__name(getDrivers$
|
|
27427
|
+
__name(getDrivers$8, "getDrivers$8");
|
|
27690
27428
|
async function test$1(kernel) {
|
|
27691
27429
|
if (!("gpu" in navigator)) throw new Error("WebGPU not available");
|
|
27692
27430
|
const adapter = await navigator.gpu.requestAdapter();
|
|
@@ -27773,8 +27511,8 @@ __name(test$1, "test$1");
|
|
|
27773
27511
|
const GPUDevice = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
27774
27512
|
__proto__: null,
|
|
27775
27513
|
cli: cli$8,
|
|
27776
|
-
getDrivers: getDrivers$
|
|
27777
|
-
pkg: pkg$
|
|
27514
|
+
getDrivers: getDrivers$8,
|
|
27515
|
+
pkg: pkg$8
|
|
27778
27516
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
27779
27517
|
function isObject$5(input) {
|
|
27780
27518
|
return typeof input === "object" && input !== null;
|
|
@@ -27973,7 +27711,7 @@ ansi$2.erase = {
|
|
|
27973
27711
|
return csi$2 + (n2 || 0) + "K";
|
|
27974
27712
|
}, "inLine")
|
|
27975
27713
|
};
|
|
27976
|
-
const pkg$
|
|
27714
|
+
const pkg$7 = {
|
|
27977
27715
|
name: "hid",
|
|
27978
27716
|
version: "0.1.0",
|
|
27979
27717
|
description: "Human Interface Device (HID) driver"
|
|
@@ -28091,7 +27829,7 @@ Commands:
|
|
|
28091
27829
|
}
|
|
28092
27830
|
}
|
|
28093
27831
|
__name(cli$7, "cli$7");
|
|
28094
|
-
async function getDrivers$
|
|
27832
|
+
async function getDrivers$7(kernel) {
|
|
28095
27833
|
const deviceMap = /* @__PURE__ */ new Map();
|
|
28096
27834
|
const drivers = [{
|
|
28097
27835
|
name: "hid",
|
|
@@ -28100,7 +27838,7 @@ async function getDrivers$6(kernel) {
|
|
|
28100
27838
|
minor: 64,
|
|
28101
27839
|
data: {
|
|
28102
27840
|
kernelId: kernel.id,
|
|
28103
|
-
version: pkg$
|
|
27841
|
+
version: pkg$7.version
|
|
28104
27842
|
}
|
|
28105
27843
|
}), "init"),
|
|
28106
27844
|
read: /* @__PURE__ */ __name((_2, buffer2) => {
|
|
@@ -28131,7 +27869,7 @@ async function getDrivers$6(kernel) {
|
|
|
28131
27869
|
minor: 64 + drivers.length,
|
|
28132
27870
|
data: {
|
|
28133
27871
|
kernelId: kernel.id,
|
|
28134
|
-
version: pkg$
|
|
27872
|
+
version: pkg$7.version
|
|
28135
27873
|
}
|
|
28136
27874
|
}), "init"),
|
|
28137
27875
|
read: /* @__PURE__ */ __name(() => 0, "read"),
|
|
@@ -28141,14 +27879,14 @@ async function getDrivers$6(kernel) {
|
|
|
28141
27879
|
}
|
|
28142
27880
|
return drivers;
|
|
28143
27881
|
}
|
|
28144
|
-
__name(getDrivers$
|
|
27882
|
+
__name(getDrivers$7, "getDrivers$7");
|
|
28145
27883
|
const HIDDevice = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
28146
27884
|
__proto__: null,
|
|
28147
27885
|
cli: cli$7,
|
|
28148
|
-
getDrivers: getDrivers$
|
|
28149
|
-
pkg: pkg$
|
|
27886
|
+
getDrivers: getDrivers$7,
|
|
27887
|
+
pkg: pkg$7
|
|
28150
27888
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
28151
|
-
const pkg$
|
|
27889
|
+
const pkg$6 = {
|
|
28152
27890
|
name: "midi",
|
|
28153
27891
|
version: "0.1.0",
|
|
28154
27892
|
description: "MIDI device driver"
|
|
@@ -28271,7 +28009,7 @@ Commands:
|
|
|
28271
28009
|
}
|
|
28272
28010
|
}
|
|
28273
28011
|
__name(cli$6, "cli$6");
|
|
28274
|
-
async function getDrivers$
|
|
28012
|
+
async function getDrivers$6(kernel) {
|
|
28275
28013
|
const drivers = [{
|
|
28276
28014
|
name: "midi",
|
|
28277
28015
|
init: /* @__PURE__ */ __name(() => ({
|
|
@@ -28284,14 +28022,14 @@ async function getDrivers$5(kernel) {
|
|
|
28284
28022
|
}];
|
|
28285
28023
|
return drivers;
|
|
28286
28024
|
}
|
|
28287
|
-
__name(getDrivers$
|
|
28025
|
+
__name(getDrivers$6, "getDrivers$6");
|
|
28288
28026
|
const MIDIDevice = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
28289
28027
|
__proto__: null,
|
|
28290
28028
|
cli: cli$6,
|
|
28291
|
-
getDrivers: getDrivers$
|
|
28292
|
-
pkg: pkg$
|
|
28029
|
+
getDrivers: getDrivers$6,
|
|
28030
|
+
pkg: pkg$6
|
|
28293
28031
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
28294
|
-
const pkg$
|
|
28032
|
+
const pkg$5 = {
|
|
28295
28033
|
name: "presentation",
|
|
28296
28034
|
version: "0.1.0",
|
|
28297
28035
|
description: "Web Presentation API device driver"
|
|
@@ -28326,7 +28064,7 @@ Commands:
|
|
|
28326
28064
|
return 0;
|
|
28327
28065
|
}
|
|
28328
28066
|
__name(cli$5, "cli$5");
|
|
28329
|
-
async function getDrivers$
|
|
28067
|
+
async function getDrivers$5() {
|
|
28330
28068
|
const drivers = [];
|
|
28331
28069
|
if ("presentation" in navigator) {
|
|
28332
28070
|
drivers.push({
|
|
@@ -28341,7 +28079,7 @@ async function getDrivers$4() {
|
|
|
28341
28079
|
}
|
|
28342
28080
|
return drivers;
|
|
28343
28081
|
}
|
|
28344
|
-
__name(getDrivers$
|
|
28082
|
+
__name(getDrivers$5, "getDrivers$5");
|
|
28345
28083
|
async function listDisplays(kernel, presentationUrl) {
|
|
28346
28084
|
if (!("PresentationRequest" in globalThis)) throw new Error("PresentationRequest API not supported");
|
|
28347
28085
|
try {
|
|
@@ -28391,8 +28129,8 @@ __name(startPresentation, "startPresentation");
|
|
|
28391
28129
|
const PresentationDevice = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
28392
28130
|
__proto__: null,
|
|
28393
28131
|
cli: cli$5,
|
|
28394
|
-
getDrivers: getDrivers$
|
|
28395
|
-
pkg: pkg$
|
|
28132
|
+
getDrivers: getDrivers$5,
|
|
28133
|
+
pkg: pkg$5
|
|
28396
28134
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
28397
28135
|
function isObject$4(input) {
|
|
28398
28136
|
return typeof input === "object" && input !== null;
|
|
@@ -28591,7 +28329,7 @@ ansi$1.erase = {
|
|
|
28591
28329
|
return csi$1 + (n2 || 0) + "K";
|
|
28592
28330
|
}, "inLine")
|
|
28593
28331
|
};
|
|
28594
|
-
const pkg$
|
|
28332
|
+
const pkg$4 = {
|
|
28595
28333
|
name: "sensors",
|
|
28596
28334
|
version: "0.1.0",
|
|
28597
28335
|
description: "Device sensors driver"
|
|
@@ -28678,16 +28416,16 @@ Commands:
|
|
|
28678
28416
|
}
|
|
28679
28417
|
}
|
|
28680
28418
|
__name(cli$4, "cli$4");
|
|
28681
|
-
async function getDrivers$
|
|
28419
|
+
async function getDrivers$4(kernel) {
|
|
28682
28420
|
const drivers = [{
|
|
28683
28421
|
name: "sensors",
|
|
28684
|
-
init: /* @__PURE__ */ __name(() => ({ major: 0, minor: 0, data: { kernelId: kernel.id, version: pkg$
|
|
28422
|
+
init: /* @__PURE__ */ __name(() => ({ major: 0, minor: 0, data: { kernelId: kernel.id, version: pkg$4.version } }), "init"),
|
|
28685
28423
|
read: /* @__PURE__ */ __name(() => 0, "read"),
|
|
28686
28424
|
write: /* @__PURE__ */ __name(() => 0, "write")
|
|
28687
28425
|
}];
|
|
28688
28426
|
return drivers;
|
|
28689
28427
|
}
|
|
28690
|
-
__name(getDrivers$
|
|
28428
|
+
__name(getDrivers$4, "getDrivers$4");
|
|
28691
28429
|
const activeSensors = /* @__PURE__ */ new Map();
|
|
28692
28430
|
let watchCounter = 0;
|
|
28693
28431
|
async function readSensor(sensorType, terminal) {
|
|
@@ -28879,11 +28617,11 @@ __name(isSensorType, "isSensorType");
|
|
|
28879
28617
|
const SensorsDevice = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
28880
28618
|
__proto__: null,
|
|
28881
28619
|
cli: cli$4,
|
|
28882
|
-
getDrivers: getDrivers$
|
|
28883
|
-
pkg: pkg$
|
|
28620
|
+
getDrivers: getDrivers$4,
|
|
28621
|
+
pkg: pkg$4
|
|
28884
28622
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
28885
28623
|
const availablePorts = /* @__PURE__ */ new Set();
|
|
28886
|
-
const pkg$
|
|
28624
|
+
const pkg$3 = {
|
|
28887
28625
|
name: "serial",
|
|
28888
28626
|
version: "0.1.0",
|
|
28889
28627
|
description: "Web Serial device driver",
|
|
@@ -28944,7 +28682,7 @@ async function cli$3(options) {
|
|
|
28944
28682
|
}
|
|
28945
28683
|
}
|
|
28946
28684
|
default:
|
|
28947
|
-
terminal.writeln(pkg$
|
|
28685
|
+
terminal.writeln(pkg$3.help);
|
|
28948
28686
|
return 0;
|
|
28949
28687
|
}
|
|
28950
28688
|
}
|
|
@@ -28977,7 +28715,7 @@ async function createDriver(name) {
|
|
|
28977
28715
|
};
|
|
28978
28716
|
}
|
|
28979
28717
|
__name(createDriver, "createDriver");
|
|
28980
|
-
async function getDrivers$
|
|
28718
|
+
async function getDrivers$3(kernel) {
|
|
28981
28719
|
if (typeof navigator === "undefined" || !navigator.serial) return [];
|
|
28982
28720
|
navigator.serial.addEventListener("connect", async (event) => {
|
|
28983
28721
|
kernel.events.emit("device:connect", event.target);
|
|
@@ -28991,10 +28729,169 @@ async function getDrivers$2(kernel) {
|
|
|
28991
28729
|
for (let i2 = 0; i2 < ports.length; i2++) drivers.push(await createDriver(`ttyS${i2}`));
|
|
28992
28730
|
return drivers;
|
|
28993
28731
|
}
|
|
28994
|
-
__name(getDrivers$
|
|
28732
|
+
__name(getDrivers$3, "getDrivers$3");
|
|
28995
28733
|
const SerialDevice = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
28996
28734
|
__proto__: null,
|
|
28997
28735
|
cli: cli$3,
|
|
28736
|
+
getDrivers: getDrivers$3,
|
|
28737
|
+
pkg: pkg$3
|
|
28738
|
+
}, Symbol.toStringTag, { value: "Module" }));
|
|
28739
|
+
const pkg$2 = {
|
|
28740
|
+
name: "tty",
|
|
28741
|
+
version: "0.1.0",
|
|
28742
|
+
description: "TTY pseudo-device drivers for /dev/ttyN"
|
|
28743
|
+
};
|
|
28744
|
+
const _TTYReadBuffer = class _TTYReadBuffer {
|
|
28745
|
+
constructor() {
|
|
28746
|
+
__publicField(this, "buffer", []);
|
|
28747
|
+
__publicField(this, "maxSize", 1024 * 1024);
|
|
28748
|
+
__publicField(this, "currentSize", 0);
|
|
28749
|
+
}
|
|
28750
|
+
append(data) {
|
|
28751
|
+
this.buffer.push(data);
|
|
28752
|
+
this.currentSize += data.length;
|
|
28753
|
+
while (this.currentSize > this.maxSize && this.buffer.length > 0) {
|
|
28754
|
+
const removed = this.buffer.shift();
|
|
28755
|
+
if (removed)
|
|
28756
|
+
this.currentSize -= removed.length;
|
|
28757
|
+
}
|
|
28758
|
+
}
|
|
28759
|
+
read(target, offset, length) {
|
|
28760
|
+
if (this.buffer.length === 0)
|
|
28761
|
+
return 0;
|
|
28762
|
+
let bytesRead = 0;
|
|
28763
|
+
const targetView = new Uint8Array(target.buffer, target.byteOffset + offset, length);
|
|
28764
|
+
while (bytesRead < length && this.buffer.length > 0) {
|
|
28765
|
+
const chunk = this.buffer[0];
|
|
28766
|
+
if (!chunk)
|
|
28767
|
+
break;
|
|
28768
|
+
const remaining = length - bytesRead;
|
|
28769
|
+
const toCopy = Math.min(remaining, chunk.length);
|
|
28770
|
+
targetView.set(chunk.subarray(0, toCopy), bytesRead);
|
|
28771
|
+
bytesRead += toCopy;
|
|
28772
|
+
if (toCopy === chunk.length) {
|
|
28773
|
+
this.buffer.shift();
|
|
28774
|
+
this.currentSize -= chunk.length;
|
|
28775
|
+
} else {
|
|
28776
|
+
this.buffer[0] = chunk.subarray(toCopy);
|
|
28777
|
+
this.currentSize -= toCopy;
|
|
28778
|
+
}
|
|
28779
|
+
}
|
|
28780
|
+
return bytesRead;
|
|
28781
|
+
}
|
|
28782
|
+
clear() {
|
|
28783
|
+
this.buffer = [];
|
|
28784
|
+
this.currentSize = 0;
|
|
28785
|
+
}
|
|
28786
|
+
get size() {
|
|
28787
|
+
return this.currentSize;
|
|
28788
|
+
}
|
|
28789
|
+
};
|
|
28790
|
+
__name(_TTYReadBuffer, "TTYReadBuffer");
|
|
28791
|
+
let TTYReadBuffer = _TTYReadBuffer;
|
|
28792
|
+
const ttyBuffers = /* @__PURE__ */ new Map();
|
|
28793
|
+
const bufferedTerminals = /* @__PURE__ */ new WeakSet();
|
|
28794
|
+
function getOrCreateBuffer(ttyNumber) {
|
|
28795
|
+
if (!ttyBuffers.has(ttyNumber))
|
|
28796
|
+
ttyBuffers.set(ttyNumber, new TTYReadBuffer());
|
|
28797
|
+
return ttyBuffers.get(ttyNumber);
|
|
28798
|
+
}
|
|
28799
|
+
__name(getOrCreateBuffer, "getOrCreateBuffer");
|
|
28800
|
+
function setupTTYOutputBuffering(kernel, ttyNumber) {
|
|
28801
|
+
const shell = kernel.getShell(ttyNumber);
|
|
28802
|
+
if (!shell || !shell.terminal)
|
|
28803
|
+
return;
|
|
28804
|
+
const terminal = shell.terminal;
|
|
28805
|
+
const buffer2 = getOrCreateBuffer(ttyNumber);
|
|
28806
|
+
if (bufferedTerminals.has(terminal))
|
|
28807
|
+
return;
|
|
28808
|
+
const originalWrite = terminal.write.bind(terminal);
|
|
28809
|
+
const originalWriteln = terminal.writeln.bind(terminal);
|
|
28810
|
+
terminal.write = function(data) {
|
|
28811
|
+
const result = originalWrite(data);
|
|
28812
|
+
if (typeof data === "string") {
|
|
28813
|
+
buffer2.append(new TextEncoder().encode(data));
|
|
28814
|
+
} else {
|
|
28815
|
+
buffer2.append(data);
|
|
28816
|
+
}
|
|
28817
|
+
return result;
|
|
28818
|
+
};
|
|
28819
|
+
terminal.writeln = function(data) {
|
|
28820
|
+
const result = originalWriteln(data);
|
|
28821
|
+
const newline = new TextEncoder().encode("\n");
|
|
28822
|
+
if (typeof data === "string") {
|
|
28823
|
+
buffer2.append(new TextEncoder().encode(data + "\n"));
|
|
28824
|
+
} else {
|
|
28825
|
+
const combined = new Uint8Array(data.length + 1);
|
|
28826
|
+
combined.set(data);
|
|
28827
|
+
combined.set(newline, data.length);
|
|
28828
|
+
buffer2.append(combined);
|
|
28829
|
+
}
|
|
28830
|
+
return result;
|
|
28831
|
+
};
|
|
28832
|
+
bufferedTerminals.add(terminal);
|
|
28833
|
+
}
|
|
28834
|
+
__name(setupTTYOutputBuffering, "setupTTYOutputBuffering");
|
|
28835
|
+
async function getDrivers$2(kernel) {
|
|
28836
|
+
const drivers = [];
|
|
28837
|
+
for (let ttyNumber = 0; ttyNumber <= 9; ttyNumber++) {
|
|
28838
|
+
const deviceName = `tty${ttyNumber}`;
|
|
28839
|
+
drivers.push({
|
|
28840
|
+
name: deviceName,
|
|
28841
|
+
singleton: true,
|
|
28842
|
+
init: /* @__PURE__ */ __name(() => {
|
|
28843
|
+
return {
|
|
28844
|
+
major: 4,
|
|
28845
|
+
minor: ttyNumber,
|
|
28846
|
+
data: {
|
|
28847
|
+
ttyNumber,
|
|
28848
|
+
kernelId: kernel.id
|
|
28849
|
+
}
|
|
28850
|
+
};
|
|
28851
|
+
}, "init"),
|
|
28852
|
+
read: /* @__PURE__ */ __name((file, buffer2, offset, end) => {
|
|
28853
|
+
const ttyNumber2 = file.data?.ttyNumber;
|
|
28854
|
+
if (ttyNumber2 === void 0)
|
|
28855
|
+
return 0;
|
|
28856
|
+
const shell = kernel.getShell(ttyNumber2);
|
|
28857
|
+
if (!shell || !shell.terminal)
|
|
28858
|
+
return 0;
|
|
28859
|
+
setupTTYOutputBuffering(kernel, ttyNumber2);
|
|
28860
|
+
const readBuffer = getOrCreateBuffer(ttyNumber2);
|
|
28861
|
+
const length = end - offset;
|
|
28862
|
+
return readBuffer.read(buffer2, offset, length);
|
|
28863
|
+
}, "read"),
|
|
28864
|
+
write: /* @__PURE__ */ __name((file, buffer2, offset) => {
|
|
28865
|
+
const ttyNumber2 = file.data?.ttyNumber;
|
|
28866
|
+
if (ttyNumber2 === void 0)
|
|
28867
|
+
return 0;
|
|
28868
|
+
const bufferView = new Uint8Array(buffer2.buffer, buffer2.byteOffset + offset, buffer2.byteLength - offset);
|
|
28869
|
+
const text = new TextDecoder().decode(bufferView);
|
|
28870
|
+
let shell = kernel.getShell(ttyNumber2);
|
|
28871
|
+
if (!shell || !shell.terminal) {
|
|
28872
|
+
const terminalContainer = document.getElementById(`terminal-tty${ttyNumber2}`);
|
|
28873
|
+
if (terminalContainer) {
|
|
28874
|
+
kernel.createShell(ttyNumber2).then((createdShell) => {
|
|
28875
|
+
if (createdShell && createdShell.terminal) {
|
|
28876
|
+
createdShell.terminal.write(text);
|
|
28877
|
+
createdShell.terminal.dispatchStdin(text);
|
|
28878
|
+
}
|
|
28879
|
+
}).catch(() => {
|
|
28880
|
+
});
|
|
28881
|
+
}
|
|
28882
|
+
return bufferView.length;
|
|
28883
|
+
}
|
|
28884
|
+
shell.terminal.write(text);
|
|
28885
|
+
shell.terminal.dispatchStdin(text);
|
|
28886
|
+
return bufferView.length;
|
|
28887
|
+
}, "write")
|
|
28888
|
+
});
|
|
28889
|
+
}
|
|
28890
|
+
return drivers;
|
|
28891
|
+
}
|
|
28892
|
+
__name(getDrivers$2, "getDrivers$2");
|
|
28893
|
+
const TTYDevice = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
28894
|
+
__proto__: null,
|
|
28998
28895
|
getDrivers: getDrivers$2,
|
|
28999
28896
|
pkg: pkg$2
|
|
29000
28897
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
@@ -29325,6 +29222,7 @@ const DefaultDevices = {
|
|
|
29325
29222
|
presentation: PresentationDevice,
|
|
29326
29223
|
sensors: SensorsDevice,
|
|
29327
29224
|
serial: SerialDevice,
|
|
29225
|
+
tty: TTYDevice,
|
|
29328
29226
|
usb: USBDevice,
|
|
29329
29227
|
webgl: WebGLDevice
|
|
29330
29228
|
};
|
|
@@ -29367,6 +29265,400 @@ function requireTopbar_min() {
|
|
|
29367
29265
|
__name(requireTopbar_min, "requireTopbar_min");
|
|
29368
29266
|
var topbar_minExports = requireTopbar_min();
|
|
29369
29267
|
const topbar = /* @__PURE__ */ getDefaultExportFromCjs(topbar_minExports);
|
|
29268
|
+
var __assign = /* @__PURE__ */ __name(function() {
|
|
29269
|
+
__assign = Object.assign || /* @__PURE__ */ __name(function __assign2(t2) {
|
|
29270
|
+
for (var s2, i2 = 1, n2 = arguments.length; i2 < n2; i2++) {
|
|
29271
|
+
s2 = arguments[i2];
|
|
29272
|
+
for (var p2 in s2) if (Object.prototype.hasOwnProperty.call(s2, p2)) t2[p2] = s2[p2];
|
|
29273
|
+
}
|
|
29274
|
+
return t2;
|
|
29275
|
+
}, "__assign");
|
|
29276
|
+
return __assign.apply(this, arguments);
|
|
29277
|
+
}, "__assign");
|
|
29278
|
+
var NotyfNotification = (
|
|
29279
|
+
/** @class */
|
|
29280
|
+
(function() {
|
|
29281
|
+
function NotyfNotification2(options) {
|
|
29282
|
+
this.options = options;
|
|
29283
|
+
this.listeners = {};
|
|
29284
|
+
}
|
|
29285
|
+
__name(NotyfNotification2, "NotyfNotification");
|
|
29286
|
+
NotyfNotification2.prototype.on = function(eventType, cb) {
|
|
29287
|
+
var callbacks = this.listeners[eventType] || [];
|
|
29288
|
+
this.listeners[eventType] = callbacks.concat([cb]);
|
|
29289
|
+
};
|
|
29290
|
+
NotyfNotification2.prototype.triggerEvent = function(eventType, event) {
|
|
29291
|
+
var _this = this;
|
|
29292
|
+
var callbacks = this.listeners[eventType] || [];
|
|
29293
|
+
callbacks.forEach(function(cb) {
|
|
29294
|
+
return cb({ target: _this, event });
|
|
29295
|
+
});
|
|
29296
|
+
};
|
|
29297
|
+
return NotyfNotification2;
|
|
29298
|
+
})()
|
|
29299
|
+
);
|
|
29300
|
+
var NotyfArrayEvent;
|
|
29301
|
+
(function(NotyfArrayEvent2) {
|
|
29302
|
+
NotyfArrayEvent2[NotyfArrayEvent2["Add"] = 0] = "Add";
|
|
29303
|
+
NotyfArrayEvent2[NotyfArrayEvent2["Remove"] = 1] = "Remove";
|
|
29304
|
+
})(NotyfArrayEvent || (NotyfArrayEvent = {}));
|
|
29305
|
+
var NotyfArray = (
|
|
29306
|
+
/** @class */
|
|
29307
|
+
(function() {
|
|
29308
|
+
function NotyfArray2() {
|
|
29309
|
+
this.notifications = [];
|
|
29310
|
+
}
|
|
29311
|
+
__name(NotyfArray2, "NotyfArray");
|
|
29312
|
+
NotyfArray2.prototype.push = function(elem) {
|
|
29313
|
+
this.notifications.push(elem);
|
|
29314
|
+
this.updateFn(elem, NotyfArrayEvent.Add, this.notifications);
|
|
29315
|
+
};
|
|
29316
|
+
NotyfArray2.prototype.splice = function(index2, num) {
|
|
29317
|
+
var elem = this.notifications.splice(index2, num)[0];
|
|
29318
|
+
this.updateFn(elem, NotyfArrayEvent.Remove, this.notifications);
|
|
29319
|
+
return elem;
|
|
29320
|
+
};
|
|
29321
|
+
NotyfArray2.prototype.indexOf = function(elem) {
|
|
29322
|
+
return this.notifications.indexOf(elem);
|
|
29323
|
+
};
|
|
29324
|
+
NotyfArray2.prototype.onUpdate = function(fn2) {
|
|
29325
|
+
this.updateFn = fn2;
|
|
29326
|
+
};
|
|
29327
|
+
return NotyfArray2;
|
|
29328
|
+
})()
|
|
29329
|
+
);
|
|
29330
|
+
var NotyfEvent;
|
|
29331
|
+
(function(NotyfEvent2) {
|
|
29332
|
+
NotyfEvent2["Dismiss"] = "dismiss";
|
|
29333
|
+
NotyfEvent2["Click"] = "click";
|
|
29334
|
+
})(NotyfEvent || (NotyfEvent = {}));
|
|
29335
|
+
var DEFAULT_OPTIONS = {
|
|
29336
|
+
types: [
|
|
29337
|
+
{
|
|
29338
|
+
type: "success",
|
|
29339
|
+
className: "notyf__toast--success",
|
|
29340
|
+
backgroundColor: "#3dc763",
|
|
29341
|
+
icon: {
|
|
29342
|
+
className: "notyf__icon--success",
|
|
29343
|
+
tagName: "i"
|
|
29344
|
+
}
|
|
29345
|
+
},
|
|
29346
|
+
{
|
|
29347
|
+
type: "error",
|
|
29348
|
+
className: "notyf__toast--error",
|
|
29349
|
+
backgroundColor: "#ed3d3d",
|
|
29350
|
+
icon: {
|
|
29351
|
+
className: "notyf__icon--error",
|
|
29352
|
+
tagName: "i"
|
|
29353
|
+
}
|
|
29354
|
+
}
|
|
29355
|
+
],
|
|
29356
|
+
duration: 2e3,
|
|
29357
|
+
ripple: true,
|
|
29358
|
+
position: {
|
|
29359
|
+
x: "right",
|
|
29360
|
+
y: "bottom"
|
|
29361
|
+
},
|
|
29362
|
+
dismissible: false
|
|
29363
|
+
};
|
|
29364
|
+
var NotyfView = (
|
|
29365
|
+
/** @class */
|
|
29366
|
+
(function() {
|
|
29367
|
+
function NotyfView2() {
|
|
29368
|
+
this.notifications = [];
|
|
29369
|
+
this.events = {};
|
|
29370
|
+
this.X_POSITION_FLEX_MAP = {
|
|
29371
|
+
left: "flex-start",
|
|
29372
|
+
center: "center",
|
|
29373
|
+
right: "flex-end"
|
|
29374
|
+
};
|
|
29375
|
+
this.Y_POSITION_FLEX_MAP = {
|
|
29376
|
+
top: "flex-start",
|
|
29377
|
+
center: "center",
|
|
29378
|
+
bottom: "flex-end"
|
|
29379
|
+
};
|
|
29380
|
+
var docFrag = document.createDocumentFragment();
|
|
29381
|
+
var notyfContainer = this._createHTMLElement({ tagName: "div", className: "notyf" });
|
|
29382
|
+
docFrag.appendChild(notyfContainer);
|
|
29383
|
+
document.body.appendChild(docFrag);
|
|
29384
|
+
this.container = notyfContainer;
|
|
29385
|
+
this.animationEndEventName = this._getAnimationEndEventName();
|
|
29386
|
+
this._createA11yContainer();
|
|
29387
|
+
}
|
|
29388
|
+
__name(NotyfView2, "NotyfView");
|
|
29389
|
+
NotyfView2.prototype.on = function(event, cb) {
|
|
29390
|
+
var _a3;
|
|
29391
|
+
this.events = __assign(__assign({}, this.events), (_a3 = {}, _a3[event] = cb, _a3));
|
|
29392
|
+
};
|
|
29393
|
+
NotyfView2.prototype.update = function(notification, type2) {
|
|
29394
|
+
if (type2 === NotyfArrayEvent.Add) {
|
|
29395
|
+
this.addNotification(notification);
|
|
29396
|
+
} else if (type2 === NotyfArrayEvent.Remove) {
|
|
29397
|
+
this.removeNotification(notification);
|
|
29398
|
+
}
|
|
29399
|
+
};
|
|
29400
|
+
NotyfView2.prototype.removeNotification = function(notification) {
|
|
29401
|
+
var _this = this;
|
|
29402
|
+
var renderedNotification = this._popRenderedNotification(notification);
|
|
29403
|
+
var node;
|
|
29404
|
+
if (!renderedNotification) {
|
|
29405
|
+
return;
|
|
29406
|
+
}
|
|
29407
|
+
node = renderedNotification.node;
|
|
29408
|
+
node.classList.add("notyf__toast--disappear");
|
|
29409
|
+
var handleEvent;
|
|
29410
|
+
node.addEventListener(this.animationEndEventName, handleEvent = /* @__PURE__ */ __name(function(event) {
|
|
29411
|
+
if (event.target === node) {
|
|
29412
|
+
node.removeEventListener(_this.animationEndEventName, handleEvent);
|
|
29413
|
+
_this.container.removeChild(node);
|
|
29414
|
+
}
|
|
29415
|
+
}, "handleEvent"));
|
|
29416
|
+
};
|
|
29417
|
+
NotyfView2.prototype.addNotification = function(notification) {
|
|
29418
|
+
var node = this._renderNotification(notification);
|
|
29419
|
+
this.notifications.push({ notification, node });
|
|
29420
|
+
this._announce(notification.options.message || "Notification");
|
|
29421
|
+
};
|
|
29422
|
+
NotyfView2.prototype._renderNotification = function(notification) {
|
|
29423
|
+
var _a3;
|
|
29424
|
+
var card = this._buildNotificationCard(notification);
|
|
29425
|
+
var className = notification.options.className;
|
|
29426
|
+
if (className) {
|
|
29427
|
+
(_a3 = card.classList).add.apply(_a3, className.split(" "));
|
|
29428
|
+
}
|
|
29429
|
+
this.container.appendChild(card);
|
|
29430
|
+
return card;
|
|
29431
|
+
};
|
|
29432
|
+
NotyfView2.prototype._popRenderedNotification = function(notification) {
|
|
29433
|
+
var idx = -1;
|
|
29434
|
+
for (var i2 = 0; i2 < this.notifications.length && idx < 0; i2++) {
|
|
29435
|
+
if (this.notifications[i2].notification === notification) {
|
|
29436
|
+
idx = i2;
|
|
29437
|
+
}
|
|
29438
|
+
}
|
|
29439
|
+
if (idx !== -1) {
|
|
29440
|
+
return this.notifications.splice(idx, 1)[0];
|
|
29441
|
+
}
|
|
29442
|
+
return;
|
|
29443
|
+
};
|
|
29444
|
+
NotyfView2.prototype.getXPosition = function(options) {
|
|
29445
|
+
var _a3;
|
|
29446
|
+
return ((_a3 = options === null || options === void 0 ? void 0 : options.position) === null || _a3 === void 0 ? void 0 : _a3.x) || "right";
|
|
29447
|
+
};
|
|
29448
|
+
NotyfView2.prototype.getYPosition = function(options) {
|
|
29449
|
+
var _a3;
|
|
29450
|
+
return ((_a3 = options === null || options === void 0 ? void 0 : options.position) === null || _a3 === void 0 ? void 0 : _a3.y) || "bottom";
|
|
29451
|
+
};
|
|
29452
|
+
NotyfView2.prototype.adjustContainerAlignment = function(options) {
|
|
29453
|
+
var align = this.X_POSITION_FLEX_MAP[this.getXPosition(options)];
|
|
29454
|
+
var justify = this.Y_POSITION_FLEX_MAP[this.getYPosition(options)];
|
|
29455
|
+
var style = this.container.style;
|
|
29456
|
+
style.setProperty("justify-content", justify);
|
|
29457
|
+
style.setProperty("align-items", align);
|
|
29458
|
+
};
|
|
29459
|
+
NotyfView2.prototype._buildNotificationCard = function(notification) {
|
|
29460
|
+
var _this = this;
|
|
29461
|
+
var options = notification.options;
|
|
29462
|
+
var iconOpts = options.icon;
|
|
29463
|
+
this.adjustContainerAlignment(options);
|
|
29464
|
+
var notificationElem = this._createHTMLElement({ tagName: "div", className: "notyf__toast" });
|
|
29465
|
+
var ripple = this._createHTMLElement({ tagName: "div", className: "notyf__ripple" });
|
|
29466
|
+
var wrapper = this._createHTMLElement({ tagName: "div", className: "notyf__wrapper" });
|
|
29467
|
+
var message = this._createHTMLElement({ tagName: "div", className: "notyf__message" });
|
|
29468
|
+
message.innerHTML = options.message || "";
|
|
29469
|
+
var mainColor = options.background || options.backgroundColor;
|
|
29470
|
+
if (iconOpts) {
|
|
29471
|
+
var iconContainer = this._createHTMLElement({ tagName: "div", className: "notyf__icon" });
|
|
29472
|
+
if (typeof iconOpts === "string" || iconOpts instanceof String)
|
|
29473
|
+
iconContainer.innerHTML = new String(iconOpts).valueOf();
|
|
29474
|
+
if (typeof iconOpts === "object") {
|
|
29475
|
+
var _a3 = iconOpts.tagName, tagName = _a3 === void 0 ? "i" : _a3, className_1 = iconOpts.className, text = iconOpts.text, _b3 = iconOpts.color, color = _b3 === void 0 ? mainColor : _b3;
|
|
29476
|
+
var iconElement = this._createHTMLElement({ tagName, className: className_1, text });
|
|
29477
|
+
if (color)
|
|
29478
|
+
iconElement.style.color = color;
|
|
29479
|
+
iconContainer.appendChild(iconElement);
|
|
29480
|
+
}
|
|
29481
|
+
wrapper.appendChild(iconContainer);
|
|
29482
|
+
}
|
|
29483
|
+
wrapper.appendChild(message);
|
|
29484
|
+
notificationElem.appendChild(wrapper);
|
|
29485
|
+
if (mainColor) {
|
|
29486
|
+
if (options.ripple) {
|
|
29487
|
+
ripple.style.background = mainColor;
|
|
29488
|
+
notificationElem.appendChild(ripple);
|
|
29489
|
+
} else {
|
|
29490
|
+
notificationElem.style.background = mainColor;
|
|
29491
|
+
}
|
|
29492
|
+
}
|
|
29493
|
+
if (options.dismissible) {
|
|
29494
|
+
var dismissWrapper = this._createHTMLElement({ tagName: "div", className: "notyf__dismiss" });
|
|
29495
|
+
var dismissButton = this._createHTMLElement({
|
|
29496
|
+
tagName: "button",
|
|
29497
|
+
className: "notyf__dismiss-btn"
|
|
29498
|
+
});
|
|
29499
|
+
dismissWrapper.appendChild(dismissButton);
|
|
29500
|
+
wrapper.appendChild(dismissWrapper);
|
|
29501
|
+
notificationElem.classList.add("notyf__toast--dismissible");
|
|
29502
|
+
dismissButton.addEventListener("click", function(event) {
|
|
29503
|
+
var _a4, _b4;
|
|
29504
|
+
(_b4 = (_a4 = _this.events)[NotyfEvent.Dismiss]) === null || _b4 === void 0 ? void 0 : _b4.call(_a4, { target: notification, event });
|
|
29505
|
+
event.stopPropagation();
|
|
29506
|
+
});
|
|
29507
|
+
}
|
|
29508
|
+
notificationElem.addEventListener("click", function(event) {
|
|
29509
|
+
var _a4, _b4;
|
|
29510
|
+
return (_b4 = (_a4 = _this.events)[NotyfEvent.Click]) === null || _b4 === void 0 ? void 0 : _b4.call(_a4, { target: notification, event });
|
|
29511
|
+
});
|
|
29512
|
+
var className = this.getYPosition(options) === "top" ? "upper" : "lower";
|
|
29513
|
+
notificationElem.classList.add("notyf__toast--" + className);
|
|
29514
|
+
return notificationElem;
|
|
29515
|
+
};
|
|
29516
|
+
NotyfView2.prototype._createHTMLElement = function(_a3) {
|
|
29517
|
+
var tagName = _a3.tagName, className = _a3.className, text = _a3.text;
|
|
29518
|
+
var elem = document.createElement(tagName);
|
|
29519
|
+
if (className) {
|
|
29520
|
+
elem.className = className;
|
|
29521
|
+
}
|
|
29522
|
+
elem.textContent = text || null;
|
|
29523
|
+
return elem;
|
|
29524
|
+
};
|
|
29525
|
+
NotyfView2.prototype._createA11yContainer = function() {
|
|
29526
|
+
var a11yContainer = this._createHTMLElement({ tagName: "div", className: "notyf-announcer" });
|
|
29527
|
+
a11yContainer.setAttribute("aria-atomic", "true");
|
|
29528
|
+
a11yContainer.setAttribute("aria-live", "polite");
|
|
29529
|
+
a11yContainer.style.border = "0";
|
|
29530
|
+
a11yContainer.style.clip = "rect(0 0 0 0)";
|
|
29531
|
+
a11yContainer.style.height = "1px";
|
|
29532
|
+
a11yContainer.style.margin = "-1px";
|
|
29533
|
+
a11yContainer.style.overflow = "hidden";
|
|
29534
|
+
a11yContainer.style.padding = "0";
|
|
29535
|
+
a11yContainer.style.position = "absolute";
|
|
29536
|
+
a11yContainer.style.width = "1px";
|
|
29537
|
+
a11yContainer.style.outline = "0";
|
|
29538
|
+
document.body.appendChild(a11yContainer);
|
|
29539
|
+
this.a11yContainer = a11yContainer;
|
|
29540
|
+
};
|
|
29541
|
+
NotyfView2.prototype._announce = function(message) {
|
|
29542
|
+
var _this = this;
|
|
29543
|
+
this.a11yContainer.textContent = "";
|
|
29544
|
+
setTimeout(function() {
|
|
29545
|
+
_this.a11yContainer.textContent = message;
|
|
29546
|
+
}, 100);
|
|
29547
|
+
};
|
|
29548
|
+
NotyfView2.prototype._getAnimationEndEventName = function() {
|
|
29549
|
+
var el2 = document.createElement("_fake");
|
|
29550
|
+
var transitions = {
|
|
29551
|
+
MozTransition: "animationend",
|
|
29552
|
+
OTransition: "oAnimationEnd",
|
|
29553
|
+
WebkitTransition: "webkitAnimationEnd",
|
|
29554
|
+
transition: "animationend"
|
|
29555
|
+
};
|
|
29556
|
+
var t2;
|
|
29557
|
+
for (t2 in transitions) {
|
|
29558
|
+
if (el2.style[t2] !== void 0) {
|
|
29559
|
+
return transitions[t2];
|
|
29560
|
+
}
|
|
29561
|
+
}
|
|
29562
|
+
return "animationend";
|
|
29563
|
+
};
|
|
29564
|
+
return NotyfView2;
|
|
29565
|
+
})()
|
|
29566
|
+
);
|
|
29567
|
+
var Notyf = (
|
|
29568
|
+
/** @class */
|
|
29569
|
+
(function() {
|
|
29570
|
+
function Notyf2(opts) {
|
|
29571
|
+
var _this = this;
|
|
29572
|
+
this.dismiss = this._removeNotification;
|
|
29573
|
+
this.notifications = new NotyfArray();
|
|
29574
|
+
this.view = new NotyfView();
|
|
29575
|
+
var types2 = this.registerTypes(opts);
|
|
29576
|
+
this.options = __assign(__assign({}, DEFAULT_OPTIONS), opts);
|
|
29577
|
+
this.options.types = types2;
|
|
29578
|
+
this.notifications.onUpdate(function(elem, type2) {
|
|
29579
|
+
return _this.view.update(elem, type2);
|
|
29580
|
+
});
|
|
29581
|
+
this.view.on(NotyfEvent.Dismiss, function(_a3) {
|
|
29582
|
+
var target = _a3.target, event = _a3.event;
|
|
29583
|
+
_this._removeNotification(target);
|
|
29584
|
+
target["triggerEvent"](NotyfEvent.Dismiss, event);
|
|
29585
|
+
});
|
|
29586
|
+
this.view.on(NotyfEvent.Click, function(_a3) {
|
|
29587
|
+
var target = _a3.target, event = _a3.event;
|
|
29588
|
+
return target["triggerEvent"](NotyfEvent.Click, event);
|
|
29589
|
+
});
|
|
29590
|
+
}
|
|
29591
|
+
__name(Notyf2, "Notyf");
|
|
29592
|
+
Notyf2.prototype.error = function(payload) {
|
|
29593
|
+
var options = this.normalizeOptions("error", payload);
|
|
29594
|
+
return this.open(options);
|
|
29595
|
+
};
|
|
29596
|
+
Notyf2.prototype.success = function(payload) {
|
|
29597
|
+
var options = this.normalizeOptions("success", payload);
|
|
29598
|
+
return this.open(options);
|
|
29599
|
+
};
|
|
29600
|
+
Notyf2.prototype.open = function(options) {
|
|
29601
|
+
var defaultOpts = this.options.types.find(function(_a3) {
|
|
29602
|
+
var type2 = _a3.type;
|
|
29603
|
+
return type2 === options.type;
|
|
29604
|
+
}) || {};
|
|
29605
|
+
var config2 = __assign(__assign({}, defaultOpts), options);
|
|
29606
|
+
this.assignProps(["ripple", "position", "dismissible"], config2);
|
|
29607
|
+
var notification = new NotyfNotification(config2);
|
|
29608
|
+
this._pushNotification(notification);
|
|
29609
|
+
return notification;
|
|
29610
|
+
};
|
|
29611
|
+
Notyf2.prototype.dismissAll = function() {
|
|
29612
|
+
while (this.notifications.splice(0, 1))
|
|
29613
|
+
;
|
|
29614
|
+
};
|
|
29615
|
+
Notyf2.prototype.assignProps = function(props, config2) {
|
|
29616
|
+
var _this = this;
|
|
29617
|
+
props.forEach(function(prop) {
|
|
29618
|
+
config2[prop] = config2[prop] == null ? _this.options[prop] : config2[prop];
|
|
29619
|
+
});
|
|
29620
|
+
};
|
|
29621
|
+
Notyf2.prototype._pushNotification = function(notification) {
|
|
29622
|
+
var _this = this;
|
|
29623
|
+
this.notifications.push(notification);
|
|
29624
|
+
var duration = notification.options.duration !== void 0 ? notification.options.duration : this.options.duration;
|
|
29625
|
+
if (duration) {
|
|
29626
|
+
setTimeout(function() {
|
|
29627
|
+
return _this._removeNotification(notification);
|
|
29628
|
+
}, duration);
|
|
29629
|
+
}
|
|
29630
|
+
};
|
|
29631
|
+
Notyf2.prototype._removeNotification = function(notification) {
|
|
29632
|
+
var index2 = this.notifications.indexOf(notification);
|
|
29633
|
+
if (index2 !== -1) {
|
|
29634
|
+
this.notifications.splice(index2, 1);
|
|
29635
|
+
}
|
|
29636
|
+
};
|
|
29637
|
+
Notyf2.prototype.normalizeOptions = function(type2, payload) {
|
|
29638
|
+
var options = { type: type2 };
|
|
29639
|
+
if (typeof payload === "string") {
|
|
29640
|
+
options.message = payload;
|
|
29641
|
+
} else if (typeof payload === "object") {
|
|
29642
|
+
options = __assign(__assign({}, options), payload);
|
|
29643
|
+
}
|
|
29644
|
+
return options;
|
|
29645
|
+
};
|
|
29646
|
+
Notyf2.prototype.registerTypes = function(opts) {
|
|
29647
|
+
var incomingTypes = (opts && opts.types || []).slice();
|
|
29648
|
+
var finalDefaultTypes = DEFAULT_OPTIONS.types.map(function(defaultType) {
|
|
29649
|
+
var userTypeIdx = -1;
|
|
29650
|
+
incomingTypes.forEach(function(t2, idx) {
|
|
29651
|
+
if (t2.type === defaultType.type)
|
|
29652
|
+
userTypeIdx = idx;
|
|
29653
|
+
});
|
|
29654
|
+
var userType = userTypeIdx !== -1 ? incomingTypes.splice(userTypeIdx, 1)[0] : {};
|
|
29655
|
+
return __assign(__assign({}, defaultType), userType);
|
|
29656
|
+
});
|
|
29657
|
+
return finalDefaultTypes.concat(incomingTypes);
|
|
29658
|
+
};
|
|
29659
|
+
return Notyf2;
|
|
29660
|
+
})()
|
|
29661
|
+
);
|
|
29370
29662
|
const DefaultDomOptions = { topbar: true };
|
|
29371
29663
|
const _Dom = class _Dom {
|
|
29372
29664
|
constructor(_options = DefaultDomOptions) {
|
|
@@ -29375,8 +29667,10 @@ const _Dom = class _Dom {
|
|
|
29375
29667
|
__publicField(this, "_window", globalThis.window);
|
|
29376
29668
|
__publicField(this, "_topbarEnabled", false);
|
|
29377
29669
|
__publicField(this, "_topbarShow", false);
|
|
29670
|
+
__publicField(this, "_toast");
|
|
29378
29671
|
const options = { ...DefaultDomOptions, ..._options };
|
|
29379
29672
|
this._topbarEnabled = options.topbar ?? true;
|
|
29673
|
+
this._toast = new Notyf(options.toast);
|
|
29380
29674
|
}
|
|
29381
29675
|
get document() {
|
|
29382
29676
|
return this._document;
|
|
@@ -29387,6 +29681,9 @@ const _Dom = class _Dom {
|
|
|
29387
29681
|
get window() {
|
|
29388
29682
|
return this._window;
|
|
29389
29683
|
}
|
|
29684
|
+
get toast() {
|
|
29685
|
+
return this._toast;
|
|
29686
|
+
}
|
|
29390
29687
|
async topbar(show) {
|
|
29391
29688
|
if (!this._topbarEnabled) return;
|
|
29392
29689
|
this._topbarShow = show ?? !this._topbarShow;
|
|
@@ -29401,6 +29698,26 @@ const _Dom = class _Dom {
|
|
|
29401
29698
|
if (!this._topbarEnabled) return;
|
|
29402
29699
|
topbar.progress(value);
|
|
29403
29700
|
}
|
|
29701
|
+
/**
|
|
29702
|
+
* Shows a quick flash indicator for the TTY number in the top-right corner
|
|
29703
|
+
* @param ttyNumber - TTY number to display
|
|
29704
|
+
*/
|
|
29705
|
+
showTtyIndicator(ttyNumber) {
|
|
29706
|
+
const existingIndicator = this._document.getElementById("tty-indicator");
|
|
29707
|
+
if (existingIndicator) existingIndicator.remove();
|
|
29708
|
+
const indicator = this._document.createElement("div");
|
|
29709
|
+
indicator.id = "tty-indicator";
|
|
29710
|
+
indicator.className = "tty-indicator";
|
|
29711
|
+
indicator.textContent = `TTY ${ttyNumber}`;
|
|
29712
|
+
this._document.body.appendChild(indicator);
|
|
29713
|
+
requestAnimationFrame(() => indicator.classList.add("show"));
|
|
29714
|
+
setTimeout(() => {
|
|
29715
|
+
indicator.classList.remove("show");
|
|
29716
|
+
setTimeout(() => {
|
|
29717
|
+
if (indicator.parentNode) indicator.remove();
|
|
29718
|
+
}, 300);
|
|
29719
|
+
}, 1500);
|
|
29720
|
+
}
|
|
29404
29721
|
};
|
|
29405
29722
|
__name(_Dom, "Dom");
|
|
29406
29723
|
let Dom = _Dom;
|
|
@@ -81555,7 +81872,7 @@ function createCommand$1b(kernel, shell, terminal) {
|
|
|
81555
81872
|
if (!clientConfig.accessToken) {
|
|
81556
81873
|
throw new Error("client configuration must include accessToken");
|
|
81557
81874
|
}
|
|
81558
|
-
const dropboxModule = await import("./index-
|
|
81875
|
+
const dropboxModule = await import("./index-9M8pZtzV.js");
|
|
81559
81876
|
const DropboxClient = dropboxModule.Dropbox;
|
|
81560
81877
|
const client = new DropboxClient(clientConfig);
|
|
81561
81878
|
const cacheTTL = mountOptions.cacheTTL ? parseInt(mountOptions.cacheTTL, 10) : void 0;
|
|
@@ -81895,7 +82212,7 @@ Mount summary: ${successCount} succeeded, ${failCount} failed`);
|
|
|
81895
82212
|
await writelnStderr(process2, terminal, chalk$1.red("mount: client configuration must include accessToken"));
|
|
81896
82213
|
return 1;
|
|
81897
82214
|
}
|
|
81898
|
-
const dropboxModule = await import("./index-
|
|
82215
|
+
const dropboxModule = await import("./index-9M8pZtzV.js");
|
|
81899
82216
|
const DropboxClient = dropboxModule.Dropbox;
|
|
81900
82217
|
const client = new DropboxClient(clientConfig);
|
|
81901
82218
|
const cacheTTL = mountOptions.cacheTTL ? parseInt(mountOptions.cacheTTL, 10) : void 0;
|
|
@@ -96172,12 +96489,12 @@ function createCommand$E(kernel, shell, terminal) {
|
|
|
96172
96489
|
}
|
|
96173
96490
|
break;
|
|
96174
96491
|
}
|
|
96175
|
-
let data = buffer2.
|
|
96492
|
+
let data = buffer2.slice(0, bytesRead);
|
|
96176
96493
|
if (skipBytes > 0) {
|
|
96177
96494
|
const toSkip = Math.min(data.length, skipBytes - skipped);
|
|
96178
96495
|
skipped += toSkip;
|
|
96179
96496
|
if (toSkip < data.length) {
|
|
96180
|
-
data = data.
|
|
96497
|
+
data = data.slice(toSkip);
|
|
96181
96498
|
} else {
|
|
96182
96499
|
continue;
|
|
96183
96500
|
}
|
|
@@ -124989,7 +125306,7 @@ const TerminalCommands = /* @__PURE__ */ __name((kernel, shell, terminal) => {
|
|
|
124989
125306
|
{ name: "reinstall", type: Boolean, description: "Reinstall the package if it is already installed" }
|
|
124990
125307
|
],
|
|
124991
125308
|
run: /* @__PURE__ */ __name(async (argv) => {
|
|
124992
|
-
const { default: install } = await import("./install-
|
|
125309
|
+
const { default: install } = await import("./install-C78wAcrD.js");
|
|
124993
125310
|
return await install({ kernel, shell, terminal, args: [argv.package, argv.registry, argv.reinstall] });
|
|
124994
125311
|
}, "run")
|
|
124995
125312
|
}),
|
|
@@ -125004,7 +125321,7 @@ const TerminalCommands = /* @__PURE__ */ __name((kernel, shell, terminal) => {
|
|
|
125004
125321
|
{ name: "package", type: String, typeLabel: "{underline package}", defaultOption: true, description: "The package name and optional version (e.g. package@1.0.0). If no version is specified, all versions will be uninstalled." }
|
|
125005
125322
|
],
|
|
125006
125323
|
run: /* @__PURE__ */ __name(async (argv) => {
|
|
125007
|
-
const { default: uninstall } = await import("./uninstall-
|
|
125324
|
+
const { default: uninstall } = await import("./uninstall-qEkzPbxE.js");
|
|
125008
125325
|
return await uninstall({ kernel, shell, terminal, args: [argv.package] });
|
|
125009
125326
|
}, "run")
|
|
125010
125327
|
}),
|
|
@@ -126377,10 +126694,11 @@ const _Terminal = class _Terminal extends Dl {
|
|
|
126377
126694
|
try {
|
|
126378
126695
|
this.events.dispatch(TerminalEvents.EXECUTE, { terminal: this, command: cmdToExecute });
|
|
126379
126696
|
await this._shell.execute(cmdToExecute);
|
|
126380
|
-
this._cursorPosition = 0;
|
|
126381
|
-
this.write(ansi$6.erase.inLine(2) + this.prompt());
|
|
126382
126697
|
} catch (error2) {
|
|
126383
126698
|
this.writeln(chalk$2.red(`${error2}`));
|
|
126699
|
+
} finally {
|
|
126700
|
+
this._cursorPosition = 0;
|
|
126701
|
+
this.write(ansi$6.erase.inLine(2) + this.prompt());
|
|
126384
126702
|
}
|
|
126385
126703
|
} else {
|
|
126386
126704
|
this._cmd = "";
|
|
@@ -142785,7 +143103,7 @@ async function createWasiPreview2Bindings({
|
|
|
142785
143103
|
const stdinReader = streams2.stdin.getReader();
|
|
142786
143104
|
const stdoutWriter = streams2.stdout.getWriter();
|
|
142787
143105
|
const stderrWriter = streams2.stderr.getWriter();
|
|
142788
|
-
const jco = await import("./browser-
|
|
143106
|
+
const jco = await import("./browser-BjnxDyrD.js");
|
|
142789
143107
|
const { transpile: transpileComponent } = jco;
|
|
142790
143108
|
const wasiCli = await Promise.resolve().then(() => cli);
|
|
142791
143109
|
const wasiCliAny = wasiCli;
|
|
@@ -144974,10 +145292,10 @@ function parseFstabFile(content) {
|
|
|
144974
145292
|
return entries2;
|
|
144975
145293
|
}
|
|
144976
145294
|
__name(parseFstabFile, "parseFstabFile");
|
|
144977
|
-
const __vite_import_meta_env__ = { "AUTHOR": { "name": "Jay Mathis", "email": "code@mathis.network", "url": "https://github.com/mathiscode" }, "BASE_URL": "/", "DESCRIPTION": "ecmaOS:
|
|
145295
|
+
const __vite_import_meta_env__ = { "AUTHOR": { "name": "Jay Mathis", "email": "code@mathis.network", "url": "https://github.com/mathiscode" }, "BASE_URL": "/", "DESCRIPTION": "ecmaOS: A web-native operating system and framework for web technologies", "DEV": false, "ECMAOS_APP_SHOW_DEFAULT_LOGIN": "true", "ECMAOS_AUTOLOGIN_PASSWORD": "root", "ECMAOS_AUTOLOGIN_USERNAME": "root", "ECMAOS_BOOT_DISABLE_ISSUES": "true", "ECMAOS_BOOT_DISABLE_LOGO_CONSOLE": "false", "ECMAOS_BOOT_DISABLE_LOGO_FIGLET": "false", "ECMAOS_BOOT_DISABLE_TIPS": "false", "ECMAOS_INITFS": "/initfs.tar.gz", "ECMAOS_KERNEL_INTERVALS_PROC": "1000", "ECMAOS_KERNEL_MODULES": "@ecmaos-modules/boilerplate@0.1.0", "ECMAOS_METAL_SOCKET": "ws://localhost:30445/socket", "ECMAOS_OPENTELEMETRY_ENDPOINT": "http://localhost:4318/v1/traces", "ECMAOS_PORT": "30443", "ECMAOS_RECOMMENDED_APPS": "@ecmaos-apps/code,@ecmaos-apps/edit,@ecmaos-apps/ai,@ecmaos-apps/webamp,@ecmaos-apps/news", "HOMEPAGE": "https://ecmaos.sh", "KNOWN_ISSUES": ["To disable known issues, type `touch /etc/noissues`", "It's best to stick to Chromium-based browsers for the most features", "Keyboard is broken on mobile; ecmaOS is not mobile-friendly at this time", "Don't expect any sort of POSIX compliance at this stage", "Most commands/devices are very basic implementations, not complete reproductions", "CTRL-C will return you to a prompt, but doesn't currently interrupt a process", "Lots of unfinished work; watch your step"], "MODE": "production", "NAME": "@ecmaos/kernel", "PROD": true, "REPOSITORY": "https://github.com/ecmaos/ecmaos", "SSR": false, "TIPS": ["To disable tips, type `touch /etc/notips`", "ecmaos.sh has no backend server; all data is stored and processed entirely in your browser", "If it ever fails to boot, check your logs, try clearing all data, try incognito mode, or try another browser", "You can switch between TTYs using CTRL+SHIFT+<0-9>", "You can run some devices that offer a CLI - e.g. '/dev/battery --help'", "Use the 'install' command to install packages - e.g. 'install @ecmaos-apps/news'", "You can install any NPM package - e.g. 'install jquery'", "You can use the 'mount' command to view and mount filesystems (/etc/fstab supported)", "Use the 'news' command to see the latest news about ecmaOS", "Type 'ls /bin' to see all built-in commands", "Type 'ls /usr/bin' to see all installed commands", "Type 'ls /dev' to see all available devices", "You can set your environment variables in ~/.env (try setting PROMPT to a PS1-like format)", "You can register and login with a passkey: 'passkey register' and 'passkey list'", "The 'man' command can be used to view the manual pages for packages: 'man @ecmaos/kernel'", "Try 'fetch /xkcd-os.sixel'"], "VERSION": "0.10.3", "XTERM_VERSION": "6.0.0", "ZENFS_VERSION": "2.4.4" };
|
|
144978
145296
|
var define_import_meta_env_AUTHOR_default = { name: "Jay Mathis", email: "code@mathis.network", url: "https://github.com/mathiscode" };
|
|
144979
|
-
var define_import_meta_env_KNOWN_ISSUES_default = ["It's best to stick to Chromium-based browsers for the most features", "Keyboard is broken on mobile; ecmaOS is not mobile-friendly at this time", "Don't expect any sort of POSIX compliance at this stage", "Most commands/devices are very basic implementations, not complete reproductions", "
|
|
144980
|
-
var define_import_meta_env_TIPS_default = ["ecmaos.sh has no backend server; all data is stored and processed entirely in your browser", "If it ever fails to boot, check your logs, try clearing all data, try incognito mode, or try another browser", "You can switch between TTYs using CTRL+SHIFT+<0-9>", "You can run some devices that offer a CLI - e.g. '/dev/battery --help'", "Use the 'install' command to install packages - e.g. 'install @ecmaos-apps/news'", "You can install any NPM package - e.g. 'install jquery'", "You can use the 'mount' command to view and mount filesystems (/etc/fstab supported)", "Use the 'news' command to see the latest news about ecmaOS", "Type 'ls /bin' to see all built-in commands", "Type 'ls /usr/bin' to see all installed commands", "Type 'ls /dev' to see all available devices", "You can set your environment variables in ~/.env (try setting PROMPT to a PS1-like format)", "You can register and login with a passkey: 'passkey register' and 'passkey list'", "The 'man' command can be used to view the manual pages for packages: 'man @ecmaos/kernel'", "Try 'fetch /xkcd-os.sixel'"];
|
|
145297
|
+
var define_import_meta_env_KNOWN_ISSUES_default = ["To disable known issues, type `touch /etc/noissues`", "It's best to stick to Chromium-based browsers for the most features", "Keyboard is broken on mobile; ecmaOS is not mobile-friendly at this time", "Don't expect any sort of POSIX compliance at this stage", "Most commands/devices are very basic implementations, not complete reproductions", "CTRL-C will return you to a prompt, but doesn't currently interrupt a process", "Lots of unfinished work; watch your step"];
|
|
145298
|
+
var define_import_meta_env_TIPS_default = ["To disable tips, type `touch /etc/notips`", "ecmaos.sh has no backend server; all data is stored and processed entirely in your browser", "If it ever fails to boot, check your logs, try clearing all data, try incognito mode, or try another browser", "You can switch between TTYs using CTRL+SHIFT+<0-9>", "You can run some devices that offer a CLI - e.g. '/dev/battery --help'", "Use the 'install' command to install packages - e.g. 'install @ecmaos-apps/news'", "You can install any NPM package - e.g. 'install jquery'", "You can use the 'mount' command to view and mount filesystems (/etc/fstab supported)", "Use the 'news' command to see the latest news about ecmaOS", "Type 'ls /bin' to see all built-in commands", "Type 'ls /usr/bin' to see all installed commands", "Type 'ls /dev' to see all available devices", "You can set your environment variables in ~/.env (try setting PROMPT to a PS1-like format)", "You can register and login with a passkey: 'passkey register' and 'passkey list'", "The 'man' command can be used to view the manual pages for packages: 'man @ecmaos/kernel'", "Try 'fetch /xkcd-os.sixel'"];
|
|
144981
145299
|
const DefaultKernelOptions = {
|
|
144982
145300
|
devices: DefaultDevices,
|
|
144983
145301
|
dom: DefaultDomOptions,
|
|
@@ -145019,7 +145337,7 @@ const _Kernel = class _Kernel {
|
|
|
145019
145337
|
/** Name of the kernel */
|
|
145020
145338
|
__publicField(this, "name", "@ecmaos/kernel");
|
|
145021
145339
|
/** Version string of the kernel */
|
|
145022
|
-
__publicField(this, "version", "0.10.
|
|
145340
|
+
__publicField(this, "version", "0.10.3");
|
|
145023
145341
|
/** Authentication and authorization service */
|
|
145024
145342
|
__publicField(this, "auth");
|
|
145025
145343
|
/** BIOS module providing low-level functionality */
|
|
@@ -145072,8 +145390,6 @@ const _Kernel = class _Kernel {
|
|
|
145072
145390
|
__publicField(this, "telemetry");
|
|
145073
145391
|
/** Terminal interface for user interaction */
|
|
145074
145392
|
__publicField(this, "terminal");
|
|
145075
|
-
/** Toast notification service */
|
|
145076
|
-
__publicField(this, "toast");
|
|
145077
145393
|
/** User management service */
|
|
145078
145394
|
__publicField(this, "users");
|
|
145079
145395
|
/** WebAssembly service */
|
|
@@ -145111,7 +145427,6 @@ const _Kernel = class _Kernel {
|
|
|
145111
145427
|
this.storage = new Storage({ kernel: this });
|
|
145112
145428
|
this.telemetry = new Telemetry({ kernel: this });
|
|
145113
145429
|
this.terminal = new Terminal({ kernel: this, socket: this.options.socket, tty: 0 });
|
|
145114
|
-
this.toast = new Notyf(this.options.toast);
|
|
145115
145430
|
this.users = new Users({ kernel: this });
|
|
145116
145431
|
this.windows = new Windows();
|
|
145117
145432
|
this.wasm = new Wasm({ kernel: this });
|
|
@@ -145317,7 +145632,7 @@ const _Kernel = class _Kernel {
|
|
|
145317
145632
|
];
|
|
145318
145633
|
this.terminal.writeln(chalk$2.red.bold(`🐉 ${this.i18n.ns.kernel("experimental")} 🐉`));
|
|
145319
145634
|
this.terminal.writeln(
|
|
145320
|
-
`${this.terminal.createSpecialLink("https://ecmaos.sh", "@ecmaos/kernel")}@${"0.10.
|
|
145635
|
+
`${this.terminal.createSpecialLink("https://ecmaos.sh", "@ecmaos/kernel")}@${"0.10.3"}` + chalk$2.cyan(` [${dependencyLinks.map((link2) => link2.link).join(", ")}]`)
|
|
145321
145636
|
);
|
|
145322
145637
|
this.terminal.writeln(`${this.i18n.ns.kernel("madeBy")} ${this.terminal.createSpecialLink(
|
|
145323
145638
|
define_import_meta_env_AUTHOR_default?.url || "https://github.com/mathiscode",
|
|
@@ -145325,7 +145640,7 @@ const _Kernel = class _Kernel {
|
|
|
145325
145640
|
)}`);
|
|
145326
145641
|
this.terminal.writeln("https://github.com/ecmaos/ecmaos\n");
|
|
145327
145642
|
if (define_import_meta_env_KNOWN_ISSUES_default && false) ;
|
|
145328
|
-
if (
|
|
145643
|
+
if (!this.filesystem.fsSync.existsSync("/etc/notips")) {
|
|
145329
145644
|
const tipsList = this.i18n.ns.kernel("tipsList", { returnObjects: true });
|
|
145330
145645
|
if (Array.isArray(tipsList) && tipsList.length > 0) {
|
|
145331
145646
|
this.terminal.writeln(chalk$2.green.bold(this.i18n.ns.kernel("tips")));
|
|
@@ -145340,15 +145655,15 @@ const _Kernel = class _Kernel {
|
|
|
145340
145655
|
if (logoFiglet && true) {
|
|
145341
145656
|
console.log(`%c${logoFiglet}`, "color: green");
|
|
145342
145657
|
console.log(`%c${"https://github.com/ecmaos/ecmaos"}`, "color: blue; text-decoration: underline; font-size: 16px");
|
|
145343
|
-
this.log.info(`${"@ecmaos/kernel"} v${"0.10.
|
|
145658
|
+
this.log.info(`${"@ecmaos/kernel"} v${"0.10.3"}`);
|
|
145344
145659
|
}
|
|
145345
145660
|
if (Notification?.permission === "default") Notification.requestPermission();
|
|
145346
145661
|
if (Notification?.permission === "denied") this.log.warn(t2("kernel.permissionNotificationDenied", "Notification permission denied"));
|
|
145347
145662
|
this.intervals.set("title-blink", () => {
|
|
145348
145663
|
globalThis.document.title = globalThis.document.title.includes("_") ? "ecmaos# " : "ecmaos# _";
|
|
145349
145664
|
}, 600);
|
|
145350
|
-
this.toast.success(`${"@ecmaos/kernel"} v${"0.10.
|
|
145351
|
-
this.
|
|
145665
|
+
this.dom.toast.success(`${"@ecmaos/kernel"} v${"0.10.3"}`);
|
|
145666
|
+
this.dom.showTtyIndicator(this._activeTty);
|
|
145352
145667
|
}
|
|
145353
145668
|
if (await this.filesystem.fs.exists("/run")) {
|
|
145354
145669
|
const entries2 = await this.filesystem.fs.readdir("/run");
|
|
@@ -145490,7 +145805,7 @@ const _Kernel = class _Kernel {
|
|
|
145490
145805
|
this.shell.cwd = localStorage.getItem(`cwd:${this.shell.credentials.uid}`) ?? (user.uid === 0 ? "/" : user.home || "/");
|
|
145491
145806
|
const userCrontabPath = path$2.join(user.home || "/root", ".config", "crontab");
|
|
145492
145807
|
await this.loadCrontab(userCrontabPath, "user");
|
|
145493
|
-
const screensavers = /* @__PURE__ */ Object.assign({ "./lib/screensavers/blank.ts": __vite_glob_0_0, "./lib/screensavers/matrix.ts": __vite_glob_0_1 });
|
|
145808
|
+
const screensavers = /* @__PURE__ */ Object.assign({ "./lib/screensavers/blank.ts": __vite_glob_0_0, "./lib/screensavers/matrix.ts": __vite_glob_0_1, "./lib/screensavers/toasters.ts": __vite_glob_0_2 });
|
|
145494
145809
|
for (const [key, saver] of Object.entries(screensavers)) {
|
|
145495
145810
|
this.screensavers.set(
|
|
145496
145811
|
key.replace("./lib/screensavers/", "").replace(".ts", ""),
|
|
@@ -145560,7 +145875,7 @@ const _Kernel = class _Kernel {
|
|
|
145560
145875
|
this.log.error(error2);
|
|
145561
145876
|
this._state = KernelState.PANIC;
|
|
145562
145877
|
this.events.dispatch(KernelEvents.PANIC, { error: error2 });
|
|
145563
|
-
this.toast.error({
|
|
145878
|
+
this.dom.toast.error({
|
|
145564
145879
|
message: this.i18n.ns.kernel("panic"),
|
|
145565
145880
|
duration: 0,
|
|
145566
145881
|
dismissible: false
|
|
@@ -146291,7 +146606,7 @@ const _Kernel = class _Kernel {
|
|
|
146291
146606
|
memory: "?",
|
|
146292
146607
|
platform: navigator.userAgentData?.platform || navigator?.platform || navigator.userAgent,
|
|
146293
146608
|
querystring: location.search,
|
|
146294
|
-
version: `${"@ecmaos/kernel"} ${"0.10.
|
|
146609
|
+
version: `${"@ecmaos/kernel"} ${"0.10.3"}`,
|
|
146295
146610
|
language: navigator.language,
|
|
146296
146611
|
host: location.host,
|
|
146297
146612
|
userAgent: navigator.userAgent,
|
|
@@ -146709,7 +147024,7 @@ const _Kernel = class _Kernel {
|
|
|
146709
147024
|
}
|
|
146710
147025
|
const targetContainer = document.getElementById(`terminal-tty${ttyNumber}`);
|
|
146711
147026
|
if (targetContainer) targetContainer.classList.add("active");
|
|
146712
|
-
this.
|
|
147027
|
+
this.dom.showTtyIndicator(ttyNumber);
|
|
146713
147028
|
let targetShell = this._shells.get(ttyNumber);
|
|
146714
147029
|
if (!targetShell) targetShell = await this.createShell(ttyNumber);
|
|
146715
147030
|
requestAnimationFrame(() => {
|
|
@@ -146718,26 +147033,6 @@ const _Kernel = class _Kernel {
|
|
|
146718
147033
|
targetShell.terminal.listen();
|
|
146719
147034
|
});
|
|
146720
147035
|
}
|
|
146721
|
-
/**
|
|
146722
|
-
* Shows a quick flash indicator for the TTY number in the top-right corner
|
|
146723
|
-
* @param ttyNumber - TTY number to display
|
|
146724
|
-
*/
|
|
146725
|
-
_showTtyIndicator(ttyNumber) {
|
|
146726
|
-
const existingIndicator = document.getElementById("tty-indicator");
|
|
146727
|
-
if (existingIndicator) existingIndicator.remove();
|
|
146728
|
-
const indicator = document.createElement("div");
|
|
146729
|
-
indicator.id = "tty-indicator";
|
|
146730
|
-
indicator.className = "tty-indicator";
|
|
146731
|
-
indicator.textContent = `TTY ${ttyNumber}`;
|
|
146732
|
-
document.body.appendChild(indicator);
|
|
146733
|
-
requestAnimationFrame(() => indicator.classList.add("show"));
|
|
146734
|
-
setTimeout(() => {
|
|
146735
|
-
indicator.classList.remove("show");
|
|
146736
|
-
setTimeout(() => {
|
|
146737
|
-
if (indicator.parentNode) indicator.remove();
|
|
146738
|
-
}, 300);
|
|
146739
|
-
}, 1500);
|
|
146740
|
-
}
|
|
146741
147036
|
/**
|
|
146742
147037
|
* Executes an operation with root (or other) privileges
|
|
146743
147038
|
* @param {() => Promise<T>} operation - Operation to execute
|
|
@@ -146845,4 +147140,4 @@ export {
|
|
|
146845
147140
|
semver as s,
|
|
146846
147141
|
types$1 as t
|
|
146847
147142
|
};
|
|
146848
|
-
//# sourceMappingURL=kernel-
|
|
147143
|
+
//# sourceMappingURL=kernel-C3PA_-lt.js.map
|