@lijian-ui/dsh-term 0.1.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.
Files changed (41) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +36 -0
  3. package/cordis.patch.yml +8 -0
  4. package/lib/client.js +7824 -0
  5. package/lib/client.js.map +1 -0
  6. package/lib/index.js +434 -0
  7. package/lib/tsconfig.client.tsbuildinfo +1 -0
  8. package/lib/tsconfig.host.tsbuildinfo +1 -0
  9. package/lib/types/client/index.d.ts +26 -0
  10. package/lib/types/client/index.d.ts.map +1 -0
  11. package/lib/types/client/term/TerminalPanel.d.ts +24 -0
  12. package/lib/types/client/term/TerminalPanel.d.ts.map +1 -0
  13. package/lib/types/client/term/api.d.ts +34 -0
  14. package/lib/types/client/term/api.d.ts.map +1 -0
  15. package/lib/types/client/term/xterm-styles.d.ts +9 -0
  16. package/lib/types/client/term/xterm-styles.d.ts.map +1 -0
  17. package/lib/types/core/types.d.ts +76 -0
  18. package/lib/types/core/types.d.ts.map +1 -0
  19. package/lib/types/host/loopback.d.ts +25 -0
  20. package/lib/types/host/loopback.d.ts.map +1 -0
  21. package/lib/types/host/pty-service.d.ts +45 -0
  22. package/lib/types/host/pty-service.d.ts.map +1 -0
  23. package/lib/types/host/routes.d.ts +17 -0
  24. package/lib/types/host/routes.d.ts.map +1 -0
  25. package/lib/types/index.d.ts +19 -0
  26. package/lib/types/index.d.ts.map +1 -0
  27. package/lib/types/mount-once.d.ts +25 -0
  28. package/lib/types/mount-once.d.ts.map +1 -0
  29. package/package.json +79 -0
  30. package/src/client/css-modules.d.ts +4 -0
  31. package/src/client/index.ts +223 -0
  32. package/src/client/term/TerminalPanel.tsx +259 -0
  33. package/src/client/term/api.ts +66 -0
  34. package/src/client/term/term.module.css +153 -0
  35. package/src/client/term/xterm-styles.ts +182 -0
  36. package/src/core/types.ts +73 -0
  37. package/src/host/loopback.ts +63 -0
  38. package/src/host/pty-service.ts +131 -0
  39. package/src/host/routes.ts +198 -0
  40. package/src/index.ts +37 -0
  41. package/src/mount-once.ts +48 -0
@@ -0,0 +1 @@
1
+ {"fileNames":["../../../node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/typescript/lib/lib.es2021.d.ts","../../../node_modules/typescript/lib/lib.es2022.d.ts","../../../node_modules/typescript/lib/lib.es2023.d.ts","../../../node_modules/typescript/lib/lib.es2024.d.ts","../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../../node_modules/typescript/lib/lib.es2017.date.d.ts","../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../../node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../../node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2023.array.d.ts","../../../node_modules/typescript/lib/lib.es2023.collection.d.ts","../../../node_modules/typescript/lib/lib.es2023.intl.d.ts","../../../node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts","../../../node_modules/typescript/lib/lib.es2024.collection.d.ts","../../../node_modules/typescript/lib/lib.es2024.object.d.ts","../../../node_modules/typescript/lib/lib.es2024.promise.d.ts","../../../node_modules/typescript/lib/lib.es2024.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2024.string.d.ts","../../../node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../../node_modules/@deepseek-ai/cosmokit/lib/types/array.d.ts","../../../node_modules/@deepseek-ai/cosmokit/lib/types/types.d.ts","../../../node_modules/@deepseek-ai/cosmokit/lib/types/misc.d.ts","../../../node_modules/@deepseek-ai/cosmokit/lib/types/string.d.ts","../../../node_modules/@deepseek-ai/cosmokit/lib/types/time.d.ts","../../../node_modules/@deepseek-ai/cosmokit/lib/types/index.d.ts","../../../node_modules/@standard-schema/spec/dist/index.d.ts","../../../node_modules/@deepseek-ai/cordis/lib/types/utils.d.ts","../../../node_modules/@deepseek-ai/cordis/lib/types/registry.d.ts","../../../node_modules/@deepseek-ai/cordis/lib/types/reflect.d.ts","../../../node_modules/@deepseek-ai/cordis/lib/types/fiber.d.ts","../../../node_modules/@deepseek-ai/cordis/lib/types/events.d.ts","../../../node_modules/@deepseek-ai/cordis/lib/types/logger.d.ts","../../../node_modules/@deepseek-ai/cordis/lib/types/context.d.ts","../../../node_modules/@deepseek-ai/cordis/lib/types/service.d.ts","../../../node_modules/@deepseek-ai/cordis/lib/types/index.d.ts","../../../node_modules/@deepseek-ai/schemastery/lib/types/index.d.ts","../../../node_modules/@deepseek-ai/dsh-host-webserver/lib/types/index.d.ts","../src/mount-once.ts","../../../node_modules/node-pty/typings/node-pty.d.ts","../src/core/types.ts","../src/host/pty-service.ts","../src/host/loopback.ts","../src/host/routes.ts","../src/index.ts","../../../node_modules/@types/node/compatibility/disposable.d.ts","../../../node_modules/@types/node/compatibility/indexable.d.ts","../../../node_modules/@types/node/compatibility/iterators.d.ts","../../../node_modules/@types/node/compatibility/index.d.ts","../../../node_modules/@types/node/globals.typedarray.d.ts","../../../node_modules/@types/node/buffer.buffer.d.ts","../../../node_modules/@types/node/globals.d.ts","../../../node_modules/@types/node/web-globals/abortcontroller.d.ts","../../../node_modules/@types/node/web-globals/domexception.d.ts","../../../node_modules/@types/node/web-globals/events.d.ts","../../../node_modules/undici-types/header.d.ts","../../../node_modules/undici-types/readable.d.ts","../../../node_modules/undici-types/file.d.ts","../../../node_modules/undici-types/fetch.d.ts","../../../node_modules/undici-types/formdata.d.ts","../../../node_modules/undici-types/connector.d.ts","../../../node_modules/undici-types/client.d.ts","../../../node_modules/undici-types/errors.d.ts","../../../node_modules/undici-types/dispatcher.d.ts","../../../node_modules/undici-types/global-dispatcher.d.ts","../../../node_modules/undici-types/global-origin.d.ts","../../../node_modules/undici-types/pool-stats.d.ts","../../../node_modules/undici-types/pool.d.ts","../../../node_modules/undici-types/handlers.d.ts","../../../node_modules/undici-types/balanced-pool.d.ts","../../../node_modules/undici-types/agent.d.ts","../../../node_modules/undici-types/mock-interceptor.d.ts","../../../node_modules/undici-types/mock-agent.d.ts","../../../node_modules/undici-types/mock-client.d.ts","../../../node_modules/undici-types/mock-pool.d.ts","../../../node_modules/undici-types/mock-errors.d.ts","../../../node_modules/undici-types/proxy-agent.d.ts","../../../node_modules/undici-types/env-http-proxy-agent.d.ts","../../../node_modules/undici-types/retry-handler.d.ts","../../../node_modules/undici-types/retry-agent.d.ts","../../../node_modules/undici-types/api.d.ts","../../../node_modules/undici-types/interceptors.d.ts","../../../node_modules/undici-types/util.d.ts","../../../node_modules/undici-types/cookies.d.ts","../../../node_modules/undici-types/patch.d.ts","../../../node_modules/undici-types/websocket.d.ts","../../../node_modules/undici-types/eventsource.d.ts","../../../node_modules/undici-types/filereader.d.ts","../../../node_modules/undici-types/diagnostics-channel.d.ts","../../../node_modules/undici-types/content-type.d.ts","../../../node_modules/undici-types/cache.d.ts","../../../node_modules/undici-types/index.d.ts","../../../node_modules/@types/node/web-globals/fetch.d.ts","../../../node_modules/@types/node/web-globals/navigator.d.ts","../../../node_modules/@types/node/web-globals/storage.d.ts","../../../node_modules/@types/node/web-globals/streams.d.ts","../../../node_modules/@types/node/assert.d.ts","../../../node_modules/@types/node/assert/strict.d.ts","../../../node_modules/@types/node/async_hooks.d.ts","../../../node_modules/@types/node/buffer.d.ts","../../../node_modules/@types/node/child_process.d.ts","../../../node_modules/@types/node/cluster.d.ts","../../../node_modules/@types/node/console.d.ts","../../../node_modules/@types/node/constants.d.ts","../../../node_modules/@types/node/crypto.d.ts","../../../node_modules/@types/node/dgram.d.ts","../../../node_modules/@types/node/diagnostics_channel.d.ts","../../../node_modules/@types/node/dns.d.ts","../../../node_modules/@types/node/dns/promises.d.ts","../../../node_modules/@types/node/domain.d.ts","../../../node_modules/@types/node/events.d.ts","../../../node_modules/@types/node/fs.d.ts","../../../node_modules/@types/node/fs/promises.d.ts","../../../node_modules/@types/node/http.d.ts","../../../node_modules/@types/node/http2.d.ts","../../../node_modules/@types/node/https.d.ts","../../../node_modules/@types/node/inspector.d.ts","../../../node_modules/@types/node/inspector.generated.d.ts","../../../node_modules/@types/node/module.d.ts","../../../node_modules/@types/node/net.d.ts","../../../node_modules/@types/node/os.d.ts","../../../node_modules/@types/node/path.d.ts","../../../node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/@types/node/process.d.ts","../../../node_modules/@types/node/punycode.d.ts","../../../node_modules/@types/node/querystring.d.ts","../../../node_modules/@types/node/readline.d.ts","../../../node_modules/@types/node/readline/promises.d.ts","../../../node_modules/@types/node/repl.d.ts","../../../node_modules/@types/node/sea.d.ts","../../../node_modules/@types/node/sqlite.d.ts","../../../node_modules/@types/node/stream.d.ts","../../../node_modules/@types/node/stream/promises.d.ts","../../../node_modules/@types/node/stream/consumers.d.ts","../../../node_modules/@types/node/stream/web.d.ts","../../../node_modules/@types/node/string_decoder.d.ts","../../../node_modules/@types/node/test.d.ts","../../../node_modules/@types/node/timers.d.ts","../../../node_modules/@types/node/timers/promises.d.ts","../../../node_modules/@types/node/tls.d.ts","../../../node_modules/@types/node/trace_events.d.ts","../../../node_modules/@types/node/tty.d.ts","../../../node_modules/@types/node/url.d.ts","../../../node_modules/@types/node/util.d.ts","../../../node_modules/@types/node/v8.d.ts","../../../node_modules/@types/node/vm.d.ts","../../../node_modules/@types/node/wasi.d.ts","../../../node_modules/@types/node/worker_threads.d.ts","../../../node_modules/@types/node/zlib.d.ts","../../../node_modules/@types/node/index.d.ts"],"fileIdsList":[[100,149,166,167],[100,149,163,166,167],[89,90,100,149,154,166,167],[85,87,90,91,92,100,149,163,166,167],[85,87,88,91,93,100,149,166,167],[75,77,78,79,80,81,82,100,149,166,167],[75,78,79,80,81,82,83,100,149,166,167],[75,76,77,78,79,80,81,82,83,100,149,166,167],[77,78,79,80,81,82,83,84,100,149,166,167],[77,78,79,80,81,82,83,100,149,166,167],[85,87,100,149,166,167],[70,71,72,73,74,100,149,166,167],[85,86,87,100,149,163,166,167,181],[75,76,100,149,166,167],[100,146,147,149,166,167],[100,148,149,166,167],[149,166,167],[100,149,154,166,167,184],[100,149,150,155,160,166,167,169,181,192],[100,149,150,151,160,166,167,169],[95,96,97,100,149,166,167],[100,149,152,166,167,193],[100,149,153,154,161,166,167,170],[100,149,154,166,167,181,189],[100,149,155,157,160,166,167,169],[100,148,149,156,166,167],[100,149,157,158,166,167],[100,149,159,160,166,167],[100,148,149,160,166,167],[100,149,160,161,162,166,167,181,192],[100,149,160,161,162,166,167,176,181,184],[100,141,149,157,160,163,166,167,169,181,192],[100,149,160,161,163,164,166,167,169,181,189,192],[100,149,163,165,166,167,181,189,192],[98,99,100,101,102,103,104,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198],[100,149,160,166,167],[100,149,166,167,168,192],[100,149,157,160,166,167,169,181],[100,149,166,167,170],[100,149,166,167,171],[100,148,149,166,167,172],[100,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198],[100,149,166,167,174],[100,149,166,167,175],[100,149,160,166,167,176,177],[100,149,166,167,176,178,193,195],[100,149,161,166,167],[100,149,160,166,167,181,182,184],[100,149,166,167,183,184],[100,149,166,167,181,182],[100,149,166,167,184],[100,149,166,167,185],[100,146,149,166,167,181,186,192],[100,149,160,166,167,187,188],[100,149,166,167,187,188],[100,149,154,166,167,169,181,189],[100,149,166,167,190],[100,149,166,167,169,191],[100,149,163,166,167,175,192],[100,149,154,166,167,193],[100,149,166,167,181,194],[100,149,166,167,168,195],[100,149,166,167,196],[100,141,149,166,167],[100,141,149,160,162,166,167,172,181,184,192,194,195,197],[100,149,166,167,181,198],[100,113,117,149,166,167,192],[100,113,149,166,167,181,192],[100,108,149,166,167],[100,110,113,149,166,167,189,192],[100,149,166,167,169,189],[100,149,166,167,199],[100,108,149,166,167,199],[100,110,113,149,166,167,169,192],[100,105,106,109,112,149,160,166,167,181,192],[100,113,120,149,166,167],[100,105,111,149,166,167],[100,113,134,135,149,166,167],[100,109,113,149,166,167,184,192,199],[100,134,149,166,167,199],[100,107,108,149,166,167,199],[100,113,149,166,167],[100,107,108,109,110,111,112,113,114,115,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,135,136,137,138,139,140,149,166,167],[100,113,128,149,166,167],[100,113,120,121,149,166,167],[100,111,113,121,122,149,166,167],[100,112,149,166,167],[100,105,108,113,149,166,167],[100,113,117,121,122,149,166,167],[100,117,149,166,167],[100,111,113,116,149,166,167,192],[100,105,110,113,120,149,166,167],[100,149,166,167,181],[100,108,113,134,149,166,167,197,199]],"fileInfos":[{"version":"c430d44666289dae81f30fa7b2edebf186ecc91a2d4c71266ea6ae76388792e1","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"27bdc30a0e32783366a5abeda841bc22757c1797de8681bbe81fbc735eeb1c10","impliedFormat":1},{"version":"8fd575e12870e9944c7e1d62e1f5a73fcf23dd8d3a321f2a2c74c20d022283fe","impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fb0f136d372979348d59b3f5020b4cdb81b5504192b1cacff5d1fbba29378aa1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a680117f487a4d2f30ea46f1b4b7f58bef1480456e18ba53ee85c2746eeca012","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"8cdf8847677ac7d20486e54dd3fcf09eda95812ac8ace44b4418da1bbbab6eb8","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"df83c2a6c73228b625b0beb6669c7ee2a09c914637e2d35170723ad49c0f5cd4","affectsGlobalScope":true,"impliedFormat":1},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e3c06ea092138bf9fa5e874a1fdbc9d54805d074bee1de31b99a11e2fec239d","affectsGlobalScope":true,"impliedFormat":1},{"version":"87dc0f382502f5bbce5129bdc0aea21e19a3abbc19259e0b43ae038a9fc4e326","affectsGlobalScope":true,"impliedFormat":1},{"version":"b1cb28af0c891c8c96b2d6b7be76bd394fddcfdb4709a20ba05a7c1605eea0f9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2fef54945a13095fdb9b84f705f2b5994597640c46afeb2ce78352fab4cb3279","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac77cb3e8c6d3565793eb90a8373ee8033146315a3dbead3bde8db5eaf5e5ec6","affectsGlobalScope":true,"impliedFormat":1},{"version":"56e4ed5aab5f5920980066a9409bfaf53e6d21d3f8d020c17e4de584d29600ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ece9f17b3866cc077099c73f4983bddbcb1dc7ddb943227f1ec070f529dedd1","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a6282c8827e4b9a95f4bf4f5c205673ada31b982f50572d27103df8ceb8013c","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"fb6f2007d60e8b519a2ef0c5a27026ddfe06418ae6261c4eb0cb670cca5e1bc2","impliedFormat":99},{"version":"a48f1b69ec0b94b16c7ece2cf6d6003cc8d0c329538117c1c364d8525a100850","impliedFormat":99},{"version":"cd5713ac354e4869fdf837e12d24d3ae14fd9d94a5bb2d340df63b899b74e6ca","impliedFormat":99},{"version":"56210599298d6eca6285eab99c7e9333d7e275c3a73a7f401b3055e8d55c67e8","impliedFormat":99},{"version":"2845576622e416da9871e1f3c788ba41dc4f24eb764362b10eceeb0dbaa67208","impliedFormat":99},{"version":"f0421e04e2a5238754cf444bf2a56fe7e7a94a08c14c1f9d063ff51c85825823","impliedFormat":99},{"version":"bdd14f07b4eca0b4b5203b85b8dbc4d084c749fa590bee5ea613e1641dcd3b29","impliedFormat":99},{"version":"967b227fad024ba8a7c32127534089bce5adc800840b0288f44d41c4c849278e","impliedFormat":99},{"version":"ffd229492af3cb444c01e8e51a78dfdbed670940bac40dde083675d57d6984fc","impliedFormat":99},{"version":"57cdef8252cb041b4b646cc9e80dcb27d2180bb78fcf95761136d99be4079cb3","impliedFormat":99},{"version":"eb5fd8d19b0330da4dccb6cab3eae0304f056ac8fbd5bd9589ce48f0920bff78","impliedFormat":99},{"version":"db565a086622cbe616a950186dc90e82a74060864b9cd1d0f25285860daea9b4","impliedFormat":99},{"version":"71087395cc862f52662ab2629a0f3838f8f2aaf84eb40c97f4f4004f2fcbbed6","impliedFormat":99},{"version":"1e2e6cfcab26ae01d7f2dd1f78a1d25ddb7f3b2e27f50c9eb3b54ee206a87884","impliedFormat":99},{"version":"489ec23ef8dc0e869cf3d8d77a39ba83ab24e5e71362320f5662491b3dc5bd04","impliedFormat":99},{"version":"c93dd79fae382105510c69cc8eef95a96c8c43e50b47e16efa98a3f9e76f304b","impliedFormat":99},{"version":"bb2f86815e0ffd28aff945931828a38ab6e6b1eb33b93cbb108315c2e94f8b2b","affectsGlobalScope":true,"impliedFormat":99},{"version":"f80f6f89738d34058dc6e8259e746cb49591d5acfd2f54195a426bdd9fa1162d","impliedFormat":99},{"version":"39ed31d8217e4a665b3f71aba96d85319ddd9358ec612010e1344ae279c335d4","signature":"495e63c77bdf8c3567696746c5bfc732e4473cdb5359a93e2b310b6d3838e893"},{"version":"4bb071c41f8f9aaa3e1691c8c84873fa38a3067161ac0d22f085577a9e483be0","impliedFormat":1},{"version":"f4dce8d6da7e72b1e3f51456599ea58d2d95ad20de94b5e89bff3088ac4b83d9","signature":"d19bcd0a05e0e9fbc03f43e4d5727c1757f033206793832545bf0bff7d9b04ba"},{"version":"d73fbddcb7f9d9d0b3bfc07e2c38b8f2736daab7359f6e9e0626e1300e461e26","signature":"1a6720fa269e4ed88967d8b49780be164cd3bb00e5a733e6420770d252ae74ee"},{"version":"dc5558024db9c0183653af14c2704519a62477a0edb14fe08ac37ebf0d7a0bc9","signature":"c783327339faef7279db1cf6ad8b0c680e2535298d25b8207f0919abdafd86fc"},{"version":"e51915b159cedc00e40b142f3fd63f485730df8515b830a58b7c843e6f2cfa98","signature":"a5c8291614090252714acd7d94a41deb0e7c4d1f745c54278b1d940fe18176ed"},{"version":"b03185f581631205ea23001c69e7c9f272777d2e57b64f8bf78270307d1b66e6","signature":"a04a7408b6995eca3cecfe00131aa737166964bdc2f8b41bd6b2511c279a92f0"},{"version":"6c7176368037af28cb72f2392010fa1cef295d6d6744bca8cfb54985f3a18c3e","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab41ef1f2cdafb8df48be20cd969d875602483859dc194e9c97c8a576892c052","affectsGlobalScope":true,"impliedFormat":1},{"version":"437e20f2ba32abaeb7985e0afe0002de1917bc74e949ba585e49feba65da6ca1","affectsGlobalScope":true,"impliedFormat":1},{"version":"21d819c173c0cf7cc3ce57c3276e77fd9a8a01d35a06ad87158781515c9a438a","impliedFormat":1},{"version":"98cffbf06d6bab333473c70a893770dbe990783904002c4f1a960447b4b53dca","affectsGlobalScope":true,"impliedFormat":1},{"version":"3af97acf03cc97de58a3a4bc91f8f616408099bc4233f6d0852e72a8ffb91ac9","affectsGlobalScope":true,"impliedFormat":1},{"version":"808069bba06b6768b62fd22429b53362e7af342da4a236ed2d2e1c89fcca3b4a","affectsGlobalScope":true,"impliedFormat":1},{"version":"1db0b7dca579049ca4193d034d835f6bfe73096c73663e5ef9a0b5779939f3d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"9798340ffb0d067d69b1ae5b32faa17ab31b82466a3fc00d8f2f2df0c8554aaa","affectsGlobalScope":true,"impliedFormat":1},{"version":"f26b11d8d8e4b8028f1c7d618b22274c892e4b0ef5b3678a8ccbad85419aef43","affectsGlobalScope":true,"impliedFormat":1},{"version":"5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","impliedFormat":1},{"version":"763fe0f42b3d79b440a9b6e51e9ba3f3f91352469c1e4b3b67bfa4ff6352f3f4","impliedFormat":1},{"version":"25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","impliedFormat":1},{"version":"c464d66b20788266e5353b48dc4aa6bc0dc4a707276df1e7152ab0c9ae21fad8","impliedFormat":1},{"version":"78d0d27c130d35c60b5e5566c9f1e5be77caf39804636bc1a40133919a949f21","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"1d6e127068ea8e104a912e42fc0a110e2aa5a66a356a917a163e8cf9a65e4a75","impliedFormat":1},{"version":"5ded6427296cdf3b9542de4471d2aa8d3983671d4cac0f4bf9c637208d1ced43","impliedFormat":1},{"version":"7f182617db458e98fc18dfb272d40aa2fff3a353c44a89b2c0ccb3937709bfb5","impliedFormat":1},{"version":"cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","impliedFormat":1},{"version":"385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","impliedFormat":1},{"version":"9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","impliedFormat":1},{"version":"0b8a9268adaf4da35e7fa830c8981cfa22adbbe5b3f6f5ab91f6658899e657a7","impliedFormat":1},{"version":"11396ed8a44c02ab9798b7dca436009f866e8dae3c9c25e8c1fbc396880bf1bb","impliedFormat":1},{"version":"ba7bc87d01492633cb5a0e5da8a4a42a1c86270e7b3d2dea5d156828a84e4882","impliedFormat":1},{"version":"4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","impliedFormat":1},{"version":"c21dc52e277bcfc75fac0436ccb75c204f9e1b3fa5e12729670910639f27343e","impliedFormat":1},{"version":"13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","impliedFormat":1},{"version":"9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","impliedFormat":1},{"version":"4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","impliedFormat":1},{"version":"24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","impliedFormat":1},{"version":"ea0148f897b45a76544ae179784c95af1bd6721b8610af9ffa467a518a086a43","impliedFormat":1},{"version":"24c6a117721e606c9984335f71711877293a9651e44f59f3d21c1ea0856f9cc9","impliedFormat":1},{"version":"dd3273ead9fbde62a72949c97dbec2247ea08e0c6952e701a483d74ef92d6a17","impliedFormat":1},{"version":"405822be75ad3e4d162e07439bac80c6bcc6dbae1929e179cf467ec0b9ee4e2e","impliedFormat":1},{"version":"0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","impliedFormat":1},{"version":"e61be3f894b41b7baa1fbd6a66893f2579bfad01d208b4ff61daef21493ef0a8","impliedFormat":1},{"version":"bd0532fd6556073727d28da0edfd1736417a3f9f394877b6d5ef6ad88fba1d1a","impliedFormat":1},{"version":"89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","impliedFormat":1},{"version":"615ba88d0128ed16bf83ef8ccbb6aff05c3ee2db1cc0f89ab50a4939bfc1943f","impliedFormat":1},{"version":"a4d551dbf8746780194d550c88f26cf937caf8d56f102969a110cfaed4b06656","impliedFormat":1},{"version":"8bd86b8e8f6a6aa6c49b71e14c4ffe1211a0e97c80f08d2c8cc98838006e4b88","impliedFormat":1},{"version":"317e63deeb21ac07f3992f5b50cdca8338f10acd4fbb7257ebf56735bf52ab00","impliedFormat":1},{"version":"4732aec92b20fb28c5fe9ad99521fb59974289ed1e45aecb282616202184064f","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"bf67d53d168abc1298888693338cb82854bdb2e69ef83f8a0092093c2d562107","impliedFormat":1},{"version":"b52476feb4a0cbcb25e5931b930fc73cb6643fb1a5060bf8a3dda0eeae5b4b68","affectsGlobalScope":true,"impliedFormat":1},{"version":"f9501cc13ce624c72b61f12b3963e84fad210fbdf0ffbc4590e08460a3f04eba","affectsGlobalScope":true,"impliedFormat":1},{"version":"e7721c4f69f93c91360c26a0a84ee885997d748237ef78ef665b153e622b36c1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d97fb21da858fb18b8ae72c314e9743fd52f73ebe2764e12af1db32fc03f853f","affectsGlobalScope":true,"impliedFormat":1},{"version":"0fa06ada475b910e2106c98c68b10483dc8811d0c14a8a8dd36efb2672485b29","impliedFormat":1},{"version":"33e5e9aba62c3193d10d1d33ae1fa75c46a1171cf76fef750777377d53b0303f","impliedFormat":1},{"version":"2b06b93fd01bcd49d1a6bd1f9b65ddcae6480b9a86e9061634d6f8e354c1468f","impliedFormat":1},{"version":"6a0cd27e5dc2cfbe039e731cf879d12b0e2dded06d1b1dedad07f7712de0d7f4","affectsGlobalScope":true,"impliedFormat":1},{"version":"13f5c844119c43e51ce777c509267f14d6aaf31eafb2c2b002ca35584cd13b29","impliedFormat":1},{"version":"e60477649d6ad21542bd2dc7e3d9ff6853d0797ba9f689ba2f6653818999c264","impliedFormat":1},{"version":"c2510f124c0293ab80b1777c44d80f812b75612f297b9857406468c0f4dafe29","affectsGlobalScope":true,"impliedFormat":1},{"version":"5524481e56c48ff486f42926778c0a3cce1cc85dc46683b92b1271865bcf015a","impliedFormat":1},{"version":"4c829ab315f57c5442c6667b53769975acbf92003a66aef19bce151987675bd1","affectsGlobalScope":true,"impliedFormat":1},{"version":"b2ade7657e2db96d18315694789eff2ddd3d8aea7215b181f8a0b303277cc579","impliedFormat":1},{"version":"78dbea00e90d2df8ea3dbef0cc379d95b8be9b71cd6bde4c28728f306811803b","impliedFormat":1},{"version":"4d631b81fa2f07a0e63a9a143d6a82c25c5f051298651a9b69176ba28930756d","impliedFormat":1},{"version":"836a356aae992ff3c28a0212e3eabcb76dd4b0cc06bcb9607aeef560661b860d","impliedFormat":1},{"version":"1e0d1f8b0adfa0b0330e028c7941b5a98c08b600efe7f14d2d2a00854fb2f393","impliedFormat":1},{"version":"41670ee38943d9cbb4924e436f56fc19ee94232bc96108562de1a734af20dc2c","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e1e46d0a9837ee058c100501080c920fa98081ea3956af0374308ba6f22a33e","impliedFormat":1},{"version":"272ca407e0c9068bdc5152552d876e68037ceae3de62e529306403e973dec8e1","impliedFormat":1},{"version":"fa7834c715d5357e4540cee40ce96c3250ddb67a7b879a6b7fa0e86d6696f121","impliedFormat":1},{"version":"22dfb07a7ab15b66ac043829056fe70124844636ae719551812ac631ba04985b","impliedFormat":1},{"version":"a10f0e1854f3316d7ee437b79649e5a6ae3ae14ffe6322b02d4987071a95362e","impliedFormat":1},{"version":"e208f73ef6a980104304b0d2ca5f6bf1b85de6009d2c7e404028b875020fa8f2","impliedFormat":1},{"version":"d163b6bc2372b4f07260747cbc6c0a6405ab3fbcea3852305e98ac43ca59f5bc","impliedFormat":1},{"version":"e6fa9ad47c5f71ff733744a029d1dc472c618de53804eae08ffc243b936f87ff","affectsGlobalScope":true,"impliedFormat":1},{"version":"a6f137d651076822d4fe884287e68fd61785a0d3d1fdb250a5059b691fa897db","impliedFormat":1},{"version":"24826ed94a78d5c64bd857570fdbd96229ad41b5cb654c08d75a9845e3ab7dde","impliedFormat":1},{"version":"8b479a130ccb62e98f11f136d3ac80f2984fdc07616516d29881f3061f2dd472","impliedFormat":1},{"version":"928af3d90454bf656a52a48679f199f64c1435247d6189d1caf4c68f2eaf921f","affectsGlobalScope":true,"impliedFormat":1},{"version":"bceb58df66ab8fb00170df20cd813978c5ab84be1d285710c4eb005d8e9d8efb","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f16a7e4deafa527ed9995a772bb380eb7d3c2c0fd4ae178c5263ed18394db2c","impliedFormat":1},{"version":"933921f0bb0ec12ef45d1062a1fc0f27635318f4d294e4d99de9a5493e618ca2","impliedFormat":1},{"version":"71a0f3ad612c123b57239a7749770017ecfe6b66411488000aba83e4546fde25","impliedFormat":1},{"version":"77fbe5eecb6fac4b6242bbf6eebfc43e98ce5ccba8fa44e0ef6a95c945ff4d98","impliedFormat":1},{"version":"4f9d8ca0c417b67b69eeb54c7ca1bedd7b56034bb9bfd27c5d4f3bc4692daca7","impliedFormat":1},{"version":"0cb167c371eaa8c869f8a7656a7296f2e4fae43b4d8b803a680236b24794e5f9","impliedFormat":1},{"version":"0a839dba0287cc0481ad4beedd48a1c64acf1e212ae865d1315f7007ca215161","impliedFormat":1},{"version":"38dc4655376cd1a4bd6bb3763d92949233e33d38d3dd3cbea7bbf218175a38ef","impliedFormat":1},{"version":"37ba7b45141a45ce6e80e66f2a96c8a5ab1bcef0fc2d0f56bb58df96ec67e972","impliedFormat":1},{"version":"45650f47bfb376c8a8ed39d4bcda5902ab899a3150029684ee4c10676d9fbaee","impliedFormat":1},{"version":"d61e0a64cd175208ac0b83670151a9a6b5916f0d1ffcdc5c29c90b1cebfc5045","affectsGlobalScope":true,"impliedFormat":1},{"version":"18fd40412d102c5564136f29735e5d1c3b455b8a37f920da79561f1fde068208","impliedFormat":1},{"version":"48a679952eefe4cb776d5a0e1ccba2d3eb53b57448bbb7abc1fcebcbd5440188","impliedFormat":1},{"version":"f0be1b8078cd549d91f37c30c222c2a187ac1cf981d994fb476a1adc61387b14","affectsGlobalScope":true,"impliedFormat":1},{"version":"0aaed1d72199b01234152f7a60046bc947f1f37d78d182e9ae09c4289e06a592","impliedFormat":1},{"version":"2d14da6ecb49bf828d83948765ec2d3a579d476bbb9645e749610baa6ec880ca","impliedFormat":1},{"version":"66ba1b2c3e3a3644a1011cd530fb444a96b1b2dfe2f5e837a002d41a1a799e60","impliedFormat":1},{"version":"7e514f5b852fdbc166b539fdd1f4e9114f29911592a5eb10a94bb3a13ccac3c4","impliedFormat":1},{"version":"5b7aa3c4c1a5d81b411e8cb302b45507fea9358d3569196b27eb1a27ae3a90ef","affectsGlobalScope":true,"impliedFormat":1},{"version":"5987a903da92c7462e0b35704ce7da94d7fdc4b89a984871c0e2b87a8aae9e69","affectsGlobalScope":true,"impliedFormat":1},{"version":"ea08a0345023ade2b47fbff5a76d0d0ed8bff10bc9d22b83f40858a8e941501c","impliedFormat":1},{"version":"0aef708fb4c7a6b915e8305cbfac40cd207b032dbaabe9a01889a5fff3254681","impliedFormat":1},{"version":"ae062ce7d9510060c5d7e7952ae379224fb3f8f2dd74e88959878af2057c143b","impliedFormat":1},{"version":"ad9bdafb4e7abf14cc53ce7970486a84c87831e62891e5dfe798ddcd55e84701","affectsGlobalScope":true,"impliedFormat":1},{"version":"358765d5ea8afd285d4fd1532e78b88273f18cb3f87403a9b16fef61ac9fdcfe","impliedFormat":1},{"version":"71d3ae6a5e73ca4130762560425e00984ebaff64d5353a3333d1bb7eb86ef336","impliedFormat":1}],"root":[88,[90,94]],"options":{"allowImportingTsExtensions":true,"composite":true,"declaration":true,"declarationMap":true,"emitDeclarationOnly":true,"esModuleInterop":true,"module":99,"outDir":"./types","rewriteRelativeImportExtensions":true,"rootDir":"../src","skipLibCheck":true,"strict":true,"target":11},"referencedMap":[[90,1],[92,2],[91,3],[93,4],[94,5],[88,1],[83,6],[81,7],[80,8],[85,9],[82,10],[79,7],[78,8],[84,10],[77,11],[70,1],[75,12],[72,1],[73,1],[74,1],[71,1],[87,13],[86,14],[76,1],[146,15],[147,15],[148,16],[100,17],[149,18],[150,19],[151,20],[95,1],[98,21],[96,1],[97,1],[152,22],[153,23],[154,24],[155,25],[156,26],[157,27],[158,27],[159,28],[160,29],[161,30],[162,31],[101,1],[99,1],[163,32],[164,33],[165,34],[199,35],[166,36],[167,1],[168,37],[169,38],[170,39],[171,40],[172,41],[173,42],[174,43],[175,44],[176,45],[177,45],[178,46],[179,1],[180,47],[181,48],[183,49],[182,50],[184,51],[185,52],[186,53],[187,54],[188,55],[189,56],[190,57],[191,58],[192,59],[193,60],[194,61],[195,62],[196,63],[102,1],[103,1],[104,1],[142,64],[143,1],[144,1],[145,51],[197,65],[198,66],[89,1],[68,1],[69,1],[13,1],[12,1],[2,1],[14,1],[15,1],[16,1],[17,1],[18,1],[19,1],[20,1],[21,1],[3,1],[22,1],[23,1],[4,1],[24,1],[28,1],[25,1],[26,1],[27,1],[29,1],[30,1],[31,1],[5,1],[32,1],[33,1],[34,1],[35,1],[6,1],[39,1],[36,1],[37,1],[38,1],[40,1],[7,1],[41,1],[46,1],[47,1],[42,1],[43,1],[44,1],[45,1],[8,1],[51,1],[48,1],[49,1],[50,1],[52,1],[9,1],[53,1],[54,1],[55,1],[57,1],[56,1],[58,1],[59,1],[10,1],[60,1],[61,1],[62,1],[11,1],[63,1],[64,1],[65,1],[66,1],[67,1],[1,1],[120,67],[130,68],[119,67],[140,69],[111,70],[110,71],[139,72],[133,73],[138,74],[113,75],[127,76],[112,77],[136,78],[108,79],[107,72],[137,80],[109,81],[114,82],[115,1],[118,82],[105,1],[141,83],[131,84],[122,85],[123,86],[125,87],[121,88],[124,89],[134,72],[116,90],[117,91],[126,92],[106,93],[129,84],[128,82],[132,1],[135,94]],"latestChangedDtsFile":"./types/core/types.d.ts","version":"5.9.3"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * dsh-term browser half: mounts the terminal as a DOCKED column in the web
3
+ * shell's right side — appended as the 6th grid track of the frame, beside
4
+ * the file-manager panels (preview/explorer) when present. This mirrors how
5
+ * file-manager extends the frame grid, so the two panels sit side by side.
6
+ *
7
+ * The frame is a CSS grid with `grid-auto-flow: row` (the default). A bare
8
+ * `appendChild` of a 6th child would WRAP to a 2nd row (off-screen) — so we
9
+ * must EXTEND `grid-template-columns` explicitly, the same way file-manager
10
+ * does. We append a `[dsh-term]` named 6th track after file-manager's 5
11
+ * tracks; the center column is `minmax(0,1fr)`, so it absorbs the 300px and
12
+ * the grid never overflows on wide screens. file-manager ignores any grid
13
+ * string that is not 3 (shell) or 5 (its own) tracks, so our 6-track write is
14
+ * left alone by it — we just re-assert it whenever file-manager rewrites the
15
+ * grid (drag / resize / collapse).
16
+ *
17
+ * Every DOM/runtime failure is logged, never thrown — the web shell fails the
18
+ * whole boot when a plugin apply throws.
19
+ * @module dsh-term/client
20
+ */
21
+ import type { ClientContext } from '@deepseek-ai/dsh-client-runtime/client';
22
+ /** Required services: sessions (for the workspace cwd). */
23
+ export declare const inject: string[];
24
+ /** Apply the browser half. */
25
+ export declare function apply(ctx: ClientContext): void;
26
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/client/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAIH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAA;AAO3E,2DAA2D;AAC3D,eAAO,MAAM,MAAM,UAAe,CAAA;AAqGlC,8BAA8B;AAC9B,wBAAgB,KAAK,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI,CAyF9C"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * dsh-term panel: a multi-tab local terminal (real PTY via node-pty on the
3
+ * host, bridged over /dsh-term/*). One xterm instance per tab; output lands
4
+ * through a single EventSource routed by session id.
5
+ *
6
+ * Mounting: this component renders a DOCKED column (not a floating overlay).
7
+ * The client entry (`index.ts`) appends that column as the last grid track of
8
+ * the web shell's frame, beside the file-manager panels (preview/explorer)
9
+ * when present. The panel itself only owns its inner content (header + stage).
10
+ *
11
+ * A-version scope: pure user terminal. No agent integration, no SSH targets
12
+ * yet — those are the B-version.
13
+ * @module dsh-term/client/term/TerminalPanel
14
+ */
15
+ import type { JSX } from 'react';
16
+ import type { ClientContext } from '@deepseek-ai/dsh-client-runtime/client';
17
+ import type { TermApi } from './api.ts';
18
+ /** The docked panel: header (title / tabs / new / collapse) + xterm stage. */
19
+ export declare function TerminalPanel({ ctx, api, onClose, }: {
20
+ ctx: ClientContext;
21
+ api: TermApi;
22
+ onClose: () => void;
23
+ }): JSX.Element;
24
+ //# sourceMappingURL=TerminalPanel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TerminalPanel.d.ts","sourceRoot":"","sources":["../../../../src/client/term/TerminalPanel.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAGhC,OAAO,KAAK,EAAE,aAAa,EAAa,MAAM,wCAAwC,CAAA;AAEtF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AA0CvC,8EAA8E;AAC9E,wBAAgB,aAAa,CAAC,EAC5B,GAAG,EAAE,GAAG,EAAE,OAAO,GAClB,EAAE;IAAE,GAAG,EAAE,aAAa,CAAC;IAAC,GAAG,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,IAAI,CAAA;CAAE,GAAG,GAAG,CAAC,OAAO,CAgMzE"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Browser-half bridge to the /dsh-term/* host routes: fetch envelope calls
3
+ * plus one EventSource for the output/exit stream. Thin and stateless — the
4
+ * panel owns all session state.
5
+ * @module dsh-term/client/term/api
6
+ */
7
+ import type { TermEvent, TermSessionInfo, TermSpawnRequest } from '../../core/types.ts';
8
+ /** The stateless client bridge. */
9
+ export declare class TermApi {
10
+ /** Open a session; returns the wire info. */
11
+ spawn(request: TermSpawnRequest): Promise<TermSessionInfo>;
12
+ /** Deliver terminal input. */
13
+ write(id: string, data: string): Promise<{
14
+ ok: boolean;
15
+ }>;
16
+ /** Resize one session. */
17
+ resize(id: string, cols: number, rows: number): Promise<{
18
+ ok: boolean;
19
+ }>;
20
+ /** Close one session. */
21
+ close(id: string): Promise<{
22
+ ok: boolean;
23
+ }>;
24
+ /** Current session listing (used on reconnect). */
25
+ list(): Promise<{
26
+ sessions: readonly TermSessionInfo[];
27
+ }>;
28
+ /**
29
+ * Subscribe to the output/exit stream. Returns the unsubscribe.
30
+ * @param onEvent - receives every pushed event.
31
+ */
32
+ subscribe(onEvent: (event: TermEvent) => void): () => void;
33
+ }
34
+ //# sourceMappingURL=api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../../src/client/term/api.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAgBvF,mCAAmC;AACnC,qBAAa,OAAO;IAClB,6CAA6C;IAC7C,KAAK,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC;IAI1D,8BAA8B;IAC9B,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAA;KAAE,CAAC;IAIzD,0BAA0B;IAC1B,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAA;KAAE,CAAC;IAIxE,yBAAyB;IACzB,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAA;KAAE,CAAC;IAI3C,mDAAmD;IACnD,IAAI,IAAI,OAAO,CAAC;QAAE,QAAQ,EAAE,SAAS,eAAe,EAAE,CAAA;KAAE,CAAC;IAIzD;;;OAGG;IACH,SAAS,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,GAAG,MAAM,IAAI;CAW3D"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Inlined xterm.js 5.3.0 core styles (MIT) — injected as a <style> tag at
3
+ * runtime because the client build compiles only *.module.css and the
4
+ * shell's css-modules pipeline rejects a raw :global block with xterm's
5
+ * class names.
6
+ * @module dsh-term/client/term/xterm-styles
7
+ */
8
+ export declare const XTERM_CSS: string;
9
+ //# sourceMappingURL=xterm-styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xterm-styles.d.ts","sourceRoot":"","sources":["../../../../src/client/term/xterm-styles.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,eAAO,MAAM,SAAS,EAAE,MA6KvB,CAAA"}
@@ -0,0 +1,76 @@
1
+ /**
2
+ * Wire types shared between the host half and the browser half of dsh-term.
3
+ * Pure data — no runtime imports (keeps the client bundle purity gate happy).
4
+ * @module dsh-term/core/types
5
+ */
6
+ /** One live PTY session as the browser knows it. */
7
+ export interface TermSessionInfo {
8
+ /** Stable session id (the wire handle). */
9
+ readonly id: string;
10
+ /** User-facing tab title (defaults to the shell name). */
11
+ readonly title: string;
12
+ /** Session cwd (absolute). */
13
+ readonly cwd: string;
14
+ /** PTY size at last resize. */
15
+ cols: number;
16
+ rows: number;
17
+ /** Whether the shell process is still alive. */
18
+ readonly alive: boolean;
19
+ /** POSIX exit code when the session ended (null while alive). */
20
+ readonly exitCode: number | null;
21
+ }
22
+ /** Request: open a new PTY session. */
23
+ export interface TermSpawnRequest {
24
+ /** Optional session display name. */
25
+ name?: string;
26
+ /** Working directory (defaults to the session's workspace cwd). */
27
+ cwd?: string;
28
+ /** Shell executable (defaults to the platform shell). */
29
+ shell?: string;
30
+ /** Shell arguments (defaults to an interactive login-less profile). */
31
+ args?: string[];
32
+ /** Initial terminal size. */
33
+ cols?: number;
34
+ rows?: number;
35
+ }
36
+ /** Request: deliver terminal input. */
37
+ export interface TermWriteRequest {
38
+ readonly id: string;
39
+ /** Raw bytes to write into the PTY (UTF-8 string; xterm emits UTF-8). */
40
+ readonly data: string;
41
+ }
42
+ /** Request: resize one session. */
43
+ export interface TermResizeRequest {
44
+ readonly id: string;
45
+ readonly cols: number;
46
+ readonly rows: number;
47
+ }
48
+ /** Request: signal one session. */
49
+ export interface TermSignalRequest {
50
+ readonly id: string;
51
+ /** PTY signal name (e.g. `SIGHUP`, `SIGINT`, `SIGTERM`, `SIGKILL`). */
52
+ readonly signal: 'SIGHUP' | 'SIGINT' | 'SIGTERM' | 'SIGKILL';
53
+ }
54
+ /** The full session listing snapshot. */
55
+ export interface TermListResponse {
56
+ readonly sessions: readonly TermSessionInfo[];
57
+ }
58
+ /** One output chunk pushed over the SSE change stream. */
59
+ export type TermEvent = {
60
+ readonly kind: 'output';
61
+ readonly id: string;
62
+ readonly data: string;
63
+ } | {
64
+ readonly kind: 'exit';
65
+ readonly id: string;
66
+ readonly exitCode: number;
67
+ } | {
68
+ readonly kind: 'start';
69
+ readonly session: TermSessionInfo;
70
+ } | {
71
+ readonly kind: 'closed';
72
+ readonly id: string;
73
+ };
74
+ /** The workspace-gated session id (host-minted; the wire carries only this). */
75
+ export type TermSessionId = string;
76
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,oDAAoD;AACpD,MAAM,WAAW,eAAe;IAC9B,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,0DAA0D;IAC1D,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,8BAA8B;IAC9B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,+BAA+B;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,gDAAgD;IAChD,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;IACvB,iEAAiE;IACjE,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;CACjC;AAED,uCAAuC;AACvC,MAAM,WAAW,gBAAgB;IAC/B,qCAAqC;IACrC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,mEAAmE;IACnE,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,yDAAyD;IACzD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,uEAAuE;IACvE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IACf,6BAA6B;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,uCAAuC;AACvC,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,yEAAyE;IACzE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACtB;AAED,mCAAmC;AACnC,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACtB;AAED,mCAAmC;AACnC,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,uEAAuE;IACvE,QAAQ,CAAC,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAA;CAC7D;AAED,yCAAyC;AACzC,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,QAAQ,EAAE,SAAS,eAAe,EAAE,CAAA;CAC9C;AAED,0DAA0D;AAC1D,MAAM,MAAM,SAAS,GACjB;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACvE;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACzE;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAA;CAAE,GAC7D;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAAA;AAEpD,gFAAgF;AAChF,MAAM,MAAM,aAAa,GAAG,MAAM,CAAA"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Loopback trust fence shared by the host route families: socket address,
3
+ * Host header, and browser same-origin markers. Packages receive this file as
4
+ * a generated copy via scripts/sync-shared.mjs; edit the shared source and
5
+ * re-run the sync instead of editing a copy.
6
+ *
7
+ * Semantics: RFC 5735 IPv4 127/8, ::1, IPv4-mapped ::ffff:127/8 (matching the
8
+ * remote-web-ui gate), localhost hostnames, plus the browser same-origin
9
+ * markers (sec-fetch-site and Origin) for the request-level fence.
10
+ * @module dsh-web-ui-shared/host/loopback
11
+ */
12
+ import type { IncomingMessage } from 'node:http';
13
+ /** IPv4 127/8 predicate (four decimal octets, first == 127). */
14
+ export declare function isIPv4Loopback(v4: string): boolean;
15
+ /** Whether a socket remote address names the loopback range (127/8, ::1, IPv4-mapped). */
16
+ export declare function isLoopbackAddress(address: string | undefined): boolean;
17
+ /** Whether a normalized URL hostname names the loopback authority (localhost, [::1], 127/8). */
18
+ export declare function isLoopbackHostname(hostname: string): boolean;
19
+ /**
20
+ * Request-level trust fence: a loopback socket address AND a loopback Host
21
+ * header, plus browser same-origin markers. The socket address is
22
+ * authoritative; X-Forwarded-For is never trusted.
23
+ */
24
+ export declare function isLoopbackRequest(request: IncomingMessage): boolean;
25
+ //# sourceMappingURL=loopback.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loopback.d.ts","sourceRoot":"","sources":["../../../src/host/loopback.ts"],"names":[],"mappings":"AACA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAEhD,gEAAgE;AAChE,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAKlD;AAED,0FAA0F;AAC1F,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAMtE;AAED,gGAAgG;AAChG,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAG5D;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAmBnE"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * PTY session service for dsh-term: a framework-free registry over node-pty.
3
+ *
4
+ * A "pure user terminal" (A-version) needs no dsh agent ownership — every
5
+ * session is a plain node-pty child process keyed by a host-minted id, with
6
+ * byte streams bridged to the browser over the /dsh-term/* HTTP layer. This
7
+ * deliberately does NOT use the official @deepseek-ai/dsh-terminal service:
8
+ * that registry requires an exact `Agent` owner (model-facing semantics) and
9
+ * its resolution path from a user-initiated web route is unverified; node-pty
10
+ * is already present in the desktop tree (ABI-matched, verified loadable) and
11
+ * gives full control over multi-tab local shells.
12
+ * @module dsh-term/host/pty-service
13
+ */
14
+ import type { TermSessionInfo, TermSpawnRequest } from '../core/types.ts';
15
+ /** Default interactive shell for the platform. */
16
+ export declare function defaultShell(): string;
17
+ /** Default args for an interactive login-less shell. */
18
+ export declare function defaultArgs(shell: string): string[];
19
+ /**
20
+ * The PTY registry. Every mutation goes through this class so the route
21
+ * layer stays a thin HTTP shape (the file-manager pattern). Output/exit
22
+ * callbacks are assignable so the SSE layer can bind them after construction.
23
+ */
24
+ export declare class PtyService {
25
+ private readonly sessions;
26
+ /** Fired with raw PTY output chunks (UTF-8). Bound by the route layer. */
27
+ onOutput: (sessionId: string, data: string) => void;
28
+ /** Fired once when a session exits. Bound by the route layer. */
29
+ onExit: (sessionId: string, exitCode: number) => void;
30
+ /** Open one session; returns the wire info immediately (output streams async). */
31
+ spawn(req: TermSpawnRequest): TermSessionInfo;
32
+ /** Write raw bytes (UTF-8) into a session. Returns false when unknown. */
33
+ write(id: string, data: string): boolean;
34
+ /** Resize a session. Returns false when unknown. */
35
+ resize(id: string, cols: number, rows: number): boolean;
36
+ /** Deliver a signal (SIGINT/SIGHUP/SIGTERM/SIGKILL). Returns false when unknown. */
37
+ signal(id: string, signal: string): boolean;
38
+ /** Close a session forcefully (SIGHUP semantics via kill). Returns false when unknown. */
39
+ close(id: string): boolean;
40
+ /** The full session listing snapshot. */
41
+ list(): readonly TermSessionInfo[];
42
+ /** Close every session (route teardown). */
43
+ dispose(): void;
44
+ }
45
+ //# sourceMappingURL=pty-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pty-service.d.ts","sourceRoot":"","sources":["../../../src/host/pty-service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAQzE,kDAAkD;AAClD,wBAAgB,YAAY,IAAI,MAAM,CAGrC;AAED,wDAAwD;AACxD,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAInD;AAED;;;;GAIG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAiC;IAE1D,0EAA0E;IAC1E,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAW;IAC9D,iEAAiE;IACjE,MAAM,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAW;IAEhE,kFAAkF;IAClF,KAAK,CAAC,GAAG,EAAE,gBAAgB,GAAG,eAAe;IA+B7C,0EAA0E;IAC1E,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO;IAOxC,oDAAoD;IACpD,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO;IAWvD,oFAAoF;IACpF,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO;IAO3C,0FAA0F;IAC1F,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAO1B,yCAAyC;IACzC,IAAI,IAAI,SAAS,eAAe,EAAE;IAIlC,4CAA4C;IAC5C,OAAO,IAAI,IAAI;CAMhB"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * /dsh-term/* route layer: JSON envelope (ok/error) for the PTY operations
3
+ * and one SSE stream (output/exit/start events) per client. Loopback-fenced
4
+ * like every other host route family — a terminal is arbitrary command
5
+ * execution, so only same-origin browser clients may reach it.
6
+ * @module dsh-term/host/routes
7
+ */
8
+ import type { Context } from '@deepseek-ai/cordis';
9
+ import type { PtyService } from './pty-service.ts';
10
+ /**
11
+ * Register the /dsh-term routes.
12
+ * @param ctx - context carrying the webServer service.
13
+ * @param pty - the session registry.
14
+ * @returns route disposers.
15
+ */
16
+ export declare function registerTermRoutes(ctx: Context, pty: PtyService): () => void;
17
+ //# sourceMappingURL=routes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../../src/host/routes.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAGlD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAiDlD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,UAAU,GAAG,MAAM,IAAI,CAkI5E"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * dsh-term host half: mounts the PTY session service and the /dsh-term/*
3
+ * routes on the shared webserver. The browser half (src/client) renders the
4
+ * panel UI against these routes — no dsh source changes.
5
+ * @module dsh-term
6
+ */
7
+ import type { Context } from '@deepseek-ai/cordis';
8
+ /** Required services: the route registry. */
9
+ export declare const inject: string[];
10
+ /** Model-facing announcement: plugin presence. */
11
+ export declare const DSH_TERM_GUIDANCE = "\u672C\u673A\u5DF2\u5B89\u88C5 dsh-term \u63D2\u4EF6\uFF08DSH Web GUI \u7684\u9762\u677F\u5F0F\u7EC8\u7AEF\uFF09\uFF1A\u7528\u6237\u53EF\u5728\u804A\u5929\u533A\u6253\u5F00\u672C\u5730\u7EC8\u7AEF\uFF08\u771F\u5B9E PTY\uFF0C\u9ED8\u8BA4 powershell/bash\uFF09\uFF0C\u591A\u6807\u7B7E\u5E76\u5B58\u3001\u4F1A\u8BDD\u6301\u4E45\uFF1B\u7528\u6237\u63D0\u5230\u300C\u7EC8\u7AEF / \u6253\u5F00\u7EC8\u7AEF / \u6267\u884C\u547D\u4EE4\u300D\u65F6\u5373\u6307\u672C\u63D2\u4EF6\uFF0C\u8BF7\u636E\u6B64\u534F\u4F5C\u3002";
12
+ /**
13
+ * Mount the PTY service and its routes.
14
+ * @param ctx - context carrying the webServer service.
15
+ */
16
+ export declare const apply: typeof applyImpl;
17
+ declare function applyImpl(ctx: Context): void;
18
+ export {};
19
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAMlD,6CAA6C;AAC7C,eAAO,MAAM,MAAM,UAAgB,CAAA;AAEnC,kDAAkD;AAClD,eAAO,MAAM,iBAAiB,mgBAAkI,CAAA;AAEhK;;;GAGG;AACH,eAAO,MAAM,KAAK,kBAA8C,CAAA;AAEhE,iBAAS,SAAS,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAWrC"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Host single-instance guard shared by the plugin family. The family bundle
3
+ * (dsh-web-ui-all / dsh-skins) namespaces every child row id (web-ui-*), so
4
+ * the loader accepts a standalone install of the same package side by side;
5
+ * without this guard the second instance would still re-register the same
6
+ * webserver routes, tools, settings namespaces, and system-prompt sections
7
+ * and fail the boot. mountOnce makes the second host apply a no-op for the
8
+ * lifetime of the first instance (the browser half is already deduped by
9
+ * package name in the client module host).
10
+ *
11
+ * The registry rides a global symbol so two module instances of the same
12
+ * package (npm copy vs repository link) still share one verdict. cordis
13
+ * `ctx.effect` runs its callback immediately and treats the callback's
14
+ * return value as the fiber disposer, so the unmarker is returned, not run.
15
+ */
16
+ /**
17
+ * Wrap a cordis plugin apply so the package runs at most once per process.
18
+ * The first mount registers normally and unmarks when its fiber disposes;
19
+ * any later mount of the same package name is a no-op.
20
+ * @param packageName - npm package identity shared by every install source.
21
+ * @param fn - the original plugin apply.
22
+ * @returns an apply of the same shape.
23
+ */
24
+ export declare function mountOnce<T extends (...args: any[]) => unknown>(packageName: string, fn: T): T;
25
+ //# sourceMappingURL=mount-once.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mount-once.d.ts","sourceRoot":"","sources":["../../src/mount-once.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;GAcG;AAaH;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,CAW9F"}
package/package.json ADDED
@@ -0,0 +1,79 @@
1
+ {
2
+ "name": "@lijian-ui/dsh-term",
3
+ "description": "Panel-style local + SSH terminal for the DSH web GUI: real PTY sessions (node-pty), multi-tab terminal panel with xterm.js, workspace-cwd shells — hot-pluggable via a profile bundle without any dsh source changes",
4
+ "version": "0.1.0",
5
+ "type": "module",
6
+ "main": "lib/index.js",
7
+ "types": "lib/types/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./lib/types/index.d.ts",
11
+ "default": "./lib/index.js"
12
+ },
13
+ "./client": {
14
+ "types": "./lib/types/client/index.d.ts",
15
+ "default": "./lib/client.js"
16
+ },
17
+ "./src/*": "./src/*",
18
+ "./package.json": "./package.json"
19
+ },
20
+ "dsh": {
21
+ "bundle": {
22
+ "patch": "./cordis.patch.yml"
23
+ },
24
+ "client": {
25
+ "inject": [
26
+ "@deepseek-ai/dsh-client-runtime",
27
+ "@deepseek-ai/dsh-client-locale",
28
+ "@deepseek-ai/dsh-client-ui-slots"
29
+ ],
30
+ "platform": "web"
31
+ }
32
+ },
33
+ "scripts": {
34
+ "build": "tsc -b && tsdown",
35
+ "prepare": "tsdown",
36
+ "watch": "tsdown --watch",
37
+ "test": "vitest run",
38
+ "typecheck": "tsc -b --pretty false"
39
+ },
40
+ "dependencies": {
41
+ "node-pty": "^1.1.0"
42
+ },
43
+ "peerDependencies": {
44
+ "react": "^18.2.0"
45
+ },
46
+ "devDependencies": {
47
+ "@deepseek-ai/cordis": "^4.0.1",
48
+ "@deepseek-ai/dsh-client-locale": "^0.1.0-rc.6",
49
+ "@deepseek-ai/dsh-client-runtime": "^0.1.0-rc.6",
50
+ "@deepseek-ai/dsh-client-ui-slots": "^0.1.0-rc.6",
51
+ "@deepseek-ai/dsh-host-webserver": "^0.1.0-rc.6",
52
+ "@deepseek-ai/dsh-workspace": "^0.1.0-rc.6",
53
+ "@types/node": "^22.20.0",
54
+ "@types/react": "~18.3.1",
55
+ "@types/react-dom": "^18.3.5",
56
+ "jsdom": "29.1.1",
57
+ "lightningcss": "^1.32.0",
58
+ "react": "^18.3.1",
59
+ "react-dom": "^18.3.1",
60
+ "tsdown": "0.22.2",
61
+ "typescript": "~5.7.2",
62
+ "vite-tsconfig-paths": "^6.1.1",
63
+ "vitest": "^4.1.8",
64
+ "xterm": "^5.3.0",
65
+ "@xterm/addon-fit": "^0.10.0"
66
+ },
67
+ "files": [
68
+ "lib",
69
+ "src",
70
+ "cordis.patch.yml",
71
+ "README.md",
72
+ "README.zh.md"
73
+ ],
74
+ "license": "Apache-2.0",
75
+ "repository": {
76
+ "type": "git",
77
+ "url": "https://github.com/lijian-ui/dsh-term.git"
78
+ }
79
+ }
@@ -0,0 +1,4 @@
1
+ declare module '*.module.css' {
2
+ const classes: Record<string, string>
3
+ export default classes
4
+ }