@alivault/pico 0.14.0 → 0.16.1
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/.output/public/_shell.html +19 -0
- package/.output/public/assets/PatchDiff-SN-mXa3p.js +343 -0
- package/.output/public/assets/{angular-html-BZNntD0J.js → angular-html-B9LEBPKs.js} +1 -1
- package/.output/public/assets/{angular-ts-SQQMYL2C.js → angular-ts-CD6u-Ij9.js} +1 -1
- package/.output/public/assets/{apl-D5V6uPDr.js → apl-VeDHIFIx.js} +1 -1
- package/.output/public/assets/app-shell-common-0xa28gDm.js +1 -0
- package/.output/public/assets/{astro-DeXKSaFP.js → astro-Dd8L1z6M.js} +1 -1
- package/.output/public/assets/{blade-Bu5re0Vg.js → blade-BNxrbiva.js} +1 -1
- package/.output/public/assets/{bsl-B1qbqNES.js → bsl-B0twaj2j.js} +1 -1
- package/.output/public/assets/{cairo-BDj8wWhy.js → cairo-DASKFAWI.js} +1 -1
- package/.output/public/assets/{cobol-nvZDS9LT.js → cobol-D_qN8j4K.js} +1 -1
- package/.output/public/assets/{coffee-BKLOTq4e.js → coffee-60nIQewd.js} +1 -1
- package/.output/public/assets/{cpp-D6g1DVNt.js → cpp-e1j1tDCV.js} +1 -1
- package/.output/public/assets/{crystal-DfoZI57w.js → crystal-brDfRjQ_.js} +1 -1
- package/.output/public/assets/{edge-DwocGnOF.js → edge-DadfRK3Q.js} +1 -1
- package/.output/public/assets/{elixir-Dtbfds1r.js → elixir-CsoHPmz3.js} +1 -1
- package/.output/public/assets/{elm-CpPtm471.js → elm-BLTa0sZG.js} +1 -1
- package/.output/public/assets/{erb--z3IM9Cb.js → erb-DIR2QRkp.js} +1 -1
- package/.output/public/assets/{erlang-Bc4hQuqa.js → erlang-DnbJbitJ.js} +1 -1
- package/.output/public/assets/{fortran-fixed-form-B02FOYI-.js → fortran-fixed-form-Bse4XUyD.js} +1 -1
- package/.output/public/assets/{fsharp-DhdR18vN.js → fsharp-Dy8OnZ0O.js} +1 -1
- package/.output/public/assets/{gdresource-DgnrMPIx.js → gdresource-BD_7yRHA.js} +1 -1
- package/.output/public/assets/{git-commit-DGJi7qBD.js → git-commit-CIMjlyHf.js} +1 -1
- package/.output/public/assets/{git-rebase-Ce47xoa6.js → git-rebase-DV2DyQK7.js} +1 -1
- package/.output/public/assets/{glimmer-js-C0BuzxQC.js → glimmer-js-DVG5pFvd.js} +1 -1
- package/.output/public/assets/{glimmer-ts-irOZ-cAQ.js → glimmer-ts-BeWaLARz.js} +1 -1
- package/.output/public/assets/{glsl-JAhLUe0P.js → glsl-BrOWUUEh.js} +1 -1
- package/.output/public/assets/{graphql-D2ba3BkR.js → graphql-B_3o81z5.js} +1 -1
- package/.output/public/assets/{hack-CgzUpY8l.js → hack-BW-0PxQy.js} +1 -1
- package/.output/public/assets/{haml-C-oIZcDo.js → haml-DnNXiHAO.js} +1 -1
- package/.output/public/assets/{handlebars-CbP-Mhzf.js → handlebars-CftcPtku.js} +1 -1
- package/.output/public/assets/{html-ddqpqPg0.js → html-D5IqfVuz.js} +1 -1
- package/.output/public/assets/{html-derivative-DWGxf_At.js → html-derivative-QNqmMkaY.js} +1 -1
- package/.output/public/assets/{http-Bg1nG1nG.js → http-Dd7eRKUa.js} +1 -1
- package/.output/public/assets/{hurl-zm47Pi1n.js → hurl-kBs5Ibg1.js} +1 -1
- package/.output/public/assets/{hxml-adC65L_J.js → hxml-CGx66ebi.js} +1 -1
- package/.output/public/assets/index-C-mxWGZ5.css +2 -0
- package/.output/public/assets/index-FOqZaR4L.js +48 -0
- package/.output/public/assets/{jinja-Bnj4awH5.js → jinja-BPoCSjyd.js} +1 -1
- package/.output/public/assets/{jison-CuCNs9Q3.js → jison-WHPVy3Jl.js} +1 -1
- package/.output/public/assets/{julia-DNYHzXlE.js → julia-BaKiQMPf.js} +1 -1
- package/.output/public/assets/{just-BlWkkmf2.js → just-BKMc7tVT.js} +1 -1
- package/.output/public/assets/{latex-DqPzjMIt.js → latex-Cczzu1HI.js} +1 -1
- package/.output/public/assets/{liquid-BURJK16h.js → liquid-DrJZrMEf.js} +1 -1
- package/.output/public/assets/{lua-31hdJClp.js → lua-CFIwCMnP.js} +1 -1
- package/.output/public/assets/{marko-C2ZcdSLh.js → marko-BreagErn.js} +1 -1
- package/.output/public/assets/{mdc-N1ii9pk5.js → mdc-CBcMHZUq.js} +1 -1
- package/.output/public/assets/{nextflow-JEyYUlIq.js → nextflow-CZbrTmS2.js} +1 -1
- package/.output/public/assets/{nginx-BuomO0W8.js → nginx-CMOi8dTH.js} +1 -1
- package/.output/public/assets/{nim-hKoEPsYL.js → nim-DbDZ9Wa-.js} +1 -1
- package/.output/public/assets/{perl-CAGVW6Ra.js → perl-DyRCGnKu.js} +1 -1
- package/.output/public/assets/{php-BycclmzS.js → php-Ciarv7b4.js} +1 -1
- package/.output/public/assets/plus-B1rJPgNv.js +1 -0
- package/.output/public/assets/preload-helper-Csz9R64u.js +5 -0
- package/.output/public/assets/{pug-4maJHz9G.js → pug-CVCqbfEm.js} +1 -1
- package/.output/public/assets/{qml-JLIQfzyb.js → qml-DechmdFA.js} +1 -1
- package/.output/public/assets/query-keys-C9jMaRnO.js +1 -0
- package/.output/public/assets/{razor-P8rbooCh.js → razor-bgzHke67.js} +1 -1
- package/.output/public/assets/right-sidebar-CWvXcZzC.js +1831 -0
- package/.output/public/assets/routes-CXlaorp4.js +23 -0
- package/.output/public/assets/{rst-C6GHyL-N.js → rst-Ce6_XwFd.js} +1 -1
- package/.output/public/assets/{ruby-Cl8PVkbY.js → ruby-BtLKlt8E.js} +1 -1
- package/.output/public/assets/{sas-CXoVwlZN.js → sas-Bco5tnse.js} +1 -1
- package/.output/public/assets/{scss-DNczJ95n.js → scss-KPCA05M8.js} +1 -1
- package/.output/public/assets/{shaderlab-DZ3Lsiak.js → shaderlab-uUHiM5Mm.js} +1 -1
- package/.output/public/assets/{shellsession-COm1V40U.js → shellsession-BnUZVYXU.js} +1 -1
- package/.output/public/assets/{soy-DwewhJ_3.js → soy-Dsrg4bVI.js} +1 -1
- package/.output/public/assets/{sparql-B9c85a_o.js → sparql-D5zsvcbT.js} +1 -1
- package/.output/public/assets/{stata-Bl--TAbZ.js → stata-BdK5CFUf.js} +1 -1
- package/.output/public/assets/{surrealql-BW79EE-U.js → surrealql-Blm5wp47.js} +1 -1
- package/.output/public/assets/{svelte-ziMErdPi.js → svelte-DZrj_gMz.js} +1 -1
- package/.output/public/assets/{templ-C_9I6ncv.js → templ-CJ7sDrtu.js} +1 -1
- package/.output/public/assets/terminal-panel-YGR6v-ZH.js +1 -0
- package/.output/public/assets/{tex-D8LVuLf5.js → tex-CvSRdXZA.js} +1 -1
- package/.output/public/assets/{ts-tags-DKuFCGsc.js → ts-tags-DgGFCSef.js} +1 -1
- package/.output/public/assets/{twig-Bs1kcsO6.js → twig-D8_PS89g.js} +1 -1
- package/.output/public/assets/{vue-Dnf0y5RU.js → vue-KvGEuYod.js} +1 -1
- package/.output/public/assets/{vue-html-CRtKS76J.js → vue-html-qAt9D-IF.js} +1 -1
- package/.output/public/assets/{vue-vine-BxjPqU7T.js → vue-vine-j1nOqxMu.js} +1 -1
- package/.output/public/assets/{xml-eU7M3iZJ.js → xml-BrFkMwfd.js} +1 -1
- package/.output/public/assets/{xsl-DSqe4nTO.js → xsl-OmCo2PyZ.js} +1 -1
- package/.output/public/index.html +19 -0
- package/README.md +171 -46
- package/bin/native-runtime.mjs +265 -0
- package/bin/pico.mjs +289 -222
- package/package.json +34 -31
- package/.output/nitro.json +0 -17
- package/.output/public/assets/index-DBVxXDtw.js +0 -54
- package/.output/public/assets/routes-yUxD2q-l.js +0 -2194
- package/.output/public/assets/styles-CUVz7jV9.css +0 -2
- package/.output/server/__23tanstack-start-plugin-adapters-y_fshQDY.mjs +0 -5
- package/.output/server/_chunks/ssr-renderer.mjs +0 -15
- package/.output/server/_libs/@base-ui/react+[...].mjs +0 -14512
- package/.output/server/_libs/@dnd-kit/core+[...].mjs +0 -2748
- package/.output/server/_libs/@pierre/diffs+[...].mjs +0 -19314
- package/.output/server/_libs/@pierre/trees+[...].mjs +0 -9236
- package/.output/server/_libs/@radix-ui/react-dialog+[...].mjs +0 -1789
- package/.output/server/_libs/@radix-ui/react-primitive+[...].mjs +0 -136
- package/.output/server/_libs/@tanstack/devtools-event-client+[...].mjs +0 -196
- package/.output/server/_libs/@tanstack/hotkeys+[...].mjs +0 -1607
- package/.output/server/_libs/@tanstack/react-router+[...].mjs +0 -13950
- package/.output/server/_libs/@tanstack/react-router-ssr-query+[...].mjs +0 -90
- package/.output/server/_libs/bail.mjs +0 -13
- package/.output/server/_libs/character-entities.mjs +0 -2135
- package/.output/server/_libs/class-variance-authority+clsx.mjs +0 -69
- package/.output/server/_libs/cmdk.mjs +0 -473
- package/.output/server/_libs/crossws.mjs +0 -2929
- package/.output/server/_libs/decode-named-character-reference+[...].mjs +0 -19
- package/.output/server/_libs/devlop.mjs +0 -5
- package/.output/server/_libs/diff.mjs +0 -732
- package/.output/server/_libs/dnd-kit__accessibility.mjs +0 -46
- package/.output/server/_libs/dnd-kit__sortable.mjs +0 -400
- package/.output/server/_libs/entities.mjs +0 -372
- package/.output/server/_libs/escape-string-regexp.mjs +0 -7
- package/.output/server/_libs/estree-util-is-identifier-name.mjs +0 -20
- package/.output/server/_libs/extend.mjs +0 -75
- package/.output/server/_libs/h3+rou3+srvx.mjs +0 -1216
- package/.output/server/_libs/hast-util-from-parse5+[...].mjs +0 -741
- package/.output/server/_libs/hast-util-raw+[...].mjs +0 -7897
- package/.output/server/_libs/hast-util-sanitize.mjs +0 -780
- package/.output/server/_libs/hast-util-to-jsx-runtime+[...].mjs +0 -1165
- package/.output/server/_libs/hookable.mjs +0 -41
- package/.output/server/_libs/html-url-attributes.mjs +0 -44
- package/.output/server/_libs/is-plain-obj.mjs +0 -8
- package/.output/server/_libs/longest-streak.mjs +0 -29
- package/.output/server/_libs/lucide-react.mjs +0 -788
- package/.output/server/_libs/markdown-table.mjs +0 -289
- package/.output/server/_libs/mdast-util-find-and-replace.mjs +0 -198
- package/.output/server/_libs/mdast-util-from-markdown+[...].mjs +0 -8409
- package/.output/server/_libs/mdast-util-gfm+[...].mjs +0 -2062
- package/.output/server/_libs/mdast-util-to-hast+[...].mjs +0 -1771
- package/.output/server/_libs/micromark-extension-gfm+[...].mjs +0 -2234
- package/.output/server/_libs/next-themes.mjs +0 -124
- package/.output/server/_libs/pierre__theme.mjs +0 -10
- package/.output/server/_libs/radix-ui__primitive.mjs +0 -9
- package/.output/server/_libs/radix-ui__react-compose-refs.mjs +0 -30
- package/.output/server/_libs/radix-ui__react-context.mjs +0 -88
- package/.output/server/_libs/react-markdown+[...].mjs +0 -2316
- package/.output/server/_libs/rehype-raw.mjs +0 -37
- package/.output/server/_libs/rehype-sanitize.mjs +0 -27
- package/.output/server/_libs/remark-gfm.mjs +0 -34
- package/.output/server/_libs/shiki.mjs +0 -16
- package/.output/server/_libs/shikijs__langs.mjs +0 -1355
- package/.output/server/_libs/shikijs__themes.mjs +0 -262
- package/.output/server/_libs/sonner.mjs +0 -908
- package/.output/server/_libs/tailwind-merge.mjs +0 -1962
- package/.output/server/_libs/tanstack__history.mjs +0 -342
- package/.output/server/_libs/tanstack__pacer.mjs +0 -1111
- package/.output/server/_libs/tanstack__query-core.mjs +0 -2202
- package/.output/server/_libs/tanstack__react-hotkeys.mjs +0 -152
- package/.output/server/_libs/tanstack__react-query.mjs +0 -180
- package/.output/server/_libs/tanstack__react-store.mjs +0 -39
- package/.output/server/_libs/tanstack__router-core.mjs +0 -6
- package/.output/server/_libs/tanstack__store.mjs +0 -28
- package/.output/server/_libs/ufo.mjs +0 -64
- package/.output/server/_libs/unctx.mjs +0 -82
- package/.output/server/_libs/ungap__structured-clone.mjs +0 -197
- package/.output/server/_libs/vaul.mjs +0 -1250
- package/.output/server/_libs/xterm__addon-fit.mjs +0 -44
- package/.output/server/_libs/xterm__xterm.mjs +0 -10234
- package/.output/server/_libs/zod.mjs +0 -3341
- package/.output/server/_routes/api/terminal/[id]/ws.mjs +0 -8874
- package/.output/server/_runtime.mjs +0 -35
- package/.output/server/_ssr/router-CN4JMm2A.mjs +0 -9733
- package/.output/server/_ssr/routes-BsQ26pbY.mjs +0 -29306
- package/.output/server/_ssr/routes-DbjuMLFI.mjs +0 -3400
- package/.output/server/_ssr/ssr.mjs +0 -5176
- package/.output/server/_ssr/start-jIczsXlR.mjs +0 -4
- package/.output/server/_tanstack-start-manifest_v-Bs4g_j1_.mjs +0 -77
- package/.output/server/index.mjs +0 -2670
- package/.output/server/node_modules/node-pty/LICENSE +0 -69
- package/.output/server/node_modules/node-pty/README.md +0 -165
- package/.output/server/node_modules/node-pty/binding.gyp +0 -111
- package/.output/server/node_modules/node-pty/build/Makefile +0 -369
- package/.output/server/node_modules/node-pty/build/Release/pty.node +0 -0
- package/.output/server/node_modules/node-pty/build/binding.Makefile +0 -6
- package/.output/server/node_modules/node-pty/build/pty.target.mk +0 -168
- package/.output/server/node_modules/node-pty/deps/.editorconfig +0 -2
- package/.output/server/node_modules/node-pty/deps/winpty/.drone.yml +0 -17
- package/.output/server/node_modules/node-pty/deps/winpty/.gitattributes +0 -19
- package/.output/server/node_modules/node-pty/deps/winpty/LICENSE +0 -21
- package/.output/server/node_modules/node-pty/deps/winpty/Makefile +0 -166
- package/.output/server/node_modules/node-pty/deps/winpty/README.md +0 -151
- package/.output/server/node_modules/node-pty/deps/winpty/RELEASES.md +0 -280
- package/.output/server/node_modules/node-pty/deps/winpty/VERSION.txt +0 -1
- package/.output/server/node_modules/node-pty/deps/winpty/configure +0 -167
- package/.output/server/node_modules/node-pty/deps/winpty/misc/BufferResizeTests.cc +0 -90
- package/.output/server/node_modules/node-pty/deps/winpty/misc/ChangeScreenBuffer.cc +0 -53
- package/.output/server/node_modules/node-pty/deps/winpty/misc/ClearConsole.cc +0 -72
- package/.output/server/node_modules/node-pty/deps/winpty/misc/ConinMode.cc +0 -117
- package/.output/server/node_modules/node-pty/deps/winpty/misc/ConinMode.ps1 +0 -116
- package/.output/server/node_modules/node-pty/deps/winpty/misc/ConoutMode.cc +0 -113
- package/.output/server/node_modules/node-pty/deps/winpty/misc/DebugClient.py +0 -42
- package/.output/server/node_modules/node-pty/deps/winpty/misc/DebugServer.py +0 -63
- package/.output/server/node_modules/node-pty/deps/winpty/misc/DumpLines.py +0 -5
- package/.output/server/node_modules/node-pty/deps/winpty/misc/EnableExtendedFlags.txt +0 -46
- package/.output/server/node_modules/node-pty/deps/winpty/misc/Font-Report-June2016/CP437-Consolas.txt +0 -528
- package/.output/server/node_modules/node-pty/deps/winpty/misc/Font-Report-June2016/CP437-Lucida.txt +0 -633
- package/.output/server/node_modules/node-pty/deps/winpty/misc/Font-Report-June2016/CP932.txt +0 -630
- package/.output/server/node_modules/node-pty/deps/winpty/misc/Font-Report-June2016/CP936.txt +0 -630
- package/.output/server/node_modules/node-pty/deps/winpty/misc/Font-Report-June2016/CP949.txt +0 -630
- package/.output/server/node_modules/node-pty/deps/winpty/misc/Font-Report-June2016/CP950.txt +0 -630
- package/.output/server/node_modules/node-pty/deps/winpty/misc/Font-Report-June2016/MinimumWindowWidths.txt +0 -16
- package/.output/server/node_modules/node-pty/deps/winpty/misc/Font-Report-June2016/Results.txt +0 -4
- package/.output/server/node_modules/node-pty/deps/winpty/misc/Font-Report-June2016/Windows10SetFontBugginess.txt +0 -144
- package/.output/server/node_modules/node-pty/deps/winpty/misc/FontSurvey.cc +0 -100
- package/.output/server/node_modules/node-pty/deps/winpty/misc/FormatChar.h +0 -21
- package/.output/server/node_modules/node-pty/deps/winpty/misc/FreezePerfTest.cc +0 -62
- package/.output/server/node_modules/node-pty/deps/winpty/misc/GetCh.cc +0 -20
- package/.output/server/node_modules/node-pty/deps/winpty/misc/GetConsolePos.cc +0 -41
- package/.output/server/node_modules/node-pty/deps/winpty/misc/GetFont.cc +0 -261
- package/.output/server/node_modules/node-pty/deps/winpty/misc/IdentifyConsoleWindow.ps1 +0 -51
- package/.output/server/node_modules/node-pty/deps/winpty/misc/IsNewConsole.cc +0 -87
- package/.output/server/node_modules/node-pty/deps/winpty/misc/MouseInputNotes.txt +0 -90
- package/.output/server/node_modules/node-pty/deps/winpty/misc/MoveConsoleWindow.cc +0 -34
- package/.output/server/node_modules/node-pty/deps/winpty/misc/Notes.txt +0 -219
- package/.output/server/node_modules/node-pty/deps/winpty/misc/OSVersion.cc +0 -27
- package/.output/server/node_modules/node-pty/deps/winpty/misc/ScreenBufferFreezeInactive.cc +0 -101
- package/.output/server/node_modules/node-pty/deps/winpty/misc/ScreenBufferTest.cc +0 -671
- package/.output/server/node_modules/node-pty/deps/winpty/misc/ScreenBufferTest2.cc +0 -151
- package/.output/server/node_modules/node-pty/deps/winpty/misc/SelectAllTest.cc +0 -45
- package/.output/server/node_modules/node-pty/deps/winpty/misc/SetBufferSize.cc +0 -32
- package/.output/server/node_modules/node-pty/deps/winpty/misc/SetCursorPos.cc +0 -10
- package/.output/server/node_modules/node-pty/deps/winpty/misc/SetFont.cc +0 -145
- package/.output/server/node_modules/node-pty/deps/winpty/misc/SetWindowRect.cc +0 -36
- package/.output/server/node_modules/node-pty/deps/winpty/misc/ShowArgv.cc +0 -12
- package/.output/server/node_modules/node-pty/deps/winpty/misc/ShowConsoleInput.cc +0 -40
- package/.output/server/node_modules/node-pty/deps/winpty/misc/Spew.py +0 -5
- package/.output/server/node_modules/node-pty/deps/winpty/misc/TestUtil.cc +0 -172
- package/.output/server/node_modules/node-pty/deps/winpty/misc/UnicodeDoubleWidthTest.cc +0 -102
- package/.output/server/node_modules/node-pty/deps/winpty/misc/UnicodeWideTest1.cc +0 -246
- package/.output/server/node_modules/node-pty/deps/winpty/misc/UnicodeWideTest2.cc +0 -130
- package/.output/server/node_modules/node-pty/deps/winpty/misc/UnixEcho.cc +0 -89
- package/.output/server/node_modules/node-pty/deps/winpty/misc/Utf16Echo.cc +0 -46
- package/.output/server/node_modules/node-pty/deps/winpty/misc/VeryLargeRead.cc +0 -122
- package/.output/server/node_modules/node-pty/deps/winpty/misc/VkEscapeTest.cc +0 -56
- package/.output/server/node_modules/node-pty/deps/winpty/misc/Win10ResizeWhileFrozen.cc +0 -52
- package/.output/server/node_modules/node-pty/deps/winpty/misc/Win10WrapTest1.cc +0 -57
- package/.output/server/node_modules/node-pty/deps/winpty/misc/Win10WrapTest2.cc +0 -30
- package/.output/server/node_modules/node-pty/deps/winpty/misc/Win32Echo1.cc +0 -26
- package/.output/server/node_modules/node-pty/deps/winpty/misc/Win32Echo2.cc +0 -19
- package/.output/server/node_modules/node-pty/deps/winpty/misc/Win32Test1.cc +0 -46
- package/.output/server/node_modules/node-pty/deps/winpty/misc/Win32Test2.cc +0 -70
- package/.output/server/node_modules/node-pty/deps/winpty/misc/Win32Test3.cc +0 -78
- package/.output/server/node_modules/node-pty/deps/winpty/misc/Win32Write1.cc +0 -44
- package/.output/server/node_modules/node-pty/deps/winpty/misc/WindowsBugCrashReader.cc +0 -27
- package/.output/server/node_modules/node-pty/deps/winpty/misc/WriteConsole.cc +0 -106
- package/.output/server/node_modules/node-pty/deps/winpty/misc/build32.sh +0 -9
- package/.output/server/node_modules/node-pty/deps/winpty/misc/build64.sh +0 -9
- package/.output/server/node_modules/node-pty/deps/winpty/misc/color-test.sh +0 -212
- package/.output/server/node_modules/node-pty/deps/winpty/misc/font-notes.txt +0 -300
- package/.output/server/node_modules/node-pty/deps/winpty/misc/winbug-15048.cc +0 -201
- package/.output/server/node_modules/node-pty/deps/winpty/ship/build-pty4j-libpty.bat +0 -36
- package/.output/server/node_modules/node-pty/deps/winpty/ship/common_ship.py +0 -53
- package/.output/server/node_modules/node-pty/deps/winpty/ship/make_msvc_package.py +0 -165
- package/.output/server/node_modules/node-pty/deps/winpty/ship/ship.py +0 -108
- package/.output/server/node_modules/node-pty/deps/winpty/src/agent/Agent.cc +0 -613
- package/.output/server/node_modules/node-pty/deps/winpty/src/agent/Agent.h +0 -103
- package/.output/server/node_modules/node-pty/deps/winpty/src/agent/AgentCreateDesktop.cc +0 -84
- package/.output/server/node_modules/node-pty/deps/winpty/src/agent/AgentCreateDesktop.h +0 -28
- package/.output/server/node_modules/node-pty/deps/winpty/src/agent/ConsoleFont.cc +0 -632
- package/.output/server/node_modules/node-pty/deps/winpty/src/agent/ConsoleFont.h +0 -28
- package/.output/server/node_modules/node-pty/deps/winpty/src/agent/ConsoleInput.cc +0 -852
- package/.output/server/node_modules/node-pty/deps/winpty/src/agent/ConsoleInput.h +0 -109
- package/.output/server/node_modules/node-pty/deps/winpty/src/agent/ConsoleInputReencoding.cc +0 -121
- package/.output/server/node_modules/node-pty/deps/winpty/src/agent/ConsoleInputReencoding.h +0 -36
- package/.output/server/node_modules/node-pty/deps/winpty/src/agent/ConsoleLine.cc +0 -152
- package/.output/server/node_modules/node-pty/deps/winpty/src/agent/ConsoleLine.h +0 -41
- package/.output/server/node_modules/node-pty/deps/winpty/src/agent/Coord.h +0 -87
- package/.output/server/node_modules/node-pty/deps/winpty/src/agent/DebugShowInput.cc +0 -239
- package/.output/server/node_modules/node-pty/deps/winpty/src/agent/DebugShowInput.h +0 -32
- package/.output/server/node_modules/node-pty/deps/winpty/src/agent/DefaultInputMap.cc +0 -422
- package/.output/server/node_modules/node-pty/deps/winpty/src/agent/DefaultInputMap.h +0 -28
- package/.output/server/node_modules/node-pty/deps/winpty/src/agent/DsrSender.h +0 -30
- package/.output/server/node_modules/node-pty/deps/winpty/src/agent/EventLoop.cc +0 -99
- package/.output/server/node_modules/node-pty/deps/winpty/src/agent/EventLoop.h +0 -47
- package/.output/server/node_modules/node-pty/deps/winpty/src/agent/InputMap.cc +0 -246
- package/.output/server/node_modules/node-pty/deps/winpty/src/agent/InputMap.h +0 -114
- package/.output/server/node_modules/node-pty/deps/winpty/src/agent/LargeConsoleRead.cc +0 -71
- package/.output/server/node_modules/node-pty/deps/winpty/src/agent/LargeConsoleRead.h +0 -68
- package/.output/server/node_modules/node-pty/deps/winpty/src/agent/NamedPipe.cc +0 -378
- package/.output/server/node_modules/node-pty/deps/winpty/src/agent/NamedPipe.h +0 -125
- package/.output/server/node_modules/node-pty/deps/winpty/src/agent/Scraper.cc +0 -699
- package/.output/server/node_modules/node-pty/deps/winpty/src/agent/Scraper.h +0 -103
- package/.output/server/node_modules/node-pty/deps/winpty/src/agent/SimplePool.h +0 -75
- package/.output/server/node_modules/node-pty/deps/winpty/src/agent/SmallRect.h +0 -143
- package/.output/server/node_modules/node-pty/deps/winpty/src/agent/Terminal.cc +0 -535
- package/.output/server/node_modules/node-pty/deps/winpty/src/agent/Terminal.h +0 -69
- package/.output/server/node_modules/node-pty/deps/winpty/src/agent/UnicodeEncoding.h +0 -157
- package/.output/server/node_modules/node-pty/deps/winpty/src/agent/UnicodeEncodingTest.cc +0 -189
- package/.output/server/node_modules/node-pty/deps/winpty/src/agent/Win32Console.cc +0 -107
- package/.output/server/node_modules/node-pty/deps/winpty/src/agent/Win32Console.h +0 -67
- package/.output/server/node_modules/node-pty/deps/winpty/src/agent/Win32ConsoleBuffer.cc +0 -193
- package/.output/server/node_modules/node-pty/deps/winpty/src/agent/Win32ConsoleBuffer.h +0 -99
- package/.output/server/node_modules/node-pty/deps/winpty/src/agent/main.cc +0 -114
- package/.output/server/node_modules/node-pty/deps/winpty/src/agent/subdir.mk +0 -61
- package/.output/server/node_modules/node-pty/deps/winpty/src/configurations.gypi +0 -60
- package/.output/server/node_modules/node-pty/deps/winpty/src/debugserver/DebugServer.cc +0 -117
- package/.output/server/node_modules/node-pty/deps/winpty/src/debugserver/subdir.mk +0 -41
- package/.output/server/node_modules/node-pty/deps/winpty/src/include/winpty.h +0 -242
- package/.output/server/node_modules/node-pty/deps/winpty/src/include/winpty_constants.h +0 -131
- package/.output/server/node_modules/node-pty/deps/winpty/src/libwinpty/AgentLocation.cc +0 -75
- package/.output/server/node_modules/node-pty/deps/winpty/src/libwinpty/AgentLocation.h +0 -28
- package/.output/server/node_modules/node-pty/deps/winpty/src/libwinpty/LibWinptyException.h +0 -54
- package/.output/server/node_modules/node-pty/deps/winpty/src/libwinpty/WinptyInternal.h +0 -72
- package/.output/server/node_modules/node-pty/deps/winpty/src/libwinpty/subdir.mk +0 -46
- package/.output/server/node_modules/node-pty/deps/winpty/src/libwinpty/winpty.cc +0 -970
- package/.output/server/node_modules/node-pty/deps/winpty/src/shared/AgentMsg.h +0 -38
- package/.output/server/node_modules/node-pty/deps/winpty/src/shared/BackgroundDesktop.cc +0 -122
- package/.output/server/node_modules/node-pty/deps/winpty/src/shared/BackgroundDesktop.h +0 -73
- package/.output/server/node_modules/node-pty/deps/winpty/src/shared/Buffer.cc +0 -103
- package/.output/server/node_modules/node-pty/deps/winpty/src/shared/Buffer.h +0 -102
- package/.output/server/node_modules/node-pty/deps/winpty/src/shared/DebugClient.cc +0 -187
- package/.output/server/node_modules/node-pty/deps/winpty/src/shared/DebugClient.h +0 -38
- package/.output/server/node_modules/node-pty/deps/winpty/src/shared/GenRandom.cc +0 -138
- package/.output/server/node_modules/node-pty/deps/winpty/src/shared/GenRandom.h +0 -55
- package/.output/server/node_modules/node-pty/deps/winpty/src/shared/GetCommitHash.bat +0 -13
- package/.output/server/node_modules/node-pty/deps/winpty/src/shared/Mutex.h +0 -54
- package/.output/server/node_modules/node-pty/deps/winpty/src/shared/OsModule.h +0 -63
- package/.output/server/node_modules/node-pty/deps/winpty/src/shared/OwnedHandle.cc +0 -36
- package/.output/server/node_modules/node-pty/deps/winpty/src/shared/OwnedHandle.h +0 -45
- package/.output/server/node_modules/node-pty/deps/winpty/src/shared/PrecompiledHeader.h +0 -43
- package/.output/server/node_modules/node-pty/deps/winpty/src/shared/StringBuilder.h +0 -227
- package/.output/server/node_modules/node-pty/deps/winpty/src/shared/StringBuilderTest.cc +0 -114
- package/.output/server/node_modules/node-pty/deps/winpty/src/shared/StringUtil.cc +0 -55
- package/.output/server/node_modules/node-pty/deps/winpty/src/shared/StringUtil.h +0 -80
- package/.output/server/node_modules/node-pty/deps/winpty/src/shared/TimeMeasurement.h +0 -63
- package/.output/server/node_modules/node-pty/deps/winpty/src/shared/UnixCtrlChars.h +0 -45
- package/.output/server/node_modules/node-pty/deps/winpty/src/shared/UpdateGenVersion.bat +0 -20
- package/.output/server/node_modules/node-pty/deps/winpty/src/shared/WindowsSecurity.cc +0 -460
- package/.output/server/node_modules/node-pty/deps/winpty/src/shared/WindowsSecurity.h +0 -104
- package/.output/server/node_modules/node-pty/deps/winpty/src/shared/WindowsVersion.cc +0 -252
- package/.output/server/node_modules/node-pty/deps/winpty/src/shared/WindowsVersion.h +0 -29
- package/.output/server/node_modules/node-pty/deps/winpty/src/shared/WinptyAssert.cc +0 -55
- package/.output/server/node_modules/node-pty/deps/winpty/src/shared/WinptyAssert.h +0 -64
- package/.output/server/node_modules/node-pty/deps/winpty/src/shared/WinptyException.cc +0 -57
- package/.output/server/node_modules/node-pty/deps/winpty/src/shared/WinptyException.h +0 -43
- package/.output/server/node_modules/node-pty/deps/winpty/src/shared/WinptyVersion.cc +0 -42
- package/.output/server/node_modules/node-pty/deps/winpty/src/shared/WinptyVersion.h +0 -27
- package/.output/server/node_modules/node-pty/deps/winpty/src/shared/winpty_snprintf.h +0 -99
- package/.output/server/node_modules/node-pty/deps/winpty/src/subdir.mk +0 -5
- package/.output/server/node_modules/node-pty/deps/winpty/src/tests/subdir.mk +0 -28
- package/.output/server/node_modules/node-pty/deps/winpty/src/tests/trivial_test.cc +0 -158
- package/.output/server/node_modules/node-pty/deps/winpty/src/unix-adapter/InputHandler.cc +0 -114
- package/.output/server/node_modules/node-pty/deps/winpty/src/unix-adapter/InputHandler.h +0 -56
- package/.output/server/node_modules/node-pty/deps/winpty/src/unix-adapter/OutputHandler.cc +0 -80
- package/.output/server/node_modules/node-pty/deps/winpty/src/unix-adapter/OutputHandler.h +0 -53
- package/.output/server/node_modules/node-pty/deps/winpty/src/unix-adapter/Util.cc +0 -86
- package/.output/server/node_modules/node-pty/deps/winpty/src/unix-adapter/Util.h +0 -31
- package/.output/server/node_modules/node-pty/deps/winpty/src/unix-adapter/WakeupFd.cc +0 -70
- package/.output/server/node_modules/node-pty/deps/winpty/src/unix-adapter/WakeupFd.h +0 -42
- package/.output/server/node_modules/node-pty/deps/winpty/src/unix-adapter/main.cc +0 -729
- package/.output/server/node_modules/node-pty/deps/winpty/src/unix-adapter/subdir.mk +0 -41
- package/.output/server/node_modules/node-pty/deps/winpty/src/winpty.gyp +0 -234
- package/.output/server/node_modules/node-pty/deps/winpty/vcbuild.bat +0 -83
- package/.output/server/node_modules/node-pty/lib/conpty_console_list_agent.js +0 -16
- package/.output/server/node_modules/node-pty/lib/conpty_console_list_agent.js.map +0 -1
- package/.output/server/node_modules/node-pty/lib/eventEmitter2.js +0 -47
- package/.output/server/node_modules/node-pty/lib/eventEmitter2.js.map +0 -1
- package/.output/server/node_modules/node-pty/lib/eventEmitter2.test.js +0 -30
- package/.output/server/node_modules/node-pty/lib/eventEmitter2.test.js.map +0 -1
- package/.output/server/node_modules/node-pty/lib/index.js +0 -52
- package/.output/server/node_modules/node-pty/lib/index.js.map +0 -1
- package/.output/server/node_modules/node-pty/lib/interfaces.js +0 -7
- package/.output/server/node_modules/node-pty/lib/interfaces.js.map +0 -1
- package/.output/server/node_modules/node-pty/lib/shared/conout.js +0 -11
- package/.output/server/node_modules/node-pty/lib/shared/conout.js.map +0 -1
- package/.output/server/node_modules/node-pty/lib/terminal.js +0 -190
- package/.output/server/node_modules/node-pty/lib/terminal.js.map +0 -1
- package/.output/server/node_modules/node-pty/lib/terminal.test.js +0 -139
- package/.output/server/node_modules/node-pty/lib/terminal.test.js.map +0 -1
- package/.output/server/node_modules/node-pty/lib/testUtils.test.js +0 -28
- package/.output/server/node_modules/node-pty/lib/testUtils.test.js.map +0 -1
- package/.output/server/node_modules/node-pty/lib/types.js +0 -7
- package/.output/server/node_modules/node-pty/lib/types.js.map +0 -1
- package/.output/server/node_modules/node-pty/lib/unixTerminal.js +0 -346
- package/.output/server/node_modules/node-pty/lib/unixTerminal.js.map +0 -1
- package/.output/server/node_modules/node-pty/lib/unixTerminal.test.js +0 -351
- package/.output/server/node_modules/node-pty/lib/unixTerminal.test.js.map +0 -1
- package/.output/server/node_modules/node-pty/lib/utils.js +0 -39
- package/.output/server/node_modules/node-pty/lib/utils.js.map +0 -1
- package/.output/server/node_modules/node-pty/lib/windowsConoutConnection.js +0 -125
- package/.output/server/node_modules/node-pty/lib/windowsConoutConnection.js.map +0 -1
- package/.output/server/node_modules/node-pty/lib/windowsPtyAgent.js +0 -320
- package/.output/server/node_modules/node-pty/lib/windowsPtyAgent.js.map +0 -1
- package/.output/server/node_modules/node-pty/lib/windowsPtyAgent.test.js +0 -90
- package/.output/server/node_modules/node-pty/lib/windowsPtyAgent.test.js.map +0 -1
- package/.output/server/node_modules/node-pty/lib/windowsTerminal.js +0 -199
- package/.output/server/node_modules/node-pty/lib/windowsTerminal.js.map +0 -1
- package/.output/server/node_modules/node-pty/lib/windowsTerminal.test.js +0 -219
- package/.output/server/node_modules/node-pty/lib/windowsTerminal.test.js.map +0 -1
- package/.output/server/node_modules/node-pty/lib/worker/conoutSocketWorker.js +0 -22
- package/.output/server/node_modules/node-pty/lib/worker/conoutSocketWorker.js.map +0 -1
- package/.output/server/node_modules/node-pty/package.json +0 -64
- package/.output/server/node_modules/node-pty/prebuilds/darwin-arm64/pty.node +0 -0
- package/.output/server/node_modules/node-pty/prebuilds/darwin-arm64/spawn-helper +0 -0
- package/.output/server/node_modules/node-pty/prebuilds/darwin-x64/pty.node +0 -0
- package/.output/server/node_modules/node-pty/prebuilds/darwin-x64/spawn-helper +0 -0
- package/.output/server/node_modules/node-pty/prebuilds/win32-arm64/conpty/OpenConsole.exe +0 -0
- package/.output/server/node_modules/node-pty/prebuilds/win32-arm64/conpty/conpty.dll +0 -0
- package/.output/server/node_modules/node-pty/prebuilds/win32-arm64/conpty.node +0 -0
- package/.output/server/node_modules/node-pty/prebuilds/win32-arm64/conpty.pdb +0 -0
- package/.output/server/node_modules/node-pty/prebuilds/win32-arm64/conpty_console_list.node +0 -0
- package/.output/server/node_modules/node-pty/prebuilds/win32-arm64/conpty_console_list.pdb +0 -0
- package/.output/server/node_modules/node-pty/prebuilds/win32-arm64/pty.node +0 -0
- package/.output/server/node_modules/node-pty/prebuilds/win32-arm64/pty.pdb +0 -0
- package/.output/server/node_modules/node-pty/prebuilds/win32-arm64/winpty-agent.exe +0 -0
- package/.output/server/node_modules/node-pty/prebuilds/win32-arm64/winpty-agent.pdb +0 -0
- package/.output/server/node_modules/node-pty/prebuilds/win32-arm64/winpty.dll +0 -0
- package/.output/server/node_modules/node-pty/prebuilds/win32-arm64/winpty.pdb +0 -0
- package/.output/server/node_modules/node-pty/prebuilds/win32-x64/conpty/OpenConsole.exe +0 -0
- package/.output/server/node_modules/node-pty/prebuilds/win32-x64/conpty/conpty.dll +0 -0
- package/.output/server/node_modules/node-pty/prebuilds/win32-x64/conpty.node +0 -0
- package/.output/server/node_modules/node-pty/prebuilds/win32-x64/conpty.pdb +0 -0
- package/.output/server/node_modules/node-pty/prebuilds/win32-x64/conpty_console_list.node +0 -0
- package/.output/server/node_modules/node-pty/prebuilds/win32-x64/conpty_console_list.pdb +0 -0
- package/.output/server/node_modules/node-pty/prebuilds/win32-x64/pty.node +0 -0
- package/.output/server/node_modules/node-pty/prebuilds/win32-x64/pty.pdb +0 -0
- package/.output/server/node_modules/node-pty/prebuilds/win32-x64/winpty-agent.exe +0 -0
- package/.output/server/node_modules/node-pty/prebuilds/win32-x64/winpty-agent.pdb +0 -0
- package/.output/server/node_modules/node-pty/prebuilds/win32-x64/winpty.dll +0 -0
- package/.output/server/node_modules/node-pty/prebuilds/win32-x64/winpty.pdb +0 -0
- package/.output/server/node_modules/node-pty/scripts/gen-compile-commands.js +0 -8
- package/.output/server/node_modules/node-pty/scripts/increment-version.js +0 -54
- package/.output/server/node_modules/node-pty/scripts/post-install.js +0 -80
- package/.output/server/node_modules/node-pty/scripts/prebuild.js +0 -34
- package/.output/server/node_modules/node-pty/src/conpty_console_list_agent.ts +0 -15
- package/.output/server/node_modules/node-pty/src/eventEmitter2.test.ts +0 -30
- package/.output/server/node_modules/node-pty/src/eventEmitter2.ts +0 -48
- package/.output/server/node_modules/node-pty/src/index.ts +0 -52
- package/.output/server/node_modules/node-pty/src/interfaces.ts +0 -130
- package/.output/server/node_modules/node-pty/src/native.d.ts +0 -54
- package/.output/server/node_modules/node-pty/src/shared/conout.ts +0 -15
- package/.output/server/node_modules/node-pty/src/terminal.test.ts +0 -119
- package/.output/server/node_modules/node-pty/src/terminal.ts +0 -211
- package/.output/server/node_modules/node-pty/src/testUtils.test.ts +0 -23
- package/.output/server/node_modules/node-pty/src/tsconfig.json +0 -22
- package/.output/server/node_modules/node-pty/src/types.ts +0 -15
- package/.output/server/node_modules/node-pty/src/unix/pty.cc +0 -799
- package/.output/server/node_modules/node-pty/src/unix/spawn-helper.cc +0 -23
- package/.output/server/node_modules/node-pty/src/unixTerminal.test.ts +0 -367
- package/.output/server/node_modules/node-pty/src/unixTerminal.ts +0 -388
- package/.output/server/node_modules/node-pty/src/utils.ts +0 -29
- package/.output/server/node_modules/node-pty/src/win/conpty.cc +0 -583
- package/.output/server/node_modules/node-pty/src/win/conpty.h +0 -41
- package/.output/server/node_modules/node-pty/src/win/conpty_console_list.cc +0 -44
- package/.output/server/node_modules/node-pty/src/win/path_util.cc +0 -95
- package/.output/server/node_modules/node-pty/src/win/path_util.h +0 -26
- package/.output/server/node_modules/node-pty/src/win/winpty.cc +0 -333
- package/.output/server/node_modules/node-pty/src/windowsConoutConnection.ts +0 -82
- package/.output/server/node_modules/node-pty/src/windowsPtyAgent.test.ts +0 -94
- package/.output/server/node_modules/node-pty/src/windowsPtyAgent.ts +0 -321
- package/.output/server/node_modules/node-pty/src/windowsTerminal.test.ts +0 -229
- package/.output/server/node_modules/node-pty/src/windowsTerminal.ts +0 -203
- package/.output/server/node_modules/node-pty/src/worker/conoutSocketWorker.ts +0 -22
- package/.output/server/node_modules/node-pty/third_party/conpty/1.23.251008001/win10-arm64/OpenConsole.exe +0 -0
- package/.output/server/node_modules/node-pty/third_party/conpty/1.23.251008001/win10-arm64/conpty.dll +0 -0
- package/.output/server/node_modules/node-pty/third_party/conpty/1.23.251008001/win10-x64/OpenConsole.exe +0 -0
- package/.output/server/node_modules/node-pty/third_party/conpty/1.23.251008001/win10-x64/conpty.dll +0 -0
- package/.output/server/node_modules/node-pty/typings/node-pty.d.ts +0 -211
- package/.output/server/node_modules/tslib/modules/index.js +0 -70
- package/.output/server/node_modules/tslib/modules/package.json +0 -3
- package/.output/server/node_modules/tslib/package.json +0 -47
- package/.output/server/node_modules/tslib/tslib.js +0 -484
- package/.output/server/package.json +0 -10
- package/scripts/release.mjs +0 -173
- package/vendor/node-domexception/index.js +0 -3
- package/vendor/node-domexception/package.json +0 -10
- /package/.output/public/assets/{abap-smLpETzL.js → abap-CglpPUUh.js} +0 -0
- /package/.output/public/assets/{actionscript-3-o-aRvjY5.js → actionscript-3-CGv72Q9E.js} +0 -0
- /package/.output/public/assets/{ada-D5RRX1i4.js → ada-CfxXaXwr.js} +0 -0
- /package/.output/public/assets/{addon-fit-CMMXLNsg.js → addon-fit-C9RD8ot3.js} +0 -0
- /package/.output/public/assets/{andromeeda-N4z3YzmR.js → andromeeda-DXsn6mTE.js} +0 -0
- /package/.output/public/assets/{apache-DttKlSqg.js → apache-D5xAQKSB.js} +0 -0
- /package/.output/public/assets/{apex-DL7j-a2n.js → apex-qgfedJV2.js} +0 -0
- /package/.output/public/assets/{applescript-DCbL_2FX.js → applescript-DqumQxTt.js} +0 -0
- /package/.output/public/assets/{ara-DqheWJCe.js → ara-Ditv3ow6.js} +0 -0
- /package/.output/public/assets/{asciidoc-BH2sf2K4.js → asciidoc-DL8QwiT7.js} +0 -0
- /package/.output/public/assets/{asm-rfjOMz3U.js → asm-K6TMxl3o.js} +0 -0
- /package/.output/public/assets/{aurora-x-CND-FqEb.js → aurora-x-DGv-xZaa.js} +0 -0
- /package/.output/public/assets/{awk-CMV5n9Z7.js → awk-CYSfQSDT.js} +0 -0
- /package/.output/public/assets/{ayu-dark-on7xzq_B.js → ayu-dark-DGBaJbpH.js} +0 -0
- /package/.output/public/assets/{ayu-light-DnGeGGc2.js → ayu-light-BQrGPVs2.js} +0 -0
- /package/.output/public/assets/{ayu-mirage-DG3LlYC_.js → ayu-mirage-Do-5o2VL.js} +0 -0
- /package/.output/public/assets/{ballerina-BjMqJjlr.js → ballerina-BE-8n54s.js} +0 -0
- /package/.output/public/assets/{bat-BaVbo_qw.js → bat-B1zTc1QZ.js} +0 -0
- /package/.output/public/assets/{beancount-DBt5Mbc_.js → beancount-DhObrvif.js} +0 -0
- /package/.output/public/assets/{berry-Cyjuxiss.js → berry-Cnbvthv1.js} +0 -0
- /package/.output/public/assets/{bibtex-BV_0nsPq.js → bibtex-pp5SrwZy.js} +0 -0
- /package/.output/public/assets/{bicep-C2gEwu4J.js → bicep-BL6eYxbs.js} +0 -0
- /package/.output/public/assets/{bird2-BRyaEJd0.js → bird2-BQaXYY9n.js} +0 -0
- /package/.output/public/assets/{c-Nc9zJT78.js → c-BHFJ4Jk3.js} +0 -0
- /package/.output/public/assets/{c3-DTTbp5N2.js → c3-BHTco5Hb.js} +0 -0
- /package/.output/public/assets/{cadence-CPz83cmI.js → cadence-CoPxW0qb.js} +0 -0
- /package/.output/public/assets/{catppuccin-frappe-Dr22sraq.js → catppuccin-frappe-9fYwMJCf.js} +0 -0
- /package/.output/public/assets/{catppuccin-latte-C57EeX8c.js → catppuccin-latte-BUiKH1yZ.js} +0 -0
- /package/.output/public/assets/{catppuccin-macchiato-CpheI4uD.js → catppuccin-macchiato-ZmO2e0M_.js} +0 -0
- /package/.output/public/assets/{catppuccin-mocha-D8Lmdks_.js → catppuccin-mocha-CFwbXQfO.js} +0 -0
- /package/.output/public/assets/{clarity-CFJ2Yc3q.js → clarity-DVUGm1xP.js} +0 -0
- /package/.output/public/assets/{clojure-6R01QgJC.js → clojure-BgXJG6FG.js} +0 -0
- /package/.output/public/assets/{cmake-D5rSbMir.js → cmake-CZndsvm6.js} +0 -0
- /package/.output/public/assets/{codeowners-_3A-ClkN.js → codeowners-Dd7a447M.js} +0 -0
- /package/.output/public/assets/{codeql-DlIhJTR7.js → codeql-XJR6llG-.js} +0 -0
- /package/.output/public/assets/{common-lisp-BvQzz173.js → common-lisp-BOMbLvgT.js} +0 -0
- /package/.output/public/assets/{coq-DTNXReIC.js → coq-DnhmQYDa.js} +0 -0
- /package/.output/public/assets/{csharp-BDKQY1K9.js → csharp-BdEyRqBm.js} +0 -0
- /package/.output/public/assets/{css-DRmnABqB.js → css-CsTDDTLq.js} +0 -0
- /package/.output/public/assets/{csv-DNUpVBxl.js → csv-CXchYFbz.js} +0 -0
- /package/.output/public/assets/{cue-DDdBc2s3.js → cue-D7YpBZvd.js} +0 -0
- /package/.output/public/assets/{cypher-CguaznO2.js → cypher-XIm1N8YJ.js} +0 -0
- /package/.output/public/assets/{d-CHcoyjv3.js → d-DvB0pbZH.js} +0 -0
- /package/.output/public/assets/{dark-plus-CqeW_0kH.js → dark-plus-BUdpMFIA.js} +0 -0
- /package/.output/public/assets/{dart-RM3aRphk.js → dart-CwpSKTMB.js} +0 -0
- /package/.output/public/assets/{dax-nbnY1d79.js → dax-CEynWJsU.js} +0 -0
- /package/.output/public/assets/{desktop-BD76cvxT.js → desktop-Dk-YiYS_.js} +0 -0
- /package/.output/public/assets/{diff-CdkWtnkL.js → diff-abLZ-xM1.js} +0 -0
- /package/.output/public/assets/{docker-ZyPHc6zB.js → docker-BT48KsRJ.js} +0 -0
- /package/.output/public/assets/{dotenv-BdJZEwA6.js → dotenv-NOMQQbM0.js} +0 -0
- /package/.output/public/assets/{dracula-CtqCPLGa.js → dracula-BUW0ZyNO.js} +0 -0
- /package/.output/public/assets/{dracula-soft-DmBpwRAy.js → dracula-soft-BMjAt1_u.js} +0 -0
- /package/.output/public/assets/{dream-maker-BJL4qlg3.js → dream-maker-D26TP1Q3.js} +0 -0
- /package/.output/public/assets/{emacs-lisp-_LyYa2Ky.js → emacs-lisp-C2EvfotR.js} +0 -0
- /package/.output/public/assets/{everforest-dark-CrbyKk4n.js → everforest-dark-hC6a272f.js} +0 -0
- /package/.output/public/assets/{everforest-light-DRbSh8Tm.js → everforest-light-BTpbYY5G.js} +0 -0
- /package/.output/public/assets/{fennel-CC2BkRsS.js → fennel-DWOL-Ewx.js} +0 -0
- /package/.output/public/assets/{fish-D2ZCzqcE.js → fish-CQPQq0pQ.js} +0 -0
- /package/.output/public/assets/{fluent-DKAm3m7q.js → fluent-BYdsr2M8.js} +0 -0
- /package/.output/public/assets/{fortran-free-form-BPTf0lbT.js → fortran-free-form-C_EtY4F9.js} +0 -0
- /package/.output/public/assets/{gdscript-CsadCSaZ.js → gdscript-CH_tD-VB.js} +0 -0
- /package/.output/public/assets/{gdshader-PfnN_8tR.js → gdshader-BemFblFP.js} +0 -0
- /package/.output/public/assets/{genie-Bj-orPAV.js → genie-hCPg_eq7.js} +0 -0
- /package/.output/public/assets/{gherkin-COVWpJ-Q.js → gherkin-CO0ypD1P.js} +0 -0
- /package/.output/public/assets/{github-dark-ipGuFGYC.js → github-dark-cA72fqmI.js} +0 -0
- /package/.output/public/assets/{github-dark-default-DX3IG_X0.js → github-dark-default-DiYTFvY5.js} +0 -0
- /package/.output/public/assets/{github-dark-dimmed-CH6p_7ez.js → github-dark-dimmed-D-uBHzyG.js} +0 -0
- /package/.output/public/assets/{github-dark-high-contrast-Bg2sSao5.js → github-dark-high-contrast-BrUSkckI.js} +0 -0
- /package/.output/public/assets/{github-light-default-DwpDd1IQ.js → github-light-default-BT-6Vf7C.js} +0 -0
- /package/.output/public/assets/{github-light-high-contrast-C0QeixPf.js → github-light-high-contrast-DqmEyTTc.js} +0 -0
- /package/.output/public/assets/{github-light-BxjqOQl0.js → github-light-piFPqU8R.js} +0 -0
- /package/.output/public/assets/{gleam-BF2NigGj.js → gleam-CWJA_H5i.js} +0 -0
- /package/.output/public/assets/{gn-CMIt9roj.js → gn-nlTwLSjP.js} +0 -0
- /package/.output/public/assets/{gnuplot-DgWlRTEj.js → gnuplot-wYV0MbPl.js} +0 -0
- /package/.output/public/assets/{go-DLnOLj8q.js → go-BUPBDRDo.js} +0 -0
- /package/.output/public/assets/{groovy-B9qLWIkE.js → groovy-BusafOA8.js} +0 -0
- /package/.output/public/assets/{gruvbox-dark-hard-BIMX9ePb.js → gruvbox-dark-hard-BrrZYoPF.js} +0 -0
- /package/.output/public/assets/{gruvbox-dark-medium-DxuwyVzM.js → gruvbox-dark-medium-DsxcLuUs.js} +0 -0
- /package/.output/public/assets/{gruvbox-dark-soft-ba2fjht0.js → gruvbox-dark-soft-DQXOs_GH.js} +0 -0
- /package/.output/public/assets/{gruvbox-light-hard-DAJK2PqC.js → gruvbox-light-hard-CtHwj_cB.js} +0 -0
- /package/.output/public/assets/{gruvbox-light-medium-WRifDAJD.js → gruvbox-light-medium-CPJMdgXQ.js} +0 -0
- /package/.output/public/assets/{gruvbox-light-soft-B0dBOoVB.js → gruvbox-light-soft-C4Xh9Hc-.js} +0 -0
- /package/.output/public/assets/{haskell-BaGpmm_c.js → haskell-CaDqJkn4.js} +0 -0
- /package/.output/public/assets/{haxe-DfXTCEOz.js → haxe-Dxg-8_J7.js} +0 -0
- /package/.output/public/assets/{hcl-CbCtpSbi.js → hcl-Bjg-rMJ0.js} +0 -0
- /package/.output/public/assets/{hjson-_4-w-pHU.js → hjson-BMbeOOMg.js} +0 -0
- /package/.output/public/assets/{hlsl-DpuYn7pp.js → hlsl-D-cuwCFV.js} +0 -0
- /package/.output/public/assets/{horizon-C5RtD1fY.js → horizon-BofYY9of.js} +0 -0
- /package/.output/public/assets/{horizon-bright-pEOice34.js → horizon-bright-CFOVQsf2.js} +0 -0
- /package/.output/public/assets/{houston-A0zg9vNP.js → houston-BIBYxFpQ.js} +0 -0
- /package/.output/public/assets/{hy-t9zDXBje.js → hy-Cye3Jt7O.js} +0 -0
- /package/.output/public/assets/{imba-Bxu-TDfw.js → imba-CjkQtgD2.js} +0 -0
- /package/.output/public/assets/{ini-D-v34c8N.js → ini-BvMtfDNl.js} +0 -0
- /package/.output/public/assets/{java-DVLnIrqC.js → java-BYO3uQJZ.js} +0 -0
- /package/.output/public/assets/{javascript-Cop1kpy_.js → javascript-BsdGTPv_.js} +0 -0
- /package/.output/public/assets/{json-CTw4n7kn.js → json-Kp2u6f_f.js} +0 -0
- /package/.output/public/assets/{json5-D0XL1D5m.js → json5-BCxDPjxU.js} +0 -0
- /package/.output/public/assets/{jsonc-BBgf3TX3.js → jsonc-BV8VFjqO.js} +0 -0
- /package/.output/public/assets/{jsonl-KrKLbtB7.js → jsonl-DHrr7c-M.js} +0 -0
- /package/.output/public/assets/{jsonnet-B2ZwWMOt.js → jsonnet-xURar8mu.js} +0 -0
- /package/.output/public/assets/{jssm-ByRpI9-B.js → jssm-DtoLUQAt.js} +0 -0
- /package/.output/public/assets/{jsx-0oMUGqZj.js → jsx-CyrO086S.js} +0 -0
- /package/.output/public/assets/{kanagawa-dragon-CtPmcCMp.js → kanagawa-dragon-COwlYgQB.js} +0 -0
- /package/.output/public/assets/{kanagawa-lotus-DpOXEGCa.js → kanagawa-lotus-GZWqyq_E.js} +0 -0
- /package/.output/public/assets/{kanagawa-wave-CLVCyc-n.js → kanagawa-wave-CP4uw3DX.js} +0 -0
- /package/.output/public/assets/{kdl-6FPPEH4H.js → kdl-DGo2N7N5.js} +0 -0
- /package/.output/public/assets/{kotlin-D4L3Nd2D.js → kotlin-Cm4W8Bbs.js} +0 -0
- /package/.output/public/assets/{kusto-D-mmc07O.js → kusto-DQ22_tcT.js} +0 -0
- /package/.output/public/assets/{laserwave-7fEj4XGb.js → laserwave-DfABGYsD.js} +0 -0
- /package/.output/public/assets/{lean-BMVMuP2E.js → lean-D-8a6Wwv.js} +0 -0
- /package/.output/public/assets/{less-C95PyOu0.js → less-B-qZzFKw.js} +0 -0
- /package/.output/public/assets/{light-plus-DHI2dh3p.js → light-plus-DS_rmE1N.js} +0 -0
- /package/.output/public/assets/{llvm-Dy3qORTl.js → llvm-Ch-k6TUk.js} +0 -0
- /package/.output/public/assets/{log-BQop7fzg.js → log-BGwbCG2S.js} +0 -0
- /package/.output/public/assets/{logo-DKtnYmrp.js → logo-DHGHbFWy.js} +0 -0
- /package/.output/public/assets/{luau-Dha4KG0q.js → luau-qsvm_nYh.js} +0 -0
- /package/.output/public/assets/{make-DfmS6buu.js → make-Dlfjp_Q8.js} +0 -0
- /package/.output/public/assets/{markdown-BaI9LyM4.js → markdown-COh4ruD_.js} +0 -0
- /package/.output/public/assets/{material-theme-Dm6ETY8i.js → material-theme-Ccrl1jie.js} +0 -0
- /package/.output/public/assets/{material-theme-darker-BeyjmM5Z.js → material-theme-darker-CcOH0iHe.js} +0 -0
- /package/.output/public/assets/{material-theme-lighter-CCOYYzKL.js → material-theme-lighter-DoKpC7NM.js} +0 -0
- /package/.output/public/assets/{material-theme-ocean-CUtPiiX3.js → material-theme-ocean-BcvBZHgH.js} +0 -0
- /package/.output/public/assets/{material-theme-palenight-2L4zMwIM.js → material-theme-palenight-DIL4EAzl.js} +0 -0
- /package/.output/public/assets/{matlab-BT79Cq_j.js → matlab-CBqMuw7w.js} +0 -0
- /package/.output/public/assets/{mdx-CxGBwLNt.js → mdx-BjoJxHxW.js} +0 -0
- /package/.output/public/assets/{mermaid-DLf3axBN.js → mermaid-DjAh2yR5.js} +0 -0
- /package/.output/public/assets/{min-dark-B8TUPGHg.js → min-dark-CbwghdE5.js} +0 -0
- /package/.output/public/assets/{min-light-BDOoBxcA.js → min-light-_F39d_94.js} +0 -0
- /package/.output/public/assets/{mipsasm-DXuU_0cI.js → mipsasm-DA1H0O78.js} +0 -0
- /package/.output/public/assets/{mojo-1Omp2pIo.js → mojo-BVgjRjTn.js} +0 -0
- /package/.output/public/assets/{monokai-E_VBmXGZ.js → monokai-CxgvaWkX.js} +0 -0
- /package/.output/public/assets/{moonbit-DZzq699o.js → moonbit-tKY94ZOM.js} +0 -0
- /package/.output/public/assets/{move-DxDAOJVd.js → move-B5WspEjG.js} +0 -0
- /package/.output/public/assets/{narrat-CxDcPPb9.js → narrat-CDPRStf_.js} +0 -0
- /package/.output/public/assets/{nextflow-groovy-wvmJO4hi.js → nextflow-groovy-1GYTZoD5.js} +0 -0
- /package/.output/public/assets/{night-owl-DefhalNX.js → night-owl-CCydx7ZR.js} +0 -0
- /package/.output/public/assets/{night-owl-light-byb3AbEn.js → night-owl-light-CLM7UUPY.js} +0 -0
- /package/.output/public/assets/{nix-DsFTDHWT.js → nix-DXFN4IwW.js} +0 -0
- /package/.output/public/assets/{nord-D5rQzHT-.js → nord-CiCWZ1de.js} +0 -0
- /package/.output/public/assets/{nushell-BQ_rO0AM.js → nushell-Ck9o2qOx.js} +0 -0
- /package/.output/public/assets/{objective-c-BMq6JT_m.js → objective-c-4koxci9E.js} +0 -0
- /package/.output/public/assets/{objective-cpp-DRwojuGv.js → objective-cpp-BPFAgSN9.js} +0 -0
- /package/.output/public/assets/{ocaml-e4_gKO6E.js → ocaml-BdlBLhZV.js} +0 -0
- /package/.output/public/assets/{odin-mdTPwYOg.js → odin-BcGOLCqZ.js} +0 -0
- /package/.output/public/assets/{one-dark-pro-DxXww9jg.js → one-dark-pro-DEMdTgiO.js} +0 -0
- /package/.output/public/assets/{one-light-D9c03w7t.js → one-light-Cmpe9X1u.js} +0 -0
- /package/.output/public/assets/{openscad-D2aTdNfr.js → openscad-DBveSHYE.js} +0 -0
- /package/.output/public/assets/{pascal-D4n_G8vj.js → pascal-DxOVE99u.js} +0 -0
- /package/.output/public/assets/{pierre-dark-CizZ1Z5z.js → pierre-dark-DIUCKU6U.js} +0 -0
- /package/.output/public/assets/{pierre-light-CHMWfAMe.js → pierre-light-DVO2KPlh.js} +0 -0
- /package/.output/public/assets/{pkl-DcjhAp0L.js → pkl-pIvtf7Vu.js} +0 -0
- /package/.output/public/assets/{plastic-uOsw7z1x.js → plastic-Dvdf8qVN.js} +0 -0
- /package/.output/public/assets/{plsql-BSy3Ag0J.js → plsql-d50MFTFK.js} +0 -0
- /package/.output/public/assets/{po-Be96RYkA.js → po-CboxWwYg.js} +0 -0
- /package/.output/public/assets/{poimandres-CyO4HORD.js → poimandres-DHgQGH4M.js} +0 -0
- /package/.output/public/assets/{polar-BmhMKWum.js → polar-DNp7Oek8.js} +0 -0
- /package/.output/public/assets/{postcss-BTQso3H9.js → postcss-LpmI6XQv.js} +0 -0
- /package/.output/public/assets/{powerquery-DVyQv3M2.js → powerquery-BNCl8Uwz.js} +0 -0
- /package/.output/public/assets/{powershell-BmtCGJVD.js → powershell-CZ9J0XuS.js} +0 -0
- /package/.output/public/assets/{prisma-CCFA9rEj.js → prisma-AELUiJCl.js} +0 -0
- /package/.output/public/assets/{prolog-DWGEEo78.js → prolog-BlqwejRD.js} +0 -0
- /package/.output/public/assets/{proto-C3eop1kM.js → proto-DRQC3swD.js} +0 -0
- /package/.output/public/assets/{puppet-C0_7Nv5A.js → puppet-DBKR8MlH.js} +0 -0
- /package/.output/public/assets/{purescript-Bv-B8yRw.js → purescript-DItLzxZS.js} +0 -0
- /package/.output/public/assets/{python-CKg5r0C3.js → python-D9t_ETu8.js} +0 -0
- /package/.output/public/assets/{qmldir-Cqfb4Lox.js → qmldir-DP_KD1nk.js} +0 -0
- /package/.output/public/assets/{qss-Csho9BH8.js → qss-CL02opOd.js} +0 -0
- /package/.output/public/assets/{r-UcxRcvcA.js → r-DmmrCFmB.js} +0 -0
- /package/.output/public/assets/{racket-D8-uWeQH.js → racket-K0frLTWj.js} +0 -0
- /package/.output/public/assets/{raku-Cj4JSa8p.js → raku-DwgLlPg9.js} +0 -0
- /package/.output/public/assets/{red-z4H4llUY.js → red-DzDu-aXc.js} +0 -0
- /package/.output/public/assets/{reg-DXGFiJSl.js → reg-B_y3c7di.js} +0 -0
- /package/.output/public/assets/{regexp-3-A0406L.js → regexp--eMB47Xx.js} +0 -0
- /package/.output/public/assets/{rel-CunnVTBK.js → rel-CT65ywJp.js} +0 -0
- /package/.output/public/assets/{riscv-C8BcOCkS.js → riscv-Qv5W2vIg.js} +0 -0
- /package/.output/public/assets/{ron-DiDyR9oa.js → ron-cRHu9zPp.js} +0 -0
- /package/.output/public/assets/{rose-pine-BADquuIH.js → rose-pine-DFmTJHIJ.js} +0 -0
- /package/.output/public/assets/{rose-pine-dawn-BLcEeBoh.js → rose-pine-dawn-YIuK9wUm.js} +0 -0
- /package/.output/public/assets/{rose-pine-moon-BK_tLY1Y.js → rose-pine-moon-BYEHfkUB.js} +0 -0
- /package/.output/public/assets/{rosmsg-CHmL1Uyj.js → rosmsg-_L1z4wrx.js} +0 -0
- /package/.output/public/assets/{rust-DjJFInu3.js → rust-BA5wQ_EY.js} +0 -0
- /package/.output/public/assets/{sass-D3xZ5o-v.js → sass-sd__ov8V.js} +0 -0
- /package/.output/public/assets/{scala-B0IRml5w.js → scala--cVG4U7H.js} +0 -0
- /package/.output/public/assets/{scheme-BhwcV3Av.js → scheme-D6Q1O-kY.js} +0 -0
- /package/.output/public/assets/{sdbl-BmWYR-pI.js → sdbl-jB0DUrL_.js} +0 -0
- /package/.output/public/assets/{shellscript-DaVPunOM.js → shellscript-DyWRuzkj.js} +0 -0
- /package/.output/public/assets/{slack-dark-DOnVms5P.js → slack-dark-DHhAlQBa.js} +0 -0
- /package/.output/public/assets/{slack-ochin-DcRTft4q.js → slack-ochin-PZXbcZaN.js} +0 -0
- /package/.output/public/assets/{smalltalk-DVQuUMII.js → smalltalk-C7VkdTlv.js} +0 -0
- /package/.output/public/assets/{snazzy-light-x9CLJ1W9.js → snazzy-light-CPc_Qts9.js} +0 -0
- /package/.output/public/assets/{solarized-dark-BB1sh-pe.js → solarized-dark-DCCfKtTh.js} +0 -0
- /package/.output/public/assets/{solarized-light-9-RPS998.js → solarized-light-B84T-R9X.js} +0 -0
- /package/.output/public/assets/{solidity-gQ4WXILB.js → solidity-DVsDPpDS.js} +0 -0
- /package/.output/public/assets/{splunk-OB48_RcD.js → splunk-A-BwP6Va.js} +0 -0
- /package/.output/public/assets/{sql-CrTmZCMa.js → sql-CRzu7iKx.js} +0 -0
- /package/.output/public/assets/{ssh-config-DA9YMRGV.js → ssh-config-CFPv6mTy.js} +0 -0
- /package/.output/public/assets/{stylus-sKwvsUaC.js → stylus-CUf3IESt.js} +0 -0
- /package/.output/public/assets/{swift-C72NbAtg.js → swift-CSiiYB_Q.js} +0 -0
- /package/.output/public/assets/{synthwave-84-eJ9uRN_S.js → synthwave-84-uJp1j2Jd.js} +0 -0
- /package/.output/public/assets/{system-verilog-CnWMF7Nq.js → system-verilog-rMjKy-O9.js} +0 -0
- /package/.output/public/assets/{systemd-DMzItW5N.js → systemd-R-KDM4-t.js} +0 -0
- /package/.output/public/assets/{talonscript-DopQCWDL.js → talonscript-D666vCtm.js} +0 -0
- /package/.output/public/assets/{tasl-C28SYKbq.js → tasl-68cbBocU.js} +0 -0
- /package/.output/public/assets/{tcl-DHq7zmoF.js → tcl-Y39dJ_pX.js} +0 -0
- /package/.output/public/assets/{terraform-CogS1YKX.js → terraform-BF7wAo-b.js} +0 -0
- /package/.output/public/assets/{tokyo-night-B9N7LyrF.js → tokyo-night-EeABtN82.js} +0 -0
- /package/.output/public/assets/{toml-BH_iPsgK.js → toml-BrMFN1JF.js} +0 -0
- /package/.output/public/assets/{tsv-BIkdBZX1.js → tsv-Dp2l5v7f.js} +0 -0
- /package/.output/public/assets/{tsx-BjkCKOtw.js → tsx-CQqypS0k.js} +0 -0
- /package/.output/public/assets/{turtle-CqNXyJWZ.js → turtle-_N1aDtpV.js} +0 -0
- /package/.output/public/assets/{typescript-BoHeP9q1.js → typescript-CPmDkqmE.js} +0 -0
- /package/.output/public/assets/{typespec-CQ9LYD_e.js → typespec-ghgF2GAI.js} +0 -0
- /package/.output/public/assets/{typst-T-Fsk-Sv.js → typst-DP_izaNK.js} +0 -0
- /package/.output/public/assets/{v-BhMEOw9x.js → v-CdNC_Wok.js} +0 -0
- /package/.output/public/assets/{vala-DzajMnwt.js → vala-Bu4pYkLC.js} +0 -0
- /package/.output/public/assets/{vb-7Xr8dEYW.js → vb-u84IyWSS.js} +0 -0
- /package/.output/public/assets/{verilog-AvXtwZir.js → verilog-BC33pi7Z.js} +0 -0
- /package/.output/public/assets/{vesper-CtgQQ2sf.js → vesper-7-XtS0Kg.js} +0 -0
- /package/.output/public/assets/{vhdl-BHu0zg1P.js → vhdl-BBxTOQe0.js} +0 -0
- /package/.output/public/assets/{viml-Di0QpLfC.js → viml-X_r-ivXA.js} +0 -0
- /package/.output/public/assets/{vitesse-black-jXdfyqgD.js → vitesse-black-DRdlY-cW.js} +0 -0
- /package/.output/public/assets/{vitesse-dark-B88PxG1r.js → vitesse-dark-Bz0hOFHJ.js} +0 -0
- /package/.output/public/assets/{vitesse-light-BXxZh2iV.js → vitesse-light-7kCLd0yn.js} +0 -0
- /package/.output/public/assets/{vyper-C3R5yXgx.js → vyper-E7qIwMXy.js} +0 -0
- /package/.output/public/assets/{wasm-D_MQmneJ.js → wasm-BqG9CUph.js} +0 -0
- /package/.output/public/assets/{wasm-Chsuwt1A.js → wasm-C18OEcCL.js} +0 -0
- /package/.output/public/assets/{wenyan-BonVcr2i.js → wenyan-siXAC4el.js} +0 -0
- /package/.output/public/assets/{wgsl-D59WYmNq.js → wgsl-BJQt8Uld.js} +0 -0
- /package/.output/public/assets/{wikitext-ariTI2Wk.js → wikitext-Ci0ePJmf.js} +0 -0
- /package/.output/public/assets/{wit-EA4fa3Dt.js → wit-BdDJ7geN.js} +0 -0
- /package/.output/public/assets/{wolfram-DDp7LhyU.js → wolfram-Bi-O1IUM.js} +0 -0
- /package/.output/public/assets/{xterm-CCMwI7sy.js → xterm-TTe2Bv9Z.js} +0 -0
- /package/.output/public/assets/{yaml-BTD1XHJG.js → yaml-DgkO7CC2.js} +0 -0
- /package/.output/public/assets/{zenscript-4WaROUyc.js → zenscript-CnkrxCBw.js} +0 -0
- /package/.output/public/assets/{zig-CJoLJGwV.js → zig-CgMsxF9-.js} +0 -0
|
@@ -1,799 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright (c) 2012-2015, Christopher Jeffrey (MIT License)
|
|
3
|
-
* Copyright (c) 2017, Daniel Imms (MIT License)
|
|
4
|
-
*
|
|
5
|
-
* pty.cc:
|
|
6
|
-
* This file is responsible for starting processes
|
|
7
|
-
* with pseudo-terminal file descriptors.
|
|
8
|
-
*
|
|
9
|
-
* See:
|
|
10
|
-
* man pty
|
|
11
|
-
* man tty_ioctl
|
|
12
|
-
* man termios
|
|
13
|
-
* man forkpty
|
|
14
|
-
*/
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* Includes
|
|
18
|
-
*/
|
|
19
|
-
|
|
20
|
-
#define NODE_ADDON_API_DISABLE_DEPRECATED
|
|
21
|
-
#include <napi.h>
|
|
22
|
-
#include <assert.h>
|
|
23
|
-
#include <errno.h>
|
|
24
|
-
#include <string.h>
|
|
25
|
-
#include <stdlib.h>
|
|
26
|
-
#include <unistd.h>
|
|
27
|
-
#include <thread>
|
|
28
|
-
|
|
29
|
-
#include <sys/types.h>
|
|
30
|
-
#include <sys/stat.h>
|
|
31
|
-
#include <sys/ioctl.h>
|
|
32
|
-
#include <sys/wait.h>
|
|
33
|
-
#include <fcntl.h>
|
|
34
|
-
#include <signal.h>
|
|
35
|
-
|
|
36
|
-
/* forkpty */
|
|
37
|
-
/* http://www.gnu.org/software/gnulib/manual/html_node/forkpty.html */
|
|
38
|
-
#if defined(__linux__)
|
|
39
|
-
#include <pty.h>
|
|
40
|
-
#elif defined(__APPLE__)
|
|
41
|
-
#include <util.h>
|
|
42
|
-
#elif defined(__FreeBSD__)
|
|
43
|
-
#include <libutil.h>
|
|
44
|
-
#include <termios.h>
|
|
45
|
-
#elif defined(__OpenBSD__)
|
|
46
|
-
#include <util.h>
|
|
47
|
-
#include <termios.h>
|
|
48
|
-
#endif
|
|
49
|
-
|
|
50
|
-
/* Some platforms name VWERASE and VDISCARD differently */
|
|
51
|
-
#if !defined(VWERASE) && defined(VWERSE)
|
|
52
|
-
#define VWERASE VWERSE
|
|
53
|
-
#endif
|
|
54
|
-
#if !defined(VDISCARD) && defined(VDISCRD)
|
|
55
|
-
#define VDISCARD VDISCRD
|
|
56
|
-
#endif
|
|
57
|
-
|
|
58
|
-
/* for pty_getproc */
|
|
59
|
-
#if defined(__linux__)
|
|
60
|
-
#include <stdio.h>
|
|
61
|
-
#include <stdint.h>
|
|
62
|
-
#elif defined(__APPLE__)
|
|
63
|
-
#include <libproc.h>
|
|
64
|
-
#include <os/availability.h>
|
|
65
|
-
#include <paths.h>
|
|
66
|
-
#include <spawn.h>
|
|
67
|
-
#include <sys/event.h>
|
|
68
|
-
#include <sys/sysctl.h>
|
|
69
|
-
#include <termios.h>
|
|
70
|
-
#endif
|
|
71
|
-
|
|
72
|
-
/* NSIG - macro for highest signal + 1, should be defined */
|
|
73
|
-
#ifndef NSIG
|
|
74
|
-
#define NSIG 32
|
|
75
|
-
#endif
|
|
76
|
-
|
|
77
|
-
/* macOS 10.14 back does not define this constant */
|
|
78
|
-
#ifndef POSIX_SPAWN_SETSID
|
|
79
|
-
#define POSIX_SPAWN_SETSID 1024
|
|
80
|
-
#endif
|
|
81
|
-
|
|
82
|
-
/* environ for execvpe */
|
|
83
|
-
/* node/src/node_child_process.cc */
|
|
84
|
-
#if !defined(__APPLE__)
|
|
85
|
-
extern char **environ;
|
|
86
|
-
#endif
|
|
87
|
-
|
|
88
|
-
#if defined(__APPLE__)
|
|
89
|
-
extern "C" {
|
|
90
|
-
// Changes the current thread's directory to a path or directory file
|
|
91
|
-
// descriptor. libpthread only exposes a syscall wrapper starting in
|
|
92
|
-
// macOS 10.12, but the system call dates back to macOS 10.5. On older OSes,
|
|
93
|
-
// the syscall is issued directly.
|
|
94
|
-
int pthread_chdir_np(const char* dir) API_AVAILABLE(macosx(10.12));
|
|
95
|
-
int pthread_fchdir_np(int fd) API_AVAILABLE(macosx(10.12));
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
#define HANDLE_EINTR(x) ({ \
|
|
99
|
-
int eintr_wrapper_counter = 0; \
|
|
100
|
-
decltype(x) eintr_wrapper_result; \
|
|
101
|
-
do { \
|
|
102
|
-
eintr_wrapper_result = (x); \
|
|
103
|
-
} while (eintr_wrapper_result == -1 && errno == EINTR && \
|
|
104
|
-
eintr_wrapper_counter++ < 100); \
|
|
105
|
-
eintr_wrapper_result; \
|
|
106
|
-
})
|
|
107
|
-
#endif
|
|
108
|
-
|
|
109
|
-
struct ExitEvent {
|
|
110
|
-
int exit_code = 0, signal_code = 0;
|
|
111
|
-
};
|
|
112
|
-
|
|
113
|
-
void SetupExitCallback(Napi::Env env, Napi::Function cb, pid_t pid) {
|
|
114
|
-
std::thread *th = new std::thread;
|
|
115
|
-
// Don't use Napi::AsyncWorker which is limited by UV_THREADPOOL_SIZE.
|
|
116
|
-
auto tsfn = Napi::ThreadSafeFunction::New(
|
|
117
|
-
env,
|
|
118
|
-
cb, // JavaScript function called asynchronously
|
|
119
|
-
"SetupExitCallback_resource", // Name
|
|
120
|
-
0, // Unlimited queue
|
|
121
|
-
1, // Only one thread will use this initially
|
|
122
|
-
[th](Napi::Env) { // Finalizer used to clean threads up
|
|
123
|
-
th->join();
|
|
124
|
-
delete th;
|
|
125
|
-
});
|
|
126
|
-
*th = std::thread([tsfn = std::move(tsfn), pid] {
|
|
127
|
-
auto callback = [](Napi::Env env, Napi::Function cb, ExitEvent *exit_event) {
|
|
128
|
-
cb.Call({Napi::Number::New(env, exit_event->exit_code),
|
|
129
|
-
Napi::Number::New(env, exit_event->signal_code)});
|
|
130
|
-
delete exit_event;
|
|
131
|
-
};
|
|
132
|
-
|
|
133
|
-
int ret;
|
|
134
|
-
int stat_loc;
|
|
135
|
-
#if defined(__APPLE__)
|
|
136
|
-
// Based on
|
|
137
|
-
// https://source.chromium.org/chromium/chromium/src/+/main:base/process/kill_mac.cc;l=35-69?
|
|
138
|
-
int kq = HANDLE_EINTR(kqueue());
|
|
139
|
-
struct kevent change = {0};
|
|
140
|
-
EV_SET(&change, pid, EVFILT_PROC, EV_ADD, NOTE_EXIT, 0, NULL);
|
|
141
|
-
ret = HANDLE_EINTR(kevent(kq, &change, 1, NULL, 0, NULL));
|
|
142
|
-
if (ret == -1) {
|
|
143
|
-
if (errno == ESRCH) {
|
|
144
|
-
// At this point, one of the following has occurred:
|
|
145
|
-
// 1. The process has died but has not yet been reaped.
|
|
146
|
-
// 2. The process has died and has already been reaped.
|
|
147
|
-
// 3. The process is in the process of dying. It's no longer
|
|
148
|
-
// kqueueable, but it may not be waitable yet either. Mark calls
|
|
149
|
-
// this case the "zombie death race".
|
|
150
|
-
ret = HANDLE_EINTR(waitpid(pid, &stat_loc, WNOHANG));
|
|
151
|
-
if (ret == 0) {
|
|
152
|
-
ret = kill(pid, SIGKILL);
|
|
153
|
-
if (ret != -1) {
|
|
154
|
-
HANDLE_EINTR(waitpid(pid, &stat_loc, 0));
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
} else {
|
|
159
|
-
struct kevent event = {0};
|
|
160
|
-
ret = HANDLE_EINTR(kevent(kq, NULL, 0, &event, 1, NULL));
|
|
161
|
-
if (ret == 1) {
|
|
162
|
-
if ((event.fflags & NOTE_EXIT) &&
|
|
163
|
-
(event.ident == static_cast<uintptr_t>(pid))) {
|
|
164
|
-
// The process is dead or dying. This won't block for long, if at
|
|
165
|
-
// all.
|
|
166
|
-
HANDLE_EINTR(waitpid(pid, &stat_loc, 0));
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
#else
|
|
171
|
-
while (true) {
|
|
172
|
-
errno = 0;
|
|
173
|
-
if ((ret = waitpid(pid, &stat_loc, 0)) != pid) {
|
|
174
|
-
if (ret == -1 && errno == EINTR) {
|
|
175
|
-
continue;
|
|
176
|
-
}
|
|
177
|
-
if (ret == -1 && errno == ECHILD) {
|
|
178
|
-
// XXX node v0.8.x seems to have this problem.
|
|
179
|
-
// waitpid is already handled elsewhere.
|
|
180
|
-
;
|
|
181
|
-
} else {
|
|
182
|
-
assert(false);
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
break;
|
|
186
|
-
}
|
|
187
|
-
#endif
|
|
188
|
-
ExitEvent *exit_event = new ExitEvent;
|
|
189
|
-
if (WIFEXITED(stat_loc)) {
|
|
190
|
-
exit_event->exit_code = WEXITSTATUS(stat_loc); // errno?
|
|
191
|
-
}
|
|
192
|
-
if (WIFSIGNALED(stat_loc)) {
|
|
193
|
-
exit_event->signal_code = WTERMSIG(stat_loc);
|
|
194
|
-
}
|
|
195
|
-
auto status = tsfn.BlockingCall(exit_event, callback); // In main thread
|
|
196
|
-
switch (status) {
|
|
197
|
-
case napi_closing:
|
|
198
|
-
break;
|
|
199
|
-
|
|
200
|
-
case napi_queue_full:
|
|
201
|
-
Napi::Error::Fatal("SetupExitCallback", "Queue was full");
|
|
202
|
-
|
|
203
|
-
case napi_ok:
|
|
204
|
-
if (tsfn.Release() != napi_ok) {
|
|
205
|
-
Napi::Error::Fatal("SetupExitCallback", "ThreadSafeFunction.Release() failed");
|
|
206
|
-
}
|
|
207
|
-
break;
|
|
208
|
-
|
|
209
|
-
default:
|
|
210
|
-
Napi::Error::Fatal("SetupExitCallback", "ThreadSafeFunction.BlockingCall() failed");
|
|
211
|
-
}
|
|
212
|
-
});
|
|
213
|
-
}
|
|
214
|
-
|
|
215
|
-
/**
|
|
216
|
-
* Methods
|
|
217
|
-
*/
|
|
218
|
-
|
|
219
|
-
Napi::Value PtyFork(const Napi::CallbackInfo& info);
|
|
220
|
-
Napi::Value PtyOpen(const Napi::CallbackInfo& info);
|
|
221
|
-
Napi::Value PtyResize(const Napi::CallbackInfo& info);
|
|
222
|
-
Napi::Value PtyGetProc(const Napi::CallbackInfo& info);
|
|
223
|
-
|
|
224
|
-
/**
|
|
225
|
-
* Functions
|
|
226
|
-
*/
|
|
227
|
-
|
|
228
|
-
static int
|
|
229
|
-
pty_nonblock(int);
|
|
230
|
-
|
|
231
|
-
#if defined(__APPLE__)
|
|
232
|
-
static char *
|
|
233
|
-
pty_getproc(int);
|
|
234
|
-
#else
|
|
235
|
-
static char *
|
|
236
|
-
pty_getproc(int, char *);
|
|
237
|
-
#endif
|
|
238
|
-
|
|
239
|
-
#if defined(__APPLE__) || defined(__OpenBSD__)
|
|
240
|
-
static void
|
|
241
|
-
pty_posix_spawn(char** argv, char** env,
|
|
242
|
-
const struct termios *termp,
|
|
243
|
-
const struct winsize *winp,
|
|
244
|
-
int* master,
|
|
245
|
-
pid_t* pid,
|
|
246
|
-
int* err);
|
|
247
|
-
#endif
|
|
248
|
-
|
|
249
|
-
struct DelBuf {
|
|
250
|
-
int len;
|
|
251
|
-
DelBuf(int len) : len(len) {}
|
|
252
|
-
void operator()(char **p) {
|
|
253
|
-
if (p == nullptr)
|
|
254
|
-
return;
|
|
255
|
-
for (int i = 0; i < len; i++)
|
|
256
|
-
free(p[i]);
|
|
257
|
-
delete[] p;
|
|
258
|
-
}
|
|
259
|
-
};
|
|
260
|
-
|
|
261
|
-
Napi::Value PtyFork(const Napi::CallbackInfo& info) {
|
|
262
|
-
Napi::Env napiEnv(info.Env());
|
|
263
|
-
Napi::HandleScope scope(napiEnv);
|
|
264
|
-
|
|
265
|
-
if (info.Length() != 11 ||
|
|
266
|
-
!info[0].IsString() ||
|
|
267
|
-
!info[1].IsArray() ||
|
|
268
|
-
!info[2].IsArray() ||
|
|
269
|
-
!info[3].IsString() ||
|
|
270
|
-
!info[4].IsNumber() ||
|
|
271
|
-
!info[5].IsNumber() ||
|
|
272
|
-
!info[6].IsNumber() ||
|
|
273
|
-
!info[7].IsNumber() ||
|
|
274
|
-
!info[8].IsBoolean() ||
|
|
275
|
-
!info[9].IsString() ||
|
|
276
|
-
!info[10].IsFunction()) {
|
|
277
|
-
throw Napi::Error::New(napiEnv, "Usage: pty.fork(file, args, env, cwd, cols, rows, uid, gid, utf8, helperPath, onexit)");
|
|
278
|
-
}
|
|
279
|
-
|
|
280
|
-
// file
|
|
281
|
-
std::string file = info[0].As<Napi::String>();
|
|
282
|
-
|
|
283
|
-
// args
|
|
284
|
-
Napi::Array argv_ = info[1].As<Napi::Array>();
|
|
285
|
-
|
|
286
|
-
// env
|
|
287
|
-
Napi::Array env_ = info[2].As<Napi::Array>();
|
|
288
|
-
int envc = env_.Length();
|
|
289
|
-
std::unique_ptr<char *, DelBuf> env_unique_ptr(new char *[envc + 1], DelBuf(envc + 1));
|
|
290
|
-
char **env = env_unique_ptr.get();
|
|
291
|
-
env[envc] = NULL;
|
|
292
|
-
for (int i = 0; i < envc; i++) {
|
|
293
|
-
std::string pair = env_.Get(i).As<Napi::String>();
|
|
294
|
-
env[i] = strdup(pair.c_str());
|
|
295
|
-
}
|
|
296
|
-
|
|
297
|
-
// cwd
|
|
298
|
-
std::string cwd_ = info[3].As<Napi::String>();
|
|
299
|
-
|
|
300
|
-
// size
|
|
301
|
-
struct winsize winp;
|
|
302
|
-
winp.ws_col = info[4].As<Napi::Number>().Int32Value();
|
|
303
|
-
winp.ws_row = info[5].As<Napi::Number>().Int32Value();
|
|
304
|
-
winp.ws_xpixel = 0;
|
|
305
|
-
winp.ws_ypixel = 0;
|
|
306
|
-
|
|
307
|
-
#if !defined(__APPLE__)
|
|
308
|
-
// uid / gid
|
|
309
|
-
int uid = info[6].As<Napi::Number>().Int32Value();
|
|
310
|
-
int gid = info[7].As<Napi::Number>().Int32Value();
|
|
311
|
-
#endif
|
|
312
|
-
|
|
313
|
-
// termios
|
|
314
|
-
struct termios t = termios();
|
|
315
|
-
struct termios *term = &t;
|
|
316
|
-
term->c_iflag = ICRNL | IXON | IXANY | IMAXBEL | BRKINT;
|
|
317
|
-
if (info[8].As<Napi::Boolean>().Value()) {
|
|
318
|
-
#if defined(IUTF8)
|
|
319
|
-
term->c_iflag |= IUTF8;
|
|
320
|
-
#endif
|
|
321
|
-
}
|
|
322
|
-
term->c_oflag = OPOST | ONLCR;
|
|
323
|
-
term->c_cflag = CREAD | CS8 | HUPCL;
|
|
324
|
-
term->c_lflag = ICANON | ISIG | IEXTEN | ECHO | ECHOE | ECHOK | ECHOKE | ECHOCTL;
|
|
325
|
-
|
|
326
|
-
term->c_cc[VEOF] = 4;
|
|
327
|
-
term->c_cc[VEOL] = -1;
|
|
328
|
-
term->c_cc[VEOL2] = -1;
|
|
329
|
-
term->c_cc[VERASE] = 0x7f;
|
|
330
|
-
term->c_cc[VWERASE] = 23;
|
|
331
|
-
term->c_cc[VKILL] = 21;
|
|
332
|
-
term->c_cc[VREPRINT] = 18;
|
|
333
|
-
term->c_cc[VINTR] = 3;
|
|
334
|
-
term->c_cc[VQUIT] = 0x1c;
|
|
335
|
-
term->c_cc[VSUSP] = 26;
|
|
336
|
-
term->c_cc[VSTART] = 17;
|
|
337
|
-
term->c_cc[VSTOP] = 19;
|
|
338
|
-
term->c_cc[VLNEXT] = 22;
|
|
339
|
-
term->c_cc[VDISCARD] = 15;
|
|
340
|
-
term->c_cc[VMIN] = 1;
|
|
341
|
-
term->c_cc[VTIME] = 0;
|
|
342
|
-
|
|
343
|
-
#if (__APPLE__)
|
|
344
|
-
term->c_cc[VDSUSP] = 25;
|
|
345
|
-
term->c_cc[VSTATUS] = 20;
|
|
346
|
-
#endif
|
|
347
|
-
|
|
348
|
-
cfsetispeed(term, B38400);
|
|
349
|
-
cfsetospeed(term, B38400);
|
|
350
|
-
|
|
351
|
-
// helperPath
|
|
352
|
-
std::string helper_path = info[9].As<Napi::String>();
|
|
353
|
-
|
|
354
|
-
pid_t pid;
|
|
355
|
-
int master;
|
|
356
|
-
#if defined(__APPLE__)
|
|
357
|
-
int argc = argv_.Length();
|
|
358
|
-
int argl = argc + 4;
|
|
359
|
-
std::unique_ptr<char *, DelBuf> argv_unique_ptr(new char *[argl], DelBuf(argl));
|
|
360
|
-
char **argv = argv_unique_ptr.get();
|
|
361
|
-
argv[0] = strdup(helper_path.c_str());
|
|
362
|
-
argv[1] = strdup(cwd_.c_str());
|
|
363
|
-
argv[2] = strdup(file.c_str());
|
|
364
|
-
argv[argl - 1] = NULL;
|
|
365
|
-
for (int i = 0; i < argc; i++) {
|
|
366
|
-
std::string arg = argv_.Get(i).As<Napi::String>();
|
|
367
|
-
argv[i + 3] = strdup(arg.c_str());
|
|
368
|
-
}
|
|
369
|
-
|
|
370
|
-
int err = -1;
|
|
371
|
-
pty_posix_spawn(argv, env, term, &winp, &master, &pid, &err);
|
|
372
|
-
if (err != 0) {
|
|
373
|
-
throw Napi::Error::New(napiEnv, "posix_spawnp failed.");
|
|
374
|
-
}
|
|
375
|
-
if (pty_nonblock(master) == -1) {
|
|
376
|
-
throw Napi::Error::New(napiEnv, "Could not set master fd to nonblocking.");
|
|
377
|
-
}
|
|
378
|
-
#else
|
|
379
|
-
int argc = argv_.Length();
|
|
380
|
-
int argl = argc + 2;
|
|
381
|
-
std::unique_ptr<char *, DelBuf> argv_unique_ptr(new char *[argl], DelBuf(argl));
|
|
382
|
-
char** argv = argv_unique_ptr.get();
|
|
383
|
-
argv[0] = strdup(file.c_str());
|
|
384
|
-
argv[argl - 1] = NULL;
|
|
385
|
-
for (int i = 0; i < argc; i++) {
|
|
386
|
-
std::string arg = argv_.Get(i).As<Napi::String>();
|
|
387
|
-
argv[i + 1] = strdup(arg.c_str());
|
|
388
|
-
}
|
|
389
|
-
|
|
390
|
-
sigset_t newmask, oldmask;
|
|
391
|
-
struct sigaction sig_action;
|
|
392
|
-
// temporarily block all signals
|
|
393
|
-
// this is needed due to a race condition in openpty
|
|
394
|
-
// and to avoid running signal handlers in the child
|
|
395
|
-
// before exec* happened
|
|
396
|
-
sigfillset(&newmask);
|
|
397
|
-
pthread_sigmask(SIG_SETMASK, &newmask, &oldmask);
|
|
398
|
-
|
|
399
|
-
pid = forkpty(&master, nullptr, static_cast<termios*>(term), static_cast<winsize*>(&winp));
|
|
400
|
-
|
|
401
|
-
if (!pid) {
|
|
402
|
-
// remove all signal handler from child
|
|
403
|
-
sig_action.sa_handler = SIG_DFL;
|
|
404
|
-
sig_action.sa_flags = 0;
|
|
405
|
-
sigemptyset(&sig_action.sa_mask);
|
|
406
|
-
for (int i = 0 ; i < NSIG ; i++) { // NSIG is a macro for all signals + 1
|
|
407
|
-
sigaction(i, &sig_action, NULL);
|
|
408
|
-
}
|
|
409
|
-
}
|
|
410
|
-
|
|
411
|
-
// reenable signals
|
|
412
|
-
pthread_sigmask(SIG_SETMASK, &oldmask, NULL);
|
|
413
|
-
|
|
414
|
-
switch (pid) {
|
|
415
|
-
case -1:
|
|
416
|
-
throw Napi::Error::New(napiEnv, "forkpty(3) failed.");
|
|
417
|
-
case 0:
|
|
418
|
-
if (strlen(cwd_.c_str())) {
|
|
419
|
-
if (chdir(cwd_.c_str()) == -1) {
|
|
420
|
-
perror("chdir(2) failed.");
|
|
421
|
-
_exit(1);
|
|
422
|
-
}
|
|
423
|
-
}
|
|
424
|
-
|
|
425
|
-
if (uid != -1 && gid != -1) {
|
|
426
|
-
if (setgid(gid) == -1) {
|
|
427
|
-
perror("setgid(2) failed.");
|
|
428
|
-
_exit(1);
|
|
429
|
-
}
|
|
430
|
-
if (setuid(uid) == -1) {
|
|
431
|
-
perror("setuid(2) failed.");
|
|
432
|
-
_exit(1);
|
|
433
|
-
}
|
|
434
|
-
}
|
|
435
|
-
|
|
436
|
-
{
|
|
437
|
-
char **old = environ;
|
|
438
|
-
environ = env;
|
|
439
|
-
execvp(argv[0], argv);
|
|
440
|
-
environ = old;
|
|
441
|
-
perror("execvp(3) failed.");
|
|
442
|
-
_exit(1);
|
|
443
|
-
}
|
|
444
|
-
default:
|
|
445
|
-
if (pty_nonblock(master) == -1) {
|
|
446
|
-
throw Napi::Error::New(napiEnv, "Could not set master fd to nonblocking.");
|
|
447
|
-
}
|
|
448
|
-
}
|
|
449
|
-
#endif
|
|
450
|
-
|
|
451
|
-
Napi::Object obj = Napi::Object::New(napiEnv);
|
|
452
|
-
obj.Set("fd", Napi::Number::New(napiEnv, master));
|
|
453
|
-
obj.Set("pid", Napi::Number::New(napiEnv, pid));
|
|
454
|
-
obj.Set("pty", Napi::String::New(napiEnv, ptsname(master)));
|
|
455
|
-
|
|
456
|
-
// Set up process exit callback.
|
|
457
|
-
Napi::Function cb = info[10].As<Napi::Function>();
|
|
458
|
-
SetupExitCallback(napiEnv, cb, pid);
|
|
459
|
-
return obj;
|
|
460
|
-
}
|
|
461
|
-
|
|
462
|
-
Napi::Value PtyOpen(const Napi::CallbackInfo& info) {
|
|
463
|
-
Napi::Env env(info.Env());
|
|
464
|
-
Napi::HandleScope scope(env);
|
|
465
|
-
|
|
466
|
-
if (info.Length() != 2 ||
|
|
467
|
-
!info[0].IsNumber() ||
|
|
468
|
-
!info[1].IsNumber()) {
|
|
469
|
-
throw Napi::Error::New(env, "Usage: pty.open(cols, rows)");
|
|
470
|
-
}
|
|
471
|
-
|
|
472
|
-
// size
|
|
473
|
-
struct winsize winp;
|
|
474
|
-
winp.ws_col = info[0].As<Napi::Number>().Int32Value();
|
|
475
|
-
winp.ws_row = info[1].As<Napi::Number>().Int32Value();
|
|
476
|
-
winp.ws_xpixel = 0;
|
|
477
|
-
winp.ws_ypixel = 0;
|
|
478
|
-
|
|
479
|
-
// pty
|
|
480
|
-
int master, slave;
|
|
481
|
-
int ret = openpty(&master, &slave, nullptr, NULL, static_cast<winsize*>(&winp));
|
|
482
|
-
|
|
483
|
-
if (ret == -1) {
|
|
484
|
-
throw Napi::Error::New(env, "openpty(3) failed.");
|
|
485
|
-
}
|
|
486
|
-
|
|
487
|
-
if (pty_nonblock(master) == -1) {
|
|
488
|
-
throw Napi::Error::New(env, "Could not set master fd to nonblocking.");
|
|
489
|
-
}
|
|
490
|
-
|
|
491
|
-
if (pty_nonblock(slave) == -1) {
|
|
492
|
-
throw Napi::Error::New(env, "Could not set slave fd to nonblocking.");
|
|
493
|
-
}
|
|
494
|
-
|
|
495
|
-
Napi::Object obj = Napi::Object::New(env);
|
|
496
|
-
obj.Set("master", Napi::Number::New(env, master));
|
|
497
|
-
obj.Set("slave", Napi::Number::New(env, slave));
|
|
498
|
-
obj.Set("pty", Napi::String::New(env, ptsname(master)));
|
|
499
|
-
|
|
500
|
-
return obj;
|
|
501
|
-
}
|
|
502
|
-
|
|
503
|
-
Napi::Value PtyResize(const Napi::CallbackInfo& info) {
|
|
504
|
-
Napi::Env env(info.Env());
|
|
505
|
-
Napi::HandleScope scope(env);
|
|
506
|
-
|
|
507
|
-
if (info.Length() != 3 ||
|
|
508
|
-
!info[0].IsNumber() ||
|
|
509
|
-
!info[1].IsNumber() ||
|
|
510
|
-
!info[2].IsNumber()) {
|
|
511
|
-
throw Napi::Error::New(env, "Usage: pty.resize(fd, cols, rows)");
|
|
512
|
-
}
|
|
513
|
-
|
|
514
|
-
int fd = info[0].As<Napi::Number>().Int32Value();
|
|
515
|
-
|
|
516
|
-
struct winsize winp;
|
|
517
|
-
winp.ws_col = info[1].As<Napi::Number>().Int32Value();
|
|
518
|
-
winp.ws_row = info[2].As<Napi::Number>().Int32Value();
|
|
519
|
-
winp.ws_xpixel = 0;
|
|
520
|
-
winp.ws_ypixel = 0;
|
|
521
|
-
|
|
522
|
-
if (ioctl(fd, TIOCSWINSZ, &winp) == -1) {
|
|
523
|
-
switch (errno) {
|
|
524
|
-
case EBADF:
|
|
525
|
-
throw Napi::Error::New(env, "ioctl(2) failed, EBADF");
|
|
526
|
-
case EFAULT:
|
|
527
|
-
throw Napi::Error::New(env, "ioctl(2) failed, EFAULT");
|
|
528
|
-
case EINVAL:
|
|
529
|
-
throw Napi::Error::New(env, "ioctl(2) failed, EINVAL");
|
|
530
|
-
case ENOTTY:
|
|
531
|
-
throw Napi::Error::New(env, "ioctl(2) failed, ENOTTY");
|
|
532
|
-
}
|
|
533
|
-
throw Napi::Error::New(env, "ioctl(2) failed");
|
|
534
|
-
}
|
|
535
|
-
|
|
536
|
-
return env.Undefined();
|
|
537
|
-
}
|
|
538
|
-
|
|
539
|
-
/**
|
|
540
|
-
* Foreground Process Name
|
|
541
|
-
*/
|
|
542
|
-
Napi::Value PtyGetProc(const Napi::CallbackInfo& info) {
|
|
543
|
-
Napi::Env env(info.Env());
|
|
544
|
-
Napi::HandleScope scope(env);
|
|
545
|
-
|
|
546
|
-
#if defined(__APPLE__)
|
|
547
|
-
if (info.Length() != 1 ||
|
|
548
|
-
!info[0].IsNumber()) {
|
|
549
|
-
throw Napi::Error::New(env, "Usage: pty.process(pid)");
|
|
550
|
-
}
|
|
551
|
-
|
|
552
|
-
int fd = info[0].As<Napi::Number>().Int32Value();
|
|
553
|
-
char *name = pty_getproc(fd);
|
|
554
|
-
#else
|
|
555
|
-
if (info.Length() != 2 ||
|
|
556
|
-
!info[0].IsNumber() ||
|
|
557
|
-
!info[1].IsString()) {
|
|
558
|
-
throw Napi::Error::New(env, "Usage: pty.process(fd, tty)");
|
|
559
|
-
}
|
|
560
|
-
|
|
561
|
-
int fd = info[0].As<Napi::Number>().Int32Value();
|
|
562
|
-
|
|
563
|
-
std::string tty_ = info[1].As<Napi::String>();
|
|
564
|
-
char *tty = strdup(tty_.c_str());
|
|
565
|
-
char *name = pty_getproc(fd, tty);
|
|
566
|
-
free(tty);
|
|
567
|
-
#endif
|
|
568
|
-
|
|
569
|
-
if (name == NULL) {
|
|
570
|
-
return env.Undefined();
|
|
571
|
-
}
|
|
572
|
-
|
|
573
|
-
Napi::String name_ = Napi::String::New(env, name);
|
|
574
|
-
free(name);
|
|
575
|
-
return name_;
|
|
576
|
-
}
|
|
577
|
-
|
|
578
|
-
/**
|
|
579
|
-
* Nonblocking FD
|
|
580
|
-
*/
|
|
581
|
-
|
|
582
|
-
static int
|
|
583
|
-
pty_nonblock(int fd) {
|
|
584
|
-
int flags = fcntl(fd, F_GETFL, 0);
|
|
585
|
-
if (flags == -1) return -1;
|
|
586
|
-
return fcntl(fd, F_SETFL, flags | O_NONBLOCK);
|
|
587
|
-
}
|
|
588
|
-
|
|
589
|
-
/**
|
|
590
|
-
* pty_getproc
|
|
591
|
-
* Taken from tmux.
|
|
592
|
-
*/
|
|
593
|
-
|
|
594
|
-
// Taken from: tmux (http://tmux.sourceforge.net/)
|
|
595
|
-
// Copyright (c) 2009 Nicholas Marriott <nicm@users.sourceforge.net>
|
|
596
|
-
// Copyright (c) 2009 Joshua Elsasser <josh@elsasser.org>
|
|
597
|
-
// Copyright (c) 2009 Todd Carson <toc@daybefore.net>
|
|
598
|
-
//
|
|
599
|
-
// Permission to use, copy, modify, and distribute this software for any
|
|
600
|
-
// purpose with or without fee is hereby granted, provided that the above
|
|
601
|
-
// copyright notice and this permission notice appear in all copies.
|
|
602
|
-
//
|
|
603
|
-
// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
|
604
|
-
// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
|
605
|
-
// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
|
606
|
-
// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
|
607
|
-
// WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER
|
|
608
|
-
// IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
|
|
609
|
-
// OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
610
|
-
|
|
611
|
-
#if defined(__linux__)
|
|
612
|
-
|
|
613
|
-
static char *
|
|
614
|
-
pty_getproc(int fd, char *tty) {
|
|
615
|
-
FILE *f;
|
|
616
|
-
char *path, *buf;
|
|
617
|
-
size_t len;
|
|
618
|
-
int ch;
|
|
619
|
-
pid_t pgrp;
|
|
620
|
-
int r;
|
|
621
|
-
|
|
622
|
-
if ((pgrp = tcgetpgrp(fd)) == -1) {
|
|
623
|
-
return NULL;
|
|
624
|
-
}
|
|
625
|
-
|
|
626
|
-
r = asprintf(&path, "/proc/%lld/cmdline", (long long)pgrp);
|
|
627
|
-
if (r == -1 || path == NULL) return NULL;
|
|
628
|
-
|
|
629
|
-
if ((f = fopen(path, "r")) == NULL) {
|
|
630
|
-
free(path);
|
|
631
|
-
return NULL;
|
|
632
|
-
}
|
|
633
|
-
|
|
634
|
-
free(path);
|
|
635
|
-
|
|
636
|
-
len = 0;
|
|
637
|
-
buf = NULL;
|
|
638
|
-
while ((ch = fgetc(f)) != EOF) {
|
|
639
|
-
if (ch == '\0') break;
|
|
640
|
-
buf = (char *)realloc(buf, len + 2);
|
|
641
|
-
if (buf == NULL) return NULL;
|
|
642
|
-
buf[len++] = ch;
|
|
643
|
-
}
|
|
644
|
-
|
|
645
|
-
if (buf != NULL) {
|
|
646
|
-
buf[len] = '\0';
|
|
647
|
-
}
|
|
648
|
-
|
|
649
|
-
fclose(f);
|
|
650
|
-
return buf;
|
|
651
|
-
}
|
|
652
|
-
|
|
653
|
-
#elif defined(__APPLE__)
|
|
654
|
-
|
|
655
|
-
static char *
|
|
656
|
-
pty_getproc(int fd) {
|
|
657
|
-
int mib[4] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, 0 };
|
|
658
|
-
size_t size;
|
|
659
|
-
struct kinfo_proc kp;
|
|
660
|
-
|
|
661
|
-
if ((mib[3] = tcgetpgrp(fd)) == -1) {
|
|
662
|
-
return NULL;
|
|
663
|
-
}
|
|
664
|
-
|
|
665
|
-
size = sizeof kp;
|
|
666
|
-
if (sysctl(mib, 4, &kp, &size, NULL, 0) == -1) {
|
|
667
|
-
return NULL;
|
|
668
|
-
}
|
|
669
|
-
|
|
670
|
-
if (size != (sizeof kp) || *kp.kp_proc.p_comm == '\0') {
|
|
671
|
-
return NULL;
|
|
672
|
-
}
|
|
673
|
-
|
|
674
|
-
return strdup(kp.kp_proc.p_comm);
|
|
675
|
-
}
|
|
676
|
-
|
|
677
|
-
#else
|
|
678
|
-
|
|
679
|
-
static char *
|
|
680
|
-
pty_getproc(int fd, char *tty) {
|
|
681
|
-
return NULL;
|
|
682
|
-
}
|
|
683
|
-
|
|
684
|
-
#endif
|
|
685
|
-
|
|
686
|
-
#if defined(__APPLE__)
|
|
687
|
-
static void
|
|
688
|
-
pty_posix_spawn(char** argv, char** env,
|
|
689
|
-
const struct termios *termp,
|
|
690
|
-
const struct winsize *winp,
|
|
691
|
-
int* master,
|
|
692
|
-
pid_t* pid,
|
|
693
|
-
int* err) {
|
|
694
|
-
int low_fds[3];
|
|
695
|
-
size_t count = 0;
|
|
696
|
-
|
|
697
|
-
for (; count < 3; count++) {
|
|
698
|
-
low_fds[count] = posix_openpt(O_RDWR);
|
|
699
|
-
if (low_fds[count] >= STDERR_FILENO)
|
|
700
|
-
break;
|
|
701
|
-
}
|
|
702
|
-
|
|
703
|
-
int flags = POSIX_SPAWN_CLOEXEC_DEFAULT |
|
|
704
|
-
POSIX_SPAWN_SETSIGDEF |
|
|
705
|
-
POSIX_SPAWN_SETSIGMASK |
|
|
706
|
-
POSIX_SPAWN_SETSID;
|
|
707
|
-
*master = posix_openpt(O_RDWR);
|
|
708
|
-
if (*master == -1) {
|
|
709
|
-
return;
|
|
710
|
-
}
|
|
711
|
-
|
|
712
|
-
int res = grantpt(*master) || unlockpt(*master);
|
|
713
|
-
if (res == -1) {
|
|
714
|
-
return;
|
|
715
|
-
}
|
|
716
|
-
|
|
717
|
-
// Use TIOCPTYGNAME instead of ptsname() to avoid threading problems.
|
|
718
|
-
int slave;
|
|
719
|
-
char slave_pty_name[128];
|
|
720
|
-
res = ioctl(*master, TIOCPTYGNAME, slave_pty_name);
|
|
721
|
-
if (res == -1) {
|
|
722
|
-
return;
|
|
723
|
-
}
|
|
724
|
-
|
|
725
|
-
slave = open(slave_pty_name, O_RDWR | O_NOCTTY);
|
|
726
|
-
if (slave == -1) {
|
|
727
|
-
return;
|
|
728
|
-
}
|
|
729
|
-
|
|
730
|
-
if (termp) {
|
|
731
|
-
res = tcsetattr(slave, TCSANOW, termp);
|
|
732
|
-
if (res == -1) {
|
|
733
|
-
return;
|
|
734
|
-
};
|
|
735
|
-
}
|
|
736
|
-
|
|
737
|
-
if (winp) {
|
|
738
|
-
res = ioctl(slave, TIOCSWINSZ, winp);
|
|
739
|
-
if (res == -1) {
|
|
740
|
-
return;
|
|
741
|
-
}
|
|
742
|
-
}
|
|
743
|
-
|
|
744
|
-
posix_spawn_file_actions_t acts;
|
|
745
|
-
posix_spawn_file_actions_init(&acts);
|
|
746
|
-
posix_spawn_file_actions_adddup2(&acts, slave, STDIN_FILENO);
|
|
747
|
-
posix_spawn_file_actions_adddup2(&acts, slave, STDOUT_FILENO);
|
|
748
|
-
posix_spawn_file_actions_adddup2(&acts, slave, STDERR_FILENO);
|
|
749
|
-
posix_spawn_file_actions_addclose(&acts, slave);
|
|
750
|
-
posix_spawn_file_actions_addclose(&acts, *master);
|
|
751
|
-
|
|
752
|
-
posix_spawnattr_t attrs;
|
|
753
|
-
posix_spawnattr_init(&attrs);
|
|
754
|
-
*err = posix_spawnattr_setflags(&attrs, flags);
|
|
755
|
-
if (*err != 0) {
|
|
756
|
-
goto done;
|
|
757
|
-
}
|
|
758
|
-
|
|
759
|
-
sigset_t signal_set;
|
|
760
|
-
/* Reset all signal the child to their default behavior */
|
|
761
|
-
sigfillset(&signal_set);
|
|
762
|
-
*err = posix_spawnattr_setsigdefault(&attrs, &signal_set);
|
|
763
|
-
if (*err != 0) {
|
|
764
|
-
goto done;
|
|
765
|
-
}
|
|
766
|
-
|
|
767
|
-
/* Reset the signal mask for all signals */
|
|
768
|
-
sigemptyset(&signal_set);
|
|
769
|
-
*err = posix_spawnattr_setsigmask(&attrs, &signal_set);
|
|
770
|
-
if (*err != 0) {
|
|
771
|
-
goto done;
|
|
772
|
-
}
|
|
773
|
-
|
|
774
|
-
do
|
|
775
|
-
*err = posix_spawn(pid, argv[0], &acts, &attrs, argv, env);
|
|
776
|
-
while (*err == EINTR);
|
|
777
|
-
done:
|
|
778
|
-
posix_spawn_file_actions_destroy(&acts);
|
|
779
|
-
posix_spawnattr_destroy(&attrs);
|
|
780
|
-
|
|
781
|
-
for (; count > 0; count--) {
|
|
782
|
-
close(low_fds[count]);
|
|
783
|
-
}
|
|
784
|
-
}
|
|
785
|
-
#endif
|
|
786
|
-
|
|
787
|
-
/**
|
|
788
|
-
* Init
|
|
789
|
-
*/
|
|
790
|
-
|
|
791
|
-
Napi::Object init(Napi::Env env, Napi::Object exports) {
|
|
792
|
-
exports.Set("fork", Napi::Function::New(env, PtyFork));
|
|
793
|
-
exports.Set("open", Napi::Function::New(env, PtyOpen));
|
|
794
|
-
exports.Set("resize", Napi::Function::New(env, PtyResize));
|
|
795
|
-
exports.Set("process", Napi::Function::New(env, PtyGetProc));
|
|
796
|
-
return exports;
|
|
797
|
-
}
|
|
798
|
-
|
|
799
|
-
NODE_API_MODULE(NODE_GYP_MODULE_NAME, init)
|