windows-development-sandbox 1.5.0 → 1.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -0
- package/config.example.json +17 -1
- package/dist/cli/args.d.ts +13 -2
- package/dist/cli/args.js +95 -24
- package/dist/cli/commands/accounts.js +45 -17
- package/dist/cli/commands/context.d.ts +2 -0
- package/dist/cli/commands/context.js +9 -2
- package/dist/cli/commands/data/clean.js +32 -9
- package/dist/cli/commands/index.d.ts +1 -0
- package/dist/cli/commands/index.js +1 -0
- package/dist/cli/commands/launch/add-root.d.ts +3 -2
- package/dist/cli/commands/launch/add-root.js +11 -10
- package/dist/cli/commands/launch/launch.js +57 -4
- package/dist/cli/commands/launch/prepare.js +3 -1
- package/dist/cli/commands/maintenance/audit.js +1 -1
- package/dist/cli/commands/maintenance/clean.d.ts +1 -1
- package/dist/cli/commands/maintenance/clean.js +17 -3
- package/dist/cli/commands/maintenance/config.d.ts +1 -1
- package/dist/cli/commands/maintenance/config.js +112 -10
- package/dist/cli/commands/maintenance/doctor.d.ts +1 -1
- package/dist/cli/commands/maintenance/doctor.js +2 -4
- package/dist/cli/commands/maintenance/migrate.d.ts +2 -1
- package/dist/cli/commands/maintenance/migrate.js +19 -4
- package/dist/cli/commands/maintenance/sync.js +2 -0
- package/dist/cli/commands/maintenance/update.d.ts +2 -0
- package/dist/cli/commands/maintenance/update.js +27 -4
- package/dist/cli/commands/projects/here.js +12 -7
- package/dist/cli/commands/projects/projects.js +26 -17
- package/dist/cli/commands/registry.js +7 -0
- package/dist/cli/commands/repair/checks/agents.d.ts +2 -0
- package/dist/cli/commands/repair/checks/agents.js +70 -0
- package/dist/cli/commands/repair/checks/common.d.ts +8 -0
- package/dist/cli/commands/repair/checks/common.js +22 -0
- package/dist/cli/commands/repair/checks/data.d.ts +2 -0
- package/dist/cli/commands/repair/checks/data.js +241 -0
- package/dist/cli/commands/repair/checks/index.d.ts +2 -0
- package/dist/cli/commands/repair/checks/index.js +20 -0
- package/dist/cli/commands/repair/checks/install.d.ts +5 -0
- package/dist/cli/commands/repair/checks/install.js +318 -0
- package/dist/cli/commands/repair/checks/machine.d.ts +2 -0
- package/dist/cli/commands/repair/checks/machine.js +232 -0
- package/dist/cli/commands/repair/checks/network.d.ts +6 -0
- package/dist/cli/commands/repair/checks/network.js +60 -0
- package/dist/cli/commands/repair/checks/pc.d.ts +4 -0
- package/dist/cli/commands/repair/checks/pc.js +55 -0
- package/dist/cli/commands/repair/checks/sandbox.d.ts +2 -0
- package/dist/cli/commands/repair/checks/sandbox.js +267 -0
- package/dist/cli/commands/repair/checks/settings.d.ts +2 -0
- package/dist/cli/commands/repair/checks/settings.js +169 -0
- package/dist/cli/commands/repair/checks/vpn.d.ts +2 -0
- package/dist/cli/commands/repair/checks/vpn.js +53 -0
- package/dist/cli/commands/repair/engine.d.ts +32 -0
- package/dist/cli/commands/repair/engine.js +127 -0
- package/dist/cli/commands/repair/env.d.ts +7 -0
- package/dist/cli/commands/repair/env.js +49 -0
- package/dist/cli/commands/repair/index.d.ts +1 -9
- package/dist/cli/commands/repair/index.js +2 -54
- package/dist/cli/commands/repair/log.d.ts +17 -0
- package/dist/cli/commands/repair/log.js +82 -0
- package/dist/cli/commands/repair/printer.d.ts +32 -0
- package/dist/cli/commands/repair/printer.js +132 -0
- package/dist/cli/commands/repair/run.d.ts +33 -0
- package/dist/cli/commands/repair/run.js +133 -0
- package/dist/cli/commands/repair/types.d.ts +97 -9
- package/dist/cli/commands/repair/types.js +11 -7
- package/dist/cli/commands/resume.js +2 -2
- package/dist/cli/commands/sessions/list.js +5 -2
- package/dist/cli/commands/sessions/status.d.ts +2 -0
- package/dist/cli/commands/sessions/status.js +27 -6
- package/dist/cli/commands/setup/index.d.ts +5 -0
- package/dist/cli/commands/setup/index.js +25 -1
- package/dist/cli/commands/storage/index.d.ts +2 -0
- package/dist/cli/commands/storage/index.js +2 -0
- package/dist/cli/commands/storage/offer.d.ts +3 -0
- package/dist/cli/commands/storage/offer.js +85 -0
- package/dist/cli/commands/storage/storage.d.ts +8 -0
- package/dist/cli/commands/storage/storage.js +171 -0
- package/dist/cli/commands/user-config.js +1 -1
- package/dist/cli/commands/vpn.d.ts +4 -0
- package/dist/cli/commands/vpn.js +75 -0
- package/dist/cli/commands/web.d.ts +4 -0
- package/dist/cli/commands/web.js +95 -0
- package/dist/cli/history.js +1 -1
- package/dist/cli/index.js +46 -3
- package/dist/cli/manifest.d.ts +303 -29
- package/dist/cli/manifest.js +173 -43
- package/dist/cli/menu/add-agent.d.ts +47 -0
- package/dist/cli/menu/add-agent.js +168 -0
- package/dist/cli/menu/apps.d.ts +31 -2
- package/dist/cli/menu/apps.js +44 -5
- package/dist/cli/menu/command-fields.d.ts +18 -0
- package/dist/cli/menu/command-fields.js +61 -0
- package/dist/cli/menu/command-form.d.ts +22 -0
- package/dist/cli/menu/command-form.js +169 -46
- package/dist/cli/menu/data-folder.d.ts +18 -0
- package/dist/cli/menu/data-folder.js +99 -0
- package/dist/cli/menu/menu.d.ts +1 -1
- package/dist/cli/menu/menu.js +11 -8
- package/dist/cli/menu/pages/accounts-page.js +55 -24
- package/dist/cli/menu/pages/agents-page.d.ts +66 -0
- package/dist/cli/menu/pages/agents-page.js +338 -0
- package/dist/cli/menu/pages/apps-page.js +1 -2
- package/dist/cli/menu/pages/list-page.d.ts +16 -3
- package/dist/cli/menu/pages/list-page.js +40 -8
- package/dist/cli/menu/pages/maintenance-page.d.ts +9 -0
- package/dist/cli/menu/pages/maintenance-page.js +161 -72
- package/dist/cli/menu/pages/sandbox-page.d.ts +3 -0
- package/dist/cli/menu/pages/sandbox-page.js +132 -43
- package/dist/cli/menu/pages/sessions-page.d.ts +4 -0
- package/dist/cli/menu/pages/sessions-page.js +41 -25
- package/dist/cli/menu/pages/settings-page.d.ts +8 -4
- package/dist/cli/menu/pages/settings-page.js +36 -13
- package/dist/cli/menu/settings/categories.d.ts +2 -0
- package/dist/cli/menu/settings/categories.js +19 -44
- package/dist/cli/menu/settings/collections/collection-editor.d.ts +7 -1
- package/dist/cli/menu/settings/collections/collection-editor.js +12 -8
- package/dist/cli/menu/settings/collections/map-editor.js +5 -1
- package/dist/cli/menu/settings/collections/object-list-editor.js +2 -2
- package/dist/cli/menu/settings/collections/object-map-editor.js +2 -2
- package/dist/cli/menu/settings/collections/string-list-editor.d.ts +11 -1
- package/dist/cli/menu/settings/collections/string-list-editor.js +23 -0
- package/dist/cli/menu/settings/index.d.ts +1 -1
- package/dist/cli/menu/settings/index.js +1 -1
- package/dist/cli/menu/settings/object-editor.d.ts +5 -1
- package/dist/cli/menu/settings/object-editor.js +15 -4
- package/dist/cli/menu/settings/path-kind.d.ts +20 -0
- package/dist/cli/menu/settings/path-kind.js +44 -0
- package/dist/cli/menu/settings/schema-node.d.ts +9 -0
- package/dist/cli/menu/settings/schema-node.js +26 -0
- package/dist/cli/menu/settings/value-editor.d.ts +5 -0
- package/dist/cli/menu/settings/value-editor.js +51 -18
- package/dist/cli/menu/several.js +7 -5
- package/dist/cli/menu/shell.d.ts +37 -10
- package/dist/cli/menu/shell.js +90 -10
- package/dist/cli/menu/vpn-login.d.ts +16 -0
- package/dist/cli/menu/vpn-login.js +66 -0
- package/dist/cli/output/print.d.ts +2 -0
- package/dist/cli/output/print.js +8 -1
- package/dist/cli/services/accounts-service.d.ts +2 -0
- package/dist/cli/services/accounts-service.js +2 -2
- package/dist/cli/services/health-service.d.ts +0 -6
- package/dist/cli/services/health-service.js +5 -42
- package/dist/cli/services/index.d.ts +3 -1
- package/dist/cli/services/index.js +3 -1
- package/dist/cli/services/migrate-service.js +1 -1
- package/dist/cli/services/update-service.d.ts +2 -0
- package/dist/cli/services/update-service.js +13 -6
- package/dist/cli/services/vpn-service.d.ts +28 -0
- package/dist/cli/services/vpn-service.js +46 -0
- package/dist/cli/services/web-service.d.ts +22 -0
- package/dist/cli/services/web-service.js +111 -0
- package/dist/cli/tui/app.d.ts +6 -3
- package/dist/cli/tui/app.js +12 -5
- package/dist/cli/tui/dialogs/path-listing.d.ts +43 -0
- package/dist/cli/tui/dialogs/path-listing.js +127 -0
- package/dist/cli/tui/dialogs/path-picker.d.ts +67 -0
- package/dist/cli/tui/dialogs/path-picker.js +423 -0
- package/dist/cli/tui/dialogs/text-screen.d.ts +6 -0
- package/dist/cli/tui/dialogs/text-screen.js +10 -3
- package/dist/cli/tui/frame.d.ts +7 -10
- package/dist/cli/tui/frame.js +19 -10
- package/dist/cli/tui/index.d.ts +4 -3
- package/dist/cli/tui/index.js +2 -1
- package/dist/cli/tui/list/list-screen.d.ts +14 -2
- package/dist/cli/tui/list/list-screen.js +68 -32
- package/dist/cli/tui/list/list-types.d.ts +8 -4
- package/dist/cli/tui/nav.d.ts +29 -0
- package/dist/cli/tui/nav.js +67 -0
- package/dist/cli/validate.d.ts +1 -1
- package/dist/cli/validate.js +3 -3
- package/dist/cli/version.d.ts +2 -0
- package/dist/cli/version.js +11 -0
- package/dist/core/config/defaults.js +5 -1
- package/dist/core/config/loader.js +12 -2
- package/dist/core/local-config/overrides.js +1 -0
- package/dist/core/prompt.d.ts +19 -0
- package/dist/core/prompt.js +43 -3
- package/dist/core/schema/common.d.ts +6 -0
- package/dist/core/schema/common.js +8 -0
- package/dist/core/schema/config.d.ts +23 -0
- package/dist/core/schema/config.js +10 -1
- package/dist/core/schema/harness.d.ts +1 -0
- package/dist/core/schema/harness.js +8 -2
- package/dist/core/schema/index.d.ts +3 -1
- package/dist/core/schema/index.js +3 -1
- package/dist/core/schema/profile.d.ts +1 -0
- package/dist/core/schema/profile.js +3 -0
- package/dist/core/schema/redact.d.ts +13 -0
- package/dist/core/schema/redact.js +75 -0
- package/dist/core/schema/sandbox.js +1 -0
- package/dist/core/schema/vpn.d.ts +17 -0
- package/dist/core/schema/vpn.js +22 -0
- package/dist/core/schema/web.d.ts +6 -0
- package/dist/core/schema/web.js +14 -0
- package/dist/core/types.d.ts +26 -0
- package/dist/guest/agents/agent-files.d.ts +49 -0
- package/dist/guest/agents/agent-files.js +63 -0
- package/dist/guest/agents/agent-installer.js +2 -9
- package/dist/guest/agents/local-state.d.ts +12 -0
- package/dist/guest/agents/local-state.js +198 -0
- package/dist/guest/agents/sbx-agent.d.ts +2 -0
- package/dist/guest/agents/sbx-agent.js +35 -0
- package/dist/guest/boot/boot.d.ts +4 -0
- package/dist/guest/boot/boot.js +50 -11
- package/dist/guest/daemon/daemon.js +4 -1
- package/dist/guest/daemon/exec.js +2 -1
- package/dist/guest/daemon/idle-shutdown.js +2 -0
- package/dist/guest/daemon/sessions.js +4 -1
- package/dist/guest/entries/agent.d.ts +1 -0
- package/dist/guest/entries/agent.js +10 -0
- package/dist/guest/entries/daemon.js +2 -0
- package/dist/guest/runtime/csc.d.ts +1 -0
- package/dist/guest/runtime/csc.js +1 -0
- package/dist/guest/runtime/secrets.d.ts +12 -0
- package/dist/guest/runtime/secrets.js +63 -0
- package/dist/guest/setup/claude-profile.d.ts +2 -1
- package/dist/guest/setup/claude-profile.js +12 -1
- package/dist/guest/setup/environment.d.ts +6 -0
- package/dist/guest/setup/environment.js +56 -6
- package/dist/guest/setup/path-plan.d.ts +32 -0
- package/dist/guest/setup/path-plan.js +67 -0
- package/dist/guest/setup/shell-path.d.ts +1 -0
- package/dist/guest/setup/shell-path.js +22 -0
- package/dist/guest/toolchains/languages/python.js +1 -1
- package/dist/guest/toolchains/runtimes.js +2 -2
- package/dist/guest/vpn/index.d.ts +1 -0
- package/dist/guest/vpn/index.js +1 -0
- package/dist/guest/vpn/openvpn.d.ts +9 -0
- package/dist/guest/vpn/openvpn.js +47 -0
- package/dist/guest/vpn/tunnel.d.ts +17 -0
- package/dist/guest/vpn/tunnel.js +78 -0
- package/dist/guest/vpn/vpn.d.ts +6 -0
- package/dist/guest/vpn/vpn.js +126 -0
- package/dist/host/channel/attach.d.ts +3 -1
- package/dist/host/channel/attach.js +1 -1
- package/dist/host/channel/channel.d.ts +7 -0
- package/dist/host/channel/channel.js +26 -2
- package/dist/host/health/acl-read.d.ts +17 -0
- package/dist/host/health/acl-read.js +45 -0
- package/dist/host/health/config-backup.d.ts +11 -0
- package/dist/host/health/config-backup.js +73 -0
- package/dist/host/health/index.d.ts +6 -0
- package/dist/host/health/index.js +7 -0
- package/dist/host/health/install-state.d.ts +33 -0
- package/dist/host/health/install-state.js +110 -0
- package/dist/host/health/path-copies.d.ts +32 -0
- package/dist/host/health/path-copies.js +82 -0
- package/dist/host/health/stale.d.ts +45 -0
- package/dist/host/health/stale.js +120 -0
- package/dist/host/health/system.d.ts +37 -0
- package/dist/host/health/system.js +87 -0
- package/dist/host/install/copies.d.ts +13 -0
- package/dist/host/install/copies.js +63 -0
- package/dist/host/install/index.d.ts +1 -0
- package/dist/host/install/index.js +1 -0
- package/dist/host/launch/generate.js +25 -1
- package/dist/host/launch/session-file.js +4 -1
- package/dist/host/launch/stage.js +1 -1
- package/dist/host/migrate/backup.js +3 -0
- package/dist/host/migrate/migrations/config-file.d.ts +2 -0
- package/dist/host/migrate/migrations/config-file.js +7 -0
- package/dist/host/migrate/migrations/follow-machine-storage.js +9 -1
- package/dist/host/migrate/migrations/pin-storage-root.d.ts +4 -0
- package/dist/host/migrate/migrations/pin-storage-root.js +46 -0
- package/dist/host/migrate/migrations/unpin-config-defaults.js +4 -1
- package/dist/host/migrate/registry.js +2 -1
- package/dist/host/profile/accounts.d.ts +25 -1
- package/dist/host/profile/accounts.js +96 -13
- package/dist/host/profile/agent-accounts.d.ts +5 -1
- package/dist/host/profile/agent-accounts.js +35 -5
- package/dist/host/profile/index.d.ts +2 -1
- package/dist/host/profile/index.js +1 -0
- package/dist/host/profile/plugin-share.d.ts +26 -0
- package/dist/host/profile/plugin-share.js +146 -0
- package/dist/host/projects/join.d.ts +7 -1
- package/dist/host/projects/join.js +21 -4
- package/dist/host/projects/registry.d.ts +16 -10
- package/dist/host/projects/registry.js +74 -6
- package/dist/host/sandbox/platform.d.ts +2 -0
- package/dist/host/sandbox/platform.js +21 -2
- package/dist/host/secrets/index.d.ts +2 -0
- package/dist/host/secrets/index.js +2 -0
- package/dist/host/secrets/launch-secrets.d.ts +17 -0
- package/dist/host/secrets/launch-secrets.js +93 -0
- package/dist/host/secrets/secret-store.d.ts +25 -0
- package/dist/host/secrets/secret-store.js +89 -0
- package/dist/host/sharing/acl.d.ts +16 -2
- package/dist/host/sharing/acl.js +35 -10
- package/dist/host/sharing/current.js +11 -2
- package/dist/host/sharing/doctor.d.ts +2 -0
- package/dist/host/sharing/doctor.js +44 -0
- package/dist/host/sharing/group-access.d.ts +6 -0
- package/dist/host/sharing/group-access.js +24 -0
- package/dist/host/sharing/index.d.ts +2 -1
- package/dist/host/sharing/index.js +2 -1
- package/dist/host/sharing/lifecycle.d.ts +8 -2
- package/dist/host/sharing/lifecycle.js +16 -7
- package/dist/host/storage/cleanup.d.ts +2 -0
- package/dist/host/storage/cleanup.js +2 -1
- package/dist/host/storage/history.d.ts +21 -0
- package/dist/host/storage/history.js +49 -0
- package/dist/host/storage/index.d.ts +4 -0
- package/dist/host/storage/index.js +4 -0
- package/dist/host/storage/move.d.ts +95 -0
- package/dist/host/storage/move.js +384 -0
- package/dist/host/storage/offer.d.ts +11 -0
- package/dist/host/storage/offer.js +36 -0
- package/dist/host/storage/root.d.ts +18 -0
- package/dist/host/storage/root.js +77 -0
- package/dist/host/tools/windows-terminal.d.ts +2 -0
- package/dist/host/tools/windows-terminal.js +23 -5
- package/dist/host/update/index.d.ts +1 -1
- package/dist/host/update/index.js +1 -1
- package/dist/host/update/notice.d.ts +2 -0
- package/dist/host/update/notice.js +13 -1
- package/dist/host/update/update-state.d.ts +6 -0
- package/dist/host/update/update-state.js +2 -0
- package/dist/host/update/updater.d.ts +19 -0
- package/dist/host/update/updater.js +88 -12
- package/dist/host/vpn/index.d.ts +4 -0
- package/dist/host/vpn/index.js +4 -0
- package/dist/host/vpn/login.d.ts +24 -0
- package/dist/host/vpn/login.js +79 -0
- package/dist/host/vpn/nordvpn.d.ts +21 -0
- package/dist/host/vpn/nordvpn.js +77 -0
- package/dist/host/vpn/prepare.d.ts +17 -0
- package/dist/host/vpn/prepare.js +77 -0
- package/dist/host/vpn/status.d.ts +12 -0
- package/dist/host/vpn/status.js +53 -0
- package/dist/host/web/auth.d.ts +38 -0
- package/dist/host/web/auth.js +96 -0
- package/dist/host/web/backend.d.ts +14 -0
- package/dist/host/web/backend.js +1 -0
- package/dist/host/web/bridge.d.ts +27 -0
- package/dist/host/web/bridge.js +144 -0
- package/dist/host/web/browser.d.ts +1 -0
- package/dist/host/web/browser.js +10 -0
- package/dist/host/web/control.d.ts +17 -0
- package/dist/host/web/control.js +67 -0
- package/dist/host/web/index.d.ts +9 -0
- package/dist/host/web/index.js +8 -0
- package/dist/host/web/runner.d.ts +14 -0
- package/dist/host/web/runner.js +45 -0
- package/dist/host/web/server.d.ts +40 -0
- package/dist/host/web/server.js +218 -0
- package/dist/host/web/state.d.ts +20 -0
- package/dist/host/web/state.js +41 -0
- package/dist/host/web/static-files.d.ts +13 -0
- package/dist/host/web/static-files.js +57 -0
- package/dist/runtime/agent.js +27614 -0
- package/dist/runtime/daemon.js +1012 -618
- package/dist/runtime/db.js +236 -106
- package/dist/runtime/main.js +1093 -250
- package/dist/runtime/netproxy.js +102 -3
- package/dist/runtime/view.js +102 -3
- package/dist/selftest/accounts.test.js +40 -0
- package/dist/selftest/agent-paths.test.d.ts +2 -0
- package/dist/selftest/agent-paths.test.js +115 -0
- package/dist/selftest/channel.test.js +5 -0
- package/dist/selftest/cli.test.js +34 -4
- package/dist/selftest/credentials.test.d.ts +2 -0
- package/dist/selftest/credentials.test.js +198 -0
- package/dist/selftest/generate.test.js +1 -1
- package/dist/selftest/health.test.d.ts +2 -0
- package/dist/selftest/health.test.js +470 -0
- package/dist/selftest/host-sim.test.js +2 -0
- package/dist/selftest/index.js +19 -0
- package/dist/selftest/layout.test.js +2 -0
- package/dist/selftest/menu-screens.d.ts +7 -0
- package/dist/selftest/menu-screens.js +65 -16
- package/dist/selftest/menu.test.js +574 -21
- package/dist/selftest/migrate.test.js +1 -1
- package/dist/selftest/personalization.test.js +3 -1
- package/dist/selftest/projects.test.js +39 -1
- package/dist/selftest/shared-use.test.js +64 -2
- package/dist/selftest/sharing.test.js +50 -1
- package/dist/selftest/storage.test.d.ts +2 -0
- package/dist/selftest/storage.test.js +363 -0
- package/dist/selftest/support/fixtures.d.ts +14 -0
- package/dist/selftest/support/releases.js +1 -1
- package/dist/selftest/toolchains.test.js +21 -0
- package/dist/selftest/update-service.test.js +87 -3
- package/dist/selftest/vpn.test.d.ts +2 -0
- package/dist/selftest/vpn.test.js +279 -0
- package/dist/selftest/web.test.d.ts +2 -0
- package/dist/selftest/web.test.js +304 -0
- package/dist/shared/apps/catalogue.js +31 -0
- package/dist/shared/channel/index.d.ts +1 -0
- package/dist/shared/channel/index.js +1 -0
- package/dist/shared/channel/run-dir.d.ts +6 -1
- package/dist/shared/channel/run-dir.js +12 -1
- package/dist/shared/channel/schema.d.ts +19 -0
- package/dist/shared/channel/schema.js +11 -0
- package/dist/shared/channel/secrets.d.ts +28 -0
- package/dist/shared/channel/secrets.js +44 -0
- package/dist/shared/vpn/download.d.ts +13 -0
- package/dist/shared/vpn/download.js +14 -0
- package/dist/shared/vpn/kill-switch.d.ts +18 -0
- package/dist/shared/vpn/kill-switch.js +81 -0
- package/dist/shared/vpn/ovpn.d.ts +23 -0
- package/dist/shared/vpn/ovpn.js +244 -0
- package/dist/shared/web/index.d.ts +1 -0
- package/dist/shared/web/index.js +1 -0
- package/dist/shared/web/protocol.d.ts +61 -0
- package/dist/shared/web/protocol.js +35 -0
- package/dist/sync/sync-cycle.js +5 -1
- package/dist/sync/sync-state.d.ts +1 -0
- package/dist/sync/sync-state.js +1 -0
- package/dist/sync/watcher.js +10 -0
- package/dist/web/index.html +13 -0
- package/dist/web/main-CXESL347.js +45 -0
- package/dist/web/main-VLR7DVQ4.css +1 -0
- package/native/csharp/FolderSecurity.cs +29 -0
- package/native/scripts/protect-data.ps1 +29 -0
- package/native/scripts/read-folder-sddl.ps1 +10 -0
- package/native/scripts/set-folder-access.ps1 +49 -7
- package/node_modules/ws/LICENSE +20 -0
- package/node_modules/ws/README.md +548 -0
- package/node_modules/ws/browser.js +8 -0
- package/node_modules/ws/index.js +22 -0
- package/node_modules/ws/lib/buffer-util.js +131 -0
- package/node_modules/ws/lib/constants.js +19 -0
- package/node_modules/ws/lib/event-target.js +292 -0
- package/node_modules/ws/lib/extension.js +203 -0
- package/node_modules/ws/lib/limiter.js +55 -0
- package/node_modules/ws/lib/permessage-deflate.js +530 -0
- package/node_modules/ws/lib/receiver.js +743 -0
- package/node_modules/ws/lib/sender.js +607 -0
- package/node_modules/ws/lib/stream.js +161 -0
- package/node_modules/ws/lib/subprotocol.js +62 -0
- package/node_modules/ws/lib/validation.js +152 -0
- package/node_modules/ws/lib/websocket-server.js +562 -0
- package/node_modules/ws/lib/websocket.js +1421 -0
- package/node_modules/ws/package.json +74 -0
- package/node_modules/ws/wrapper.mjs +21 -0
- package/package.json +15 -5
- package/sandbox/csharp/EnvBroadcast.cs +33 -0
- package/sandbox/csharp/PathSync.cs +90 -0
- package/sandbox/scripts/install-shell-path.ps1 +73 -0
- package/sandbox/scripts/set-machine-environment.ps1 +37 -4
- package/schemas/config.schema.json +79 -4
- package/schemas/sandbox-config.schema.json +14 -1
- package/dist/cli/commands/repair/checks.d.ts +0 -2
- package/dist/cli/commands/repair/checks.js +0 -246
- package/dist/cli/menu/pages/start-page.d.ts +0 -43
- package/dist/cli/menu/pages/start-page.js +0 -192
- package/dist/cli/tui/tab-bar.d.ts +0 -9
- package/dist/cli/tui/tab-bar.js +0 -33
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
/* eslint no-unused-vars: ["error", { "varsIgnorePattern": "^WebSocket$" }] */
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
const WebSocket = require('./websocket');
|
|
5
|
+
const { Duplex } = require('stream');
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Emits the `'close'` event on a stream.
|
|
9
|
+
*
|
|
10
|
+
* @param {Duplex} stream The stream.
|
|
11
|
+
* @private
|
|
12
|
+
*/
|
|
13
|
+
function emitClose(stream) {
|
|
14
|
+
stream.emit('close');
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* The listener of the `'end'` event.
|
|
19
|
+
*
|
|
20
|
+
* @private
|
|
21
|
+
*/
|
|
22
|
+
function duplexOnEnd() {
|
|
23
|
+
if (!this.destroyed && this._writableState.finished) {
|
|
24
|
+
this.destroy();
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* The listener of the `'error'` event.
|
|
30
|
+
*
|
|
31
|
+
* @param {Error} err The error
|
|
32
|
+
* @private
|
|
33
|
+
*/
|
|
34
|
+
function duplexOnError(err) {
|
|
35
|
+
this.removeListener('error', duplexOnError);
|
|
36
|
+
this.destroy();
|
|
37
|
+
if (this.listenerCount('error') === 0) {
|
|
38
|
+
// Do not suppress the throwing behavior.
|
|
39
|
+
this.emit('error', err);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Wraps a `WebSocket` in a duplex stream.
|
|
45
|
+
*
|
|
46
|
+
* @param {WebSocket} ws The `WebSocket` to wrap
|
|
47
|
+
* @param {Object} [options] The options for the `Duplex` constructor
|
|
48
|
+
* @return {Duplex} The duplex stream
|
|
49
|
+
* @public
|
|
50
|
+
*/
|
|
51
|
+
function createWebSocketStream(ws, options) {
|
|
52
|
+
let terminateOnDestroy = true;
|
|
53
|
+
|
|
54
|
+
const duplex = new Duplex({
|
|
55
|
+
...options,
|
|
56
|
+
autoDestroy: false,
|
|
57
|
+
emitClose: false,
|
|
58
|
+
objectMode: false,
|
|
59
|
+
writableObjectMode: false
|
|
60
|
+
});
|
|
61
|
+
|
|
62
|
+
ws.on('message', function message(msg, isBinary) {
|
|
63
|
+
const data =
|
|
64
|
+
!isBinary && duplex._readableState.objectMode ? msg.toString() : msg;
|
|
65
|
+
|
|
66
|
+
if (!duplex.push(data)) ws.pause();
|
|
67
|
+
});
|
|
68
|
+
|
|
69
|
+
ws.once('error', function error(err) {
|
|
70
|
+
if (duplex.destroyed) return;
|
|
71
|
+
|
|
72
|
+
// Prevent `ws.terminate()` from being called by `duplex._destroy()`.
|
|
73
|
+
//
|
|
74
|
+
// - If the `'error'` event is emitted before the `'open'` event, then
|
|
75
|
+
// `ws.terminate()` is a noop as no socket is assigned.
|
|
76
|
+
// - Otherwise, the error is re-emitted by the listener of the `'error'`
|
|
77
|
+
// event of the `Receiver` object. The listener already closes the
|
|
78
|
+
// connection by calling `ws.close()`. This allows a close frame to be
|
|
79
|
+
// sent to the other peer. If `ws.terminate()` is called right after this,
|
|
80
|
+
// then the close frame might not be sent.
|
|
81
|
+
terminateOnDestroy = false;
|
|
82
|
+
duplex.destroy(err);
|
|
83
|
+
});
|
|
84
|
+
|
|
85
|
+
ws.once('close', function close() {
|
|
86
|
+
if (duplex.destroyed) return;
|
|
87
|
+
|
|
88
|
+
duplex.push(null);
|
|
89
|
+
});
|
|
90
|
+
|
|
91
|
+
duplex._destroy = function (err, callback) {
|
|
92
|
+
if (ws.readyState === ws.CLOSED) {
|
|
93
|
+
callback(err);
|
|
94
|
+
process.nextTick(emitClose, duplex);
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
let called = false;
|
|
99
|
+
|
|
100
|
+
ws.once('error', function error(err) {
|
|
101
|
+
called = true;
|
|
102
|
+
callback(err);
|
|
103
|
+
});
|
|
104
|
+
|
|
105
|
+
ws.once('close', function close() {
|
|
106
|
+
if (!called) callback(err);
|
|
107
|
+
process.nextTick(emitClose, duplex);
|
|
108
|
+
});
|
|
109
|
+
|
|
110
|
+
if (terminateOnDestroy) ws.terminate();
|
|
111
|
+
};
|
|
112
|
+
|
|
113
|
+
duplex._final = function (callback) {
|
|
114
|
+
if (ws.readyState === ws.CONNECTING) {
|
|
115
|
+
ws.once('open', function open() {
|
|
116
|
+
duplex._final(callback);
|
|
117
|
+
});
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
// If the value of the `_socket` property is `null` it means that `ws` is a
|
|
122
|
+
// client websocket and the handshake failed. In fact, when this happens, a
|
|
123
|
+
// socket is never assigned to the websocket. Wait for the `'error'` event
|
|
124
|
+
// that will be emitted by the websocket.
|
|
125
|
+
if (ws._socket === null) return;
|
|
126
|
+
|
|
127
|
+
if (ws._socket._writableState.finished) {
|
|
128
|
+
callback();
|
|
129
|
+
if (duplex._readableState.endEmitted) duplex.destroy();
|
|
130
|
+
} else {
|
|
131
|
+
ws._socket.once('finish', function finish() {
|
|
132
|
+
// `duplex` is not destroyed here because the `'end'` event will be
|
|
133
|
+
// emitted on `duplex` after this `'finish'` event. The EOF signaling
|
|
134
|
+
// `null` chunk is, in fact, pushed when the websocket emits `'close'`.
|
|
135
|
+
callback();
|
|
136
|
+
});
|
|
137
|
+
ws.close();
|
|
138
|
+
}
|
|
139
|
+
};
|
|
140
|
+
|
|
141
|
+
duplex._read = function () {
|
|
142
|
+
if (ws.isPaused) ws.resume();
|
|
143
|
+
};
|
|
144
|
+
|
|
145
|
+
duplex._write = function (chunk, encoding, callback) {
|
|
146
|
+
if (ws.readyState === ws.CONNECTING) {
|
|
147
|
+
ws.once('open', function open() {
|
|
148
|
+
duplex._write(chunk, encoding, callback);
|
|
149
|
+
});
|
|
150
|
+
return;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
ws.send(chunk, callback);
|
|
154
|
+
};
|
|
155
|
+
|
|
156
|
+
duplex.on('end', duplexOnEnd);
|
|
157
|
+
duplex.on('error', duplexOnError);
|
|
158
|
+
return duplex;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
module.exports = createWebSocketStream;
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const { tokenChars } = require('./validation');
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Parses the `Sec-WebSocket-Protocol` header into a set of subprotocol names.
|
|
7
|
+
*
|
|
8
|
+
* @param {String} header The field value of the header
|
|
9
|
+
* @return {Set} The subprotocol names
|
|
10
|
+
* @public
|
|
11
|
+
*/
|
|
12
|
+
function parse(header) {
|
|
13
|
+
const protocols = new Set();
|
|
14
|
+
let start = -1;
|
|
15
|
+
let end = -1;
|
|
16
|
+
let i = 0;
|
|
17
|
+
|
|
18
|
+
for (i; i < header.length; i++) {
|
|
19
|
+
const code = header.charCodeAt(i);
|
|
20
|
+
|
|
21
|
+
if (end === -1 && tokenChars[code] === 1) {
|
|
22
|
+
if (start === -1) start = i;
|
|
23
|
+
} else if (
|
|
24
|
+
i !== 0 &&
|
|
25
|
+
(code === 0x20 /* ' ' */ || code === 0x09) /* '\t' */
|
|
26
|
+
) {
|
|
27
|
+
if (end === -1 && start !== -1) end = i;
|
|
28
|
+
} else if (code === 0x2c /* ',' */) {
|
|
29
|
+
if (start === -1) {
|
|
30
|
+
throw new SyntaxError(`Unexpected character at index ${i}`);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
if (end === -1) end = i;
|
|
34
|
+
|
|
35
|
+
const protocol = header.slice(start, end);
|
|
36
|
+
|
|
37
|
+
if (protocols.has(protocol)) {
|
|
38
|
+
throw new SyntaxError(`The "${protocol}" subprotocol is duplicated`);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
protocols.add(protocol);
|
|
42
|
+
start = end = -1;
|
|
43
|
+
} else {
|
|
44
|
+
throw new SyntaxError(`Unexpected character at index ${i}`);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
if (start === -1 || end !== -1) {
|
|
49
|
+
throw new SyntaxError('Unexpected end of input');
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
const protocol = header.slice(start, i);
|
|
53
|
+
|
|
54
|
+
if (protocols.has(protocol)) {
|
|
55
|
+
throw new SyntaxError(`The "${protocol}" subprotocol is duplicated`);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
protocols.add(protocol);
|
|
59
|
+
return protocols;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
module.exports = { parse };
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const { isUtf8 } = require('buffer');
|
|
4
|
+
|
|
5
|
+
const { hasBlob } = require('./constants');
|
|
6
|
+
|
|
7
|
+
//
|
|
8
|
+
// Allowed token characters:
|
|
9
|
+
//
|
|
10
|
+
// '!', '#', '$', '%', '&', ''', '*', '+', '-',
|
|
11
|
+
// '.', 0-9, A-Z, '^', '_', '`', a-z, '|', '~'
|
|
12
|
+
//
|
|
13
|
+
// tokenChars[32] === 0 // ' '
|
|
14
|
+
// tokenChars[33] === 1 // '!'
|
|
15
|
+
// tokenChars[34] === 0 // '"'
|
|
16
|
+
// ...
|
|
17
|
+
//
|
|
18
|
+
// prettier-ignore
|
|
19
|
+
const tokenChars = [
|
|
20
|
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0 - 15
|
|
21
|
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 16 - 31
|
|
22
|
+
0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, // 32 - 47
|
|
23
|
+
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, // 48 - 63
|
|
24
|
+
0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 64 - 79
|
|
25
|
+
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, // 80 - 95
|
|
26
|
+
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 96 - 111
|
|
27
|
+
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0 // 112 - 127
|
|
28
|
+
];
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Checks if a status code is allowed in a close frame.
|
|
32
|
+
*
|
|
33
|
+
* @param {Number} code The status code
|
|
34
|
+
* @return {Boolean} `true` if the status code is valid, else `false`
|
|
35
|
+
* @public
|
|
36
|
+
*/
|
|
37
|
+
function isValidStatusCode(code) {
|
|
38
|
+
return (
|
|
39
|
+
(code >= 1000 &&
|
|
40
|
+
code <= 1014 &&
|
|
41
|
+
code !== 1004 &&
|
|
42
|
+
code !== 1005 &&
|
|
43
|
+
code !== 1006) ||
|
|
44
|
+
(code >= 3000 && code <= 4999)
|
|
45
|
+
);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Checks if a given buffer contains only correct UTF-8.
|
|
50
|
+
* Ported from https://www.cl.cam.ac.uk/%7Emgk25/ucs/utf8_check.c by
|
|
51
|
+
* Markus Kuhn.
|
|
52
|
+
*
|
|
53
|
+
* @param {Buffer} buf The buffer to check
|
|
54
|
+
* @return {Boolean} `true` if `buf` contains only correct UTF-8, else `false`
|
|
55
|
+
* @public
|
|
56
|
+
*/
|
|
57
|
+
function _isValidUTF8(buf) {
|
|
58
|
+
const len = buf.length;
|
|
59
|
+
let i = 0;
|
|
60
|
+
|
|
61
|
+
while (i < len) {
|
|
62
|
+
if ((buf[i] & 0x80) === 0) {
|
|
63
|
+
// 0xxxxxxx
|
|
64
|
+
i++;
|
|
65
|
+
} else if ((buf[i] & 0xe0) === 0xc0) {
|
|
66
|
+
// 110xxxxx 10xxxxxx
|
|
67
|
+
if (
|
|
68
|
+
i + 1 === len ||
|
|
69
|
+
(buf[i + 1] & 0xc0) !== 0x80 ||
|
|
70
|
+
(buf[i] & 0xfe) === 0xc0 // Overlong
|
|
71
|
+
) {
|
|
72
|
+
return false;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
i += 2;
|
|
76
|
+
} else if ((buf[i] & 0xf0) === 0xe0) {
|
|
77
|
+
// 1110xxxx 10xxxxxx 10xxxxxx
|
|
78
|
+
if (
|
|
79
|
+
i + 2 >= len ||
|
|
80
|
+
(buf[i + 1] & 0xc0) !== 0x80 ||
|
|
81
|
+
(buf[i + 2] & 0xc0) !== 0x80 ||
|
|
82
|
+
(buf[i] === 0xe0 && (buf[i + 1] & 0xe0) === 0x80) || // Overlong
|
|
83
|
+
(buf[i] === 0xed && (buf[i + 1] & 0xe0) === 0xa0) // Surrogate (U+D800 - U+DFFF)
|
|
84
|
+
) {
|
|
85
|
+
return false;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
i += 3;
|
|
89
|
+
} else if ((buf[i] & 0xf8) === 0xf0) {
|
|
90
|
+
// 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
|
|
91
|
+
if (
|
|
92
|
+
i + 3 >= len ||
|
|
93
|
+
(buf[i + 1] & 0xc0) !== 0x80 ||
|
|
94
|
+
(buf[i + 2] & 0xc0) !== 0x80 ||
|
|
95
|
+
(buf[i + 3] & 0xc0) !== 0x80 ||
|
|
96
|
+
(buf[i] === 0xf0 && (buf[i + 1] & 0xf0) === 0x80) || // Overlong
|
|
97
|
+
(buf[i] === 0xf4 && buf[i + 1] > 0x8f) ||
|
|
98
|
+
buf[i] > 0xf4 // > U+10FFFF
|
|
99
|
+
) {
|
|
100
|
+
return false;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
i += 4;
|
|
104
|
+
} else {
|
|
105
|
+
return false;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
return true;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
/**
|
|
113
|
+
* Determines whether a value is a `Blob`.
|
|
114
|
+
*
|
|
115
|
+
* @param {*} value The value to be tested
|
|
116
|
+
* @return {Boolean} `true` if `value` is a `Blob`, else `false`
|
|
117
|
+
* @private
|
|
118
|
+
*/
|
|
119
|
+
function isBlob(value) {
|
|
120
|
+
return (
|
|
121
|
+
hasBlob &&
|
|
122
|
+
typeof value === 'object' &&
|
|
123
|
+
typeof value.arrayBuffer === 'function' &&
|
|
124
|
+
typeof value.type === 'string' &&
|
|
125
|
+
typeof value.stream === 'function' &&
|
|
126
|
+
(value[Symbol.toStringTag] === 'Blob' ||
|
|
127
|
+
value[Symbol.toStringTag] === 'File')
|
|
128
|
+
);
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
module.exports = {
|
|
132
|
+
isBlob,
|
|
133
|
+
isValidStatusCode,
|
|
134
|
+
isValidUTF8: _isValidUTF8,
|
|
135
|
+
tokenChars
|
|
136
|
+
};
|
|
137
|
+
|
|
138
|
+
if (isUtf8) {
|
|
139
|
+
module.exports.isValidUTF8 = function (buf) {
|
|
140
|
+
return buf.length < 24 ? _isValidUTF8(buf) : isUtf8(buf);
|
|
141
|
+
};
|
|
142
|
+
} /* istanbul ignore else */ else if (!process.env.WS_NO_UTF_8_VALIDATE) {
|
|
143
|
+
try {
|
|
144
|
+
const isValidUTF8 = require('utf-8-validate');
|
|
145
|
+
|
|
146
|
+
module.exports.isValidUTF8 = function (buf) {
|
|
147
|
+
return buf.length < 32 ? _isValidUTF8(buf) : isValidUTF8(buf);
|
|
148
|
+
};
|
|
149
|
+
} catch (e) {
|
|
150
|
+
// Continue regardless of the error.
|
|
151
|
+
}
|
|
152
|
+
}
|