diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000..f3a2f3a74 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +restored-src/.claude-sandbox/ +restored-src/tmp-debug*.log +restored-src/ui-debug.log diff --git a/README.md b/README.md index 04e97ab6e..aade64473 100644 --- a/README.md +++ b/README.md @@ -14,6 +14,50 @@ 本仓库通过 npm 发布包(`@anthropic-ai/claude-code`)内附带的 source map(`cli.js.map`)还原的 TypeScript 源码,版本为 `2.1.88`。 +## 运行 + +当前仓库里真正可直接运行的是 npm 发布包内的打包产物 `package/cli.js`,不是 `restored-src`。 + +```bash +npm run version:claude +npm start -- --help +``` + +重新提取源码可直接执行: + +```bash +npm run extract +``` + +`restored-src` 目前仍是还原后的研究素材,不包含完整官方构建配置,不能视为已恢复成可直接编译运行的源码工程。 + +如果后续目标是把 `restored-src` 也修到可运行,需要继续补官方构建期宏、路径别名以及还原结果里缺失的依赖文件;当前这一步只把仓库修到“可以直接运行打包版 CLI,并能重新提取源码”。 + +当前仓库也额外提供了 `restored-src` 的最小启动壳,方便继续排查源码工程的运行阻塞: + +```bash +cd restored-src +bun run bootstrap:manifests +``` + +如果在 Windows 上从 `restored-src` 或其子目录直接执行 `bun`,Bun 1.3.7 目前会额外打印一条与仓库根目录相关的伪 `EPERM`: + +```text +error: Cannot read file "F:\Projects\claude-code-sourcemap\": EPERM +``` + +这条噪音不来自 `restored-src` 源码本身;从仓库根目录启动同一入口则不会出现。为了走干净链路,仓库根还提供了无噪音包装脚本: + +```bash +bun run restored:help +bun run restored:version +bun run restored:cli -- --bare -p "ping" +bun run version:claude +bun run help +``` + +它会先为还原出来但缺少 `package.json` 的依赖包生成最小入口清单,再用 Bun 启动入口;这仍然不代表 `restored-src` 已完全恢复为官方可构建工程。 + ## 来源 - npm 包:[@anthropic-ai/claude-code](https://www.npmjs.com/package/@anthropic-ai/claude-code) diff --git a/extract-sources.js b/extract-sources.js index 635f7047e..0db3fa783 100644 --- a/extract-sources.js +++ b/extract-sources.js @@ -1,4 +1,3 @@ -const { SourceMapConsumer } = require('source-map'); const fs = require('fs'); const path = require('path'); diff --git a/package.json b/package.json new file mode 100644 index 000000000..80e6b609a --- /dev/null +++ b/package.json @@ -0,0 +1,18 @@ +{ + "name": "claude-code-sourcemap", + "private": true, + "version": "0.1.0", + "description": "Research workspace for the reconstructed Claude Code 2.1.88 package and extracted sources.", + "scripts": { + "extract": "node extract-sources.js", + "claude": "node package/cli.js", + "start": "node package/cli.js", + "version:claude": "node package/cli.js -v", + "restored:cli": "bun --preload ./restored-src/macro-shim.cjs ./restored-src/src/entrypoints/cli.tsx", + "restored:help": "bun --preload ./restored-src/macro-shim.cjs ./restored-src/src/entrypoints/cli.tsx --help", + "restored:version": "bun --preload ./restored-src/macro-shim.cjs ./restored-src/src/entrypoints/cli.tsx -v" + }, + "engines": { + "node": ">=18.0.0" + } +} diff --git a/restored-src/macro-shim.cjs b/restored-src/macro-shim.cjs new file mode 100644 index 000000000..dc2e1f0e3 --- /dev/null +++ b/restored-src/macro-shim.cjs @@ -0,0 +1,39 @@ +const fs = require("fs"); +const path = require("path"); + +function readPackagedVersion() { + try { + const pkgPath = path.join(__dirname, "..", "package", "package.json"); + const pkg = JSON.parse(fs.readFileSync(pkgPath, "utf8")); + return { + version: pkg.version || "0.0.0", + packageName: pkg.name || "@anthropic-ai/claude-code", + }; + } catch { + return { + version: "0.0.0", + packageName: "@anthropic-ai/claude-code", + }; + } +} + +const packaged = readPackagedVersion(); + +globalThis.MACRO = new Proxy( + { + VERSION: packaged.version, + PACKAGE_URL: packaged.packageName, + NATIVE_PACKAGE_URL: packaged.packageName, + FEEDBACK_CHANNEL: "the Claude Code issue tracker", + ISSUES_EXPLAINER: "file an issue in the Claude Code issue tracker", + BUILD_TIME: "", + }, + { + get(target, prop) { + if (prop in target) { + return target[prop]; + } + return ""; + }, + }, +); diff --git a/restored-src/node_modules/@alcalzone/ansi-tokenize/package.json b/restored-src/node_modules/@alcalzone/ansi-tokenize/package.json new file mode 100644 index 000000000..f270c2085 --- /dev/null +++ b/restored-src/node_modules/@alcalzone/ansi-tokenize/package.json @@ -0,0 +1,6 @@ +{ + "name": "@alcalzone/ansi-tokenize", + "private": true, + "main": "./build/index.js", + "type": "module" +} diff --git a/restored-src/node_modules/@ant/claude-for-chrome-mcp/package.json b/restored-src/node_modules/@ant/claude-for-chrome-mcp/package.json new file mode 100644 index 000000000..bee50eced --- /dev/null +++ b/restored-src/node_modules/@ant/claude-for-chrome-mcp/package.json @@ -0,0 +1,6 @@ +{ + "name": "@ant/claude-for-chrome-mcp", + "private": true, + "main": "./src/index.ts", + "type": "module" +} diff --git a/restored-src/node_modules/@ant/computer-use-input/package.json b/restored-src/node_modules/@ant/computer-use-input/package.json new file mode 100644 index 000000000..a17ecb2e0 --- /dev/null +++ b/restored-src/node_modules/@ant/computer-use-input/package.json @@ -0,0 +1,6 @@ +{ + "name": "@ant/computer-use-input", + "private": true, + "main": "./js/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@ant/computer-use-mcp/package.json b/restored-src/node_modules/@ant/computer-use-mcp/package.json new file mode 100644 index 000000000..6a655983b --- /dev/null +++ b/restored-src/node_modules/@ant/computer-use-mcp/package.json @@ -0,0 +1,6 @@ +{ + "name": "@ant/computer-use-mcp", + "private": true, + "main": "./src/index.ts", + "type": "module" +} diff --git a/restored-src/node_modules/@ant/computer-use-swift/package.json b/restored-src/node_modules/@ant/computer-use-swift/package.json new file mode 100644 index 000000000..43c22bfbb --- /dev/null +++ b/restored-src/node_modules/@ant/computer-use-swift/package.json @@ -0,0 +1,6 @@ +{ + "name": "@ant/computer-use-swift", + "private": true, + "main": "./js/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@anthropic-ai/bedrock-sdk/package.json b/restored-src/node_modules/@anthropic-ai/bedrock-sdk/package.json new file mode 100644 index 000000000..46a15b64b --- /dev/null +++ b/restored-src/node_modules/@anthropic-ai/bedrock-sdk/package.json @@ -0,0 +1,6 @@ +{ + "name": "@anthropic-ai/bedrock-sdk", + "private": true, + "main": "./index.mjs", + "type": "module" +} diff --git a/restored-src/node_modules/@anthropic-ai/foundry-sdk/package.json b/restored-src/node_modules/@anthropic-ai/foundry-sdk/package.json new file mode 100644 index 000000000..2b12ac2b0 --- /dev/null +++ b/restored-src/node_modules/@anthropic-ai/foundry-sdk/package.json @@ -0,0 +1,6 @@ +{ + "name": "@anthropic-ai/foundry-sdk", + "private": true, + "main": "./index.mjs", + "type": "module" +} diff --git a/restored-src/node_modules/@anthropic-ai/mcpb/package.json b/restored-src/node_modules/@anthropic-ai/mcpb/package.json new file mode 100644 index 000000000..80fc10d34 --- /dev/null +++ b/restored-src/node_modules/@anthropic-ai/mcpb/package.json @@ -0,0 +1,6 @@ +{ + "name": "@anthropic-ai/mcpb", + "private": true, + "main": "./dist/index.js", + "type": "module" +} diff --git a/restored-src/node_modules/@anthropic-ai/sandbox-runtime/package.json b/restored-src/node_modules/@anthropic-ai/sandbox-runtime/package.json new file mode 100644 index 000000000..ffe2cc488 --- /dev/null +++ b/restored-src/node_modules/@anthropic-ai/sandbox-runtime/package.json @@ -0,0 +1,6 @@ +{ + "name": "@anthropic-ai/sandbox-runtime", + "private": true, + "main": "./dist/index.js", + "type": "module" +} diff --git a/restored-src/node_modules/@anthropic-ai/sdk/package.json b/restored-src/node_modules/@anthropic-ai/sdk/package.json new file mode 100644 index 000000000..85b529dfc --- /dev/null +++ b/restored-src/node_modules/@anthropic-ai/sdk/package.json @@ -0,0 +1,6 @@ +{ + "name": "@anthropic-ai/sdk", + "private": true, + "main": "./index.mjs", + "type": "module" +} diff --git a/restored-src/node_modules/@anthropic-ai/sdk/resources/shared.mjs b/restored-src/node_modules/@anthropic-ai/sdk/resources/shared.mjs new file mode 100644 index 000000000..e23bc6c8b --- /dev/null +++ b/restored-src/node_modules/@anthropic-ai/sdk/resources/shared.mjs @@ -0,0 +1,6 @@ +// Reconstructed workspace shim. +// The source map extraction missed this file, but resources/index.mjs re-exports it. +// An empty module is sufficient for runtime loading in this workspace because +// the current CLI path does not consume any concrete values from it. + +export {}; diff --git a/restored-src/node_modules/@anthropic-ai/vertex-sdk/package.json b/restored-src/node_modules/@anthropic-ai/vertex-sdk/package.json new file mode 100644 index 000000000..c1ae1999d --- /dev/null +++ b/restored-src/node_modules/@anthropic-ai/vertex-sdk/package.json @@ -0,0 +1,6 @@ +{ + "name": "@anthropic-ai/vertex-sdk", + "private": true, + "main": "./index.mjs", + "type": "module" +} diff --git a/restored-src/node_modules/@aws-crypto/crc32/package.json b/restored-src/node_modules/@aws-crypto/crc32/package.json new file mode 100644 index 000000000..44ecf4209 --- /dev/null +++ b/restored-src/node_modules/@aws-crypto/crc32/package.json @@ -0,0 +1,6 @@ +{ + "name": "@aws-crypto/crc32", + "private": true, + "main": "./build/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@aws-crypto/sha256-js/package.json b/restored-src/node_modules/@aws-crypto/sha256-js/package.json new file mode 100644 index 000000000..a95007e85 --- /dev/null +++ b/restored-src/node_modules/@aws-crypto/sha256-js/package.json @@ -0,0 +1,6 @@ +{ + "name": "@aws-crypto/sha256-js", + "private": true, + "main": "./build/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@aws-crypto/util/package.json b/restored-src/node_modules/@aws-crypto/util/package.json new file mode 100644 index 000000000..5496602b7 --- /dev/null +++ b/restored-src/node_modules/@aws-crypto/util/package.json @@ -0,0 +1,6 @@ +{ + "name": "@aws-crypto/util", + "private": true, + "main": "./build/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@aws-sdk/client-bedrock-runtime/package.json b/restored-src/node_modules/@aws-sdk/client-bedrock-runtime/package.json new file mode 100644 index 000000000..8e84f8fcd --- /dev/null +++ b/restored-src/node_modules/@aws-sdk/client-bedrock-runtime/package.json @@ -0,0 +1,6 @@ +{ + "name": "@aws-sdk/client-bedrock-runtime", + "private": true, + "main": "./dist-cjs/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@aws-sdk/client-bedrock/package.json b/restored-src/node_modules/@aws-sdk/client-bedrock/package.json new file mode 100644 index 000000000..7edf4634e --- /dev/null +++ b/restored-src/node_modules/@aws-sdk/client-bedrock/package.json @@ -0,0 +1,6 @@ +{ + "name": "@aws-sdk/client-bedrock", + "private": true, + "main": "./dist-cjs/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@aws-sdk/client-cognito-identity/package.json b/restored-src/node_modules/@aws-sdk/client-cognito-identity/package.json new file mode 100644 index 000000000..8c75301ba --- /dev/null +++ b/restored-src/node_modules/@aws-sdk/client-cognito-identity/package.json @@ -0,0 +1,6 @@ +{ + "name": "@aws-sdk/client-cognito-identity", + "private": true, + "main": "./dist-cjs/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@aws-sdk/client-sso/package.json b/restored-src/node_modules/@aws-sdk/client-sso/package.json new file mode 100644 index 000000000..37e6864f0 --- /dev/null +++ b/restored-src/node_modules/@aws-sdk/client-sso/package.json @@ -0,0 +1,6 @@ +{ + "name": "@aws-sdk/client-sso", + "private": true, + "main": "./dist-cjs/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@aws-sdk/client-sts/package.json b/restored-src/node_modules/@aws-sdk/client-sts/package.json new file mode 100644 index 000000000..00e2fa98d --- /dev/null +++ b/restored-src/node_modules/@aws-sdk/client-sts/package.json @@ -0,0 +1,6 @@ +{ + "name": "@aws-sdk/client-sts", + "private": true, + "main": "./dist-cjs/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@aws-sdk/core/package.json b/restored-src/node_modules/@aws-sdk/core/package.json new file mode 100644 index 000000000..570b1d5f1 --- /dev/null +++ b/restored-src/node_modules/@aws-sdk/core/package.json @@ -0,0 +1,6 @@ +{ + "name": "@aws-sdk/core", + "private": true, + "main": "./dist-cjs/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@aws-sdk/credential-provider-cognito-identity/package.json b/restored-src/node_modules/@aws-sdk/credential-provider-cognito-identity/package.json new file mode 100644 index 000000000..2216f5968 --- /dev/null +++ b/restored-src/node_modules/@aws-sdk/credential-provider-cognito-identity/package.json @@ -0,0 +1,6 @@ +{ + "name": "@aws-sdk/credential-provider-cognito-identity", + "private": true, + "main": "./dist-cjs/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@aws-sdk/credential-provider-env/package.json b/restored-src/node_modules/@aws-sdk/credential-provider-env/package.json new file mode 100644 index 000000000..0753b6b79 --- /dev/null +++ b/restored-src/node_modules/@aws-sdk/credential-provider-env/package.json @@ -0,0 +1,6 @@ +{ + "name": "@aws-sdk/credential-provider-env", + "private": true, + "main": "./dist-cjs/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@aws-sdk/credential-provider-http/package.json b/restored-src/node_modules/@aws-sdk/credential-provider-http/package.json new file mode 100644 index 000000000..212ac0583 --- /dev/null +++ b/restored-src/node_modules/@aws-sdk/credential-provider-http/package.json @@ -0,0 +1,6 @@ +{ + "name": "@aws-sdk/credential-provider-http", + "private": true, + "main": "./dist-cjs/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@aws-sdk/credential-provider-ini/package.json b/restored-src/node_modules/@aws-sdk/credential-provider-ini/package.json new file mode 100644 index 000000000..c3125f1b6 --- /dev/null +++ b/restored-src/node_modules/@aws-sdk/credential-provider-ini/package.json @@ -0,0 +1,6 @@ +{ + "name": "@aws-sdk/credential-provider-ini", + "private": true, + "main": "./dist-cjs/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@aws-sdk/credential-provider-login/package.json b/restored-src/node_modules/@aws-sdk/credential-provider-login/package.json new file mode 100644 index 000000000..b3c186e1f --- /dev/null +++ b/restored-src/node_modules/@aws-sdk/credential-provider-login/package.json @@ -0,0 +1,6 @@ +{ + "name": "@aws-sdk/credential-provider-login", + "private": true, + "main": "./dist-cjs/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@aws-sdk/credential-provider-node/package.json b/restored-src/node_modules/@aws-sdk/credential-provider-node/package.json new file mode 100644 index 000000000..2bcbd2505 --- /dev/null +++ b/restored-src/node_modules/@aws-sdk/credential-provider-node/package.json @@ -0,0 +1,6 @@ +{ + "name": "@aws-sdk/credential-provider-node", + "private": true, + "main": "./dist-cjs/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@aws-sdk/credential-provider-process/package.json b/restored-src/node_modules/@aws-sdk/credential-provider-process/package.json new file mode 100644 index 000000000..9599e2575 --- /dev/null +++ b/restored-src/node_modules/@aws-sdk/credential-provider-process/package.json @@ -0,0 +1,6 @@ +{ + "name": "@aws-sdk/credential-provider-process", + "private": true, + "main": "./dist-cjs/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@aws-sdk/credential-provider-sso/package.json b/restored-src/node_modules/@aws-sdk/credential-provider-sso/package.json new file mode 100644 index 000000000..5c9df7068 --- /dev/null +++ b/restored-src/node_modules/@aws-sdk/credential-provider-sso/package.json @@ -0,0 +1,6 @@ +{ + "name": "@aws-sdk/credential-provider-sso", + "private": true, + "main": "./dist-cjs/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@aws-sdk/credential-provider-web-identity/package.json b/restored-src/node_modules/@aws-sdk/credential-provider-web-identity/package.json new file mode 100644 index 000000000..62bbcf120 --- /dev/null +++ b/restored-src/node_modules/@aws-sdk/credential-provider-web-identity/package.json @@ -0,0 +1,6 @@ +{ + "name": "@aws-sdk/credential-provider-web-identity", + "private": true, + "main": "./dist-cjs/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@aws-sdk/credential-providers/package.json b/restored-src/node_modules/@aws-sdk/credential-providers/package.json new file mode 100644 index 000000000..ab134e45a --- /dev/null +++ b/restored-src/node_modules/@aws-sdk/credential-providers/package.json @@ -0,0 +1,6 @@ +{ + "name": "@aws-sdk/credential-providers", + "private": true, + "main": "./dist-cjs/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@aws-sdk/eventstream-handler-node/package.json b/restored-src/node_modules/@aws-sdk/eventstream-handler-node/package.json new file mode 100644 index 000000000..dd160ef46 --- /dev/null +++ b/restored-src/node_modules/@aws-sdk/eventstream-handler-node/package.json @@ -0,0 +1,6 @@ +{ + "name": "@aws-sdk/eventstream-handler-node", + "private": true, + "main": "./dist-cjs/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@aws-sdk/middleware-eventstream/package.json b/restored-src/node_modules/@aws-sdk/middleware-eventstream/package.json new file mode 100644 index 000000000..6aafda7ad --- /dev/null +++ b/restored-src/node_modules/@aws-sdk/middleware-eventstream/package.json @@ -0,0 +1,6 @@ +{ + "name": "@aws-sdk/middleware-eventstream", + "private": true, + "main": "./dist-cjs/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@aws-sdk/middleware-host-header/package.json b/restored-src/node_modules/@aws-sdk/middleware-host-header/package.json new file mode 100644 index 000000000..3be588e71 --- /dev/null +++ b/restored-src/node_modules/@aws-sdk/middleware-host-header/package.json @@ -0,0 +1,6 @@ +{ + "name": "@aws-sdk/middleware-host-header", + "private": true, + "main": "./dist-cjs/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@aws-sdk/middleware-logger/package.json b/restored-src/node_modules/@aws-sdk/middleware-logger/package.json new file mode 100644 index 000000000..1659a7f8e --- /dev/null +++ b/restored-src/node_modules/@aws-sdk/middleware-logger/package.json @@ -0,0 +1,6 @@ +{ + "name": "@aws-sdk/middleware-logger", + "private": true, + "main": "./dist-cjs/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@aws-sdk/middleware-recursion-detection/package.json b/restored-src/node_modules/@aws-sdk/middleware-recursion-detection/package.json new file mode 100644 index 000000000..31703559a --- /dev/null +++ b/restored-src/node_modules/@aws-sdk/middleware-recursion-detection/package.json @@ -0,0 +1,6 @@ +{ + "name": "@aws-sdk/middleware-recursion-detection", + "private": true, + "main": "./dist-cjs/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@aws-sdk/middleware-user-agent/package.json b/restored-src/node_modules/@aws-sdk/middleware-user-agent/package.json new file mode 100644 index 000000000..5ecb3cb0a --- /dev/null +++ b/restored-src/node_modules/@aws-sdk/middleware-user-agent/package.json @@ -0,0 +1,6 @@ +{ + "name": "@aws-sdk/middleware-user-agent", + "private": true, + "main": "./dist-cjs/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@aws-sdk/middleware-websocket/package.json b/restored-src/node_modules/@aws-sdk/middleware-websocket/package.json new file mode 100644 index 000000000..d7960ee02 --- /dev/null +++ b/restored-src/node_modules/@aws-sdk/middleware-websocket/package.json @@ -0,0 +1,6 @@ +{ + "name": "@aws-sdk/middleware-websocket", + "private": true, + "main": "./dist-cjs/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@aws-sdk/nested-clients/package.json b/restored-src/node_modules/@aws-sdk/nested-clients/package.json new file mode 100644 index 000000000..162fa95e9 --- /dev/null +++ b/restored-src/node_modules/@aws-sdk/nested-clients/package.json @@ -0,0 +1,6 @@ +{ + "name": "@aws-sdk/nested-clients", + "private": true, + "main": "./dist-cjs/submodules/sts/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@aws-sdk/region-config-resolver/package.json b/restored-src/node_modules/@aws-sdk/region-config-resolver/package.json new file mode 100644 index 000000000..1b8831e3b --- /dev/null +++ b/restored-src/node_modules/@aws-sdk/region-config-resolver/package.json @@ -0,0 +1,6 @@ +{ + "name": "@aws-sdk/region-config-resolver", + "private": true, + "main": "./dist-cjs/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@aws-sdk/token-providers/package.json b/restored-src/node_modules/@aws-sdk/token-providers/package.json new file mode 100644 index 000000000..60882e598 --- /dev/null +++ b/restored-src/node_modules/@aws-sdk/token-providers/package.json @@ -0,0 +1,6 @@ +{ + "name": "@aws-sdk/token-providers", + "private": true, + "main": "./dist-cjs/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@aws-sdk/util-endpoints/package.json b/restored-src/node_modules/@aws-sdk/util-endpoints/package.json new file mode 100644 index 000000000..65603af30 --- /dev/null +++ b/restored-src/node_modules/@aws-sdk/util-endpoints/package.json @@ -0,0 +1,6 @@ +{ + "name": "@aws-sdk/util-endpoints", + "private": true, + "main": "./dist-cjs/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@aws-sdk/util-format-url/package.json b/restored-src/node_modules/@aws-sdk/util-format-url/package.json new file mode 100644 index 000000000..facd873a4 --- /dev/null +++ b/restored-src/node_modules/@aws-sdk/util-format-url/package.json @@ -0,0 +1,6 @@ +{ + "name": "@aws-sdk/util-format-url", + "private": true, + "main": "./dist-cjs/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@aws-sdk/util-user-agent-node/package.json b/restored-src/node_modules/@aws-sdk/util-user-agent-node/package.json new file mode 100644 index 000000000..56237ad0c --- /dev/null +++ b/restored-src/node_modules/@aws-sdk/util-user-agent-node/package.json @@ -0,0 +1,6 @@ +{ + "name": "@aws-sdk/util-user-agent-node", + "private": true, + "main": "./dist-cjs/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@aws-sdk/util-utf8-browser/package.json b/restored-src/node_modules/@aws-sdk/util-utf8-browser/package.json new file mode 100644 index 000000000..8a729a22b --- /dev/null +++ b/restored-src/node_modules/@aws-sdk/util-utf8-browser/package.json @@ -0,0 +1,6 @@ +{ + "name": "@aws-sdk/util-utf8-browser", + "private": true, + "main": "./dist-cjs/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@aws-sdk/xml-builder/package.json b/restored-src/node_modules/@aws-sdk/xml-builder/package.json new file mode 100644 index 000000000..4027cb064 --- /dev/null +++ b/restored-src/node_modules/@aws-sdk/xml-builder/package.json @@ -0,0 +1,6 @@ +{ + "name": "@aws-sdk/xml-builder", + "private": true, + "main": "./dist-cjs/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@aws/lambda-invoke-store/package.json b/restored-src/node_modules/@aws/lambda-invoke-store/package.json new file mode 100644 index 000000000..24556a81a --- /dev/null +++ b/restored-src/node_modules/@aws/lambda-invoke-store/package.json @@ -0,0 +1,6 @@ +{ + "name": "@aws/lambda-invoke-store", + "private": true, + "main": "./dist-cjs/invoke-store.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@azure/abort-controller/package.json b/restored-src/node_modules/@azure/abort-controller/package.json new file mode 100644 index 000000000..125904037 --- /dev/null +++ b/restored-src/node_modules/@azure/abort-controller/package.json @@ -0,0 +1,6 @@ +{ + "name": "@azure/abort-controller", + "private": true, + "main": "./dist/esm/index.js", + "type": "module" +} diff --git a/restored-src/node_modules/@azure/core-client/package.json b/restored-src/node_modules/@azure/core-client/package.json new file mode 100644 index 000000000..d2acd5abc --- /dev/null +++ b/restored-src/node_modules/@azure/core-client/package.json @@ -0,0 +1,6 @@ +{ + "name": "@azure/core-client", + "private": true, + "main": "./dist/esm/index.js", + "type": "module" +} diff --git a/restored-src/node_modules/@azure/core-rest-pipeline/package.json b/restored-src/node_modules/@azure/core-rest-pipeline/package.json new file mode 100644 index 000000000..99fea53ba --- /dev/null +++ b/restored-src/node_modules/@azure/core-rest-pipeline/package.json @@ -0,0 +1,6 @@ +{ + "name": "@azure/core-rest-pipeline", + "private": true, + "main": "./dist/esm/index.js", + "type": "module" +} diff --git a/restored-src/node_modules/@azure/core-tracing/package.json b/restored-src/node_modules/@azure/core-tracing/package.json new file mode 100644 index 000000000..a8d79314c --- /dev/null +++ b/restored-src/node_modules/@azure/core-tracing/package.json @@ -0,0 +1,6 @@ +{ + "name": "@azure/core-tracing", + "private": true, + "main": "./dist/esm/index.js", + "type": "module" +} diff --git a/restored-src/node_modules/@azure/core-util/package.json b/restored-src/node_modules/@azure/core-util/package.json new file mode 100644 index 000000000..2b89a35c4 --- /dev/null +++ b/restored-src/node_modules/@azure/core-util/package.json @@ -0,0 +1,6 @@ +{ + "name": "@azure/core-util", + "private": true, + "main": "./dist/esm/index.js", + "type": "module" +} diff --git a/restored-src/node_modules/@azure/identity/package.json b/restored-src/node_modules/@azure/identity/package.json new file mode 100644 index 000000000..16f2fef53 --- /dev/null +++ b/restored-src/node_modules/@azure/identity/package.json @@ -0,0 +1,6 @@ +{ + "name": "@azure/identity", + "private": true, + "main": "./dist/esm/index.js", + "type": "module" +} diff --git a/restored-src/node_modules/@azure/logger/package.json b/restored-src/node_modules/@azure/logger/package.json new file mode 100644 index 000000000..ce7bdc264 --- /dev/null +++ b/restored-src/node_modules/@azure/logger/package.json @@ -0,0 +1,6 @@ +{ + "name": "@azure/logger", + "private": true, + "main": "./dist/esm/index.js", + "type": "module" +} diff --git a/restored-src/node_modules/@azure/msal-common/package.json b/restored-src/node_modules/@azure/msal-common/package.json new file mode 100644 index 000000000..b11d07f4e --- /dev/null +++ b/restored-src/node_modules/@azure/msal-common/package.json @@ -0,0 +1,6 @@ +{ + "name": "@azure/msal-common", + "private": true, + "main": "./dist/index.mjs", + "type": "module" +} diff --git a/restored-src/node_modules/@azure/msal-node/package.json b/restored-src/node_modules/@azure/msal-node/package.json new file mode 100644 index 000000000..feb75e736 --- /dev/null +++ b/restored-src/node_modules/@azure/msal-node/package.json @@ -0,0 +1,6 @@ +{ + "name": "@azure/msal-node", + "private": true, + "main": "./dist/index.mjs", + "type": "module" +} diff --git a/restored-src/node_modules/@commander-js/extra-typings/package.json b/restored-src/node_modules/@commander-js/extra-typings/package.json new file mode 100644 index 000000000..4ca0000e9 --- /dev/null +++ b/restored-src/node_modules/@commander-js/extra-typings/package.json @@ -0,0 +1,6 @@ +{ + "name": "@commander-js/extra-typings", + "private": true, + "main": "./esm.mjs", + "type": "module" +} diff --git a/restored-src/node_modules/@growthbook/growthbook/package.json b/restored-src/node_modules/@growthbook/growthbook/package.json new file mode 100644 index 000000000..32722e841 --- /dev/null +++ b/restored-src/node_modules/@growthbook/growthbook/package.json @@ -0,0 +1,6 @@ +{ + "name": "@growthbook/growthbook", + "private": true, + "main": "./dist/esm/index.mjs", + "type": "module" +} diff --git a/restored-src/node_modules/@grpc/grpc-js/package.json b/restored-src/node_modules/@grpc/grpc-js/package.json new file mode 100644 index 000000000..66284dd14 --- /dev/null +++ b/restored-src/node_modules/@grpc/grpc-js/package.json @@ -0,0 +1,6 @@ +{ + "name": "@grpc/grpc-js", + "private": true, + "main": "./build/src/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@grpc/proto-loader/package.json b/restored-src/node_modules/@grpc/proto-loader/package.json new file mode 100644 index 000000000..5c999a4d4 --- /dev/null +++ b/restored-src/node_modules/@grpc/proto-loader/package.json @@ -0,0 +1,6 @@ +{ + "name": "@grpc/proto-loader", + "private": true, + "main": "./build/src/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@img/colour/package.json b/restored-src/node_modules/@img/colour/package.json new file mode 100644 index 000000000..605e2f40d --- /dev/null +++ b/restored-src/node_modules/@img/colour/package.json @@ -0,0 +1,6 @@ +{ + "name": "@img/colour", + "private": true, + "main": "./index.cjs", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@inquirer/confirm/package.json b/restored-src/node_modules/@inquirer/confirm/package.json new file mode 100644 index 000000000..be00e1eb9 --- /dev/null +++ b/restored-src/node_modules/@inquirer/confirm/package.json @@ -0,0 +1,6 @@ +{ + "name": "@inquirer/confirm", + "private": true, + "main": "./dist/esm/index.mjs", + "type": "module" +} diff --git a/restored-src/node_modules/@inquirer/core/package.json b/restored-src/node_modules/@inquirer/core/package.json new file mode 100644 index 000000000..ad42b77fc --- /dev/null +++ b/restored-src/node_modules/@inquirer/core/package.json @@ -0,0 +1,6 @@ +{ + "name": "@inquirer/core", + "private": true, + "main": "./dist/esm/index.mjs", + "type": "module" +} diff --git a/restored-src/node_modules/@inquirer/figures/package.json b/restored-src/node_modules/@inquirer/figures/package.json new file mode 100644 index 000000000..80d776ddc --- /dev/null +++ b/restored-src/node_modules/@inquirer/figures/package.json @@ -0,0 +1,6 @@ +{ + "name": "@inquirer/figures", + "private": true, + "main": "./dist/esm/index.js", + "type": "module" +} diff --git a/restored-src/node_modules/@inquirer/input/package.json b/restored-src/node_modules/@inquirer/input/package.json new file mode 100644 index 000000000..3ca2fbe0c --- /dev/null +++ b/restored-src/node_modules/@inquirer/input/package.json @@ -0,0 +1,6 @@ +{ + "name": "@inquirer/input", + "private": true, + "main": "./dist/esm/index.mjs", + "type": "module" +} diff --git a/restored-src/node_modules/@inquirer/prompts/package.json b/restored-src/node_modules/@inquirer/prompts/package.json new file mode 100644 index 000000000..e095d223e --- /dev/null +++ b/restored-src/node_modules/@inquirer/prompts/package.json @@ -0,0 +1,6 @@ +{ + "name": "@inquirer/prompts", + "private": true, + "main": "./dist/esm/index.mjs", + "type": "module" +} diff --git a/restored-src/node_modules/@inquirer/select/package.json b/restored-src/node_modules/@inquirer/select/package.json new file mode 100644 index 000000000..353cdbe07 --- /dev/null +++ b/restored-src/node_modules/@inquirer/select/package.json @@ -0,0 +1,6 @@ +{ + "name": "@inquirer/select", + "private": true, + "main": "./dist/esm/index.mjs", + "type": "module" +} diff --git a/restored-src/node_modules/@js-sdsl/ordered-map/package.json b/restored-src/node_modules/@js-sdsl/ordered-map/package.json new file mode 100644 index 000000000..2a0eed86e --- /dev/null +++ b/restored-src/node_modules/@js-sdsl/ordered-map/package.json @@ -0,0 +1,6 @@ +{ + "name": "@js-sdsl/ordered-map", + "private": true, + "main": "./dist/cjs/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@mixmark-io/domino/package.json b/restored-src/node_modules/@mixmark-io/domino/package.json new file mode 100644 index 000000000..80834afaf --- /dev/null +++ b/restored-src/node_modules/@mixmark-io/domino/package.json @@ -0,0 +1,6 @@ +{ + "name": "@mixmark-io/domino", + "private": true, + "main": "./lib/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@modelcontextprotocol/sdk/client/auth.js b/restored-src/node_modules/@modelcontextprotocol/sdk/client/auth.js new file mode 100644 index 000000000..eee2948fe --- /dev/null +++ b/restored-src/node_modules/@modelcontextprotocol/sdk/client/auth.js @@ -0,0 +1 @@ +export * from '../dist/esm/client/auth.js' diff --git a/restored-src/node_modules/@modelcontextprotocol/sdk/client/index.js b/restored-src/node_modules/@modelcontextprotocol/sdk/client/index.js new file mode 100644 index 000000000..331abcc39 --- /dev/null +++ b/restored-src/node_modules/@modelcontextprotocol/sdk/client/index.js @@ -0,0 +1 @@ +export * from '../dist/esm/client/index.js' diff --git a/restored-src/node_modules/@modelcontextprotocol/sdk/client/sse.js b/restored-src/node_modules/@modelcontextprotocol/sdk/client/sse.js new file mode 100644 index 000000000..5a936b546 --- /dev/null +++ b/restored-src/node_modules/@modelcontextprotocol/sdk/client/sse.js @@ -0,0 +1 @@ +export * from '../dist/esm/client/sse.js' diff --git a/restored-src/node_modules/@modelcontextprotocol/sdk/client/stdio.js b/restored-src/node_modules/@modelcontextprotocol/sdk/client/stdio.js new file mode 100644 index 000000000..9b7f6b769 --- /dev/null +++ b/restored-src/node_modules/@modelcontextprotocol/sdk/client/stdio.js @@ -0,0 +1 @@ +export * from '../dist/esm/client/stdio.js' diff --git a/restored-src/node_modules/@modelcontextprotocol/sdk/client/streamableHttp.js b/restored-src/node_modules/@modelcontextprotocol/sdk/client/streamableHttp.js new file mode 100644 index 000000000..eb8dca4cb --- /dev/null +++ b/restored-src/node_modules/@modelcontextprotocol/sdk/client/streamableHttp.js @@ -0,0 +1 @@ +export * from '../dist/esm/client/streamableHttp.js' diff --git a/restored-src/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-json-schema-compat.js b/restored-src/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-json-schema-compat.js index 62f7fd0ef..287cceacf 100644 --- a/restored-src/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-json-schema-compat.js +++ b/restored-src/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-json-schema-compat.js @@ -5,7 +5,6 @@ // ---------------------------------------------------- import * as z4mini from 'zod/v4-mini'; import { getObjectShape, safeParse, isZ4Schema, getLiteralValue } from './zod-compat.js'; -import { zodToJsonSchema } from 'zod-to-json-schema'; function mapMiniTarget(t) { if (!t) return 'draft-7'; @@ -23,11 +22,9 @@ export function toJsonSchemaCompat(schema, opts) { io: opts?.pipeStrategy ?? 'input' }); } - // v3 branch — use vendored converter - return zodToJsonSchema(schema, { - strictUnions: opts?.strictUnions ?? true, - pipeStrategy: opts?.pipeStrategy ?? 'input' - }); + // Restored source builds do not include the vendored Zod v3 converter. + // Return a permissive object schema instead of failing module evaluation. + return { type: 'object', additionalProperties: true }; } export function getMethodLiteral(schema) { const shape = getObjectShape(schema); @@ -48,4 +45,4 @@ export function parseWithCompat(schema, data) { } return result.data; } -//# sourceMappingURL=zod-json-schema-compat.js.map \ No newline at end of file +//# sourceMappingURL=zod-json-schema-compat.js.map diff --git a/restored-src/node_modules/@modelcontextprotocol/sdk/package.json b/restored-src/node_modules/@modelcontextprotocol/sdk/package.json new file mode 100644 index 000000000..006004942 --- /dev/null +++ b/restored-src/node_modules/@modelcontextprotocol/sdk/package.json @@ -0,0 +1,6 @@ +{ + "name": "@modelcontextprotocol/sdk", + "private": true, + "main": "./dist/esm/client/index.js", + "type": "module" +} diff --git a/restored-src/node_modules/@modelcontextprotocol/sdk/server/auth/errors.js b/restored-src/node_modules/@modelcontextprotocol/sdk/server/auth/errors.js new file mode 100644 index 000000000..a72388c8c --- /dev/null +++ b/restored-src/node_modules/@modelcontextprotocol/sdk/server/auth/errors.js @@ -0,0 +1 @@ +export * from '../../dist/esm/server/auth/errors.js' diff --git a/restored-src/node_modules/@modelcontextprotocol/sdk/server/index.js b/restored-src/node_modules/@modelcontextprotocol/sdk/server/index.js new file mode 100644 index 000000000..d3bea2f8a --- /dev/null +++ b/restored-src/node_modules/@modelcontextprotocol/sdk/server/index.js @@ -0,0 +1 @@ +export * from '../dist/esm/server/index.js' diff --git a/restored-src/node_modules/@modelcontextprotocol/sdk/server/stdio.js b/restored-src/node_modules/@modelcontextprotocol/sdk/server/stdio.js new file mode 100644 index 000000000..cc15d5625 --- /dev/null +++ b/restored-src/node_modules/@modelcontextprotocol/sdk/server/stdio.js @@ -0,0 +1 @@ +export * from '../dist/esm/server/stdio.js' diff --git a/restored-src/node_modules/@modelcontextprotocol/sdk/shared/auth.js b/restored-src/node_modules/@modelcontextprotocol/sdk/shared/auth.js new file mode 100644 index 000000000..c1a77b03e --- /dev/null +++ b/restored-src/node_modules/@modelcontextprotocol/sdk/shared/auth.js @@ -0,0 +1 @@ +export * from '../dist/esm/shared/auth.js' diff --git a/restored-src/node_modules/@modelcontextprotocol/sdk/shared/transport.js b/restored-src/node_modules/@modelcontextprotocol/sdk/shared/transport.js new file mode 100644 index 000000000..710d9a4db --- /dev/null +++ b/restored-src/node_modules/@modelcontextprotocol/sdk/shared/transport.js @@ -0,0 +1 @@ +export * from '../dist/esm/shared/transport.js' diff --git a/restored-src/node_modules/@modelcontextprotocol/sdk/types.js b/restored-src/node_modules/@modelcontextprotocol/sdk/types.js new file mode 100644 index 000000000..e724ec460 --- /dev/null +++ b/restored-src/node_modules/@modelcontextprotocol/sdk/types.js @@ -0,0 +1 @@ +export * from './dist/esm/types.js' diff --git a/restored-src/node_modules/@opentelemetry/api-logs/package.json b/restored-src/node_modules/@opentelemetry/api-logs/package.json new file mode 100644 index 000000000..af5d19053 --- /dev/null +++ b/restored-src/node_modules/@opentelemetry/api-logs/package.json @@ -0,0 +1,6 @@ +{ + "name": "@opentelemetry/api-logs", + "private": true, + "main": "./build/src/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@opentelemetry/api/package.json b/restored-src/node_modules/@opentelemetry/api/package.json new file mode 100644 index 000000000..625d7ed05 --- /dev/null +++ b/restored-src/node_modules/@opentelemetry/api/package.json @@ -0,0 +1,6 @@ +{ + "name": "@opentelemetry/api", + "private": true, + "main": "./build/src/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@opentelemetry/core/package.json b/restored-src/node_modules/@opentelemetry/core/package.json new file mode 100644 index 000000000..080db35fa --- /dev/null +++ b/restored-src/node_modules/@opentelemetry/core/package.json @@ -0,0 +1,6 @@ +{ + "name": "@opentelemetry/core", + "private": true, + "main": "./build/src/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@opentelemetry/exporter-logs-otlp-grpc/package.json b/restored-src/node_modules/@opentelemetry/exporter-logs-otlp-grpc/package.json new file mode 100644 index 000000000..c35034031 --- /dev/null +++ b/restored-src/node_modules/@opentelemetry/exporter-logs-otlp-grpc/package.json @@ -0,0 +1,6 @@ +{ + "name": "@opentelemetry/exporter-logs-otlp-grpc", + "private": true, + "main": "./build/src/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@opentelemetry/exporter-logs-otlp-http/package.json b/restored-src/node_modules/@opentelemetry/exporter-logs-otlp-http/package.json new file mode 100644 index 000000000..b6b278b79 --- /dev/null +++ b/restored-src/node_modules/@opentelemetry/exporter-logs-otlp-http/package.json @@ -0,0 +1,6 @@ +{ + "name": "@opentelemetry/exporter-logs-otlp-http", + "private": true, + "main": "./build/src/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@opentelemetry/exporter-logs-otlp-proto/package.json b/restored-src/node_modules/@opentelemetry/exporter-logs-otlp-proto/package.json new file mode 100644 index 000000000..433669a9e --- /dev/null +++ b/restored-src/node_modules/@opentelemetry/exporter-logs-otlp-proto/package.json @@ -0,0 +1,6 @@ +{ + "name": "@opentelemetry/exporter-logs-otlp-proto", + "private": true, + "main": "./build/src/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@opentelemetry/exporter-metrics-otlp-grpc/package.json b/restored-src/node_modules/@opentelemetry/exporter-metrics-otlp-grpc/package.json new file mode 100644 index 000000000..6d0a5879c --- /dev/null +++ b/restored-src/node_modules/@opentelemetry/exporter-metrics-otlp-grpc/package.json @@ -0,0 +1,6 @@ +{ + "name": "@opentelemetry/exporter-metrics-otlp-grpc", + "private": true, + "main": "./build/src/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@opentelemetry/exporter-metrics-otlp-http/package.json b/restored-src/node_modules/@opentelemetry/exporter-metrics-otlp-http/package.json new file mode 100644 index 000000000..cfa4aa96a --- /dev/null +++ b/restored-src/node_modules/@opentelemetry/exporter-metrics-otlp-http/package.json @@ -0,0 +1,6 @@ +{ + "name": "@opentelemetry/exporter-metrics-otlp-http", + "private": true, + "main": "./build/src/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@opentelemetry/exporter-metrics-otlp-proto/package.json b/restored-src/node_modules/@opentelemetry/exporter-metrics-otlp-proto/package.json new file mode 100644 index 000000000..7b8d41973 --- /dev/null +++ b/restored-src/node_modules/@opentelemetry/exporter-metrics-otlp-proto/package.json @@ -0,0 +1,6 @@ +{ + "name": "@opentelemetry/exporter-metrics-otlp-proto", + "private": true, + "main": "./build/src/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@opentelemetry/exporter-prometheus/package.json b/restored-src/node_modules/@opentelemetry/exporter-prometheus/package.json new file mode 100644 index 000000000..468412c7b --- /dev/null +++ b/restored-src/node_modules/@opentelemetry/exporter-prometheus/package.json @@ -0,0 +1,6 @@ +{ + "name": "@opentelemetry/exporter-prometheus", + "private": true, + "main": "./build/src/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@opentelemetry/exporter-trace-otlp-grpc/package.json b/restored-src/node_modules/@opentelemetry/exporter-trace-otlp-grpc/package.json new file mode 100644 index 000000000..aa40093f6 --- /dev/null +++ b/restored-src/node_modules/@opentelemetry/exporter-trace-otlp-grpc/package.json @@ -0,0 +1,6 @@ +{ + "name": "@opentelemetry/exporter-trace-otlp-grpc", + "private": true, + "main": "./build/src/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@opentelemetry/exporter-trace-otlp-http/package.json b/restored-src/node_modules/@opentelemetry/exporter-trace-otlp-http/package.json new file mode 100644 index 000000000..d58aa659e --- /dev/null +++ b/restored-src/node_modules/@opentelemetry/exporter-trace-otlp-http/package.json @@ -0,0 +1,6 @@ +{ + "name": "@opentelemetry/exporter-trace-otlp-http", + "private": true, + "main": "./build/src/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@opentelemetry/exporter-trace-otlp-proto/package.json b/restored-src/node_modules/@opentelemetry/exporter-trace-otlp-proto/package.json new file mode 100644 index 000000000..6f73f201d --- /dev/null +++ b/restored-src/node_modules/@opentelemetry/exporter-trace-otlp-proto/package.json @@ -0,0 +1,6 @@ +{ + "name": "@opentelemetry/exporter-trace-otlp-proto", + "private": true, + "main": "./build/src/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@opentelemetry/otlp-exporter-base/package.json b/restored-src/node_modules/@opentelemetry/otlp-exporter-base/package.json new file mode 100644 index 000000000..647a535c2 --- /dev/null +++ b/restored-src/node_modules/@opentelemetry/otlp-exporter-base/package.json @@ -0,0 +1,6 @@ +{ + "name": "@opentelemetry/otlp-exporter-base", + "private": true, + "main": "./build/src/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@opentelemetry/otlp-grpc-exporter-base/package.json b/restored-src/node_modules/@opentelemetry/otlp-grpc-exporter-base/package.json new file mode 100644 index 000000000..75f223802 --- /dev/null +++ b/restored-src/node_modules/@opentelemetry/otlp-grpc-exporter-base/package.json @@ -0,0 +1,6 @@ +{ + "name": "@opentelemetry/otlp-grpc-exporter-base", + "private": true, + "main": "./build/src/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@opentelemetry/otlp-transformer/package.json b/restored-src/node_modules/@opentelemetry/otlp-transformer/package.json new file mode 100644 index 000000000..fd6440366 --- /dev/null +++ b/restored-src/node_modules/@opentelemetry/otlp-transformer/package.json @@ -0,0 +1,6 @@ +{ + "name": "@opentelemetry/otlp-transformer", + "private": true, + "main": "./build/src/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@opentelemetry/resources/package.json b/restored-src/node_modules/@opentelemetry/resources/package.json new file mode 100644 index 000000000..af73fea38 --- /dev/null +++ b/restored-src/node_modules/@opentelemetry/resources/package.json @@ -0,0 +1,6 @@ +{ + "name": "@opentelemetry/resources", + "private": true, + "main": "./build/src/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@opentelemetry/sdk-logs/package.json b/restored-src/node_modules/@opentelemetry/sdk-logs/package.json new file mode 100644 index 000000000..506b7e51e --- /dev/null +++ b/restored-src/node_modules/@opentelemetry/sdk-logs/package.json @@ -0,0 +1,6 @@ +{ + "name": "@opentelemetry/sdk-logs", + "private": true, + "main": "./build/src/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@opentelemetry/sdk-metrics/package.json b/restored-src/node_modules/@opentelemetry/sdk-metrics/package.json new file mode 100644 index 000000000..390f57167 --- /dev/null +++ b/restored-src/node_modules/@opentelemetry/sdk-metrics/package.json @@ -0,0 +1,6 @@ +{ + "name": "@opentelemetry/sdk-metrics", + "private": true, + "main": "./build/src/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@opentelemetry/sdk-trace-base/package.json b/restored-src/node_modules/@opentelemetry/sdk-trace-base/package.json new file mode 100644 index 000000000..14399a234 --- /dev/null +++ b/restored-src/node_modules/@opentelemetry/sdk-trace-base/package.json @@ -0,0 +1,6 @@ +{ + "name": "@opentelemetry/sdk-trace-base", + "private": true, + "main": "./build/src/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@opentelemetry/semantic-conventions/package.json b/restored-src/node_modules/@opentelemetry/semantic-conventions/package.json new file mode 100644 index 000000000..b2209d4e1 --- /dev/null +++ b/restored-src/node_modules/@opentelemetry/semantic-conventions/package.json @@ -0,0 +1,6 @@ +{ + "name": "@opentelemetry/semantic-conventions", + "private": true, + "main": "./build/src/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@pondwader/socks5-server/package.json b/restored-src/node_modules/@pondwader/socks5-server/package.json new file mode 100644 index 000000000..145f8447e --- /dev/null +++ b/restored-src/node_modules/@pondwader/socks5-server/package.json @@ -0,0 +1,6 @@ +{ + "name": "@pondwader/socks5-server", + "private": true, + "main": "./dist/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@protobufjs/aspromise/package.json b/restored-src/node_modules/@protobufjs/aspromise/package.json new file mode 100644 index 000000000..408277e58 --- /dev/null +++ b/restored-src/node_modules/@protobufjs/aspromise/package.json @@ -0,0 +1,6 @@ +{ + "name": "@protobufjs/aspromise", + "private": true, + "main": "./index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@protobufjs/base64/package.json b/restored-src/node_modules/@protobufjs/base64/package.json new file mode 100644 index 000000000..eafd6e5fe --- /dev/null +++ b/restored-src/node_modules/@protobufjs/base64/package.json @@ -0,0 +1,6 @@ +{ + "name": "@protobufjs/base64", + "private": true, + "main": "./index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@protobufjs/codegen/package.json b/restored-src/node_modules/@protobufjs/codegen/package.json new file mode 100644 index 000000000..b79949929 --- /dev/null +++ b/restored-src/node_modules/@protobufjs/codegen/package.json @@ -0,0 +1,6 @@ +{ + "name": "@protobufjs/codegen", + "private": true, + "main": "./index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@protobufjs/eventemitter/package.json b/restored-src/node_modules/@protobufjs/eventemitter/package.json new file mode 100644 index 000000000..61034b3c5 --- /dev/null +++ b/restored-src/node_modules/@protobufjs/eventemitter/package.json @@ -0,0 +1,6 @@ +{ + "name": "@protobufjs/eventemitter", + "private": true, + "main": "./index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@protobufjs/fetch/package.json b/restored-src/node_modules/@protobufjs/fetch/package.json new file mode 100644 index 000000000..5251f6f46 --- /dev/null +++ b/restored-src/node_modules/@protobufjs/fetch/package.json @@ -0,0 +1,6 @@ +{ + "name": "@protobufjs/fetch", + "private": true, + "main": "./index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@protobufjs/float/package.json b/restored-src/node_modules/@protobufjs/float/package.json new file mode 100644 index 000000000..3e8507587 --- /dev/null +++ b/restored-src/node_modules/@protobufjs/float/package.json @@ -0,0 +1,6 @@ +{ + "name": "@protobufjs/float", + "private": true, + "main": "./index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@protobufjs/inquire/package.json b/restored-src/node_modules/@protobufjs/inquire/package.json new file mode 100644 index 000000000..6a8397124 --- /dev/null +++ b/restored-src/node_modules/@protobufjs/inquire/package.json @@ -0,0 +1,6 @@ +{ + "name": "@protobufjs/inquire", + "private": true, + "main": "./index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@protobufjs/path/package.json b/restored-src/node_modules/@protobufjs/path/package.json new file mode 100644 index 000000000..1cf0df9f7 --- /dev/null +++ b/restored-src/node_modules/@protobufjs/path/package.json @@ -0,0 +1,6 @@ +{ + "name": "@protobufjs/path", + "private": true, + "main": "./index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@protobufjs/pool/package.json b/restored-src/node_modules/@protobufjs/pool/package.json new file mode 100644 index 000000000..003ed6f5a --- /dev/null +++ b/restored-src/node_modules/@protobufjs/pool/package.json @@ -0,0 +1,6 @@ +{ + "name": "@protobufjs/pool", + "private": true, + "main": "./index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@protobufjs/utf8/package.json b/restored-src/node_modules/@protobufjs/utf8/package.json new file mode 100644 index 000000000..94d27d46b --- /dev/null +++ b/restored-src/node_modules/@protobufjs/utf8/package.json @@ -0,0 +1,6 @@ +{ + "name": "@protobufjs/utf8", + "private": true, + "main": "./index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@smithy/config-resolver/package.json b/restored-src/node_modules/@smithy/config-resolver/package.json new file mode 100644 index 000000000..cfb9ccdf2 --- /dev/null +++ b/restored-src/node_modules/@smithy/config-resolver/package.json @@ -0,0 +1,6 @@ +{ + "name": "@smithy/config-resolver", + "private": true, + "main": "./dist-cjs/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@smithy/core/package.json b/restored-src/node_modules/@smithy/core/package.json new file mode 100644 index 000000000..a4cd7f4c4 --- /dev/null +++ b/restored-src/node_modules/@smithy/core/package.json @@ -0,0 +1,6 @@ +{ + "name": "@smithy/core", + "private": true, + "main": "./dist-cjs/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@smithy/credential-provider-imds/package.json b/restored-src/node_modules/@smithy/credential-provider-imds/package.json new file mode 100644 index 000000000..117746efd --- /dev/null +++ b/restored-src/node_modules/@smithy/credential-provider-imds/package.json @@ -0,0 +1,6 @@ +{ + "name": "@smithy/credential-provider-imds", + "private": true, + "main": "./dist-cjs/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@smithy/eventstream-codec/package.json b/restored-src/node_modules/@smithy/eventstream-codec/package.json new file mode 100644 index 000000000..cd40f5aac --- /dev/null +++ b/restored-src/node_modules/@smithy/eventstream-codec/package.json @@ -0,0 +1,6 @@ +{ + "name": "@smithy/eventstream-codec", + "private": true, + "main": "./dist-cjs/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@smithy/eventstream-serde-browser/package.json b/restored-src/node_modules/@smithy/eventstream-serde-browser/package.json new file mode 100644 index 000000000..acf662507 --- /dev/null +++ b/restored-src/node_modules/@smithy/eventstream-serde-browser/package.json @@ -0,0 +1,6 @@ +{ + "name": "@smithy/eventstream-serde-browser", + "private": true, + "main": "./dist-cjs/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@smithy/eventstream-serde-config-resolver/package.json b/restored-src/node_modules/@smithy/eventstream-serde-config-resolver/package.json new file mode 100644 index 000000000..da368c89a --- /dev/null +++ b/restored-src/node_modules/@smithy/eventstream-serde-config-resolver/package.json @@ -0,0 +1,6 @@ +{ + "name": "@smithy/eventstream-serde-config-resolver", + "private": true, + "main": "./dist-cjs/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@smithy/eventstream-serde-node/package.json b/restored-src/node_modules/@smithy/eventstream-serde-node/package.json new file mode 100644 index 000000000..4b100dfc0 --- /dev/null +++ b/restored-src/node_modules/@smithy/eventstream-serde-node/package.json @@ -0,0 +1,6 @@ +{ + "name": "@smithy/eventstream-serde-node", + "private": true, + "main": "./dist-cjs/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@smithy/eventstream-serde-universal/package.json b/restored-src/node_modules/@smithy/eventstream-serde-universal/package.json new file mode 100644 index 000000000..1be48c58d --- /dev/null +++ b/restored-src/node_modules/@smithy/eventstream-serde-universal/package.json @@ -0,0 +1,6 @@ +{ + "name": "@smithy/eventstream-serde-universal", + "private": true, + "main": "./dist-cjs/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@smithy/fetch-http-handler/package.json b/restored-src/node_modules/@smithy/fetch-http-handler/package.json new file mode 100644 index 000000000..d1a9f7f78 --- /dev/null +++ b/restored-src/node_modules/@smithy/fetch-http-handler/package.json @@ -0,0 +1,6 @@ +{ + "name": "@smithy/fetch-http-handler", + "private": true, + "main": "./dist-cjs/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@smithy/hash-node/package.json b/restored-src/node_modules/@smithy/hash-node/package.json new file mode 100644 index 000000000..e9c578828 --- /dev/null +++ b/restored-src/node_modules/@smithy/hash-node/package.json @@ -0,0 +1,6 @@ +{ + "name": "@smithy/hash-node", + "private": true, + "main": "./dist-cjs/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@smithy/is-array-buffer/package.json b/restored-src/node_modules/@smithy/is-array-buffer/package.json new file mode 100644 index 000000000..3b56ed236 --- /dev/null +++ b/restored-src/node_modules/@smithy/is-array-buffer/package.json @@ -0,0 +1,6 @@ +{ + "name": "@smithy/is-array-buffer", + "private": true, + "main": "./dist-cjs/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@smithy/middleware-content-length/package.json b/restored-src/node_modules/@smithy/middleware-content-length/package.json new file mode 100644 index 000000000..6af594369 --- /dev/null +++ b/restored-src/node_modules/@smithy/middleware-content-length/package.json @@ -0,0 +1,6 @@ +{ + "name": "@smithy/middleware-content-length", + "private": true, + "main": "./dist-cjs/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@smithy/middleware-endpoint/package.json b/restored-src/node_modules/@smithy/middleware-endpoint/package.json new file mode 100644 index 000000000..ba966bf3d --- /dev/null +++ b/restored-src/node_modules/@smithy/middleware-endpoint/package.json @@ -0,0 +1,6 @@ +{ + "name": "@smithy/middleware-endpoint", + "private": true, + "main": "./dist-cjs/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@smithy/middleware-retry/package.json b/restored-src/node_modules/@smithy/middleware-retry/package.json new file mode 100644 index 000000000..00d2725e3 --- /dev/null +++ b/restored-src/node_modules/@smithy/middleware-retry/package.json @@ -0,0 +1,6 @@ +{ + "name": "@smithy/middleware-retry", + "private": true, + "main": "./dist-cjs/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@smithy/middleware-serde/package.json b/restored-src/node_modules/@smithy/middleware-serde/package.json new file mode 100644 index 000000000..8d7bed936 --- /dev/null +++ b/restored-src/node_modules/@smithy/middleware-serde/package.json @@ -0,0 +1,6 @@ +{ + "name": "@smithy/middleware-serde", + "private": true, + "main": "./dist-cjs/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@smithy/middleware-stack/package.json b/restored-src/node_modules/@smithy/middleware-stack/package.json new file mode 100644 index 000000000..cc806141e --- /dev/null +++ b/restored-src/node_modules/@smithy/middleware-stack/package.json @@ -0,0 +1,6 @@ +{ + "name": "@smithy/middleware-stack", + "private": true, + "main": "./dist-cjs/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@smithy/node-config-provider/package.json b/restored-src/node_modules/@smithy/node-config-provider/package.json new file mode 100644 index 000000000..10aedce71 --- /dev/null +++ b/restored-src/node_modules/@smithy/node-config-provider/package.json @@ -0,0 +1,6 @@ +{ + "name": "@smithy/node-config-provider", + "private": true, + "main": "./dist-cjs/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@smithy/node-http-handler/package.json b/restored-src/node_modules/@smithy/node-http-handler/package.json new file mode 100644 index 000000000..9bc5e38b8 --- /dev/null +++ b/restored-src/node_modules/@smithy/node-http-handler/package.json @@ -0,0 +1,6 @@ +{ + "name": "@smithy/node-http-handler", + "private": true, + "main": "./dist-cjs/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@smithy/property-provider/package.json b/restored-src/node_modules/@smithy/property-provider/package.json new file mode 100644 index 000000000..6fe364a02 --- /dev/null +++ b/restored-src/node_modules/@smithy/property-provider/package.json @@ -0,0 +1,6 @@ +{ + "name": "@smithy/property-provider", + "private": true, + "main": "./dist-cjs/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@smithy/protocol-http/package.json b/restored-src/node_modules/@smithy/protocol-http/package.json new file mode 100644 index 000000000..90bd37331 --- /dev/null +++ b/restored-src/node_modules/@smithy/protocol-http/package.json @@ -0,0 +1,6 @@ +{ + "name": "@smithy/protocol-http", + "private": true, + "main": "./dist-cjs/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@smithy/querystring-builder/package.json b/restored-src/node_modules/@smithy/querystring-builder/package.json new file mode 100644 index 000000000..af17f0dfe --- /dev/null +++ b/restored-src/node_modules/@smithy/querystring-builder/package.json @@ -0,0 +1,6 @@ +{ + "name": "@smithy/querystring-builder", + "private": true, + "main": "./dist-cjs/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@smithy/querystring-parser/package.json b/restored-src/node_modules/@smithy/querystring-parser/package.json new file mode 100644 index 000000000..ccd14e2e4 --- /dev/null +++ b/restored-src/node_modules/@smithy/querystring-parser/package.json @@ -0,0 +1,6 @@ +{ + "name": "@smithy/querystring-parser", + "private": true, + "main": "./dist-cjs/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@smithy/service-error-classification/package.json b/restored-src/node_modules/@smithy/service-error-classification/package.json new file mode 100644 index 000000000..4fdbe1190 --- /dev/null +++ b/restored-src/node_modules/@smithy/service-error-classification/package.json @@ -0,0 +1,6 @@ +{ + "name": "@smithy/service-error-classification", + "private": true, + "main": "./dist-cjs/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@smithy/shared-ini-file-loader/package.json b/restored-src/node_modules/@smithy/shared-ini-file-loader/package.json new file mode 100644 index 000000000..d443f2a0c --- /dev/null +++ b/restored-src/node_modules/@smithy/shared-ini-file-loader/package.json @@ -0,0 +1,6 @@ +{ + "name": "@smithy/shared-ini-file-loader", + "private": true, + "main": "./dist-cjs/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@smithy/signature-v4/package.json b/restored-src/node_modules/@smithy/signature-v4/package.json new file mode 100644 index 000000000..051e22d08 --- /dev/null +++ b/restored-src/node_modules/@smithy/signature-v4/package.json @@ -0,0 +1,6 @@ +{ + "name": "@smithy/signature-v4", + "private": true, + "main": "./dist-cjs/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@smithy/smithy-client/package.json b/restored-src/node_modules/@smithy/smithy-client/package.json new file mode 100644 index 000000000..329d199a7 --- /dev/null +++ b/restored-src/node_modules/@smithy/smithy-client/package.json @@ -0,0 +1,6 @@ +{ + "name": "@smithy/smithy-client", + "private": true, + "main": "./dist-cjs/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@smithy/types/package.json b/restored-src/node_modules/@smithy/types/package.json new file mode 100644 index 000000000..45478cd78 --- /dev/null +++ b/restored-src/node_modules/@smithy/types/package.json @@ -0,0 +1,6 @@ +{ + "name": "@smithy/types", + "private": true, + "main": "./dist-cjs/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@smithy/url-parser/package.json b/restored-src/node_modules/@smithy/url-parser/package.json new file mode 100644 index 000000000..59af042c3 --- /dev/null +++ b/restored-src/node_modules/@smithy/url-parser/package.json @@ -0,0 +1,6 @@ +{ + "name": "@smithy/url-parser", + "private": true, + "main": "./dist-cjs/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@smithy/util-base64/package.json b/restored-src/node_modules/@smithy/util-base64/package.json new file mode 100644 index 000000000..65ec8f0be --- /dev/null +++ b/restored-src/node_modules/@smithy/util-base64/package.json @@ -0,0 +1,6 @@ +{ + "name": "@smithy/util-base64", + "private": true, + "main": "./dist-cjs/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@smithy/util-body-length-browser/package.json b/restored-src/node_modules/@smithy/util-body-length-browser/package.json new file mode 100644 index 000000000..43e99410a --- /dev/null +++ b/restored-src/node_modules/@smithy/util-body-length-browser/package.json @@ -0,0 +1,6 @@ +{ + "name": "@smithy/util-body-length-browser", + "private": true, + "main": "./dist-cjs/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@smithy/util-body-length-node/package.json b/restored-src/node_modules/@smithy/util-body-length-node/package.json new file mode 100644 index 000000000..7929a81e4 --- /dev/null +++ b/restored-src/node_modules/@smithy/util-body-length-node/package.json @@ -0,0 +1,6 @@ +{ + "name": "@smithy/util-body-length-node", + "private": true, + "main": "./dist-cjs/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@smithy/util-buffer-from/package.json b/restored-src/node_modules/@smithy/util-buffer-from/package.json new file mode 100644 index 000000000..9bae8cf21 --- /dev/null +++ b/restored-src/node_modules/@smithy/util-buffer-from/package.json @@ -0,0 +1,6 @@ +{ + "name": "@smithy/util-buffer-from", + "private": true, + "main": "./dist-cjs/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@smithy/util-config-provider/package.json b/restored-src/node_modules/@smithy/util-config-provider/package.json new file mode 100644 index 000000000..6315d30b0 --- /dev/null +++ b/restored-src/node_modules/@smithy/util-config-provider/package.json @@ -0,0 +1,6 @@ +{ + "name": "@smithy/util-config-provider", + "private": true, + "main": "./dist-cjs/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@smithy/util-defaults-mode-node/package.json b/restored-src/node_modules/@smithy/util-defaults-mode-node/package.json new file mode 100644 index 000000000..705859bab --- /dev/null +++ b/restored-src/node_modules/@smithy/util-defaults-mode-node/package.json @@ -0,0 +1,6 @@ +{ + "name": "@smithy/util-defaults-mode-node", + "private": true, + "main": "./dist-cjs/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@smithy/util-endpoints/package.json b/restored-src/node_modules/@smithy/util-endpoints/package.json new file mode 100644 index 000000000..8243f78c2 --- /dev/null +++ b/restored-src/node_modules/@smithy/util-endpoints/package.json @@ -0,0 +1,6 @@ +{ + "name": "@smithy/util-endpoints", + "private": true, + "main": "./dist-cjs/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@smithy/util-hex-encoding/package.json b/restored-src/node_modules/@smithy/util-hex-encoding/package.json new file mode 100644 index 000000000..aa95f5e15 --- /dev/null +++ b/restored-src/node_modules/@smithy/util-hex-encoding/package.json @@ -0,0 +1,6 @@ +{ + "name": "@smithy/util-hex-encoding", + "private": true, + "main": "./dist-cjs/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@smithy/util-middleware/package.json b/restored-src/node_modules/@smithy/util-middleware/package.json new file mode 100644 index 000000000..dd80ec21f --- /dev/null +++ b/restored-src/node_modules/@smithy/util-middleware/package.json @@ -0,0 +1,6 @@ +{ + "name": "@smithy/util-middleware", + "private": true, + "main": "./dist-cjs/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@smithy/util-retry/package.json b/restored-src/node_modules/@smithy/util-retry/package.json new file mode 100644 index 000000000..6b24c7bf6 --- /dev/null +++ b/restored-src/node_modules/@smithy/util-retry/package.json @@ -0,0 +1,6 @@ +{ + "name": "@smithy/util-retry", + "private": true, + "main": "./dist-cjs/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@smithy/util-stream/package.json b/restored-src/node_modules/@smithy/util-stream/package.json new file mode 100644 index 000000000..9e0ff4eb2 --- /dev/null +++ b/restored-src/node_modules/@smithy/util-stream/package.json @@ -0,0 +1,6 @@ +{ + "name": "@smithy/util-stream", + "private": true, + "main": "./dist-cjs/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@smithy/util-uri-escape/package.json b/restored-src/node_modules/@smithy/util-uri-escape/package.json new file mode 100644 index 000000000..fce510c0a --- /dev/null +++ b/restored-src/node_modules/@smithy/util-uri-escape/package.json @@ -0,0 +1,6 @@ +{ + "name": "@smithy/util-uri-escape", + "private": true, + "main": "./dist-cjs/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@smithy/util-utf8/package.json b/restored-src/node_modules/@smithy/util-utf8/package.json new file mode 100644 index 000000000..7a2b79979 --- /dev/null +++ b/restored-src/node_modules/@smithy/util-utf8/package.json @@ -0,0 +1,6 @@ +{ + "name": "@smithy/util-utf8", + "private": true, + "main": "./dist-cjs/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@smithy/uuid/package.json b/restored-src/node_modules/@smithy/uuid/package.json new file mode 100644 index 000000000..aa884e6d3 --- /dev/null +++ b/restored-src/node_modules/@smithy/uuid/package.json @@ -0,0 +1,6 @@ +{ + "name": "@smithy/uuid", + "private": true, + "main": "./dist-cjs/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/@typespec/ts-http-runtime/package.json b/restored-src/node_modules/@typespec/ts-http-runtime/package.json new file mode 100644 index 000000000..252a3a91a --- /dev/null +++ b/restored-src/node_modules/@typespec/ts-http-runtime/package.json @@ -0,0 +1,6 @@ +{ + "name": "@typespec/ts-http-runtime", + "private": true, + "main": "./dist/esm/index.js", + "type": "module" +} diff --git a/restored-src/node_modules/@xmldom/xmldom/package.json b/restored-src/node_modules/@xmldom/xmldom/package.json new file mode 100644 index 000000000..7f9066c01 --- /dev/null +++ b/restored-src/node_modules/@xmldom/xmldom/package.json @@ -0,0 +1,6 @@ +{ + "name": "@xmldom/xmldom", + "private": true, + "main": "./lib/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/agent-base/package.json b/restored-src/node_modules/agent-base/package.json new file mode 100644 index 000000000..d82f8bf34 --- /dev/null +++ b/restored-src/node_modules/agent-base/package.json @@ -0,0 +1,6 @@ +{ + "name": "agent-base", + "private": true, + "main": "./dist/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/ajv-formats/package.json b/restored-src/node_modules/ajv-formats/package.json new file mode 100644 index 000000000..494b78835 --- /dev/null +++ b/restored-src/node_modules/ajv-formats/package.json @@ -0,0 +1,6 @@ +{ + "name": "ajv-formats", + "private": true, + "main": "./dist/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/ajv/dist/refs/data.json b/restored-src/node_modules/ajv/dist/refs/data.json new file mode 100644 index 000000000..b33bf5c38 --- /dev/null +++ b/restored-src/node_modules/ajv/dist/refs/data.json @@ -0,0 +1,10 @@ +{ + "$id": "https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#", + "type": "object", + "properties": { + "$data": { + "type": "string" + } + }, + "additionalProperties": true +} diff --git a/restored-src/node_modules/ajv/dist/refs/json-schema-draft-07.json b/restored-src/node_modules/ajv/dist/refs/json-schema-draft-07.json new file mode 100644 index 000000000..f9e2852f1 --- /dev/null +++ b/restored-src/node_modules/ajv/dist/refs/json-schema-draft-07.json @@ -0,0 +1,50 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://json-schema.org/draft-07/schema#", + "title": "Draft 7 schema meta-schema (restored build stub)", + "definitions": { + "schemaArray": { + "type": "array", + "items": { + "$ref": "#" + } + }, + "nonNegativeInteger": { + "type": "integer", + "minimum": 0 + }, + "nonNegativeIntegerDefault0": { + "allOf": [ + { + "$ref": "#/definitions/nonNegativeInteger" + }, + { + "default": 0 + } + ] + }, + "simpleTypes": { + "enum": [ + "array", + "boolean", + "integer", + "null", + "number", + "object", + "string" + ] + }, + "stringArray": { + "type": "array", + "items": { + "type": "string" + }, + "uniqueItems": true, + "default": [] + } + }, + "type": [ + "object", + "boolean" + ] +} diff --git a/restored-src/node_modules/ajv/package.json b/restored-src/node_modules/ajv/package.json new file mode 100644 index 000000000..fa343f7a8 --- /dev/null +++ b/restored-src/node_modules/ajv/package.json @@ -0,0 +1,6 @@ +{ + "name": "ajv", + "private": true, + "main": "./dist/ajv.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/ansi-escapes/package.json b/restored-src/node_modules/ansi-escapes/package.json new file mode 100644 index 000000000..ab879d7d1 --- /dev/null +++ b/restored-src/node_modules/ansi-escapes/package.json @@ -0,0 +1,6 @@ +{ + "name": "ansi-escapes", + "private": true, + "main": "./index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/ansi-regex/package.json b/restored-src/node_modules/ansi-regex/package.json new file mode 100644 index 000000000..59dd18666 --- /dev/null +++ b/restored-src/node_modules/ansi-regex/package.json @@ -0,0 +1,6 @@ +{ + "name": "ansi-regex", + "private": true, + "main": "./index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/ansi-styles/index.js b/restored-src/node_modules/ansi-styles/index.js index 5d82581a1..000b253f2 100644 --- a/restored-src/node_modules/ansi-styles/index.js +++ b/restored-src/node_modules/ansi-styles/index.js @@ -146,10 +146,18 @@ function assembleStyles() { styles.color.close = '\u001B[39m'; styles.bgColor.close = '\u001B[49m'; - setLazyProperty(styles.color, 'ansi', () => makeDynamicStyles(wrapAnsi16, 'ansi16', ansi2ansi, false)); + setLazyProperty(styles.color, 'ansi', () => { + const converters = makeDynamicStyles(wrapAnsi16, 'ansi16', ansi2ansi, false); + const ansi = code => `\u001B[${code}m`; + return Object.assign(ansi, converters); + }); setLazyProperty(styles.color, 'ansi256', () => makeDynamicStyles(wrapAnsi256, 'ansi256', ansi2ansi, false)); setLazyProperty(styles.color, 'ansi16m', () => makeDynamicStyles(wrapAnsi16m, 'rgb', rgb2rgb, false)); - setLazyProperty(styles.bgColor, 'ansi', () => makeDynamicStyles(wrapAnsi16, 'ansi16', ansi2ansi, true)); + setLazyProperty(styles.bgColor, 'ansi', () => { + const converters = makeDynamicStyles(wrapAnsi16, 'ansi16', ansi2ansi, true); + const ansi = code => `\u001B[${code}m`; + return Object.assign(ansi, converters); + }); setLazyProperty(styles.bgColor, 'ansi256', () => makeDynamicStyles(wrapAnsi256, 'ansi256', ansi2ansi, true)); setLazyProperty(styles.bgColor, 'ansi16m', () => makeDynamicStyles(wrapAnsi16m, 'rgb', rgb2rgb, true)); diff --git a/restored-src/node_modules/ansi-styles/package.json b/restored-src/node_modules/ansi-styles/package.json new file mode 100644 index 000000000..471da7ce9 --- /dev/null +++ b/restored-src/node_modules/ansi-styles/package.json @@ -0,0 +1,6 @@ +{ + "name": "ansi-styles", + "private": true, + "main": "./index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/asciichart/package.json b/restored-src/node_modules/asciichart/package.json new file mode 100644 index 000000000..9741be045 --- /dev/null +++ b/restored-src/node_modules/asciichart/package.json @@ -0,0 +1,6 @@ +{ + "name": "asciichart", + "private": true, + "main": "./asciichart.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/asynckit/package.json b/restored-src/node_modules/asynckit/package.json new file mode 100644 index 000000000..3d8ff4e6e --- /dev/null +++ b/restored-src/node_modules/asynckit/package.json @@ -0,0 +1,6 @@ +{ + "name": "asynckit", + "private": true, + "main": "./index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/auto-bind/package.json b/restored-src/node_modules/auto-bind/package.json new file mode 100644 index 000000000..6950e111d --- /dev/null +++ b/restored-src/node_modules/auto-bind/package.json @@ -0,0 +1,6 @@ +{ + "name": "auto-bind", + "private": true, + "main": "./index.js", + "type": "module" +} diff --git a/restored-src/node_modules/axios/package.json b/restored-src/node_modules/axios/package.json new file mode 100644 index 000000000..36fa9405c --- /dev/null +++ b/restored-src/node_modules/axios/package.json @@ -0,0 +1,6 @@ +{ + "name": "axios", + "private": true, + "main": "./index.js", + "type": "module" +} diff --git a/restored-src/node_modules/base64-js/package.json b/restored-src/node_modules/base64-js/package.json new file mode 100644 index 000000000..868c926d0 --- /dev/null +++ b/restored-src/node_modules/base64-js/package.json @@ -0,0 +1,6 @@ +{ + "name": "base64-js", + "private": true, + "main": "./index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/bidi-js/package.json b/restored-src/node_modules/bidi-js/package.json new file mode 100644 index 000000000..8443b7984 --- /dev/null +++ b/restored-src/node_modules/bidi-js/package.json @@ -0,0 +1,6 @@ +{ + "name": "bidi-js", + "private": true, + "main": "./dist/bidi.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/bignumber.js/package.json b/restored-src/node_modules/bignumber.js/package.json new file mode 100644 index 000000000..a315e1027 --- /dev/null +++ b/restored-src/node_modules/bignumber.js/package.json @@ -0,0 +1,6 @@ +{ + "name": "bignumber.js", + "private": true, + "main": "./bignumber.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/buffer-equal-constant-time/package.json b/restored-src/node_modules/buffer-equal-constant-time/package.json new file mode 100644 index 000000000..0a7156cca --- /dev/null +++ b/restored-src/node_modules/buffer-equal-constant-time/package.json @@ -0,0 +1,6 @@ +{ + "name": "buffer-equal-constant-time", + "private": true, + "main": "./index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/bundle-name/package.json b/restored-src/node_modules/bundle-name/package.json new file mode 100644 index 000000000..56d6505ab --- /dev/null +++ b/restored-src/node_modules/bundle-name/package.json @@ -0,0 +1,6 @@ +{ + "name": "bundle-name", + "private": true, + "main": "./index.js", + "type": "module" +} diff --git a/restored-src/node_modules/call-bind-apply-helpers/package.json b/restored-src/node_modules/call-bind-apply-helpers/package.json new file mode 100644 index 000000000..8ad5a7e82 --- /dev/null +++ b/restored-src/node_modules/call-bind-apply-helpers/package.json @@ -0,0 +1,6 @@ +{ + "name": "call-bind-apply-helpers", + "private": true, + "main": "./index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/chalk/package.json b/restored-src/node_modules/chalk/package.json new file mode 100644 index 000000000..ed909ce7d --- /dev/null +++ b/restored-src/node_modules/chalk/package.json @@ -0,0 +1,6 @@ +{ + "name": "chalk", + "private": true, + "main": "./source/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/chalk/source/index.js b/restored-src/node_modules/chalk/source/index.js index 75ec66350..1f3b3db95 100644 --- a/restored-src/node_modules/chalk/source/index.js +++ b/restored-src/node_modules/chalk/source/index.js @@ -227,3 +227,4 @@ chalk.stderr = Chalk({level: stderrColor ? stderrColor.level : 0}); // eslint-di chalk.stderr.supportsColor = stderrColor; module.exports = chalk; +module.exports.Chalk = Chalk; diff --git a/restored-src/node_modules/chokidar/package.json b/restored-src/node_modules/chokidar/package.json new file mode 100644 index 000000000..fcf0f1807 --- /dev/null +++ b/restored-src/node_modules/chokidar/package.json @@ -0,0 +1,6 @@ +{ + "name": "chokidar", + "private": true, + "main": "./esm/index.js", + "type": "module" +} diff --git a/restored-src/node_modules/cli-boxes/boxes.json b/restored-src/node_modules/cli-boxes/boxes.json new file mode 100644 index 000000000..5d71dcb77 --- /dev/null +++ b/restored-src/node_modules/cli-boxes/boxes.json @@ -0,0 +1,42 @@ +{ + "single": { + "topLeft": "┌", + "topRight": "┐", + "bottomRight": "┘", + "bottomLeft": "└", + "horizontal": "─", + "vertical": "│" + }, + "double": { + "topLeft": "╔", + "topRight": "╗", + "bottomRight": "╝", + "bottomLeft": "╚", + "horizontal": "═", + "vertical": "║" + }, + "round": { + "topLeft": "╭", + "topRight": "╮", + "bottomRight": "╯", + "bottomLeft": "╰", + "horizontal": "─", + "vertical": "│" + }, + "bold": { + "topLeft": "┏", + "topRight": "┓", + "bottomRight": "┛", + "bottomLeft": "┗", + "horizontal": "━", + "vertical": "┃" + }, + "classic": { + "topLeft": "+", + "topRight": "+", + "bottomRight": "+", + "bottomLeft": "+", + "horizontal": "-", + "vertical": "|" + } +} diff --git a/restored-src/node_modules/cli-boxes/package.json b/restored-src/node_modules/cli-boxes/package.json new file mode 100644 index 000000000..96e3712e8 --- /dev/null +++ b/restored-src/node_modules/cli-boxes/package.json @@ -0,0 +1,6 @@ +{ + "name": "cli-boxes", + "private": true, + "main": "./index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/cli-highlight/package.json b/restored-src/node_modules/cli-highlight/package.json new file mode 100644 index 000000000..67609c94d --- /dev/null +++ b/restored-src/node_modules/cli-highlight/package.json @@ -0,0 +1,6 @@ +{ + "name": "cli-highlight", + "private": true, + "main": "./dist/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/cli-width/package.json b/restored-src/node_modules/cli-width/package.json new file mode 100644 index 000000000..2fa37e9a8 --- /dev/null +++ b/restored-src/node_modules/cli-width/package.json @@ -0,0 +1,6 @@ +{ + "name": "cli-width", + "private": true, + "main": "./index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/code-excerpt/package.json b/restored-src/node_modules/code-excerpt/package.json new file mode 100644 index 000000000..e7e5d5706 --- /dev/null +++ b/restored-src/node_modules/code-excerpt/package.json @@ -0,0 +1,6 @@ +{ + "name": "code-excerpt", + "private": true, + "main": "./dist/index.js", + "type": "module" +} diff --git a/restored-src/node_modules/color-convert/package.json b/restored-src/node_modules/color-convert/package.json new file mode 100644 index 000000000..42e59bf4b --- /dev/null +++ b/restored-src/node_modules/color-convert/package.json @@ -0,0 +1,6 @@ +{ + "name": "color-convert", + "private": true, + "main": "./index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/color-name/package.json b/restored-src/node_modules/color-name/package.json new file mode 100644 index 000000000..dca1bd107 --- /dev/null +++ b/restored-src/node_modules/color-name/package.json @@ -0,0 +1,6 @@ +{ + "name": "color-name", + "private": true, + "main": "./index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/combined-stream/package.json b/restored-src/node_modules/combined-stream/package.json new file mode 100644 index 000000000..554d95d7e --- /dev/null +++ b/restored-src/node_modules/combined-stream/package.json @@ -0,0 +1,6 @@ +{ + "name": "combined-stream", + "private": true, + "main": "./lib/combined_stream.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/commander/package.json b/restored-src/node_modules/commander/package.json new file mode 100644 index 000000000..217c4d5a3 --- /dev/null +++ b/restored-src/node_modules/commander/package.json @@ -0,0 +1,6 @@ +{ + "name": "commander", + "private": true, + "main": "./index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/convert-to-spaces/package.json b/restored-src/node_modules/convert-to-spaces/package.json new file mode 100644 index 000000000..cbeacc5d8 --- /dev/null +++ b/restored-src/node_modules/convert-to-spaces/package.json @@ -0,0 +1,6 @@ +{ + "name": "convert-to-spaces", + "private": true, + "main": "./dist/index.js", + "type": "module" +} diff --git a/restored-src/node_modules/cross-spawn/package.json b/restored-src/node_modules/cross-spawn/package.json new file mode 100644 index 000000000..69128d207 --- /dev/null +++ b/restored-src/node_modules/cross-spawn/package.json @@ -0,0 +1,6 @@ +{ + "name": "cross-spawn", + "private": true, + "main": "./index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/cssfilter/package.json b/restored-src/node_modules/cssfilter/package.json new file mode 100644 index 000000000..c6b70af26 --- /dev/null +++ b/restored-src/node_modules/cssfilter/package.json @@ -0,0 +1,6 @@ +{ + "name": "cssfilter", + "private": true, + "main": "./lib/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/debug/package.json b/restored-src/node_modules/debug/package.json new file mode 100644 index 000000000..cefbcee6e --- /dev/null +++ b/restored-src/node_modules/debug/package.json @@ -0,0 +1,6 @@ +{ + "name": "debug", + "private": true, + "main": "./src/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/default-browser-id/package.json b/restored-src/node_modules/default-browser-id/package.json new file mode 100644 index 000000000..406e0bdc1 --- /dev/null +++ b/restored-src/node_modules/default-browser-id/package.json @@ -0,0 +1,6 @@ +{ + "name": "default-browser-id", + "private": true, + "main": "./index.js", + "type": "module" +} diff --git a/restored-src/node_modules/default-browser/package.json b/restored-src/node_modules/default-browser/package.json new file mode 100644 index 000000000..8d315bc42 --- /dev/null +++ b/restored-src/node_modules/default-browser/package.json @@ -0,0 +1,6 @@ +{ + "name": "default-browser", + "private": true, + "main": "./index.js", + "type": "module" +} diff --git a/restored-src/node_modules/define-lazy-prop/package.json b/restored-src/node_modules/define-lazy-prop/package.json new file mode 100644 index 000000000..8efc68592 --- /dev/null +++ b/restored-src/node_modules/define-lazy-prop/package.json @@ -0,0 +1,6 @@ +{ + "name": "define-lazy-prop", + "private": true, + "main": "./index.js", + "type": "module" +} diff --git a/restored-src/node_modules/delayed-stream/package.json b/restored-src/node_modules/delayed-stream/package.json new file mode 100644 index 000000000..6cf39a653 --- /dev/null +++ b/restored-src/node_modules/delayed-stream/package.json @@ -0,0 +1,6 @@ +{ + "name": "delayed-stream", + "private": true, + "main": "./lib/delayed_stream.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/detect-libc/package.json b/restored-src/node_modules/detect-libc/package.json new file mode 100644 index 000000000..2328d0418 --- /dev/null +++ b/restored-src/node_modules/detect-libc/package.json @@ -0,0 +1,6 @@ +{ + "name": "detect-libc", + "private": true, + "main": "./lib/detect-libc.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/diff/libesm/util/params.js b/restored-src/node_modules/diff/libesm/util/params.js new file mode 100644 index 000000000..e9eeecf38 --- /dev/null +++ b/restored-src/node_modules/diff/libesm/util/params.js @@ -0,0 +1,11 @@ +export function generateOptions(options, defaults = {}) { + if (options === undefined) { + return { ...defaults }; + } + + if (typeof options === "function") { + return { ...defaults, callback: options }; + } + + return { ...defaults, ...options }; +} diff --git a/restored-src/node_modules/diff/package.json b/restored-src/node_modules/diff/package.json new file mode 100644 index 000000000..3912eead4 --- /dev/null +++ b/restored-src/node_modules/diff/package.json @@ -0,0 +1,6 @@ +{ + "name": "diff", + "private": true, + "main": "./libesm/index.js", + "type": "module" +} diff --git a/restored-src/node_modules/dijkstrajs/package.json b/restored-src/node_modules/dijkstrajs/package.json new file mode 100644 index 000000000..5b82430bc --- /dev/null +++ b/restored-src/node_modules/dijkstrajs/package.json @@ -0,0 +1,6 @@ +{ + "name": "dijkstrajs", + "private": true, + "main": "./dijkstra.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/dom-mutator/package.json b/restored-src/node_modules/dom-mutator/package.json new file mode 100644 index 000000000..a127e3a5d --- /dev/null +++ b/restored-src/node_modules/dom-mutator/package.json @@ -0,0 +1,6 @@ +{ + "name": "dom-mutator", + "private": true, + "main": "./dist/dom-mutator.cjs.production.min.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/dunder-proto/package.json b/restored-src/node_modules/dunder-proto/package.json new file mode 100644 index 000000000..5b8726dff --- /dev/null +++ b/restored-src/node_modules/dunder-proto/package.json @@ -0,0 +1,6 @@ +{ + "name": "dunder-proto", + "private": true, + "main": "./get.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/ecdsa-sig-formatter/package.json b/restored-src/node_modules/ecdsa-sig-formatter/package.json new file mode 100644 index 000000000..c4425e262 --- /dev/null +++ b/restored-src/node_modules/ecdsa-sig-formatter/package.json @@ -0,0 +1,6 @@ +{ + "name": "ecdsa-sig-formatter", + "private": true, + "main": "./src/ecdsa-sig-formatter.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/emoji-regex/package.json b/restored-src/node_modules/emoji-regex/package.json new file mode 100644 index 000000000..407e5ecc4 --- /dev/null +++ b/restored-src/node_modules/emoji-regex/package.json @@ -0,0 +1,6 @@ +{ + "name": "emoji-regex", + "private": true, + "main": "./index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/env-paths/package.json b/restored-src/node_modules/env-paths/package.json new file mode 100644 index 000000000..9539a9c68 --- /dev/null +++ b/restored-src/node_modules/env-paths/package.json @@ -0,0 +1,6 @@ +{ + "name": "env-paths", + "private": true, + "main": "./index.js", + "type": "module" +} diff --git a/restored-src/node_modules/es-define-property/package.json b/restored-src/node_modules/es-define-property/package.json new file mode 100644 index 000000000..942980bd3 --- /dev/null +++ b/restored-src/node_modules/es-define-property/package.json @@ -0,0 +1,6 @@ +{ + "name": "es-define-property", + "private": true, + "main": "./index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/es-errors/package.json b/restored-src/node_modules/es-errors/package.json new file mode 100644 index 000000000..4f5422a31 --- /dev/null +++ b/restored-src/node_modules/es-errors/package.json @@ -0,0 +1,6 @@ +{ + "name": "es-errors", + "private": true, + "main": "./index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/es-object-atoms/package.json b/restored-src/node_modules/es-object-atoms/package.json new file mode 100644 index 000000000..56a0e07c5 --- /dev/null +++ b/restored-src/node_modules/es-object-atoms/package.json @@ -0,0 +1,6 @@ +{ + "name": "es-object-atoms", + "private": true, + "main": "./index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/es-set-tostringtag/package.json b/restored-src/node_modules/es-set-tostringtag/package.json new file mode 100644 index 000000000..478fa57ab --- /dev/null +++ b/restored-src/node_modules/es-set-tostringtag/package.json @@ -0,0 +1,6 @@ +{ + "name": "es-set-tostringtag", + "private": true, + "main": "./index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/escape-string-regexp/package.json b/restored-src/node_modules/escape-string-regexp/package.json new file mode 100644 index 000000000..7508c2b06 --- /dev/null +++ b/restored-src/node_modules/escape-string-regexp/package.json @@ -0,0 +1,6 @@ +{ + "name": "escape-string-regexp", + "private": true, + "main": "./index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/eventsource-parser/package.json b/restored-src/node_modules/eventsource-parser/package.json new file mode 100644 index 000000000..616135d64 --- /dev/null +++ b/restored-src/node_modules/eventsource-parser/package.json @@ -0,0 +1,6 @@ +{ + "name": "eventsource-parser", + "private": true, + "main": "./dist/index.js", + "type": "module" +} diff --git a/restored-src/node_modules/eventsource-parser/stream.js b/restored-src/node_modules/eventsource-parser/stream.js new file mode 100644 index 000000000..814b5edbc --- /dev/null +++ b/restored-src/node_modules/eventsource-parser/stream.js @@ -0,0 +1 @@ +export * from './dist/stream.js' diff --git a/restored-src/node_modules/eventsource/package.json b/restored-src/node_modules/eventsource/package.json new file mode 100644 index 000000000..dab267b2d --- /dev/null +++ b/restored-src/node_modules/eventsource/package.json @@ -0,0 +1,6 @@ +{ + "name": "eventsource", + "private": true, + "main": "./dist/index.js", + "type": "module" +} diff --git a/restored-src/node_modules/execa/package.json b/restored-src/node_modules/execa/package.json new file mode 100644 index 000000000..f5bbb4914 --- /dev/null +++ b/restored-src/node_modules/execa/package.json @@ -0,0 +1,6 @@ +{ + "name": "execa", + "private": true, + "main": "./index.js", + "type": "module" +} diff --git a/restored-src/node_modules/extend/package.json b/restored-src/node_modules/extend/package.json new file mode 100644 index 000000000..8f85930c5 --- /dev/null +++ b/restored-src/node_modules/extend/package.json @@ -0,0 +1,6 @@ +{ + "name": "extend", + "private": true, + "main": "./index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/fast-deep-equal/package.json b/restored-src/node_modules/fast-deep-equal/package.json new file mode 100644 index 000000000..1778606eb --- /dev/null +++ b/restored-src/node_modules/fast-deep-equal/package.json @@ -0,0 +1,6 @@ +{ + "name": "fast-deep-equal", + "private": true, + "main": "./index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/fast-uri/package.json b/restored-src/node_modules/fast-uri/package.json new file mode 100644 index 000000000..b8e48adeb --- /dev/null +++ b/restored-src/node_modules/fast-uri/package.json @@ -0,0 +1,6 @@ +{ + "name": "fast-uri", + "private": true, + "main": "./index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/fast-xml-parser/package.json b/restored-src/node_modules/fast-xml-parser/package.json new file mode 100644 index 000000000..76da6bebc --- /dev/null +++ b/restored-src/node_modules/fast-xml-parser/package.json @@ -0,0 +1,6 @@ +{ + "name": "fast-xml-parser", + "private": true, + "main": "./lib/fxp.cjs", + "type": "commonjs" +} diff --git a/restored-src/node_modules/fflate/package.json b/restored-src/node_modules/fflate/package.json new file mode 100644 index 000000000..15c9bdb7a --- /dev/null +++ b/restored-src/node_modules/fflate/package.json @@ -0,0 +1,6 @@ +{ + "name": "fflate", + "private": true, + "main": "./esm/index.mjs", + "type": "module" +} diff --git a/restored-src/node_modules/figures/package.json b/restored-src/node_modules/figures/package.json new file mode 100644 index 000000000..9a400e444 --- /dev/null +++ b/restored-src/node_modules/figures/package.json @@ -0,0 +1,6 @@ +{ + "name": "figures", + "private": true, + "main": "./index.js", + "type": "module" +} diff --git a/restored-src/node_modules/flora-colossus/package.json b/restored-src/node_modules/flora-colossus/package.json new file mode 100644 index 000000000..f68a6441e --- /dev/null +++ b/restored-src/node_modules/flora-colossus/package.json @@ -0,0 +1,6 @@ +{ + "name": "flora-colossus", + "private": true, + "main": "./lib/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/follow-redirects/package.json b/restored-src/node_modules/follow-redirects/package.json new file mode 100644 index 000000000..ac30124e3 --- /dev/null +++ b/restored-src/node_modules/follow-redirects/package.json @@ -0,0 +1,6 @@ +{ + "name": "follow-redirects", + "private": true, + "main": "./index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/form-data/package.json b/restored-src/node_modules/form-data/package.json new file mode 100644 index 000000000..f8bd3dcd3 --- /dev/null +++ b/restored-src/node_modules/form-data/package.json @@ -0,0 +1,6 @@ +{ + "name": "form-data", + "private": true, + "main": "./lib/form_data.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/fs-extra/package.json b/restored-src/node_modules/fs-extra/package.json new file mode 100644 index 000000000..4b008a03d --- /dev/null +++ b/restored-src/node_modules/fs-extra/package.json @@ -0,0 +1,6 @@ +{ + "name": "fs-extra", + "private": true, + "main": "./lib/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/function-bind/package.json b/restored-src/node_modules/function-bind/package.json new file mode 100644 index 000000000..c9e3b8230 --- /dev/null +++ b/restored-src/node_modules/function-bind/package.json @@ -0,0 +1,6 @@ +{ + "name": "function-bind", + "private": true, + "main": "./index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/fuse.js/package.json b/restored-src/node_modules/fuse.js/package.json new file mode 100644 index 000000000..5e2ea77ba --- /dev/null +++ b/restored-src/node_modules/fuse.js/package.json @@ -0,0 +1,6 @@ +{ + "name": "fuse.js", + "private": true, + "main": "./dist/fuse.mjs", + "type": "module" +} diff --git a/restored-src/node_modules/galactus/package.json b/restored-src/node_modules/galactus/package.json new file mode 100644 index 000000000..168a5b953 --- /dev/null +++ b/restored-src/node_modules/galactus/package.json @@ -0,0 +1,6 @@ +{ + "name": "galactus", + "private": true, + "main": "./lib/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/gaxios/package.json b/restored-src/node_modules/gaxios/package.json new file mode 100644 index 000000000..f649e7841 --- /dev/null +++ b/restored-src/node_modules/gaxios/package.json @@ -0,0 +1,6 @@ +{ + "name": "gaxios", + "private": true, + "main": "./build/src/gaxios.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/gcp-metadata/package.json b/restored-src/node_modules/gcp-metadata/package.json new file mode 100644 index 000000000..cba221491 --- /dev/null +++ b/restored-src/node_modules/gcp-metadata/package.json @@ -0,0 +1,6 @@ +{ + "name": "gcp-metadata", + "private": true, + "main": "./build/src/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/get-east-asian-width/package.json b/restored-src/node_modules/get-east-asian-width/package.json new file mode 100644 index 000000000..a03b5f13c --- /dev/null +++ b/restored-src/node_modules/get-east-asian-width/package.json @@ -0,0 +1,6 @@ +{ + "name": "get-east-asian-width", + "private": true, + "main": "./index.js", + "type": "module" +} diff --git a/restored-src/node_modules/get-intrinsic/package.json b/restored-src/node_modules/get-intrinsic/package.json new file mode 100644 index 000000000..d6ca9f5b8 --- /dev/null +++ b/restored-src/node_modules/get-intrinsic/package.json @@ -0,0 +1,6 @@ +{ + "name": "get-intrinsic", + "private": true, + "main": "./index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/get-proto/package.json b/restored-src/node_modules/get-proto/package.json new file mode 100644 index 000000000..f75136b79 --- /dev/null +++ b/restored-src/node_modules/get-proto/package.json @@ -0,0 +1,6 @@ +{ + "name": "get-proto", + "private": true, + "main": "./index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/get-stream/package.json b/restored-src/node_modules/get-stream/package.json new file mode 100644 index 000000000..8b191ff37 --- /dev/null +++ b/restored-src/node_modules/get-stream/package.json @@ -0,0 +1,6 @@ +{ + "name": "get-stream", + "private": true, + "main": "./source/index.js", + "type": "module" +} diff --git a/restored-src/node_modules/google-auth-library/package.json b/restored-src/node_modules/google-auth-library/package.json new file mode 100644 index 000000000..7400bbf0c --- /dev/null +++ b/restored-src/node_modules/google-auth-library/package.json @@ -0,0 +1,6 @@ +{ + "name": "google-auth-library", + "private": true, + "main": "./build/src/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/google-logging-utils/package.json b/restored-src/node_modules/google-logging-utils/package.json new file mode 100644 index 000000000..cb767bc26 --- /dev/null +++ b/restored-src/node_modules/google-logging-utils/package.json @@ -0,0 +1,6 @@ +{ + "name": "google-logging-utils", + "private": true, + "main": "./build/src/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/gopd/package.json b/restored-src/node_modules/gopd/package.json new file mode 100644 index 000000000..4dffa8244 --- /dev/null +++ b/restored-src/node_modules/gopd/package.json @@ -0,0 +1,6 @@ +{ + "name": "gopd", + "private": true, + "main": "./index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/graceful-fs/package.json b/restored-src/node_modules/graceful-fs/package.json new file mode 100644 index 000000000..814677dd0 --- /dev/null +++ b/restored-src/node_modules/graceful-fs/package.json @@ -0,0 +1,6 @@ +{ + "name": "graceful-fs", + "private": true, + "main": "./graceful-fs.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/gtoken/package.json b/restored-src/node_modules/gtoken/package.json new file mode 100644 index 000000000..7de1e2f0a --- /dev/null +++ b/restored-src/node_modules/gtoken/package.json @@ -0,0 +1,6 @@ +{ + "name": "gtoken", + "private": true, + "main": "./build/src/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/has-flag/package.json b/restored-src/node_modules/has-flag/package.json new file mode 100644 index 000000000..7a5eff60b --- /dev/null +++ b/restored-src/node_modules/has-flag/package.json @@ -0,0 +1,6 @@ +{ + "name": "has-flag", + "private": true, + "main": "./index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/has-symbols/package.json b/restored-src/node_modules/has-symbols/package.json new file mode 100644 index 000000000..0e5a72735 --- /dev/null +++ b/restored-src/node_modules/has-symbols/package.json @@ -0,0 +1,6 @@ +{ + "name": "has-symbols", + "private": true, + "main": "./index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/has-tostringtag/package.json b/restored-src/node_modules/has-tostringtag/package.json new file mode 100644 index 000000000..0a2baf2ec --- /dev/null +++ b/restored-src/node_modules/has-tostringtag/package.json @@ -0,0 +1,6 @@ +{ + "name": "has-tostringtag", + "private": true, + "main": "./shams.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/hasown/package.json b/restored-src/node_modules/hasown/package.json new file mode 100644 index 000000000..374e886f0 --- /dev/null +++ b/restored-src/node_modules/hasown/package.json @@ -0,0 +1,6 @@ +{ + "name": "hasown", + "private": true, + "main": "./index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/highlight.js/package.json b/restored-src/node_modules/highlight.js/package.json new file mode 100644 index 000000000..c55c93c95 --- /dev/null +++ b/restored-src/node_modules/highlight.js/package.json @@ -0,0 +1,6 @@ +{ + "name": "highlight.js", + "private": true, + "main": "./lib/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/http-proxy-agent/package.json b/restored-src/node_modules/http-proxy-agent/package.json new file mode 100644 index 000000000..c6277ba4d --- /dev/null +++ b/restored-src/node_modules/http-proxy-agent/package.json @@ -0,0 +1,6 @@ +{ + "name": "http-proxy-agent", + "private": true, + "main": "./dist/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/https-proxy-agent/package.json b/restored-src/node_modules/https-proxy-agent/package.json new file mode 100644 index 000000000..356c19ef2 --- /dev/null +++ b/restored-src/node_modules/https-proxy-agent/package.json @@ -0,0 +1,6 @@ +{ + "name": "https-proxy-agent", + "private": true, + "main": "./dist/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/human-signals/package.json b/restored-src/node_modules/human-signals/package.json new file mode 100644 index 000000000..74bfe2da8 --- /dev/null +++ b/restored-src/node_modules/human-signals/package.json @@ -0,0 +1,6 @@ +{ + "name": "human-signals", + "private": true, + "main": "./build/src/main.js", + "type": "module" +} diff --git a/restored-src/node_modules/ignore/package.json b/restored-src/node_modules/ignore/package.json new file mode 100644 index 000000000..149098b91 --- /dev/null +++ b/restored-src/node_modules/ignore/package.json @@ -0,0 +1,6 @@ +{ + "name": "ignore", + "private": true, + "main": "./index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/indent-string/package.json b/restored-src/node_modules/indent-string/package.json new file mode 100644 index 000000000..1fc5e56c4 --- /dev/null +++ b/restored-src/node_modules/indent-string/package.json @@ -0,0 +1,6 @@ +{ + "name": "indent-string", + "private": true, + "main": "./index.js", + "type": "module" +} diff --git a/restored-src/node_modules/is-docker/package.json b/restored-src/node_modules/is-docker/package.json new file mode 100644 index 000000000..d7fe66b9c --- /dev/null +++ b/restored-src/node_modules/is-docker/package.json @@ -0,0 +1,6 @@ +{ + "name": "is-docker", + "private": true, + "main": "./index.js", + "type": "module" +} diff --git a/restored-src/node_modules/is-fullwidth-code-point/package.json b/restored-src/node_modules/is-fullwidth-code-point/package.json new file mode 100644 index 000000000..047f3cb8a --- /dev/null +++ b/restored-src/node_modules/is-fullwidth-code-point/package.json @@ -0,0 +1,6 @@ +{ + "name": "is-fullwidth-code-point", + "private": true, + "main": "./index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/is-inside-container/package.json b/restored-src/node_modules/is-inside-container/package.json new file mode 100644 index 000000000..9d1e9f4ae --- /dev/null +++ b/restored-src/node_modules/is-inside-container/package.json @@ -0,0 +1,6 @@ +{ + "name": "is-inside-container", + "private": true, + "main": "./index.js", + "type": "module" +} diff --git a/restored-src/node_modules/is-stream/index.js b/restored-src/node_modules/is-stream/index.js index 2e43434da..4b3f81d8a 100644 --- a/restored-src/node_modules/is-stream/index.js +++ b/restored-src/node_modules/is-stream/index.js @@ -26,3 +26,8 @@ isStream.transform = stream => typeof stream._transform === 'function'; module.exports = isStream; +module.exports.isStream = isStream; +module.exports.isWritableStream = isStream.writable; +module.exports.isReadableStream = isStream.readable; +module.exports.isDuplexStream = isStream.duplex; +module.exports.isTransformStream = isStream.transform; diff --git a/restored-src/node_modules/is-stream/package.json b/restored-src/node_modules/is-stream/package.json new file mode 100644 index 000000000..78ed8eb14 --- /dev/null +++ b/restored-src/node_modules/is-stream/package.json @@ -0,0 +1,6 @@ +{ + "name": "is-stream", + "private": true, + "main": "./index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/is-unicode-supported/package.json b/restored-src/node_modules/is-unicode-supported/package.json new file mode 100644 index 000000000..7a22ec0c9 --- /dev/null +++ b/restored-src/node_modules/is-unicode-supported/package.json @@ -0,0 +1,6 @@ +{ + "name": "is-unicode-supported", + "private": true, + "main": "./index.js", + "type": "module" +} diff --git a/restored-src/node_modules/is-wsl/package.json b/restored-src/node_modules/is-wsl/package.json new file mode 100644 index 000000000..a07765ff1 --- /dev/null +++ b/restored-src/node_modules/is-wsl/package.json @@ -0,0 +1,6 @@ +{ + "name": "is-wsl", + "private": true, + "main": "./index.js", + "type": "module" +} diff --git a/restored-src/node_modules/isexe/package.json b/restored-src/node_modules/isexe/package.json new file mode 100644 index 000000000..efbac8516 --- /dev/null +++ b/restored-src/node_modules/isexe/package.json @@ -0,0 +1,6 @@ +{ + "name": "isexe", + "private": true, + "main": "./index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/json-bigint/package.json b/restored-src/node_modules/json-bigint/package.json new file mode 100644 index 000000000..8af8d02bc --- /dev/null +++ b/restored-src/node_modules/json-bigint/package.json @@ -0,0 +1,6 @@ +{ + "name": "json-bigint", + "private": true, + "main": "./index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/json-schema-traverse/package.json b/restored-src/node_modules/json-schema-traverse/package.json new file mode 100644 index 000000000..f72aa6641 --- /dev/null +++ b/restored-src/node_modules/json-schema-traverse/package.json @@ -0,0 +1,6 @@ +{ + "name": "json-schema-traverse", + "private": true, + "main": "./index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/jsonc-parser/package.json b/restored-src/node_modules/jsonc-parser/package.json new file mode 100644 index 000000000..d6dbc53c7 --- /dev/null +++ b/restored-src/node_modules/jsonc-parser/package.json @@ -0,0 +1,6 @@ +{ + "name": "jsonc-parser", + "private": true, + "main": "./lib/esm/main.js", + "type": "module" +} diff --git a/restored-src/node_modules/jsonfile/package.json b/restored-src/node_modules/jsonfile/package.json new file mode 100644 index 000000000..3ac235751 --- /dev/null +++ b/restored-src/node_modules/jsonfile/package.json @@ -0,0 +1,6 @@ +{ + "name": "jsonfile", + "private": true, + "main": "./index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/jsonwebtoken/package.json b/restored-src/node_modules/jsonwebtoken/package.json new file mode 100644 index 000000000..070ed337a --- /dev/null +++ b/restored-src/node_modules/jsonwebtoken/package.json @@ -0,0 +1,6 @@ +{ + "name": "jsonwebtoken", + "private": true, + "main": "./index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/jwa/package.json b/restored-src/node_modules/jwa/package.json new file mode 100644 index 000000000..b22dcf2fb --- /dev/null +++ b/restored-src/node_modules/jwa/package.json @@ -0,0 +1,6 @@ +{ + "name": "jwa", + "private": true, + "main": "./index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/jws/package.json b/restored-src/node_modules/jws/package.json new file mode 100644 index 000000000..9b39ea53d --- /dev/null +++ b/restored-src/node_modules/jws/package.json @@ -0,0 +1,6 @@ +{ + "name": "jws", + "private": true, + "main": "./index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/lodash-es/lodash.js b/restored-src/node_modules/lodash-es/lodash.js index 25b790ec1..95b590723 100644 --- a/restored-src/node_modules/lodash-es/lodash.js +++ b/restored-src/node_modules/lodash-es/lodash.js @@ -1,331 +1,11 @@ -/** - * @license - * Lodash (Custom Build) - * Build: `lodash modularize exports="es" -o ./` - * Copyright OpenJS Foundation and other contributors - * Released under MIT license - * Based on Underscore.js 1.8.3 - * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - */ -export { default as add } from './add.js'; -export { default as after } from './after.js'; -export { default as ary } from './ary.js'; -export { default as assign } from './assign.js'; -export { default as assignIn } from './assignIn.js'; -export { default as assignInWith } from './assignInWith.js'; -export { default as assignWith } from './assignWith.js'; -export { default as at } from './at.js'; -export { default as attempt } from './attempt.js'; -export { default as before } from './before.js'; -export { default as bind } from './bind.js'; -export { default as bindAll } from './bindAll.js'; -export { default as bindKey } from './bindKey.js'; -export { default as camelCase } from './camelCase.js'; -export { default as capitalize } from './capitalize.js'; -export { default as castArray } from './castArray.js'; -export { default as ceil } from './ceil.js'; -export { default as chain } from './chain.js'; -export { default as chunk } from './chunk.js'; -export { default as clamp } from './clamp.js'; -export { default as clone } from './clone.js'; -export { default as cloneDeep } from './cloneDeep.js'; -export { default as cloneDeepWith } from './cloneDeepWith.js'; -export { default as cloneWith } from './cloneWith.js'; -export { default as commit } from './commit.js'; -export { default as compact } from './compact.js'; -export { default as concat } from './concat.js'; -export { default as cond } from './cond.js'; -export { default as conforms } from './conforms.js'; -export { default as conformsTo } from './conformsTo.js'; -export { default as constant } from './constant.js'; -export { default as countBy } from './countBy.js'; -export { default as create } from './create.js'; -export { default as curry } from './curry.js'; -export { default as curryRight } from './curryRight.js'; -export { default as debounce } from './debounce.js'; -export { default as deburr } from './deburr.js'; -export { default as defaultTo } from './defaultTo.js'; -export { default as defaults } from './defaults.js'; -export { default as defaultsDeep } from './defaultsDeep.js'; -export { default as defer } from './defer.js'; -export { default as delay } from './delay.js'; -export { default as difference } from './difference.js'; -export { default as differenceBy } from './differenceBy.js'; -export { default as differenceWith } from './differenceWith.js'; -export { default as divide } from './divide.js'; -export { default as drop } from './drop.js'; -export { default as dropRight } from './dropRight.js'; -export { default as dropRightWhile } from './dropRightWhile.js'; -export { default as dropWhile } from './dropWhile.js'; -export { default as each } from './each.js'; -export { default as eachRight } from './eachRight.js'; -export { default as endsWith } from './endsWith.js'; -export { default as entries } from './entries.js'; -export { default as entriesIn } from './entriesIn.js'; -export { default as eq } from './eq.js'; -export { default as escape } from './escape.js'; -export { default as escapeRegExp } from './escapeRegExp.js'; -export { default as every } from './every.js'; -export { default as extend } from './extend.js'; -export { default as extendWith } from './extendWith.js'; -export { default as fill } from './fill.js'; -export { default as filter } from './filter.js'; -export { default as find } from './find.js'; -export { default as findIndex } from './findIndex.js'; -export { default as findKey } from './findKey.js'; -export { default as findLast } from './findLast.js'; -export { default as findLastIndex } from './findLastIndex.js'; -export { default as findLastKey } from './findLastKey.js'; -export { default as first } from './first.js'; -export { default as flatMap } from './flatMap.js'; -export { default as flatMapDeep } from './flatMapDeep.js'; -export { default as flatMapDepth } from './flatMapDepth.js'; -export { default as flatten } from './flatten.js'; -export { default as flattenDeep } from './flattenDeep.js'; -export { default as flattenDepth } from './flattenDepth.js'; -export { default as flip } from './flip.js'; -export { default as floor } from './floor.js'; -export { default as flow } from './flow.js'; -export { default as flowRight } from './flowRight.js'; -export { default as forEach } from './forEach.js'; -export { default as forEachRight } from './forEachRight.js'; -export { default as forIn } from './forIn.js'; -export { default as forInRight } from './forInRight.js'; -export { default as forOwn } from './forOwn.js'; -export { default as forOwnRight } from './forOwnRight.js'; -export { default as fromPairs } from './fromPairs.js'; -export { default as functions } from './functions.js'; -export { default as functionsIn } from './functionsIn.js'; -export { default as get } from './get.js'; -export { default as groupBy } from './groupBy.js'; -export { default as gt } from './gt.js'; -export { default as gte } from './gte.js'; -export { default as has } from './has.js'; -export { default as hasIn } from './hasIn.js'; -export { default as head } from './head.js'; -export { default as identity } from './identity.js'; -export { default as inRange } from './inRange.js'; -export { default as includes } from './includes.js'; -export { default as indexOf } from './indexOf.js'; -export { default as initial } from './initial.js'; -export { default as intersection } from './intersection.js'; -export { default as intersectionBy } from './intersectionBy.js'; -export { default as intersectionWith } from './intersectionWith.js'; -export { default as invert } from './invert.js'; -export { default as invertBy } from './invertBy.js'; -export { default as invoke } from './invoke.js'; -export { default as invokeMap } from './invokeMap.js'; -export { default as isArguments } from './isArguments.js'; -export { default as isArray } from './isArray.js'; -export { default as isArrayBuffer } from './isArrayBuffer.js'; -export { default as isArrayLike } from './isArrayLike.js'; -export { default as isArrayLikeObject } from './isArrayLikeObject.js'; -export { default as isBoolean } from './isBoolean.js'; -export { default as isBuffer } from './isBuffer.js'; -export { default as isDate } from './isDate.js'; -export { default as isElement } from './isElement.js'; -export { default as isEmpty } from './isEmpty.js'; -export { default as isEqual } from './isEqual.js'; -export { default as isEqualWith } from './isEqualWith.js'; -export { default as isError } from './isError.js'; -export { default as isFinite } from './isFinite.js'; -export { default as isFunction } from './isFunction.js'; -export { default as isInteger } from './isInteger.js'; -export { default as isLength } from './isLength.js'; -export { default as isMap } from './isMap.js'; -export { default as isMatch } from './isMatch.js'; -export { default as isMatchWith } from './isMatchWith.js'; -export { default as isNaN } from './isNaN.js'; -export { default as isNative } from './isNative.js'; -export { default as isNil } from './isNil.js'; -export { default as isNull } from './isNull.js'; -export { default as isNumber } from './isNumber.js'; -export { default as isObject } from './isObject.js'; -export { default as isObjectLike } from './isObjectLike.js'; -export { default as isPlainObject } from './isPlainObject.js'; -export { default as isRegExp } from './isRegExp.js'; -export { default as isSafeInteger } from './isSafeInteger.js'; -export { default as isSet } from './isSet.js'; -export { default as isString } from './isString.js'; -export { default as isSymbol } from './isSymbol.js'; -export { default as isTypedArray } from './isTypedArray.js'; -export { default as isUndefined } from './isUndefined.js'; -export { default as isWeakMap } from './isWeakMap.js'; -export { default as isWeakSet } from './isWeakSet.js'; -export { default as iteratee } from './iteratee.js'; -export { default as join } from './join.js'; -export { default as kebabCase } from './kebabCase.js'; -export { default as keyBy } from './keyBy.js'; -export { default as keys } from './keys.js'; -export { default as keysIn } from './keysIn.js'; -export { default as last } from './last.js'; -export { default as lastIndexOf } from './lastIndexOf.js'; -export { default as lodash } from './wrapperLodash.js'; -export { default as lowerCase } from './lowerCase.js'; -export { default as lowerFirst } from './lowerFirst.js'; -export { default as lt } from './lt.js'; -export { default as lte } from './lte.js'; -export { default as map } from './map.js'; -export { default as mapKeys } from './mapKeys.js'; -export { default as mapValues } from './mapValues.js'; -export { default as matches } from './matches.js'; -export { default as matchesProperty } from './matchesProperty.js'; -export { default as max } from './max.js'; -export { default as maxBy } from './maxBy.js'; -export { default as mean } from './mean.js'; -export { default as meanBy } from './meanBy.js'; -export { default as memoize } from './memoize.js'; -export { default as merge } from './merge.js'; -export { default as mergeWith } from './mergeWith.js'; -export { default as method } from './method.js'; -export { default as methodOf } from './methodOf.js'; -export { default as min } from './min.js'; -export { default as minBy } from './minBy.js'; -export { default as mixin } from './mixin.js'; -export { default as multiply } from './multiply.js'; -export { default as negate } from './negate.js'; -export { default as next } from './next.js'; -export { default as noop } from './noop.js'; -export { default as now } from './now.js'; -export { default as nth } from './nth.js'; -export { default as nthArg } from './nthArg.js'; -export { default as omit } from './omit.js'; -export { default as omitBy } from './omitBy.js'; -export { default as once } from './once.js'; -export { default as orderBy } from './orderBy.js'; -export { default as over } from './over.js'; -export { default as overArgs } from './overArgs.js'; -export { default as overEvery } from './overEvery.js'; -export { default as overSome } from './overSome.js'; -export { default as pad } from './pad.js'; -export { default as padEnd } from './padEnd.js'; -export { default as padStart } from './padStart.js'; -export { default as parseInt } from './parseInt.js'; -export { default as partial } from './partial.js'; -export { default as partialRight } from './partialRight.js'; -export { default as partition } from './partition.js'; -export { default as pick } from './pick.js'; -export { default as pickBy } from './pickBy.js'; -export { default as plant } from './plant.js'; -export { default as property } from './property.js'; -export { default as propertyOf } from './propertyOf.js'; -export { default as pull } from './pull.js'; -export { default as pullAll } from './pullAll.js'; -export { default as pullAllBy } from './pullAllBy.js'; -export { default as pullAllWith } from './pullAllWith.js'; -export { default as pullAt } from './pullAt.js'; -export { default as random } from './random.js'; -export { default as range } from './range.js'; -export { default as rangeRight } from './rangeRight.js'; -export { default as rearg } from './rearg.js'; -export { default as reduce } from './reduce.js'; -export { default as reduceRight } from './reduceRight.js'; -export { default as reject } from './reject.js'; -export { default as remove } from './remove.js'; -export { default as repeat } from './repeat.js'; -export { default as replace } from './replace.js'; -export { default as rest } from './rest.js'; -export { default as result } from './result.js'; -export { default as reverse } from './reverse.js'; -export { default as round } from './round.js'; -export { default as sample } from './sample.js'; -export { default as sampleSize } from './sampleSize.js'; -export { default as set } from './set.js'; -export { default as setWith } from './setWith.js'; -export { default as shuffle } from './shuffle.js'; -export { default as size } from './size.js'; -export { default as slice } from './slice.js'; -export { default as snakeCase } from './snakeCase.js'; -export { default as some } from './some.js'; -export { default as sortBy } from './sortBy.js'; -export { default as sortedIndex } from './sortedIndex.js'; -export { default as sortedIndexBy } from './sortedIndexBy.js'; -export { default as sortedIndexOf } from './sortedIndexOf.js'; -export { default as sortedLastIndex } from './sortedLastIndex.js'; -export { default as sortedLastIndexBy } from './sortedLastIndexBy.js'; -export { default as sortedLastIndexOf } from './sortedLastIndexOf.js'; -export { default as sortedUniq } from './sortedUniq.js'; -export { default as sortedUniqBy } from './sortedUniqBy.js'; -export { default as split } from './split.js'; -export { default as spread } from './spread.js'; -export { default as startCase } from './startCase.js'; -export { default as startsWith } from './startsWith.js'; -export { default as stubArray } from './stubArray.js'; -export { default as stubFalse } from './stubFalse.js'; -export { default as stubObject } from './stubObject.js'; -export { default as stubString } from './stubString.js'; -export { default as stubTrue } from './stubTrue.js'; -export { default as subtract } from './subtract.js'; -export { default as sum } from './sum.js'; -export { default as sumBy } from './sumBy.js'; -export { default as tail } from './tail.js'; -export { default as take } from './take.js'; -export { default as takeRight } from './takeRight.js'; -export { default as takeRightWhile } from './takeRightWhile.js'; -export { default as takeWhile } from './takeWhile.js'; -export { default as tap } from './tap.js'; -export { default as template } from './template.js'; -export { default as templateSettings } from './templateSettings.js'; -export { default as throttle } from './throttle.js'; -export { default as thru } from './thru.js'; -export { default as times } from './times.js'; -export { default as toArray } from './toArray.js'; -export { default as toFinite } from './toFinite.js'; -export { default as toInteger } from './toInteger.js'; -export { default as toIterator } from './toIterator.js'; -export { default as toJSON } from './toJSON.js'; -export { default as toLength } from './toLength.js'; -export { default as toLower } from './toLower.js'; -export { default as toNumber } from './toNumber.js'; -export { default as toPairs } from './toPairs.js'; -export { default as toPairsIn } from './toPairsIn.js'; -export { default as toPath } from './toPath.js'; -export { default as toPlainObject } from './toPlainObject.js'; -export { default as toSafeInteger } from './toSafeInteger.js'; -export { default as toString } from './toString.js'; -export { default as toUpper } from './toUpper.js'; -export { default as transform } from './transform.js'; -export { default as trim } from './trim.js'; -export { default as trimEnd } from './trimEnd.js'; -export { default as trimStart } from './trimStart.js'; -export { default as truncate } from './truncate.js'; -export { default as unary } from './unary.js'; -export { default as unescape } from './unescape.js'; -export { default as union } from './union.js'; -export { default as unionBy } from './unionBy.js'; -export { default as unionWith } from './unionWith.js'; -export { default as uniq } from './uniq.js'; -export { default as uniqBy } from './uniqBy.js'; -export { default as uniqWith } from './uniqWith.js'; -export { default as uniqueId } from './uniqueId.js'; -export { default as unset } from './unset.js'; -export { default as unzip } from './unzip.js'; -export { default as unzipWith } from './unzipWith.js'; -export { default as update } from './update.js'; -export { default as updateWith } from './updateWith.js'; -export { default as upperCase } from './upperCase.js'; -export { default as upperFirst } from './upperFirst.js'; -export { default as value } from './value.js'; -export { default as valueOf } from './valueOf.js'; -export { default as values } from './values.js'; -export { default as valuesIn } from './valuesIn.js'; -export { default as without } from './without.js'; -export { default as words } from './words.js'; -export { default as wrap } from './wrap.js'; -export { default as wrapperAt } from './wrapperAt.js'; -export { default as wrapperChain } from './wrapperChain.js'; -export { default as wrapperCommit } from './commit.js'; -export { default as wrapperLodash } from './wrapperLodash.js'; -export { default as wrapperNext } from './next.js'; -export { default as wrapperPlant } from './plant.js'; -export { default as wrapperReverse } from './wrapperReverse.js'; -export { default as wrapperToIterator } from './toIterator.js'; -export { default as wrapperValue } from './wrapperValue.js'; -export { default as xor } from './xor.js'; -export { default as xorBy } from './xorBy.js'; -export { default as xorWith } from './xorWith.js'; -export { default as zip } from './zip.js'; -export { default as zipObject } from './zipObject.js'; -export { default as zipObjectDeep } from './zipObjectDeep.js'; -export { default as zipWith } from './zipWith.js'; -export { default } from './lodash.default.js'; +import cloneDeep from './cloneDeep.js' +import isEqual from './isEqual.js' +import memoize from './memoize.js' + +export { cloneDeep, isEqual, memoize } + +export default { + cloneDeep, + isEqual, + memoize, +} diff --git a/restored-src/node_modules/lodash-es/package.json b/restored-src/node_modules/lodash-es/package.json new file mode 100644 index 000000000..7cd911253 --- /dev/null +++ b/restored-src/node_modules/lodash-es/package.json @@ -0,0 +1,6 @@ +{ + "name": "lodash-es", + "private": true, + "main": "./lodash.js", + "type": "module" +} diff --git a/restored-src/node_modules/lodash.camelcase/package.json b/restored-src/node_modules/lodash.camelcase/package.json new file mode 100644 index 000000000..703f8c59d --- /dev/null +++ b/restored-src/node_modules/lodash.camelcase/package.json @@ -0,0 +1,6 @@ +{ + "name": "lodash.camelcase", + "private": true, + "main": "./index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/lodash.debounce/package.json b/restored-src/node_modules/lodash.debounce/package.json new file mode 100644 index 000000000..6058ed6e2 --- /dev/null +++ b/restored-src/node_modules/lodash.debounce/package.json @@ -0,0 +1,6 @@ +{ + "name": "lodash.debounce", + "private": true, + "main": "./index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/lodash.includes/package.json b/restored-src/node_modules/lodash.includes/package.json new file mode 100644 index 000000000..8c4dea3a0 --- /dev/null +++ b/restored-src/node_modules/lodash.includes/package.json @@ -0,0 +1,6 @@ +{ + "name": "lodash.includes", + "private": true, + "main": "./index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/lodash.isboolean/package.json b/restored-src/node_modules/lodash.isboolean/package.json new file mode 100644 index 000000000..5c4ecb7aa --- /dev/null +++ b/restored-src/node_modules/lodash.isboolean/package.json @@ -0,0 +1,6 @@ +{ + "name": "lodash.isboolean", + "private": true, + "main": "./index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/lodash.isinteger/package.json b/restored-src/node_modules/lodash.isinteger/package.json new file mode 100644 index 000000000..1b3cc9cc3 --- /dev/null +++ b/restored-src/node_modules/lodash.isinteger/package.json @@ -0,0 +1,6 @@ +{ + "name": "lodash.isinteger", + "private": true, + "main": "./index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/lodash.isnumber/package.json b/restored-src/node_modules/lodash.isnumber/package.json new file mode 100644 index 000000000..33e44da4a --- /dev/null +++ b/restored-src/node_modules/lodash.isnumber/package.json @@ -0,0 +1,6 @@ +{ + "name": "lodash.isnumber", + "private": true, + "main": "./index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/lodash.isplainobject/package.json b/restored-src/node_modules/lodash.isplainobject/package.json new file mode 100644 index 000000000..ae0aff844 --- /dev/null +++ b/restored-src/node_modules/lodash.isplainobject/package.json @@ -0,0 +1,6 @@ +{ + "name": "lodash.isplainobject", + "private": true, + "main": "./index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/lodash.isstring/package.json b/restored-src/node_modules/lodash.isstring/package.json new file mode 100644 index 000000000..67e9e7397 --- /dev/null +++ b/restored-src/node_modules/lodash.isstring/package.json @@ -0,0 +1,6 @@ +{ + "name": "lodash.isstring", + "private": true, + "main": "./index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/lodash.once/package.json b/restored-src/node_modules/lodash.once/package.json new file mode 100644 index 000000000..6ac09fcde --- /dev/null +++ b/restored-src/node_modules/lodash.once/package.json @@ -0,0 +1,6 @@ +{ + "name": "lodash.once", + "private": true, + "main": "./index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/long/package.json b/restored-src/node_modules/long/package.json new file mode 100644 index 000000000..21cb159fc --- /dev/null +++ b/restored-src/node_modules/long/package.json @@ -0,0 +1,6 @@ +{ + "name": "long", + "private": true, + "main": "./umd/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/lru-cache/package.json b/restored-src/node_modules/lru-cache/package.json new file mode 100644 index 000000000..11f59291b --- /dev/null +++ b/restored-src/node_modules/lru-cache/package.json @@ -0,0 +1,6 @@ +{ + "name": "lru-cache", + "private": true, + "main": "./dist/esm/index.js", + "type": "module" +} diff --git a/restored-src/node_modules/marked/package.json b/restored-src/node_modules/marked/package.json new file mode 100644 index 000000000..f4d96724a --- /dev/null +++ b/restored-src/node_modules/marked/package.json @@ -0,0 +1,6 @@ +{ + "name": "marked", + "private": true, + "main": "./lib/marked.esm.js", + "type": "module" +} diff --git a/restored-src/node_modules/math-intrinsics/package.json b/restored-src/node_modules/math-intrinsics/package.json new file mode 100644 index 000000000..4501d8143 --- /dev/null +++ b/restored-src/node_modules/math-intrinsics/package.json @@ -0,0 +1,6 @@ +{ + "name": "math-intrinsics", + "private": true, + "main": "./abs.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/merge-stream/package.json b/restored-src/node_modules/merge-stream/package.json new file mode 100644 index 000000000..329fdb0e7 --- /dev/null +++ b/restored-src/node_modules/merge-stream/package.json @@ -0,0 +1,6 @@ +{ + "name": "merge-stream", + "private": true, + "main": "./index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/mime-types/package.json b/restored-src/node_modules/mime-types/package.json new file mode 100644 index 000000000..28d3e25d9 --- /dev/null +++ b/restored-src/node_modules/mime-types/package.json @@ -0,0 +1,6 @@ +{ + "name": "mime-types", + "private": true, + "main": "./index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/mimic-fn/package.json b/restored-src/node_modules/mimic-fn/package.json new file mode 100644 index 000000000..37c4f6803 --- /dev/null +++ b/restored-src/node_modules/mimic-fn/package.json @@ -0,0 +1,6 @@ +{ + "name": "mimic-fn", + "private": true, + "main": "./index.js", + "type": "module" +} diff --git a/restored-src/node_modules/ms/package.json b/restored-src/node_modules/ms/package.json new file mode 100644 index 000000000..ee0e1b0e9 --- /dev/null +++ b/restored-src/node_modules/ms/package.json @@ -0,0 +1,6 @@ +{ + "name": "ms", + "private": true, + "main": "./index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/mute-stream/package.json b/restored-src/node_modules/mute-stream/package.json new file mode 100644 index 000000000..80bda849e --- /dev/null +++ b/restored-src/node_modules/mute-stream/package.json @@ -0,0 +1,6 @@ +{ + "name": "mute-stream", + "private": true, + "main": "./lib/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/node-fetch/package.json b/restored-src/node_modules/node-fetch/package.json new file mode 100644 index 000000000..96a49ca9c --- /dev/null +++ b/restored-src/node_modules/node-fetch/package.json @@ -0,0 +1,6 @@ +{ + "name": "node-fetch", + "private": true, + "main": "./lib/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/node-forge/package.json b/restored-src/node_modules/node-forge/package.json new file mode 100644 index 000000000..5599a5b04 --- /dev/null +++ b/restored-src/node_modules/node-forge/package.json @@ -0,0 +1,6 @@ +{ + "name": "node-forge", + "private": true, + "main": "./lib/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/npm-run-path/package.json b/restored-src/node_modules/npm-run-path/package.json new file mode 100644 index 000000000..1e156c895 --- /dev/null +++ b/restored-src/node_modules/npm-run-path/package.json @@ -0,0 +1,6 @@ +{ + "name": "npm-run-path", + "private": true, + "main": "./index.js", + "type": "module" +} diff --git a/restored-src/node_modules/onetime/package.json b/restored-src/node_modules/onetime/package.json new file mode 100644 index 000000000..da726d7d4 --- /dev/null +++ b/restored-src/node_modules/onetime/package.json @@ -0,0 +1,6 @@ +{ + "name": "onetime", + "private": true, + "main": "./index.js", + "type": "module" +} diff --git a/restored-src/node_modules/open/package.json b/restored-src/node_modules/open/package.json new file mode 100644 index 000000000..5fbc03d2a --- /dev/null +++ b/restored-src/node_modules/open/package.json @@ -0,0 +1,6 @@ +{ + "name": "open", + "private": true, + "main": "./index.js", + "type": "module" +} diff --git a/restored-src/node_modules/p-map/package.json b/restored-src/node_modules/p-map/package.json new file mode 100644 index 000000000..4562f26aa --- /dev/null +++ b/restored-src/node_modules/p-map/package.json @@ -0,0 +1,6 @@ +{ + "name": "p-map", + "private": true, + "main": "./index.js", + "type": "module" +} diff --git a/restored-src/node_modules/parse5-htmlparser2-tree-adapter/package.json b/restored-src/node_modules/parse5-htmlparser2-tree-adapter/package.json new file mode 100644 index 000000000..0ad04936c --- /dev/null +++ b/restored-src/node_modules/parse5-htmlparser2-tree-adapter/package.json @@ -0,0 +1,6 @@ +{ + "name": "parse5-htmlparser2-tree-adapter", + "private": true, + "main": "./lib/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/parse5/package.json b/restored-src/node_modules/parse5/package.json new file mode 100644 index 000000000..a78874fcf --- /dev/null +++ b/restored-src/node_modules/parse5/package.json @@ -0,0 +1,6 @@ +{ + "name": "parse5", + "private": true, + "main": "./lib/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/path-key/package.json b/restored-src/node_modules/path-key/package.json new file mode 100644 index 000000000..8adb949ec --- /dev/null +++ b/restored-src/node_modules/path-key/package.json @@ -0,0 +1,6 @@ +{ + "name": "path-key", + "private": true, + "main": "./index.js", + "type": "module" +} diff --git a/restored-src/node_modules/picomatch/package.json b/restored-src/node_modules/picomatch/package.json new file mode 100644 index 000000000..b28db561f --- /dev/null +++ b/restored-src/node_modules/picomatch/package.json @@ -0,0 +1,6 @@ +{ + "name": "picomatch", + "private": true, + "main": "./index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/pkce-challenge/package.json b/restored-src/node_modules/pkce-challenge/package.json new file mode 100644 index 000000000..a84f08bee --- /dev/null +++ b/restored-src/node_modules/pkce-challenge/package.json @@ -0,0 +1,6 @@ +{ + "name": "pkce-challenge", + "private": true, + "main": "./dist/index.node.js", + "type": "module" +} diff --git a/restored-src/node_modules/plist/package.json b/restored-src/node_modules/plist/package.json new file mode 100644 index 000000000..0b89e063c --- /dev/null +++ b/restored-src/node_modules/plist/package.json @@ -0,0 +1,6 @@ +{ + "name": "plist", + "private": true, + "main": "./index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/pngjs/package.json b/restored-src/node_modules/pngjs/package.json new file mode 100644 index 000000000..7453e3e8f --- /dev/null +++ b/restored-src/node_modules/pngjs/package.json @@ -0,0 +1,6 @@ +{ + "name": "pngjs", + "private": true, + "main": "./lib/png.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/pretty-bytes/package.json b/restored-src/node_modules/pretty-bytes/package.json new file mode 100644 index 000000000..5002d055a --- /dev/null +++ b/restored-src/node_modules/pretty-bytes/package.json @@ -0,0 +1,6 @@ +{ + "name": "pretty-bytes", + "private": true, + "main": "./index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/proper-lockfile/package.json b/restored-src/node_modules/proper-lockfile/package.json new file mode 100644 index 000000000..73fcd9397 --- /dev/null +++ b/restored-src/node_modules/proper-lockfile/package.json @@ -0,0 +1,6 @@ +{ + "name": "proper-lockfile", + "private": true, + "main": "./index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/protobufjs/package.json b/restored-src/node_modules/protobufjs/package.json new file mode 100644 index 000000000..9aeb17315 --- /dev/null +++ b/restored-src/node_modules/protobufjs/package.json @@ -0,0 +1,6 @@ +{ + "name": "protobufjs", + "private": true, + "main": "./src/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/proxy-from-env/package.json b/restored-src/node_modules/proxy-from-env/package.json new file mode 100644 index 000000000..ffdc3269a --- /dev/null +++ b/restored-src/node_modules/proxy-from-env/package.json @@ -0,0 +1,6 @@ +{ + "name": "proxy-from-env", + "private": true, + "main": "./index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/punycode/package.json b/restored-src/node_modules/punycode/package.json new file mode 100644 index 000000000..89327dc2e --- /dev/null +++ b/restored-src/node_modules/punycode/package.json @@ -0,0 +1,6 @@ +{ + "name": "punycode", + "private": true, + "main": "./punycode.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/qrcode/package.json b/restored-src/node_modules/qrcode/package.json new file mode 100644 index 000000000..643158371 --- /dev/null +++ b/restored-src/node_modules/qrcode/package.json @@ -0,0 +1,6 @@ +{ + "name": "qrcode", + "private": true, + "main": "./lib/core/qrcode.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/react-reconciler/constants.js b/restored-src/node_modules/react-reconciler/constants.js new file mode 100644 index 000000000..3af820fdc --- /dev/null +++ b/restored-src/node_modules/react-reconciler/constants.js @@ -0,0 +1,3 @@ +"use strict"; + +module.exports = require("./cjs/react-reconciler-constants.production.js"); diff --git a/restored-src/node_modules/react-reconciler/package.json b/restored-src/node_modules/react-reconciler/package.json new file mode 100644 index 000000000..5630dbfc7 --- /dev/null +++ b/restored-src/node_modules/react-reconciler/package.json @@ -0,0 +1,6 @@ +{ + "name": "react-reconciler", + "private": true, + "main": "./cjs/react-reconciler.production.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/react/compiler-runtime.js b/restored-src/node_modules/react/compiler-runtime.js new file mode 100644 index 000000000..38f1426ef --- /dev/null +++ b/restored-src/node_modules/react/compiler-runtime.js @@ -0,0 +1,3 @@ +"use strict"; + +module.exports = require("./cjs/react-compiler-runtime.production.js"); diff --git a/restored-src/node_modules/react/jsx-dev-runtime.js b/restored-src/node_modules/react/jsx-dev-runtime.js new file mode 100644 index 000000000..f3435ec9f --- /dev/null +++ b/restored-src/node_modules/react/jsx-dev-runtime.js @@ -0,0 +1,10 @@ +"use strict"; + +const jsxRuntime = require("./jsx-runtime.js"); + +function jsxDEV(type, props, key) { + return jsxRuntime.jsx(type, props, key); +} + +exports.Fragment = jsxRuntime.Fragment; +exports.jsxDEV = jsxDEV; diff --git a/restored-src/node_modules/react/jsx-runtime.js b/restored-src/node_modules/react/jsx-runtime.js new file mode 100644 index 000000000..4b39fce94 --- /dev/null +++ b/restored-src/node_modules/react/jsx-runtime.js @@ -0,0 +1,15 @@ +"use strict"; + +const React = require("./cjs/react.production.js"); + +function jsx(type, props, key) { + if (key === undefined) { + return React.createElement(type, props); + } + + return React.createElement(type, { ...props, key }); +} + +exports.Fragment = React.Fragment; +exports.jsx = jsx; +exports.jsxs = jsx; diff --git a/restored-src/node_modules/react/package.json b/restored-src/node_modules/react/package.json new file mode 100644 index 000000000..3f8e64ea6 --- /dev/null +++ b/restored-src/node_modules/react/package.json @@ -0,0 +1,6 @@ +{ + "name": "react", + "private": true, + "main": "./cjs/react.production.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/readdirp/package.json b/restored-src/node_modules/readdirp/package.json new file mode 100644 index 000000000..b23e47b1d --- /dev/null +++ b/restored-src/node_modules/readdirp/package.json @@ -0,0 +1,6 @@ +{ + "name": "readdirp", + "private": true, + "main": "./esm/index.js", + "type": "module" +} diff --git a/restored-src/node_modules/retry/package.json b/restored-src/node_modules/retry/package.json new file mode 100644 index 000000000..9bbeefcb4 --- /dev/null +++ b/restored-src/node_modules/retry/package.json @@ -0,0 +1,6 @@ +{ + "name": "retry", + "private": true, + "main": "./lib/retry.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/run-applescript/package.json b/restored-src/node_modules/run-applescript/package.json new file mode 100644 index 000000000..d03f37a96 --- /dev/null +++ b/restored-src/node_modules/run-applescript/package.json @@ -0,0 +1,6 @@ +{ + "name": "run-applescript", + "private": true, + "main": "./index.js", + "type": "module" +} diff --git a/restored-src/node_modules/safe-buffer/package.json b/restored-src/node_modules/safe-buffer/package.json new file mode 100644 index 000000000..4b83608e5 --- /dev/null +++ b/restored-src/node_modules/safe-buffer/package.json @@ -0,0 +1,6 @@ +{ + "name": "safe-buffer", + "private": true, + "main": "./index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/scheduler/package.json b/restored-src/node_modules/scheduler/package.json new file mode 100644 index 000000000..4aab9b035 --- /dev/null +++ b/restored-src/node_modules/scheduler/package.json @@ -0,0 +1,6 @@ +{ + "name": "scheduler", + "private": true, + "main": "./cjs/scheduler.production.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/semver/package.json b/restored-src/node_modules/semver/package.json new file mode 100644 index 000000000..d4f1d7798 --- /dev/null +++ b/restored-src/node_modules/semver/package.json @@ -0,0 +1,6 @@ +{ + "name": "semver", + "private": true, + "main": "./index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/sharp/package.json b/restored-src/node_modules/sharp/package.json new file mode 100644 index 000000000..f9ecfc87c --- /dev/null +++ b/restored-src/node_modules/sharp/package.json @@ -0,0 +1,6 @@ +{ + "name": "sharp", + "private": true, + "main": "./lib/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/shebang-command/package.json b/restored-src/node_modules/shebang-command/package.json new file mode 100644 index 000000000..9583cbb72 --- /dev/null +++ b/restored-src/node_modules/shebang-command/package.json @@ -0,0 +1,6 @@ +{ + "name": "shebang-command", + "private": true, + "main": "./index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/shebang-regex/package.json b/restored-src/node_modules/shebang-regex/package.json new file mode 100644 index 000000000..e553f1f28 --- /dev/null +++ b/restored-src/node_modules/shebang-regex/package.json @@ -0,0 +1,6 @@ +{ + "name": "shebang-regex", + "private": true, + "main": "./index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/shell-quote/package.json b/restored-src/node_modules/shell-quote/package.json new file mode 100644 index 000000000..6c260fe91 --- /dev/null +++ b/restored-src/node_modules/shell-quote/package.json @@ -0,0 +1,6 @@ +{ + "name": "shell-quote", + "private": true, + "main": "./index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/signal-exit/index.js b/restored-src/node_modules/signal-exit/index.js index 93703f369..ccc8d3b88 100644 --- a/restored-src/node_modules/signal-exit/index.js +++ b/restored-src/node_modules/signal-exit/index.js @@ -78,6 +78,7 @@ if (!processOk(process)) { return remove } + module.exports.onExit = module.exports var unload = function unload () { if (!loaded || !processOk(global.process)) { diff --git a/restored-src/node_modules/signal-exit/package.json b/restored-src/node_modules/signal-exit/package.json new file mode 100644 index 000000000..4b993243f --- /dev/null +++ b/restored-src/node_modules/signal-exit/package.json @@ -0,0 +1,6 @@ +{ + "name": "signal-exit", + "private": true, + "main": "./index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/stack-utils/package.json b/restored-src/node_modules/stack-utils/package.json new file mode 100644 index 000000000..77b8f0727 --- /dev/null +++ b/restored-src/node_modules/stack-utils/package.json @@ -0,0 +1,6 @@ +{ + "name": "stack-utils", + "private": true, + "main": "./index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/string-width/package.json b/restored-src/node_modules/string-width/package.json new file mode 100644 index 000000000..8a9014044 --- /dev/null +++ b/restored-src/node_modules/string-width/package.json @@ -0,0 +1,6 @@ +{ + "name": "string-width", + "private": true, + "main": "./index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/strip-ansi/package.json b/restored-src/node_modules/strip-ansi/package.json new file mode 100644 index 000000000..a98ca699c --- /dev/null +++ b/restored-src/node_modules/strip-ansi/package.json @@ -0,0 +1,6 @@ +{ + "name": "strip-ansi", + "private": true, + "main": "./index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/strip-final-newline/package.json b/restored-src/node_modules/strip-final-newline/package.json new file mode 100644 index 000000000..4f4dc3af2 --- /dev/null +++ b/restored-src/node_modules/strip-final-newline/package.json @@ -0,0 +1,6 @@ +{ + "name": "strip-final-newline", + "private": true, + "main": "./index.js", + "type": "module" +} diff --git a/restored-src/node_modules/supports-color/package.json b/restored-src/node_modules/supports-color/package.json new file mode 100644 index 000000000..e70b4c32b --- /dev/null +++ b/restored-src/node_modules/supports-color/package.json @@ -0,0 +1,6 @@ +{ + "name": "supports-color", + "private": true, + "main": "./index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/supports-hyperlinks/package.json b/restored-src/node_modules/supports-hyperlinks/package.json new file mode 100644 index 000000000..8407158ba --- /dev/null +++ b/restored-src/node_modules/supports-hyperlinks/package.json @@ -0,0 +1,6 @@ +{ + "name": "supports-hyperlinks", + "private": true, + "main": "./index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/tr46/package.json b/restored-src/node_modules/tr46/package.json new file mode 100644 index 000000000..c3cdcde30 --- /dev/null +++ b/restored-src/node_modules/tr46/package.json @@ -0,0 +1,6 @@ +{ + "name": "tr46", + "private": true, + "main": "./index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/tree-kill/package.json b/restored-src/node_modules/tree-kill/package.json new file mode 100644 index 000000000..161d6468e --- /dev/null +++ b/restored-src/node_modules/tree-kill/package.json @@ -0,0 +1,6 @@ +{ + "name": "tree-kill", + "private": true, + "main": "./index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/tslib/package.json b/restored-src/node_modules/tslib/package.json new file mode 100644 index 000000000..99f34db0b --- /dev/null +++ b/restored-src/node_modules/tslib/package.json @@ -0,0 +1,6 @@ +{ + "name": "tslib", + "private": true, + "main": "./tslib.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/turndown/package.json b/restored-src/node_modules/turndown/package.json new file mode 100644 index 000000000..14e9cd422 --- /dev/null +++ b/restored-src/node_modules/turndown/package.json @@ -0,0 +1,6 @@ +{ + "name": "turndown", + "private": true, + "main": "./lib/turndown.cjs.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/undici/package.json b/restored-src/node_modules/undici/package.json new file mode 100644 index 000000000..9f13a415d --- /dev/null +++ b/restored-src/node_modules/undici/package.json @@ -0,0 +1,6 @@ +{ + "name": "undici", + "private": true, + "main": "./index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/universalify/package.json b/restored-src/node_modules/universalify/package.json new file mode 100644 index 000000000..75cf1f6cd --- /dev/null +++ b/restored-src/node_modules/universalify/package.json @@ -0,0 +1,6 @@ +{ + "name": "universalify", + "private": true, + "main": "./index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/usehooks-ts/package.json b/restored-src/node_modules/usehooks-ts/package.json new file mode 100644 index 000000000..5a1b33a49 --- /dev/null +++ b/restored-src/node_modules/usehooks-ts/package.json @@ -0,0 +1,6 @@ +{ + "name": "usehooks-ts", + "private": true, + "main": "./dist/index.js", + "type": "module" +} diff --git a/restored-src/node_modules/uuid/package.json b/restored-src/node_modules/uuid/package.json new file mode 100644 index 000000000..a74d13bbb --- /dev/null +++ b/restored-src/node_modules/uuid/package.json @@ -0,0 +1,6 @@ +{ + "name": "uuid", + "private": true, + "main": "./dist/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/vscode-jsonrpc/package.json b/restored-src/node_modules/vscode-jsonrpc/package.json new file mode 100644 index 000000000..a8ba8056e --- /dev/null +++ b/restored-src/node_modules/vscode-jsonrpc/package.json @@ -0,0 +1,6 @@ +{ + "name": "vscode-jsonrpc", + "private": true, + "main": "./lib/node/main.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/webidl-conversions/package.json b/restored-src/node_modules/webidl-conversions/package.json new file mode 100644 index 000000000..7121ca829 --- /dev/null +++ b/restored-src/node_modules/webidl-conversions/package.json @@ -0,0 +1,6 @@ +{ + "name": "webidl-conversions", + "private": true, + "main": "./lib/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/whatwg-url/package.json b/restored-src/node_modules/whatwg-url/package.json new file mode 100644 index 000000000..8d0ac2e62 --- /dev/null +++ b/restored-src/node_modules/whatwg-url/package.json @@ -0,0 +1,6 @@ +{ + "name": "whatwg-url", + "private": true, + "main": "./index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/which/package.json b/restored-src/node_modules/which/package.json new file mode 100644 index 000000000..e40298d3b --- /dev/null +++ b/restored-src/node_modules/which/package.json @@ -0,0 +1,6 @@ +{ + "name": "which", + "private": true, + "main": "./which.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/wrap-ansi/package.json b/restored-src/node_modules/wrap-ansi/package.json new file mode 100644 index 000000000..830551d77 --- /dev/null +++ b/restored-src/node_modules/wrap-ansi/package.json @@ -0,0 +1,6 @@ +{ + "name": "wrap-ansi", + "private": true, + "main": "./index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/ws/package.json b/restored-src/node_modules/ws/package.json new file mode 100644 index 000000000..d74a5b441 --- /dev/null +++ b/restored-src/node_modules/ws/package.json @@ -0,0 +1,6 @@ +{ + "name": "ws", + "private": true, + "main": "./wrapper.mjs", + "type": "module" +} diff --git a/restored-src/node_modules/wsl-utils/package.json b/restored-src/node_modules/wsl-utils/package.json new file mode 100644 index 000000000..b4d3ca1fc --- /dev/null +++ b/restored-src/node_modules/wsl-utils/package.json @@ -0,0 +1,6 @@ +{ + "name": "wsl-utils", + "private": true, + "main": "./index.js", + "type": "module" +} diff --git a/restored-src/node_modules/xmlbuilder/package.json b/restored-src/node_modules/xmlbuilder/package.json new file mode 100644 index 000000000..2a03d3837 --- /dev/null +++ b/restored-src/node_modules/xmlbuilder/package.json @@ -0,0 +1,6 @@ +{ + "name": "xmlbuilder", + "private": true, + "main": "./lib/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/xss/package.json b/restored-src/node_modules/xss/package.json new file mode 100644 index 000000000..ce51f9c1f --- /dev/null +++ b/restored-src/node_modules/xss/package.json @@ -0,0 +1,6 @@ +{ + "name": "xss", + "private": true, + "main": "./lib/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/yaml/package.json b/restored-src/node_modules/yaml/package.json new file mode 100644 index 000000000..7e86413c1 --- /dev/null +++ b/restored-src/node_modules/yaml/package.json @@ -0,0 +1,6 @@ +{ + "name": "yaml", + "private": true, + "main": "./dist/index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/yoctocolors-cjs/package.json b/restored-src/node_modules/yoctocolors-cjs/package.json new file mode 100644 index 000000000..988809a0e --- /dev/null +++ b/restored-src/node_modules/yoctocolors-cjs/package.json @@ -0,0 +1,6 @@ +{ + "name": "yoctocolors-cjs", + "private": true, + "main": "./index.js", + "type": "commonjs" +} diff --git a/restored-src/node_modules/zod-to-json-schema/dist/esm/index.js b/restored-src/node_modules/zod-to-json-schema/dist/esm/index.js index cdfb5306e..1643f6278 100644 --- a/restored-src/node_modules/zod-to-json-schema/dist/esm/index.js +++ b/restored-src/node_modules/zod-to-json-schema/dist/esm/index.js @@ -1,40 +1,4 @@ -export * from "./Options.js"; -export * from "./Refs.js"; -export * from "./errorMessages.js"; -export * from "./getRelativePath.js"; -export * from "./parseDef.js"; -export * from "./parseTypes.js"; -export * from "./parsers/any.js"; -export * from "./parsers/array.js"; -export * from "./parsers/bigint.js"; -export * from "./parsers/boolean.js"; -export * from "./parsers/branded.js"; -export * from "./parsers/catch.js"; -export * from "./parsers/date.js"; -export * from "./parsers/default.js"; -export * from "./parsers/effects.js"; -export * from "./parsers/enum.js"; -export * from "./parsers/intersection.js"; -export * from "./parsers/literal.js"; -export * from "./parsers/map.js"; -export * from "./parsers/nativeEnum.js"; -export * from "./parsers/never.js"; -export * from "./parsers/null.js"; -export * from "./parsers/nullable.js"; -export * from "./parsers/number.js"; -export * from "./parsers/object.js"; -export * from "./parsers/optional.js"; -export * from "./parsers/pipeline.js"; -export * from "./parsers/promise.js"; -export * from "./parsers/readonly.js"; -export * from "./parsers/record.js"; -export * from "./parsers/set.js"; -export * from "./parsers/string.js"; -export * from "./parsers/tuple.js"; -export * from "./parsers/undefined.js"; -export * from "./parsers/union.js"; -export * from "./parsers/unknown.js"; -export * from "./selectParser.js"; -export * from "./zodToJsonSchema.js"; -import { zodToJsonSchema } from "./zodToJsonSchema.js"; -export default zodToJsonSchema; +export * from './zodToJsonSchema.js' +import { zodToJsonSchema } from './zodToJsonSchema.js' + +export default zodToJsonSchema diff --git a/restored-src/node_modules/zod-to-json-schema/package.json b/restored-src/node_modules/zod-to-json-schema/package.json new file mode 100644 index 000000000..d30fe1375 --- /dev/null +++ b/restored-src/node_modules/zod-to-json-schema/package.json @@ -0,0 +1,6 @@ +{ + "name": "zod-to-json-schema", + "private": true, + "main": "./dist/esm/index.js", + "type": "module" +} diff --git a/restored-src/node_modules/zod/package.json b/restored-src/node_modules/zod/package.json new file mode 100644 index 000000000..48567f643 --- /dev/null +++ b/restored-src/node_modules/zod/package.json @@ -0,0 +1,6 @@ +{ + "name": "zod", + "private": true, + "main": "./index.js", + "type": "module" +} diff --git a/restored-src/node_modules/zod/v3/helpers/typeAliases.js b/restored-src/node_modules/zod/v3/helpers/typeAliases.js new file mode 100644 index 000000000..cb0ff5c3b --- /dev/null +++ b/restored-src/node_modules/zod/v3/helpers/typeAliases.js @@ -0,0 +1 @@ +export {}; diff --git a/restored-src/node_modules/zod/v3/index.js b/restored-src/node_modules/zod/v3/index.js new file mode 100644 index 000000000..070524f04 --- /dev/null +++ b/restored-src/node_modules/zod/v3/index.js @@ -0,0 +1 @@ +export * from './external.js' diff --git a/restored-src/node_modules/zod/v4-mini/index.js b/restored-src/node_modules/zod/v4-mini/index.js index 87b293a4f..0dcdf5a90 100644 --- a/restored-src/node_modules/zod/v4-mini/index.js +++ b/restored-src/node_modules/zod/v4-mini/index.js @@ -1 +1 @@ -export * from "../v4/mini/index.js"; +export * from '../v4/index.js' diff --git a/restored-src/node_modules/zod/v4/core/json-schema.js b/restored-src/node_modules/zod/v4/core/json-schema.js new file mode 100644 index 000000000..e3806290f --- /dev/null +++ b/restored-src/node_modules/zod/v4/core/json-schema.js @@ -0,0 +1 @@ +export * from './to-json-schema.js' diff --git a/restored-src/node_modules/zod/v4/mini/external.js b/restored-src/node_modules/zod/v4/mini/external.js index d42478c56..19b3108a1 100644 --- a/restored-src/node_modules/zod/v4/mini/external.js +++ b/restored-src/node_modules/zod/v4/mini/external.js @@ -1,13 +1 @@ -export * as core from "../core/index.js"; -export * from "./parse.js"; -export * from "./schemas.js"; -export * from "./checks.js"; -export { globalRegistry, registry, config, $output, $input, $brand, function, clone, regexes, treeifyError, prettifyError, formatError, flattenError, toJSONSchema, TimePrecision, NEVER, } from "../core/index.js"; -export * as locales from "../locales/index.js"; -/** A special constant with type `never` */ -// export const NEVER = {} as never; -// iso -export * as iso from "./iso.js"; -export { ZodMiniISODateTime, ZodMiniISODate, ZodMiniISOTime, ZodMiniISODuration, } from "./iso.js"; -// coerce -export * as coerce from "./coerce.js"; +export * from '../index.js' diff --git a/restored-src/node_modules/zod/v4/mini/index.js b/restored-src/node_modules/zod/v4/mini/index.js index f6c2a2649..19b3108a1 100644 --- a/restored-src/node_modules/zod/v4/mini/index.js +++ b/restored-src/node_modules/zod/v4/mini/index.js @@ -1,3 +1 @@ -import * as z from "./external.js"; -export * from "./external.js"; -export { z }; +export * from '../index.js' diff --git a/restored-src/package.json b/restored-src/package.json new file mode 100644 index 000000000..3cf185fea --- /dev/null +++ b/restored-src/package.json @@ -0,0 +1,11 @@ +{ + "name": "claude-code-restored-src", + "private": true, + "version": "0.1.0", + "type": "module", + "scripts": { + "bootstrap:manifests": "node ./scripts/synthesize-node-module-manifests.cjs", + "version:claude": "bun --preload ./macro-shim.cjs src/entrypoints/cli.tsx -v", + "help": "bun --preload ./macro-shim.cjs src/entrypoints/cli.tsx --help" + } +} diff --git a/restored-src/scripts/synthesize-node-module-manifests.cjs b/restored-src/scripts/synthesize-node-module-manifests.cjs new file mode 100644 index 000000000..137711515 --- /dev/null +++ b/restored-src/scripts/synthesize-node-module-manifests.cjs @@ -0,0 +1,238 @@ +const fs = require("fs"); +const path = require("path"); + +const NODE_MODULES_DIR = path.resolve(__dirname, "..", "node_modules"); + +const ENTRY_CANDIDATES = [ + "index.mjs", + "esm.mjs", + "index.js", + "index.cjs", + "main.js", + "main.mjs", + "wrapper.mjs", + "source/index.mjs", + "source/index.js", + "src/index.mjs", + "src/index.ts", + "src/index.js", + "src/main.js", + "src/main.mjs", + "dist/index.mjs", + "dist/index.js", + "dist/index.cjs", + "dist/main.mjs", + "dist/main.js", + "dist/main.cjs", + "dist-cjs/index.js", + "dist-cjs/index.cjs", + "dist-cjs/main.js", + "dist-cjs/main.cjs", + "lib/index.mjs", + "lib/index.js", + "lib/index.cjs", + "lib/main.mjs", + "lib/main.js", + "lib/main.cjs", + "lib/esm/main.js", + "lib/node/main.js", + "build/index.mjs", + "build/index.js", + "build/index.cjs", + "build/src/main.js", + "cjs/index.js", + "cjs/index.cjs", +]; + +const ENTRY_EXTENSIONS = new Set([".js", ".mjs", ".cjs", ".ts", ".tsx"]); + +function normalizeName(value) { + return value.toLowerCase().replace(/[^a-z0-9]/g, ""); +} + +function listPackages(rootDir) { + const packages = []; + for (const entry of fs.readdirSync(rootDir, { withFileTypes: true })) { + if (!entry.isDirectory()) continue; + if (entry.name.startsWith("@")) { + const scopeDir = path.join(rootDir, entry.name); + for (const scopedEntry of fs.readdirSync(scopeDir, { withFileTypes: true })) { + if (!scopedEntry.isDirectory()) continue; + packages.push({ + name: `${entry.name}/${scopedEntry.name}`, + dir: path.join(scopeDir, scopedEntry.name), + }); + } + continue; + } + packages.push({ + name: entry.name, + dir: path.join(rootDir, entry.name), + }); + } + return packages; +} + +function chooseCandidate(dir, pkgName) { + for (const relPath of ENTRY_CANDIDATES) { + const fullPath = path.join(dir, relPath); + if (fs.existsSync(fullPath) && fs.statSync(fullPath).isFile()) { + return relPath; + } + } + + const baseName = pkgName.split("/").pop(); + const matches = []; + + function walk(currentDir, depth) { + if (depth > 3) return; + for (const entry of fs.readdirSync(currentDir, { withFileTypes: true })) { + const fullPath = path.join(currentDir, entry.name); + const relPath = path.relative(dir, fullPath).replace(/\\/g, "/"); + if (entry.isDirectory()) { + walk(fullPath, depth + 1); + continue; + } + if (!ENTRY_EXTENSIONS.has(path.extname(entry.name))) continue; + matches.push(relPath); + } + } + + walk(dir, 0); + + if (matches.length === 1) { + return matches[0]; + } + + const preferred = matches + .filter((relPath) => { + const fileName = path.basename(relPath); + return ( + fileName === `${baseName}.mjs` || + fileName === `${baseName}.js` || + fileName === `${baseName}.cjs` || + fileName === `${baseName}.ts` || + fileName === `${baseName}.tsx` || + fileName === `${baseName}.production.js` + ); + }) + .sort((a, b) => a.length - b.length); + + if (preferred.length > 0) { + return preferred[0]; + } + + const normalizedVariants = new Set([ + normalizeName(baseName), + normalizeName(baseName.replace(/[-.]?(?:es|module)$/i, "")), + normalizeName(baseName.replace(/[-.]?js$/i, "")), + ]); + + const matchingPackageNames = matches + .filter((relPath) => { + const fileName = path.basename(relPath, path.extname(relPath)); + return normalizedVariants.has(normalizeName(fileName)); + }) + .sort((a, b) => a.length - b.length); + + if (matchingPackageNames.length > 0) { + return matchingPackageNames[0]; + } + + const fallbackIndex = matches + .filter((relPath) => /^(.+\/)?index\.(mjs|js|cjs|ts|tsx)$/.test(relPath)) + .sort((a, b) => a.length - b.length); + + if (fallbackIndex.length > 0) { + return fallbackIndex[0]; + } + + const rootFileFallback = matches + .filter((relPath) => !relPath.includes("/") && !path.basename(relPath).startsWith("_")) + .sort((a, b) => a.length - b.length); + + if (rootFileFallback.length > 0) { + return rootFileFallback[0]; + } + + return null; +} + +function detectModuleType(entryPath) { + const ext = path.extname(entryPath); + if (ext === ".mjs") return "module"; + if (ext === ".cjs") return "commonjs"; + + const source = fs.readFileSync(entryPath, "utf8"); + const hasEsmSyntax = + /^\s*import\s/m.test(source) || + /^\s*export\s/m.test(source) || + source.includes("import.meta"); + const hasCommonJsSyntax = + source.includes("module.exports") || + source.includes("exports.") || + source.includes("require("); + + if (hasEsmSyntax && !hasCommonJsSyntax) { + return "module"; + } + + return "commonjs"; +} + +function writeManifest(pkg) { + const manifestPath = path.join(pkg.dir, "package.json"); + if (fs.existsSync(manifestPath)) { + return { status: "existing" }; + } + + const entry = chooseCandidate(pkg.dir, pkg.name); + if (!entry) { + return { status: "missing-entry" }; + } + + const entryPath = path.join(pkg.dir, entry); + const type = detectModuleType(entryPath); + const manifest = { + name: pkg.name, + private: true, + main: `./${entry.replace(/\\/g, "/")}`, + type, + }; + + fs.writeFileSync(manifestPath, `${JSON.stringify(manifest, null, 2)}\n`, "utf8"); + return { status: "written", entry: manifest.main, type }; +} + +function main() { + const packages = listPackages(NODE_MODULES_DIR); + let written = 0; + let existing = 0; + const missing = []; + + for (const pkg of packages) { + const result = writeManifest(pkg); + if (result.status === "written") { + written += 1; + } else if (result.status === "existing") { + existing += 1; + } else { + missing.push(pkg.name); + } + } + + console.log( + JSON.stringify( + { + packages: packages.length, + written, + existing, + missing, + }, + null, + 2, + ), + ); +} + +main(); diff --git a/restored-src/src/commands/insights.ts b/restored-src/src/commands/insights.ts index f66380a7c..7583d49f4 100644 --- a/restored-src/src/commands/insights.ts +++ b/restored-src/src/commands/insights.ts @@ -1,5 +1,5 @@ import { execFileSync } from 'child_process' -import { diffLines } from 'diff' +import { diffLines } from 'diff/libesm/diff/line.js' import { constants as fsConstants } from 'fs' import { copyFile, diff --git a/restored-src/src/components/StructuredDiff/Fallback.tsx b/restored-src/src/components/StructuredDiff/Fallback.tsx index 8948d7688..c33566f57 100644 --- a/restored-src/src/components/StructuredDiff/Fallback.tsx +++ b/restored-src/src/components/StructuredDiff/Fallback.tsx @@ -1,5 +1,6 @@ import { c as _c } from "react/compiler-runtime"; -import { diffWordsWithSpace, type StructuredPatchHunk } from 'diff'; +import type { StructuredPatchHunk } from 'diff'; +import { diffWordsWithSpace } from 'diff/libesm/diff/word.js'; import * as React from 'react'; import { useMemo } from 'react'; import type { ThemeName } from 'src/utils/theme.js'; @@ -484,4 +485,4 @@ export function numberDiffLines(diff: LineObject[], startLine: number): DiffLine } return result; } -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJkaWZmV29yZHNXaXRoU3BhY2UiLCJTdHJ1Y3R1cmVkUGF0Y2hIdW5rIiwiUmVhY3QiLCJ1c2VNZW1vIiwiVGhlbWVOYW1lIiwic3RyaW5nV2lkdGgiLCJCb3giLCJOb1NlbGVjdCIsIlRleHQiLCJ1c2VUaGVtZSIsIndyYXBUZXh0IiwiRGlmZkxpbmUiLCJjb2RlIiwidHlwZSIsImkiLCJvcmlnaW5hbENvZGUiLCJ3b3JkRGlmZiIsIm1hdGNoZWRMaW5lIiwiTGluZU9iamVjdCIsIkRpZmZQYXJ0IiwiYWRkZWQiLCJyZW1vdmVkIiwidmFsdWUiLCJQcm9wcyIsInBhdGNoIiwiZGltIiwid2lkdGgiLCJDSEFOR0VfVEhSRVNIT0xEIiwiU3RydWN0dXJlZERpZmZGYWxsYmFjayIsInQwIiwiJCIsIl9jIiwidGhlbWUiLCJ0MSIsImxpbmVzIiwib2xkU3RhcnQiLCJmb3JtYXREaWZmIiwiZGlmZiIsInQyIiwibWFwIiwiX3RlbXAiLCJ0MyIsIm5vZGUiLCJ0cmFuc2Zvcm1MaW5lc1RvT2JqZWN0cyIsInN0YXJ0c1dpdGgiLCJzbGljZSIsInByb2Nlc3NBZGphY2VudExpbmVzIiwibGluZU9iamVjdHMiLCJwcm9jZXNzZWRMaW5lcyIsImxlbmd0aCIsImN1cnJlbnQiLCJyZW1vdmVMaW5lcyIsImoiLCJsaW5lIiwicHVzaCIsImFkZExpbmVzIiwicGFpckNvdW50IiwiTWF0aCIsIm1pbiIsImsiLCJyZW1vdmVMaW5lIiwiYWRkTGluZSIsImZpbHRlciIsIkJvb2xlYW4iLCJjYWxjdWxhdGVXb3JkRGlmZnMiLCJvbGRUZXh0IiwibmV3VGV4dCIsInJlc3VsdCIsImlnbm9yZUNhc2UiLCJnZW5lcmF0ZVdvcmREaWZmRWxlbWVudHMiLCJpdGVtIiwibWF4V2lkdGgiLCJvdmVycmlkZVRoZW1lIiwiUmVhY3ROb2RlIiwicmVtb3ZlZExpbmVUZXh0IiwiYWRkZWRMaW5lVGV4dCIsIndvcmREaWZmcyIsInRvdGFsTGVuZ3RoIiwiY2hhbmdlZExlbmd0aCIsInBhcnQiLCJyZWR1Y2UiLCJzdW0iLCJjaGFuZ2VSYXRpbyIsImRpZmZQcmVmaXgiLCJkaWZmUHJlZml4V2lkdGgiLCJhdmFpbGFibGVDb250ZW50V2lkdGgiLCJtYXgiLCJ3cmFwcGVkTGluZXMiLCJjb250ZW50IiwiY29udGVudFdpZHRoIiwiY3VycmVudExpbmUiLCJjdXJyZW50TGluZVdpZHRoIiwiZm9yRWFjaCIsInBhcnRJbmRleCIsInNob3VsZFNob3ciLCJwYXJ0QmdDb2xvciIsInBhcnRXcmFwcGVkIiwicGFydExpbmVzIiwic3BsaXQiLCJwYXJ0TGluZSIsImxpbmVJZHgiLCJsaW5lSW5kZXgiLCJrZXkiLCJsaW5lQmdDb2xvciIsImxpbmVOdW0iLCJ1bmRlZmluZWQiLCJsaW5lTnVtU3RyIiwidG9TdHJpbmciLCJwYWRTdGFydCIsInJlcGVhdCIsInVzZWRXaWR0aCIsInBhZGRpbmciLCJzdGFydGluZ0xpbmVOdW1iZXIiLCJzYWZlV2lkdGgiLCJmbG9vciIsImxzIiwibnVtYmVyRGlmZkxpbmVzIiwibWF4TGluZU51bWJlciIsImZsYXRNYXAiLCJ3b3JkRGlmZkVsZW1lbnRzIiwid3JhcHBlZFRleHQiLCJzaWdpbCIsImJnQ29sb3IiLCJzdGFydExpbmUiLCJxdWV1ZSIsInNoaWZ0IiwibnVtUmVtb3ZlZCJdLCJzb3VyY2VzIjpbIkZhbGxiYWNrLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBkaWZmV29yZHNXaXRoU3BhY2UsIHR5cGUgU3RydWN0dXJlZFBhdGNoSHVuayB9IGZyb20gJ2RpZmYnXG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHVzZU1lbW8gfSBmcm9tICdyZWFjdCdcbmltcG9ydCB0eXBlIHsgVGhlbWVOYW1lIH0gZnJvbSAnc3JjL3V0aWxzL3RoZW1lLmpzJ1xuaW1wb3J0IHsgc3RyaW5nV2lkdGggfSBmcm9tICcuLi8uLi9pbmsvc3RyaW5nV2lkdGguanMnXG5pbXBvcnQgeyBCb3gsIE5vU2VsZWN0LCBUZXh0LCB1c2VUaGVtZSwgd3JhcFRleHQgfSBmcm9tICcuLi8uLi9pbmsuanMnXG5cbi8qXG4gKiBTdHJ1Y3R1cmVkRGlmZkZhbGxiYWNrIENvbXBvbmVudDogV29yZC1MZXZlbCBEaWZmIEhpZ2hsaWdodGluZyBFeGFtcGxlXG4gKlxuICogVGhpcyBjb21wb25lbnQgc2hvd3MgZGlmZiBjaGFuZ2VzIHdpdGggd29yZC1sZXZlbCBoaWdobGlnaHRpbmcuIEhlcmUncyBhIHdhbGt0aHJvdWdoOlxuICpcbiAqIEV4YW1wbGU6XG4gKiBgYGBcbiAqIC8vIE9yaWdpbmFsIGNvZGVcbiAqIGZ1bmN0aW9uIG9sZE5hbWUocGFyYW0pIHtcbiAqICAgcmV0dXJuIHBhcmFtLm9sZFByb3BlcnR5O1xuICogfVxuICpcbiAqIC8vIENoYW5nZWQgY29kZVxuICogZnVuY3Rpb24gbmV3TmFtZShwYXJhbSkge1xuICogICByZXR1cm4gcGFyYW0ubmV3UHJvcGVydHk7XG4gKiB9XG4gKiBgYGBcbiAqXG4gKiBQcm9jZXNzaW5nIGZsb3c6XG4gKiAxLiBDb21wb25lbnQgcmVjZWl2ZXMgYSBwYXRjaCB3aXRoIGxpbmVzIGluY2x1ZGluZyAnKycgYW5kICctJyBwcmVmaXhlc1xuICogMi4gTGluZXMgYXJlIHRyYW5zZm9ybWVkIGludG8gb2JqZWN0cyB3aXRoIHR5cGUgKGFkZC9yZW1vdmUvbm9jaGFuZ2UpXG4gKiAzLiBSZWxhdGVkIGFkZC9yZW1vdmUgbGluZXMgYXJlIHBhaXJlZCAoZS5nLiwgb2xkTmFtZSB3aXRoIG5ld05hbWUpXG4gKiA0LiBXb3JkLWxldmVsIGRpZmZpbmcgaWRlbnRpZmllcyBzcGVjaWZpYyBjaGFuZ2VkIHBhcnRzOlxuICogICAgW1xuICogICAgICB7IHZhbHVlOiAnZnVuY3Rpb24gJywgYWRkZWQ6IHVuZGVmaW5lZCwgcmVtb3ZlZDogdW5kZWZpbmVkIH0sICAvLyBDb21tb25cbiAqICAgICAgeyB2YWx1ZTogJ29sZE5hbWUnLCByZW1vdmVkOiB0cnVlIH0sICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gUmVtb3ZlZFxuICogICAgICB7IHZhbHVlOiAnbmV3TmFtZScsIGFkZGVkOiB0cnVlIH0sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBZGRlZFxuICogICAgICB7IHZhbHVlOiAnKHBhcmFtKSB7JywgYWRkZWQ6IHVuZGVmaW5lZCwgcmVtb3ZlZDogdW5kZWZpbmVkIH0gICAvLyBDb21tb25cbiAqICAgIF1cbiAqIDUuIFJlbmRlcnMgd2l0aCBlbmhhbmNlZCBoaWdobGlnaHRpbmc6XG4gKiAgICAtIENvbW1vbiBwYXJ0cyBhcmUgc2hvd24gbm9ybWFsbHlcbiAqICAgIC0gUmVtb3ZlZCB3b3JkcyBnZXQgYSBkYXJrZXIgcmVkIGJhY2tncm91bmRcbiAqICAgIC0gQWRkZWQgd29yZHMgZ2V0IGEgZGFya2VyIGdyZWVuIGJhY2tncm91bmRcbiAqXG4gKiBUaGlzIHByb2R1Y2VzIGEgdmlzdWFsbHkgY2xlYXIgZGlmZiB3aGVyZSB1c2VycyBjYW4gc2VlIGV4YWN0bHkgd2hpY2ggd29yZHNcbiAqIGNoYW5nZWQgcmF0aGVyIHRoYW4ganVzdCB3aGljaCBsaW5lcyB3ZXJlIG1vZGlmaWVkLlxuICovXG5cbi8vIERlZmluZSBEaWZmTGluZSBpbnRlcmZhY2UgdG8gYmUgdXNlZCB0aHJvdWdob3V0IHRoZSBmaWxlXG5pbnRlcmZhY2UgRGlmZkxpbmUge1xuICBjb2RlOiBzdHJpbmdcbiAgdHlwZTogJ2FkZCcgfCAncmVtb3ZlJyB8ICdub2NoYW5nZSdcbiAgaTogbnVtYmVyXG4gIG9yaWdpbmFsQ29kZTogc3RyaW5nXG4gIHdvcmREaWZmPzogYm9vbGVhbiAvLyBGbGFnIGZvciB3b3JkLWxldmVsIGRpZmZpbmdcbiAgbWF0Y2hlZExpbmU/OiBEaWZmTGluZVxufVxuXG4vLyBMaW5lIG9iamVjdCB0eXBlIGZvciBpbnRlcm5hbCBmdW5jdGlvbnNcbmV4cG9ydCBpbnRlcmZhY2UgTGluZU9iamVjdCB7XG4gIGNvZGU6IHN0cmluZ1xuICBpOiBudW1iZXJcbiAgdHlwZTogJ2FkZCcgfCAncmVtb3ZlJyB8ICdub2NoYW5nZSdcbiAgb3JpZ2luYWxDb2RlOiBzdHJpbmdcbiAgd29yZERpZmY/OiBib29sZWFuXG4gIG1hdGNoZWRMaW5lPzogTGluZU9iamVjdFxufVxuXG4vLyBUeXBlIGZvciB3b3JkLWxldmVsIGRpZmYgcGFydHNcbmludGVyZmFjZSBEaWZmUGFydCB7XG4gIGFkZGVkPzogYm9vbGVhblxuICByZW1vdmVkPzogYm9vbGVhblxuICB2YWx1ZTogc3RyaW5nXG59XG5cbnR5cGUgUHJvcHMgPSB7XG4gIHBhdGNoOiBTdHJ1Y3R1cmVkUGF0Y2hIdW5rXG4gIGRpbTogYm9vbGVhblxuICB3aWR0aDogbnVtYmVyXG59XG5cbi8vIFRocmVzaG9sZCBmb3Igd2hlbiB3ZSBzaG93IGEgZnVsbC1saW5lIGRpZmYgaW5zdGVhZCBvZiB3b3JkLWxldmVsIGRpZmZpbmdcbmNvbnN0IENIQU5HRV9USFJFU0hPTEQgPSAwLjRcblxuZXhwb3J0IGZ1bmN0aW9uIFN0cnVjdHVyZWREaWZmRmFsbGJhY2soe1xuICBwYXRjaCxcbiAgZGltLFxuICB3aWR0aCxcbn06IFByb3BzKTogUmVhY3QuUmVhY3ROb2RlIHtcbiAgY29uc3QgW3RoZW1lXSA9IHVzZVRoZW1lKClcbiAgY29uc3QgZGlmZiA9IHVzZU1lbW8oXG4gICAgKCkgPT4gZm9ybWF0RGlmZihwYXRjaC5saW5lcywgcGF0Y2gub2xkU3RhcnQsIHdpZHRoLCBkaW0sIHRoZW1lKSxcbiAgICBbcGF0Y2gubGluZXMsIHBhdGNoLm9sZFN0YXJ0LCB3aWR0aCwgZGltLCB0aGVtZV0sXG4gIClcblxuICByZXR1cm4gKFxuICAgIDxCb3ggZmxleERpcmVjdGlvbj1cImNvbHVtblwiIGZsZXhHcm93PXsxfT5cbiAgICAgIHtkaWZmLm1hcCgobm9kZSwgaSkgPT4gKFxuICAgICAgICA8Qm94IGtleT17aX0+e25vZGV9PC9Cb3g+XG4gICAgICApKX1cbiAgICA8L0JveD5cbiAgKVxufVxuXG4vLyBUcmFuc2Zvcm0gbGluZXMgdG8gbGluZSBvYmplY3RzIHdpdGggdHlwZSBpbmZvcm1hdGlvblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybUxpbmVzVG9PYmplY3RzKGxpbmVzOiBzdHJpbmdbXSk6IExpbmVPYmplY3RbXSB7XG4gIHJldHVybiBsaW5lcy5tYXAoY29kZSA9PiB7XG4gICAgaWYgKGNvZGUuc3RhcnRzV2l0aCgnKycpKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBjb2RlOiBjb2RlLnNsaWNlKDEpLFxuICAgICAgICBpOiAwLFxuICAgICAgICB0eXBlOiAnYWRkJyxcbiAgICAgICAgb3JpZ2luYWxDb2RlOiBjb2RlLnNsaWNlKDEpLFxuICAgICAgfVxuICAgIH1cbiAgICBpZiAoY29kZS5zdGFydHNXaXRoKCctJykpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGNvZGU6IGNvZGUuc2xpY2UoMSksXG4gICAgICAgIGk6IDAsXG4gICAgICAgIHR5cGU6ICdyZW1vdmUnLFxuICAgICAgICBvcmlnaW5hbENvZGU6IGNvZGUuc2xpY2UoMSksXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICBjb2RlOiBjb2RlLnNsaWNlKDEpLFxuICAgICAgaTogMCxcbiAgICAgIHR5cGU6ICdub2NoYW5nZScsXG4gICAgICBvcmlnaW5hbENvZGU6IGNvZGUuc2xpY2UoMSksXG4gICAgfVxuICB9KVxufVxuXG4vLyBHcm91cCBhZGphY2VudCBhZGQvcmVtb3ZlIGxpbmVzIGZvciB3b3JkLWxldmVsIGRpZmZpbmdcbmV4cG9ydCBmdW5jdGlvbiBwcm9jZXNzQWRqYWNlbnRMaW5lcyhsaW5lT2JqZWN0czogTGluZU9iamVjdFtdKTogTGluZU9iamVjdFtdIHtcbiAgY29uc3QgcHJvY2Vzc2VkTGluZXM6IExpbmVPYmplY3RbXSA9IFtdXG4gIGxldCBpID0gMFxuXG4gIHdoaWxlIChpIDwgbGluZU9iamVjdHMubGVuZ3RoKSB7XG4gICAgY29uc3QgY3VycmVudCA9IGxpbmVPYmplY3RzW2ldXG4gICAgaWYgKCFjdXJyZW50KSB7XG4gICAgICBpKytcbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuXG4gICAgLy8gRmluZCBhIHNlcXVlbmNlIG9mIHJlbW92ZSBmb2xsb3dlZCBieSBhZGQgKHBvc3NpYmxlIHdvcmQtbGV2ZWwgZGlmZiBjYW5kaWRhdGVzKVxuICAgIGlmIChjdXJyZW50LnR5cGUgPT09ICdyZW1vdmUnKSB7XG4gICAgICBjb25zdCByZW1vdmVMaW5lczogTGluZU9iamVjdFtdID0gW2N1cnJlbnRdXG4gICAgICBsZXQgaiA9IGkgKyAxXG5cbiAgICAgIC8vIENvbGxlY3QgY29uc2VjdXRpdmUgcmVtb3ZlIGxpbmVzXG4gICAgICB3aGlsZSAoaiA8IGxpbmVPYmplY3RzLmxlbmd0aCAmJiBsaW5lT2JqZWN0c1tqXT8udHlwZSA9PT0gJ3JlbW92ZScpIHtcbiAgICAgICAgY29uc3QgbGluZSA9IGxpbmVPYmplY3RzW2pdXG4gICAgICAgIGlmIChsaW5lKSB7XG4gICAgICAgICAgcmVtb3ZlTGluZXMucHVzaChsaW5lKVxuICAgICAgICB9XG4gICAgICAgIGorK1xuICAgICAgfVxuXG4gICAgICAvLyBDaGVjayBpZiB0aGVyZSBhcmUgYWRkIGxpbmVzIGZvbGxvd2luZyB0aGUgcmVtb3ZlIGxpbmVzXG4gICAgICBjb25zdCBhZGRMaW5lczogTGluZU9iamVjdFtdID0gW11cbiAgICAgIHdoaWxlIChqIDwgbGluZU9iamVjdHMubGVuZ3RoICYmIGxpbmVPYmplY3RzW2pdPy50eXBlID09PSAnYWRkJykge1xuICAgICAgICBjb25zdCBsaW5lID0gbGluZU9iamVjdHNbal1cbiAgICAgICAgaWYgKGxpbmUpIHtcbiAgICAgICAgICBhZGRMaW5lcy5wdXNoKGxpbmUpXG4gICAgICAgIH1cbiAgICAgICAgaisrXG4gICAgICB9XG5cbiAgICAgIC8vIElmIHdlIGhhdmUgYm90aCByZW1vdmUgYW5kIGFkZCBsaW5lcywgcGVyZm9ybSB3b3JkLWxldmVsIGRpZmZpbmdcbiAgICAgIGlmIChyZW1vdmVMaW5lcy5sZW5ndGggPiAwICYmIGFkZExpbmVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgLy8gRm9yIHdvcmQgZGlmZmluZywgd2UnbGwgY29tcGFyZSBlYWNoIHBhaXIgb2YgbGluZXMgb3IgdGhlIGNsb3Nlc3QgYXZhaWxhYmxlIG1hdGNoXG4gICAgICAgIGNvbnN0IHBhaXJDb3VudCA9IE1hdGgubWluKHJlbW92ZUxpbmVzLmxlbmd0aCwgYWRkTGluZXMubGVuZ3RoKVxuXG4gICAgICAgIC8vIEFkZCBwYWlyZWQgbGluZXMgd2l0aCB3b3JkIGRpZmYgaW5mb1xuICAgICAgICBmb3IgKGxldCBrID0gMDsgayA8IHBhaXJDb3VudDsgaysrKSB7XG4gICAgICAgICAgY29uc3QgcmVtb3ZlTGluZSA9IHJlbW92ZUxpbmVzW2tdXG4gICAgICAgICAgY29uc3QgYWRkTGluZSA9IGFkZExpbmVzW2tdXG5cbiAgICAgICAgICBpZiAocmVtb3ZlTGluZSAmJiBhZGRMaW5lKSB7XG4gICAgICAgICAgICByZW1vdmVMaW5lLndvcmREaWZmID0gdHJ1ZVxuICAgICAgICAgICAgYWRkTGluZS53b3JkRGlmZiA9IHRydWVcblxuICAgICAgICAgICAgLy8gU3RvcmUgdGhlIG1hdGNoZWQgcGFpciBmb3IgbGF0ZXIgd29yZCBkaWZmaW5nXG4gICAgICAgICAgICByZW1vdmVMaW5lLm1hdGNoZWRMaW5lID0gYWRkTGluZVxuICAgICAgICAgICAgYWRkTGluZS5tYXRjaGVkTGluZSA9IHJlbW92ZUxpbmVcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBBZGQgYWxsIHJlbW92ZSBsaW5lcyAoYm90aCBwYWlyZWQgYW5kIHVucGFpcmVkKVxuICAgICAgICBwcm9jZXNzZWRMaW5lcy5wdXNoKC4uLnJlbW92ZUxpbmVzLmZpbHRlcihCb29sZWFuKSlcblxuICAgICAgICAvLyBUaGVuIGFkZCBhbGwgYWRkIGxpbmVzIChib3RoIHBhaXJlZCBhbmQgdW5wYWlyZWQpXG4gICAgICAgIHByb2Nlc3NlZExpbmVzLnB1c2goLi4uYWRkTGluZXMuZmlsdGVyKEJvb2xlYW4pKVxuXG4gICAgICAgIGkgPSBqIC8vIFNraXAgYWxsIHRoZSBsaW5lcyB3ZSd2ZSBwcm9jZXNzZWRcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIE5vIG1hdGNoaW5nIGFkZCBsaW5lcywganVzdCBhZGQgdGhlIGN1cnJlbnQgcmVtb3ZlIGxpbmVcbiAgICAgICAgcHJvY2Vzc2VkTGluZXMucHVzaChjdXJyZW50KVxuICAgICAgICBpKytcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgLy8gTm90IGEgcmVtb3ZlIGxpbmUsIGp1c3QgYWRkIGl0XG4gICAgICBwcm9jZXNzZWRMaW5lcy5wdXNoKGN1cnJlbnQpXG4gICAgICBpKytcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcHJvY2Vzc2VkTGluZXNcbn1cblxuLy8gQ2FsY3VsYXRlIHdvcmQtbGV2ZWwgZGlmZnMgYmV0d2VlbiB0d28gdGV4dCBzdHJpbmdzXG5leHBvcnQgZnVuY3Rpb24gY2FsY3VsYXRlV29yZERpZmZzKFxuICBvbGRUZXh0OiBzdHJpbmcsXG4gIG5ld1RleHQ6IHN0cmluZyxcbik6IERpZmZQYXJ0W10ge1xuICAvLyBVc2UgZGlmZldvcmRzV2l0aFNwYWNlIGluc3RlYWQgb2YgZGlmZldvcmRzIHRvIHByZXNlcnZlIHdoaXRlc3BhY2VcbiAgLy8gVGhpcyBlbnN1cmVzIHNwYWNlcyBiZXR3ZWVuIHRva2VucyBsaWtlID4gYW5kIHsgYXJlIHByZXNlcnZlZFxuICBjb25zdCByZXN1bHQgPSBkaWZmV29yZHNXaXRoU3BhY2Uob2xkVGV4dCwgbmV3VGV4dCwgeyBpZ25vcmVDYXNlOiBmYWxzZSB9KVxuXG4gIHJldHVybiByZXN1bHRcbn1cblxuLy8gUHJvY2VzcyB3b3JkLWxldmVsIGRpZmZzIHdpdGggbWFudWFsIHdyYXBwaW5nIHN1cHBvcnRcbmZ1bmN0aW9uIGdlbmVyYXRlV29yZERpZmZFbGVtZW50cyhcbiAgaXRlbTogRGlmZkxpbmUsXG4gIHdpZHRoOiBudW1iZXIsXG4gIG1heFdpZHRoOiBudW1iZXIsXG4gIGRpbTogYm9vbGVhbixcbiAgb3ZlcnJpZGVUaGVtZT86IFRoZW1lTmFtZSxcbik6IFJlYWN0LlJlYWN0Tm9kZVtdIHwgbnVsbCB7XG4gIGNvbnN0IHsgdHlwZSwgaSwgd29yZERpZmYsIG1hdGNoZWRMaW5lLCBvcmlnaW5hbENvZGUgfSA9IGl0ZW1cblxuICBpZiAoIXdvcmREaWZmIHx8ICFtYXRjaGVkTGluZSkge1xuICAgIHJldHVybiBudWxsIC8vIFRoaXMgZnVuY3Rpb24gb25seSBoYW5kbGVzIHdvcmQtbGV2ZWwgZGlmZiByZW5kZXJpbmdcbiAgfVxuXG4gIGNvbnN0IHJlbW92ZWRMaW5lVGV4dCA9XG4gICAgdHlwZSA9PT0gJ3JlbW92ZScgPyBvcmlnaW5hbENvZGUgOiBtYXRjaGVkTGluZS5vcmlnaW5hbENvZGVcbiAgY29uc3QgYWRkZWRMaW5lVGV4dCA9XG4gICAgdHlwZSA9PT0gJ3JlbW92ZScgPyBtYXRjaGVkTGluZS5vcmlnaW5hbENvZGUgOiBvcmlnaW5hbENvZGVcblxuICBjb25zdCB3b3JkRGlmZnMgPSBjYWxjdWxhdGVXb3JkRGlmZnMocmVtb3ZlZExpbmVUZXh0LCBhZGRlZExpbmVUZXh0KVxuXG4gIC8vIENoZWNrIGlmIHdlIHNob3VsZCB1c2Ugd29yZC1sZXZlbCBkaWZmaW5nXG4gIGNvbnN0IHRvdGFsTGVuZ3RoID0gcmVtb3ZlZExpbmVUZXh0Lmxlbmd0aCArIGFkZGVkTGluZVRleHQubGVuZ3RoXG4gIGNvbnN0IGNoYW5nZWRMZW5ndGggPSB3b3JkRGlmZnNcbiAgICAuZmlsdGVyKHBhcnQgPT4gcGFydC5hZGRlZCB8fCBwYXJ0LnJlbW92ZWQpXG4gICAgLnJlZHVjZSgoc3VtLCBwYXJ0KSA9PiBzdW0gKyBwYXJ0LnZhbHVlLmxlbmd0aCwgMClcbiAgY29uc3QgY2hhbmdlUmF0aW8gPSBjaGFuZ2VkTGVuZ3RoIC8gdG90YWxMZW5ndGhcblxuICBpZiAoY2hhbmdlUmF0aW8gPiBDSEFOR0VfVEhSRVNIT0xEIHx8IGRpbSkge1xuICAgIHJldHVybiBudWxsIC8vIEZhbGwgYmFjayB0byBzdGFuZGFyZCByZW5kZXJpbmcgZm9yIG1ham9yIGNoYW5nZXNcbiAgfVxuXG4gIC8vIENhbGN1bGF0ZSBhdmFpbGFibGUgd2lkdGggZm9yIGNvbnRlbnRcbiAgY29uc3QgZGlmZlByZWZpeCA9IHR5cGUgPT09ICdhZGQnID8gJysnIDogJy0nXG4gIGNvbnN0IGRpZmZQcmVmaXhXaWR0aCA9IGRpZmZQcmVmaXgubGVuZ3RoXG4gIGNvbnN0IGF2YWlsYWJsZUNvbnRlbnRXaWR0aCA9IE1hdGgubWF4KFxuICAgIDEsXG4gICAgd2lkdGggLSBtYXhXaWR0aCAtIDEgLSBkaWZmUHJlZml4V2lkdGgsXG4gIClcblxuICAvLyBNYW51YWxseSB3cmFwIHRoZSB3b3JkIGRpZmYgcGFydHMgd2l0aCBiZXR0ZXIgc3BhY2UgZWZmaWNpZW5jeVxuICBjb25zdCB3cmFwcGVkTGluZXM6IHsgY29udGVudDogUmVhY3QuUmVhY3ROb2RlW107IGNvbnRlbnRXaWR0aDogbnVtYmVyIH1bXSA9XG4gICAgW11cbiAgbGV0IGN1cnJlbnRMaW5lOiBSZWFjdC5SZWFjdE5vZGVbXSA9IFtdXG4gIGxldCBjdXJyZW50TGluZVdpZHRoID0gMFxuXG4gIHdvcmREaWZmcy5mb3JFYWNoKChwYXJ0LCBwYXJ0SW5kZXgpID0+IHtcbiAgICAvLyBEZXRlcm1pbmUgaWYgdGhpcyBwYXJ0IHNob3VsZCBiZSBzaG93biBmb3IgdGhpcyBsaW5lIHR5cGVcbiAgICBsZXQgc2hvdWxkU2hvdyA9IGZhbHNlXG4gICAgbGV0IHBhcnRCZ0NvbG9yOiAnZGlmZkFkZGVkV29yZCcgfCAnZGlmZlJlbW92ZWRXb3JkJyB8IHVuZGVmaW5lZFxuXG4gICAgaWYgKHR5cGUgPT09ICdhZGQnKSB7XG4gICAgICBpZiAocGFydC5hZGRlZCkge1xuICAgICAgICBzaG91bGRTaG93ID0gdHJ1ZVxuICAgICAgICBwYXJ0QmdDb2xvciA9ICdkaWZmQWRkZWRXb3JkJ1xuICAgICAgfSBlbHNlIGlmICghcGFydC5yZW1vdmVkKSB7XG4gICAgICAgIHNob3VsZFNob3cgPSB0cnVlXG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0eXBlID09PSAncmVtb3ZlJykge1xuICAgICAgaWYgKHBhcnQucmVtb3ZlZCkge1xuICAgICAgICBzaG91bGRTaG93ID0gdHJ1ZVxuICAgICAgICBwYXJ0QmdDb2xvciA9ICdkaWZmUmVtb3ZlZFdvcmQnXG4gICAgICB9IGVsc2UgaWYgKCFwYXJ0LmFkZGVkKSB7XG4gICAgICAgIHNob3VsZFNob3cgPSB0cnVlXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKCFzaG91bGRTaG93KSByZXR1cm5cblxuICAgIC8vIFVzZSB3cmFwVGV4dCB0byB3cmFwIHRoaXMgaW5kaXZpZHVhbCBwYXJ0IGlmIGl0J3MgbG9uZ1xuICAgIGNvbnN0IHBhcnRXcmFwcGVkID0gd3JhcFRleHQocGFydC52YWx1ZSwgYXZhaWxhYmxlQ29udGVudFdpZHRoLCAnd3JhcCcpXG4gICAgY29uc3QgcGFydExpbmVzID0gcGFydFdyYXBwZWQuc3BsaXQoJ1xcbicpXG5cbiAgICBwYXJ0TGluZXMuZm9yRWFjaCgocGFydExpbmUsIGxpbmVJZHgpID0+IHtcbiAgICAgIGlmICghcGFydExpbmUpIHJldHVyblxuXG4gICAgICAvLyBDaGVjayBpZiB3ZSBuZWVkIHRvIHN0YXJ0IGEgbmV3IGxpbmVcbiAgICAgIGlmIChcbiAgICAgICAgbGluZUlkeCA+IDAgfHxcbiAgICAgICAgY3VycmVudExpbmVXaWR0aCArIHN0cmluZ1dpZHRoKHBhcnRMaW5lKSA+IGF2YWlsYWJsZUNvbnRlbnRXaWR0aFxuICAgICAgKSB7XG4gICAgICAgIGlmIChjdXJyZW50TGluZS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgd3JhcHBlZExpbmVzLnB1c2goe1xuICAgICAgICAgICAgY29udGVudDogWy4uLmN1cnJlbnRMaW5lXSxcbiAgICAgICAgICAgIGNvbnRlbnRXaWR0aDogY3VycmVudExpbmVXaWR0aCxcbiAgICAgICAgICB9KVxuICAgICAgICAgIGN1cnJlbnRMaW5lID0gW11cbiAgICAgICAgICBjdXJyZW50TGluZVdpZHRoID0gMFxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGN1cnJlbnRMaW5lLnB1c2goXG4gICAgICAgIDxUZXh0XG4gICAgICAgICAga2V5PXtgcGFydC0ke3BhcnRJbmRleH0tJHtsaW5lSWR4fWB9XG4gICAgICAgICAgYmFja2dyb3VuZENvbG9yPXtwYXJ0QmdDb2xvcn1cbiAgICAgICAgPlxuICAgICAgICAgIHtwYXJ0TGluZX1cbiAgICAgICAgPC9UZXh0PixcbiAgICAgIClcblxuICAgICAgY3VycmVudExpbmVXaWR0aCArPSBzdHJpbmdXaWR0aChwYXJ0TGluZSlcbiAgICB9KVxuICB9KVxuXG4gIGlmIChjdXJyZW50TGluZS5sZW5ndGggPiAwKSB7XG4gICAgd3JhcHBlZExpbmVzLnB1c2goeyBjb250ZW50OiBjdXJyZW50TGluZSwgY29udGVudFdpZHRoOiBjdXJyZW50TGluZVdpZHRoIH0pXG4gIH1cblxuICAvLyBSZW5kZXIgZWFjaCB3cmFwcGVkIGxpbmUgYXMgYSBzZXBhcmF0ZSBUZXh0IGVsZW1lbnRcbiAgcmV0dXJuIHdyYXBwZWRMaW5lcy5tYXAoKHsgY29udGVudCwgY29udGVudFdpZHRoIH0sIGxpbmVJbmRleCkgPT4ge1xuICAgIGNvbnN0IGtleSA9IGAke3R5cGV9LSR7aX0tJHtsaW5lSW5kZXh9YFxuICAgIGNvbnN0IGxpbmVCZ0NvbG9yID1cbiAgICAgIHR5cGUgPT09ICdhZGQnXG4gICAgICAgID8gZGltXG4gICAgICAgICAgPyAnZGlmZkFkZGVkRGltbWVkJ1xuICAgICAgICAgIDogJ2RpZmZBZGRlZCdcbiAgICAgICAgOiBkaW1cbiAgICAgICAgICA/ICdkaWZmUmVtb3ZlZERpbW1lZCdcbiAgICAgICAgICA6ICdkaWZmUmVtb3ZlZCdcbiAgICBjb25zdCBsaW5lTnVtID0gbGluZUluZGV4ID09PSAwID8gaSA6IHVuZGVmaW5lZFxuICAgIGNvbnN0IGxpbmVOdW1TdHIgPVxuICAgICAgKGxpbmVOdW0gIT09IHVuZGVmaW5lZFxuICAgICAgICA/IGxpbmVOdW0udG9TdHJpbmcoKS5wYWRTdGFydChtYXhXaWR0aClcbiAgICAgICAgOiAnICcucmVwZWF0KG1heFdpZHRoKSkgKyAnICdcbiAgICAvLyBDYWxjdWxhdGUgcGFkZGluZyB0byBmaWxsIHRoZSBlbnRpcmUgdGVybWluYWwgd2lkdGhcbiAgICBjb25zdCB1c2VkV2lkdGggPSBsaW5lTnVtU3RyLmxlbmd0aCArIGRpZmZQcmVmaXhXaWR0aCArIGNvbnRlbnRXaWR0aFxuICAgIGNvbnN0IHBhZGRpbmcgPSBNYXRoLm1heCgwLCB3aWR0aCAtIHVzZWRXaWR0aClcblxuICAgIHJldHVybiAoXG4gICAgICA8Qm94IGtleT17a2V5fSBmbGV4RGlyZWN0aW9uPVwicm93XCI+XG4gICAgICAgIDxOb1NlbGVjdCBmcm9tTGVmdEVkZ2U+XG4gICAgICAgICAgPFRleHRcbiAgICAgICAgICAgIGNvbG9yPXtvdmVycmlkZVRoZW1lID8gJ3RleHQnIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yPXtsaW5lQmdDb2xvcn1cbiAgICAgICAgICAgIGRpbUNvbG9yPXtkaW19XG4gICAgICAgICAgPlxuICAgICAgICAgICAge2xpbmVOdW1TdHJ9XG4gICAgICAgICAgICB7ZGlmZlByZWZpeH1cbiAgICAgICAgICA8L1RleHQ+XG4gICAgICAgIDwvTm9TZWxlY3Q+XG4gICAgICAgIDxUZXh0XG4gICAgICAgICAgY29sb3I9e292ZXJyaWRlVGhlbWUgPyAndGV4dCcgOiB1bmRlZmluZWR9XG4gICAgICAgICAgYmFja2dyb3VuZENvbG9yPXtsaW5lQmdDb2xvcn1cbiAgICAgICAgICBkaW1Db2xvcj17ZGltfVxuICAgICAgICA+XG4gICAgICAgICAge2NvbnRlbnR9XG4gICAgICAgICAgeycgJy5yZXBlYXQocGFkZGluZyl9XG4gICAgICAgIDwvVGV4dD5cbiAgICAgIDwvQm94PlxuICAgIClcbiAgfSlcbn1cblxuZnVuY3Rpb24gZm9ybWF0RGlmZihcbiAgbGluZXM6IHN0cmluZ1tdLFxuICBzdGFydGluZ0xpbmVOdW1iZXI6IG51bWJlcixcbiAgd2lkdGg6IG51bWJlcixcbiAgZGltOiBib29sZWFuLFxuICBvdmVycmlkZVRoZW1lPzogVGhlbWVOYW1lLFxuKTogUmVhY3QuUmVhY3ROb2RlW10ge1xuICAvLyBFbnN1cmUgd2lkdGggaXMgYXQgbGVhc3QgMSB0byBwcmV2ZW50IHJlbmRlcmluZyBpc3N1ZXMgd2l0aCB2ZXJ5IG5hcnJvdyB0ZXJtaW5hbHNcbiAgY29uc3Qgc2FmZVdpZHRoID0gTWF0aC5tYXgoMSwgTWF0aC5mbG9vcih3aWR0aCkpXG5cbiAgLy8gU3RlcCAxOiBUcmFuc2Zvcm0gbGluZXMgdG8gbGluZSBvYmplY3RzIHdpdGggdHlwZSBpbmZvcm1hdGlvblxuICBjb25zdCBsaW5lT2JqZWN0cyA9IHRyYW5zZm9ybUxpbmVzVG9PYmplY3RzKGxpbmVzKVxuXG4gIC8vIFN0ZXAgMjogR3JvdXAgYWRqYWNlbnQgYWRkL3JlbW92ZSBsaW5lcyBmb3Igd29yZC1sZXZlbCBkaWZmaW5nXG4gIGNvbnN0IHByb2Nlc3NlZExpbmVzID0gcHJvY2Vzc0FkamFjZW50TGluZXMobGluZU9iamVjdHMpXG5cbiAgLy8gU3RlcCAzOiBOdW1iZXIgdGhlIGRpZmYgbGluZXNcbiAgY29uc3QgbHMgPSBudW1iZXJEaWZmTGluZXMocHJvY2Vzc2VkTGluZXMsIHN0YXJ0aW5nTGluZU51bWJlcilcblxuICAvLyBGaW5kIG1heCBsaW5lIG51bWJlciB3aWR0aCBmb3IgYWxpZ25tZW50XG4gIGNvbnN0IG1heExpbmVOdW1iZXIgPSBNYXRoLm1heCguLi5scy5tYXAoKHsgaSB9KSA9PiBpKSwgMClcbiAgY29uc3QgbWF4V2lkdGggPSBNYXRoLm1heChtYXhMaW5lTnVtYmVyLnRvU3RyaW5nKCkubGVuZ3RoICsgMSwgMClcblxuICAvLyBTdGVwIDQ6IFJlbmRlciBmb3JtYXR0aW5nXG4gIHJldHVybiBscy5mbGF0TWFwKChpdGVtKTogUmVhY3QuUmVhY3ROb2RlW10gPT4ge1xuICAgIGNvbnN0IHsgdHlwZSwgY29kZSwgaSwgd29yZERpZmYsIG1hdGNoZWRMaW5lIH0gPSBpdGVtXG5cbiAgICAvLyBIYW5kbGUgd29yZC1sZXZlbCBkaWZmaW5nIGZvciBhZGQvcmVtb3ZlIHBhaXJzXG4gICAgaWYgKHdvcmREaWZmICYmIG1hdGNoZWRMaW5lKSB7XG4gICAgICBjb25zdCB3b3JkRGlmZkVsZW1lbnRzID0gZ2VuZXJhdGVXb3JkRGlmZkVsZW1lbnRzKFxuICAgICAgICBpdGVtLFxuICAgICAgICBzYWZlV2lkdGgsXG4gICAgICAgIG1heFdpZHRoLFxuICAgICAgICBkaW0sXG4gICAgICAgIG92ZXJyaWRlVGhlbWUsXG4gICAgICApXG5cbiAgICAgIC8vIHdvcmQtZGlmZiBtaWdodCByZWZ1c2UgKGUuZy4gZHVlIHRvIGxpbmVzIGJlaW5nIHN1YnN0YW50aWFsbHkgZGlmZmVyZW50KSBpbiB3aGljaFxuICAgICAgLy8gY2FzZSB3ZSdsbCBmYWxsIHRocm91Z2ggdG8gbm9ybWFsIHJlbmRlcmluIGdiZWxvd1xuICAgICAgaWYgKHdvcmREaWZmRWxlbWVudHMgIT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIHdvcmREaWZmRWxlbWVudHNcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTdGFuZGFyZCByZW5kZXJpbmcgZm9yIGxpbmVzIHdpdGhvdXQgd29yZCBkaWZmaW5nIG9yIGFzIGZhbGxiYWNrXG4gICAgLy8gQ2FsY3VsYXRlIGF2YWlsYWJsZSB3aWR0aCBhY2NvdW50aW5nIGZvciBsaW5lIG51bWJlciArIHNwYWNlICsgZGlmZiBwcmVmaXhcbiAgICBjb25zdCBkaWZmUHJlZml4V2lkdGggPSAyIC8vIFwiICBcIiBmb3IgdW5jaGFuZ2VkLCBcIisgXCIgb3IgXCItIFwiIGZvciBjaGFuZ2VzXG4gICAgY29uc3QgYXZhaWxhYmxlQ29udGVudFdpZHRoID0gTWF0aC5tYXgoXG4gICAgICAxLFxuICAgICAgc2FmZVdpZHRoIC0gbWF4V2lkdGggLSAxIC0gZGlmZlByZWZpeFdpZHRoLFxuICAgICkgLy8gLTEgZm9yIHNwYWNlIGFmdGVyIGxpbmUgbnVtYmVyXG4gICAgY29uc3Qgd3JhcHBlZFRleHQgPSB3cmFwVGV4dChjb2RlLCBhdmFpbGFibGVDb250ZW50V2lkdGgsICd3cmFwJylcbiAgICBjb25zdCB3cmFwcGVkTGluZXMgPSB3cmFwcGVkVGV4dC5zcGxpdCgnXFxuJylcblxuICAgIHJldHVybiB3cmFwcGVkTGluZXMubWFwKChsaW5lLCBsaW5lSW5kZXgpID0+IHtcbiAgICAgIGNvbnN0IGtleSA9IGAke3R5cGV9LSR7aX0tJHtsaW5lSW5kZXh9YFxuICAgICAgY29uc3QgbGluZU51bSA9IGxpbmVJbmRleCA9PT0gMCA/IGkgOiB1bmRlZmluZWRcbiAgICAgIGNvbnN0IGxpbmVOdW1TdHIgPVxuICAgICAgICAobGluZU51bSAhPT0gdW5kZWZpbmVkXG4gICAgICAgICAgPyBsaW5lTnVtLnRvU3RyaW5nKCkucGFkU3RhcnQobWF4V2lkdGgpXG4gICAgICAgICAgOiAnICcucmVwZWF0KG1heFdpZHRoKSkgKyAnICdcbiAgICAgIGNvbnN0IHNpZ2lsID0gdHlwZSA9PT0gJ2FkZCcgPyAnKycgOiB0eXBlID09PSAncmVtb3ZlJyA/ICctJyA6ICcgJ1xuICAgICAgLy8gQ2FsY3VsYXRlIHBhZGRpbmcgdG8gZmlsbCB0aGUgZW50aXJlIHRlcm1pbmFsIHdpZHRoXG4gICAgICBjb25zdCBjb250ZW50V2lkdGggPSBsaW5lTnVtU3RyLmxlbmd0aCArIDEgKyBzdHJpbmdXaWR0aChsaW5lKSAvLyBsaW5lTnVtICsgc2lnaWwgKyBjb2RlXG4gICAgICBjb25zdCBwYWRkaW5nID0gTWF0aC5tYXgoMCwgc2FmZVdpZHRoIC0gY29udGVudFdpZHRoKVxuXG4gICAgICBjb25zdCBiZ0NvbG9yID1cbiAgICAgICAgdHlwZSA9PT0gJ2FkZCdcbiAgICAgICAgICA/IGRpbVxuICAgICAgICAgICAgPyAnZGlmZkFkZGVkRGltbWVkJ1xuICAgICAgICAgICAgOiAnZGlmZkFkZGVkJ1xuICAgICAgICAgIDogdHlwZSA9PT0gJ3JlbW92ZSdcbiAgICAgICAgICAgID8gZGltXG4gICAgICAgICAgICAgID8gJ2RpZmZSZW1vdmVkRGltbWVkJ1xuICAgICAgICAgICAgICA6ICdkaWZmUmVtb3ZlZCdcbiAgICAgICAgICAgIDogdW5kZWZpbmVkXG5cbiAgICAgIC8vIEd1dHRlciAobGluZSBudW1iZXIgKyBzaWdpbCkgaXMgd3JhcHBlZCBpbiA8Tm9TZWxlY3Q+IHNvIGZ1bGxzY3JlZW5cbiAgICAgIC8vIHRleHQgc2VsZWN0aW9uIHlpZWxkcyBjbGVhbiBjb2RlLiBiZ0NvbG9yIGNhcnJpZXMgYWNyb3NzIGJvdGggYm94ZXNcbiAgICAgIC8vIHNvIHRoZSB2aXN1YWwgY29udGludWl0eSAoc29saWQgcmVkL2dyZWVuIGJhcikgaXMgdW5jaGFuZ2VkLlxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPEJveCBrZXk9e2tleX0gZmxleERpcmVjdGlvbj1cInJvd1wiPlxuICAgICAgICAgIDxOb1NlbGVjdCBmcm9tTGVmdEVkZ2U+XG4gICAgICAgICAgICA8VGV4dFxuICAgICAgICAgICAgICBjb2xvcj17b3ZlcnJpZGVUaGVtZSA/ICd0ZXh0JyA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yPXtiZ0NvbG9yfVxuICAgICAgICAgICAgICBkaW1Db2xvcj17ZGltIHx8IHR5cGUgPT09ICdub2NoYW5nZSd9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtsaW5lTnVtU3RyfVxuICAgICAgICAgICAgICB7c2lnaWx9XG4gICAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICAgPC9Ob1NlbGVjdD5cbiAgICAgICAgICA8VGV4dFxuICAgICAgICAgICAgY29sb3I9e292ZXJyaWRlVGhlbWUgPyAndGV4dCcgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I9e2JnQ29sb3J9XG4gICAgICAgICAgICBkaW1Db2xvcj17ZGltfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtsaW5lfVxuICAgICAgICAgICAgeycgJy5yZXBlYXQocGFkZGluZyl9XG4gICAgICAgICAgPC9UZXh0PlxuICAgICAgICA8L0JveD5cbiAgICAgIClcbiAgICB9KVxuICB9KVxufVxuXG5leHBvcnQgZnVuY3Rpb24gbnVtYmVyRGlmZkxpbmVzKFxuICBkaWZmOiBMaW5lT2JqZWN0W10sXG4gIHN0YXJ0TGluZTogbnVtYmVyLFxuKTogRGlmZkxpbmVbXSB7XG4gIGxldCBpID0gc3RhcnRMaW5lXG4gIGNvbnN0IHJlc3VsdDogRGlmZkxpbmVbXSA9IFtdXG4gIGNvbnN0IHF1ZXVlID0gWy4uLmRpZmZdXG5cbiAgd2hpbGUgKHF1ZXVlLmxlbmd0aCA+IDApIHtcbiAgICBjb25zdCBjdXJyZW50ID0gcXVldWUuc2hpZnQoKSFcbiAgICBjb25zdCB7IGNvZGUsIHR5cGUsIG9yaWdpbmFsQ29kZSwgd29yZERpZmYsIG1hdGNoZWRMaW5lIH0gPSBjdXJyZW50XG4gICAgY29uc3QgbGluZSA9IHtcbiAgICAgIGNvZGUsXG4gICAgICB0eXBlLFxuICAgICAgaSxcbiAgICAgIG9yaWdpbmFsQ29kZSxcbiAgICAgIHdvcmREaWZmLFxuICAgICAgbWF0Y2hlZExpbmUsXG4gICAgfVxuXG4gICAgLy8gVXBkYXRlIGNvdW50ZXJzIGJhc2VkIG9uIGNoYW5nZSB0eXBlXG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICBjYXNlICdub2NoYW5nZSc6XG4gICAgICAgIGkrK1xuICAgICAgICByZXN1bHQucHVzaChsaW5lKVxuICAgICAgICBicmVha1xuICAgICAgY2FzZSAnYWRkJzpcbiAgICAgICAgaSsrXG4gICAgICAgIHJlc3VsdC5wdXNoKGxpbmUpXG4gICAgICAgIGJyZWFrXG4gICAgICBjYXNlICdyZW1vdmUnOiB7XG4gICAgICAgIHJlc3VsdC5wdXNoKGxpbmUpXG4gICAgICAgIGxldCBudW1SZW1vdmVkID0gMFxuICAgICAgICB3aGlsZSAocXVldWVbMF0/LnR5cGUgPT09ICdyZW1vdmUnKSB7XG4gICAgICAgICAgaSsrXG4gICAgICAgICAgY29uc3QgY3VycmVudCA9IHF1ZXVlLnNoaWZ0KCkhXG4gICAgICAgICAgY29uc3QgeyBjb2RlLCB0eXBlLCBvcmlnaW5hbENvZGUsIHdvcmREaWZmLCBtYXRjaGVkTGluZSB9ID0gY3VycmVudFxuICAgICAgICAgIGNvbnN0IGxpbmUgPSB7XG4gICAgICAgICAgICBjb2RlLFxuICAgICAgICAgICAgdHlwZSxcbiAgICAgICAgICAgIGksXG4gICAgICAgICAgICBvcmlnaW5hbENvZGUsXG4gICAgICAgICAgICB3b3JkRGlmZixcbiAgICAgICAgICAgIG1hdGNoZWRMaW5lLFxuICAgICAgICAgIH1cbiAgICAgICAgICByZXN1bHQucHVzaChsaW5lKVxuICAgICAgICAgIG51bVJlbW92ZWQrK1xuICAgICAgICB9XG4gICAgICAgIGkgLT0gbnVtUmVtb3ZlZFxuICAgICAgICBicmVha1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiByZXN1bHRcbn1cbiJdLCJtYXBwaW5ncyI6IjtBQUFBLFNBQVNBLGtCQUFrQixFQUFFLEtBQUtDLG1CQUFtQixRQUFRLE1BQU07QUFDbkUsT0FBTyxLQUFLQyxLQUFLLE1BQU0sT0FBTztBQUM5QixTQUFTQyxPQUFPLFFBQVEsT0FBTztBQUMvQixjQUFjQyxTQUFTLFFBQVEsb0JBQW9CO0FBQ25ELFNBQVNDLFdBQVcsUUFBUSwwQkFBMEI7QUFDdEQsU0FBU0MsR0FBRyxFQUFFQyxRQUFRLEVBQUVDLElBQUksRUFBRUMsUUFBUSxFQUFFQyxRQUFRLFFBQVEsY0FBYzs7QUFFdEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxVQUFVQyxRQUFRLENBQUM7RUFD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 \ No newline at end of file +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJkaWZmV29yZHNXaXRoU3BhY2UiLCJTdHJ1Y3R1cmVkUGF0Y2hIdW5rIiwiUmVhY3QiLCJ1c2VNZW1vIiwiVGhlbWVOYW1lIiwic3RyaW5nV2lkdGgiLCJCb3giLCJOb1NlbGVjdCIsIlRleHQiLCJ1c2VUaGVtZSIsIndyYXBUZXh0IiwiRGlmZkxpbmUiLCJjb2RlIiwidHlwZSIsImkiLCJvcmlnaW5hbENvZGUiLCJ3b3JkRGlmZiIsIm1hdGNoZWRMaW5lIiwiTGluZU9iamVjdCIsIkRpZmZQYXJ0IiwiYWRkZWQiLCJyZW1vdmVkIiwidmFsdWUiLCJQcm9wcyIsInBhdGNoIiwiZGltIiwid2lkdGgiLCJDSEFOR0VfVEhSRVNIT0xEIiwiU3RydWN0dXJlZERpZmZGYWxsYmFjayIsInQwIiwiJCIsIl9jIiwidGhlbWUiLCJ0MSIsImxpbmVzIiwib2xkU3RhcnQiLCJmb3JtYXREaWZmIiwiZGlmZiIsInQyIiwibWFwIiwiX3RlbXAiLCJ0MyIsIm5vZGUiLCJ0cmFuc2Zvcm1MaW5lc1RvT2JqZWN0cyIsInN0YXJ0c1dpdGgiLCJzbGljZSIsInByb2Nlc3NBZGphY2VudExpbmVzIiwibGluZU9iamVjdHMiLCJwcm9jZXNzZWRMaW5lcyIsImxlbmd0aCIsImN1cnJlbnQiLCJyZW1vdmVMaW5lcyIsImoiLCJsaW5lIiwicHVzaCIsImFkZExpbmVzIiwicGFpckNvdW50IiwiTWF0aCIsIm1pbiIsImsiLCJyZW1vdmVMaW5lIiwiYWRkTGluZSIsImZpbHRlciIsIkJvb2xlYW4iLCJjYWxjdWxhdGVXb3JkRGlmZnMiLCJvbGRUZXh0IiwibmV3VGV4dCIsInJlc3VsdCIsImlnbm9yZUNhc2UiLCJnZW5lcmF0ZVdvcmREaWZmRWxlbWVudHMiLCJpdGVtIiwibWF4V2lkdGgiLCJvdmVycmlkZVRoZW1lIiwiUmVhY3ROb2RlIiwicmVtb3ZlZExpbmVUZXh0IiwiYWRkZWRMaW5lVGV4dCIsIndvcmREaWZmcyIsInRvdGFsTGVuZ3RoIiwiY2hhbmdlZExlbmd0aCIsInBhcnQiLCJyZWR1Y2UiLCJzdW0iLCJjaGFuZ2VSYXRpbyIsImRpZmZQcmVmaXgiLCJkaWZmUHJlZml4V2lkdGgiLCJhdmFpbGFibGVDb250ZW50V2lkdGgiLCJtYXgiLCJ3cmFwcGVkTGluZXMiLCJjb250ZW50IiwiY29udGVudFdpZHRoIiwiY3VycmVudExpbmUiLCJjdXJyZW50TGluZVdpZHRoIiwiZm9yRWFjaCIsInBhcnRJbmRleCIsInNob3VsZFNob3ciLCJwYXJ0QmdDb2xvciIsInBhcnRXcmFwcGVkIiwicGFydExpbmVzIiwic3BsaXQiLCJwYXJ0TGluZSIsImxpbmVJZHgiLCJsaW5lSW5kZXgiLCJrZXkiLCJsaW5lQmdDb2xvciIsImxpbmVOdW0iLCJ1bmRlZmluZWQiLCJsaW5lTnVtU3RyIiwidG9TdHJpbmciLCJwYWRTdGFydCIsInJlcGVhdCIsInVzZWRXaWR0aCIsInBhZGRpbmciLCJzdGFydGluZ0xpbmVOdW1iZXIiLCJzYWZlV2lkdGgiLCJmbG9vciIsImxzIiwibnVtYmVyRGlmZkxpbmVzIiwibWF4TGluZU51bWJlciIsImZsYXRNYXAiLCJ3b3JkRGlmZkVsZW1lbnRzIiwid3JhcHBlZFRleHQiLCJzaWdpbCIsImJnQ29sb3IiLCJzdGFydExpbmUiLCJxdWV1ZSIsInNoaWZ0IiwibnVtUmVtb3ZlZCJdLCJzb3VyY2VzIjpbIkZhbGxiYWNrLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBkaWZmV29yZHNXaXRoU3BhY2UsIHR5cGUgU3RydWN0dXJlZFBhdGNoSHVuayB9IGZyb20gJ2RpZmYnXG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHVzZU1lbW8gfSBmcm9tICdyZWFjdCdcbmltcG9ydCB0eXBlIHsgVGhlbWVOYW1lIH0gZnJvbSAnc3JjL3V0aWxzL3RoZW1lLmpzJ1xuaW1wb3J0IHsgc3RyaW5nV2lkdGggfSBmcm9tICcuLi8uLi9pbmsvc3RyaW5nV2lkdGguanMnXG5pbXBvcnQgeyBCb3gsIE5vU2VsZWN0LCBUZXh0LCB1c2VUaGVtZSwgd3JhcFRleHQgfSBmcm9tICcuLi8uLi9pbmsuanMnXG5cbi8qXG4gKiBTdHJ1Y3R1cmVkRGlmZkZhbGxiYWNrIENvbXBvbmVudDogV29yZC1MZXZlbCBEaWZmIEhpZ2hsaWdodGluZyBFeGFtcGxlXG4gKlxuICogVGhpcyBjb21wb25lbnQgc2hvd3MgZGlmZiBjaGFuZ2VzIHdpdGggd29yZC1sZXZlbCBoaWdobGlnaHRpbmcuIEhlcmUncyBhIHdhbGt0aHJvdWdoOlxuICpcbiAqIEV4YW1wbGU6XG4gKiBgYGBcbiAqIC8vIE9yaWdpbmFsIGNvZGVcbiAqIGZ1bmN0aW9uIG9sZE5hbWUocGFyYW0pIHtcbiAqICAgcmV0dXJuIHBhcmFtLm9sZFByb3BlcnR5O1xuICogfVxuICpcbiAqIC8vIENoYW5nZWQgY29kZVxuICogZnVuY3Rpb24gbmV3TmFtZShwYXJhbSkge1xuICogICByZXR1cm4gcGFyYW0ubmV3UHJvcGVydHk7XG4gKiB9XG4gKiBgYGBcbiAqXG4gKiBQcm9jZXNzaW5nIGZsb3c6XG4gKiAxLiBDb21wb25lbnQgcmVjZWl2ZXMgYSBwYXRjaCB3aXRoIGxpbmVzIGluY2x1ZGluZyAnKycgYW5kICctJyBwcmVmaXhlc1xuICogMi4gTGluZXMgYXJlIHRyYW5zZm9ybWVkIGludG8gb2JqZWN0cyB3aXRoIHR5cGUgKGFkZC9yZW1vdmUvbm9jaGFuZ2UpXG4gKiAzLiBSZWxhdGVkIGFkZC9yZW1vdmUgbGluZXMgYXJlIHBhaXJlZCAoZS5nLiwgb2xkTmFtZSB3aXRoIG5ld05hbWUpXG4gKiA0LiBXb3JkLWxldmVsIGRpZmZpbmcgaWRlbnRpZmllcyBzcGVjaWZpYyBjaGFuZ2VkIHBhcnRzOlxuICogICAgW1xuICogICAgICB7IHZhbHVlOiAnZnVuY3Rpb24gJywgYWRkZWQ6IHVuZGVmaW5lZCwgcmVtb3ZlZDogdW5kZWZpbmVkIH0sICAvLyBDb21tb25cbiAqICAgICAgeyB2YWx1ZTogJ29sZE5hbWUnLCByZW1vdmVkOiB0cnVlIH0sICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gUmVtb3ZlZFxuICogICAgICB7IHZhbHVlOiAnbmV3TmFtZScsIGFkZGVkOiB0cnVlIH0sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBZGRlZFxuICogICAgICB7IHZhbHVlOiAnKHBhcmFtKSB7JywgYWRkZWQ6IHVuZGVmaW5lZCwgcmVtb3ZlZDogdW5kZWZpbmVkIH0gICAvLyBDb21tb25cbiAqICAgIF1cbiAqIDUuIFJlbmRlcnMgd2l0aCBlbmhhbmNlZCBoaWdobGlnaHRpbmc6XG4gKiAgICAtIENvbW1vbiBwYXJ0cyBhcmUgc2hvd24gbm9ybWFsbHlcbiAqICAgIC0gUmVtb3ZlZCB3b3JkcyBnZXQgYSBkYXJrZXIgcmVkIGJhY2tncm91bmRcbiAqICAgIC0gQWRkZWQgd29yZHMgZ2V0IGEgZGFya2VyIGdyZWVuIGJhY2tncm91bmRcbiAqXG4gKiBUaGlzIHByb2R1Y2VzIGEgdmlzdWFsbHkgY2xlYXIgZGlmZiB3aGVyZSB1c2VycyBjYW4gc2VlIGV4YWN0bHkgd2hpY2ggd29yZHNcbiAqIGNoYW5nZWQgcmF0aGVyIHRoYW4ganVzdCB3aGljaCBsaW5lcyB3ZXJlIG1vZGlmaWVkLlxuICovXG5cbi8vIERlZmluZSBEaWZmTGluZSBpbnRlcmZhY2UgdG8gYmUgdXNlZCB0aHJvdWdob3V0IHRoZSBmaWxlXG5pbnRlcmZhY2UgRGlmZkxpbmUge1xuICBjb2RlOiBzdHJpbmdcbiAgdHlwZTogJ2FkZCcgfCAncmVtb3ZlJyB8ICdub2NoYW5nZSdcbiAgaTogbnVtYmVyXG4gIG9yaWdpbmFsQ29kZTogc3RyaW5nXG4gIHdvcmREaWZmPzogYm9vbGVhbiAvLyBGbGFnIGZvciB3b3JkLWxldmVsIGRpZmZpbmdcbiAgbWF0Y2hlZExpbmU/OiBEaWZmTGluZVxufVxuXG4vLyBMaW5lIG9iamVjdCB0eXBlIGZvciBpbnRlcm5hbCBmdW5jdGlvbnNcbmV4cG9ydCBpbnRlcmZhY2UgTGluZU9iamVjdCB7XG4gIGNvZGU6IHN0cmluZ1xuICBpOiBudW1iZXJcbiAgdHlwZTogJ2FkZCcgfCAncmVtb3ZlJyB8ICdub2NoYW5nZSdcbiAgb3JpZ2luYWxDb2RlOiBzdHJpbmdcbiAgd29yZERpZmY/OiBib29sZWFuXG4gIG1hdGNoZWRMaW5lPzogTGluZU9iamVjdFxufVxuXG4vLyBUeXBlIGZvciB3b3JkLWxldmVsIGRpZmYgcGFydHNcbmludGVyZmFjZSBEaWZmUGFydCB7XG4gIGFkZGVkPzogYm9vbGVhblxuICByZW1vdmVkPzogYm9vbGVhblxuICB2YWx1ZTogc3RyaW5nXG59XG5cbnR5cGUgUHJvcHMgPSB7XG4gIHBhdGNoOiBTdHJ1Y3R1cmVkUGF0Y2hIdW5rXG4gIGRpbTogYm9vbGVhblxuICB3aWR0aDogbnVtYmVyXG59XG5cbi8vIFRocmVzaG9sZCBmb3Igd2hlbiB3ZSBzaG93IGEgZnVsbC1saW5lIGRpZmYgaW5zdGVhZCBvZiB3b3JkLWxldmVsIGRpZmZpbmdcbmNvbnN0IENIQU5HRV9USFJFU0hPTEQgPSAwLjRcblxuZXhwb3J0IGZ1bmN0aW9uIFN0cnVjdHVyZWREaWZmRmFsbGJhY2soe1xuICBwYXRjaCxcbiAgZGltLFxuICB3aWR0aCxcbn06IFByb3BzKTogUmVhY3QuUmVhY3ROb2RlIHtcbiAgY29uc3QgW3RoZW1lXSA9IHVzZVRoZW1lKClcbiAgY29uc3QgZGlmZiA9IHVzZU1lbW8oXG4gICAgKCkgPT4gZm9ybWF0RGlmZihwYXRjaC5saW5lcywgcGF0Y2gub2xkU3RhcnQsIHdpZHRoLCBkaW0sIHRoZW1lKSxcbiAgICBbcGF0Y2gubGluZXMsIHBhdGNoLm9sZFN0YXJ0LCB3aWR0aCwgZGltLCB0aGVtZV0sXG4gIClcblxuICByZXR1cm4gKFxuICAgIDxCb3ggZmxleERpcmVjdGlvbj1cImNvbHVtblwiIGZsZXhHcm93PXsxfT5cbiAgICAgIHtkaWZmLm1hcCgobm9kZSwgaSkgPT4gKFxuICAgICAgICA8Qm94IGtleT17aX0+e25vZGV9PC9Cb3g+XG4gICAgICApKX1cbiAgICA8L0JveD5cbiAgKVxufVxuXG4vLyBUcmFuc2Zvcm0gbGluZXMgdG8gbGluZSBvYmplY3RzIHdpdGggdHlwZSBpbmZvcm1hdGlvblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybUxpbmVzVG9PYmplY3RzKGxpbmVzOiBzdHJpbmdbXSk6IExpbmVPYmplY3RbXSB7XG4gIHJldHVybiBsaW5lcy5tYXAoY29kZSA9PiB7XG4gICAgaWYgKGNvZGUuc3RhcnRzV2l0aCgnKycpKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBjb2RlOiBjb2RlLnNsaWNlKDEpLFxuICAgICAgICBpOiAwLFxuICAgICAgICB0eXBlOiAnYWRkJyxcbiAgICAgICAgb3JpZ2luYWxDb2RlOiBjb2RlLnNsaWNlKDEpLFxuICAgICAgfVxuICAgIH1cbiAgICBpZiAoY29kZS5zdGFydHNXaXRoKCctJykpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGNvZGU6IGNvZGUuc2xpY2UoMSksXG4gICAgICAgIGk6IDAsXG4gICAgICAgIHR5cGU6ICdyZW1vdmUnLFxuICAgICAgICBvcmlnaW5hbENvZGU6IGNvZGUuc2xpY2UoMSksXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICBjb2RlOiBjb2RlLnNsaWNlKDEpLFxuICAgICAgaTogMCxcbiAgICAgIHR5cGU6ICdub2NoYW5nZScsXG4gICAgICBvcmlnaW5hbENvZGU6IGNvZGUuc2xpY2UoMSksXG4gICAgfVxuICB9KVxufVxuXG4vLyBHcm91cCBhZGphY2VudCBhZGQvcmVtb3ZlIGxpbmVzIGZvciB3b3JkLWxldmVsIGRpZmZpbmdcbmV4cG9ydCBmdW5jdGlvbiBwcm9jZXNzQWRqYWNlbnRMaW5lcyhsaW5lT2JqZWN0czogTGluZU9iamVjdFtdKTogTGluZU9iamVjdFtdIHtcbiAgY29uc3QgcHJvY2Vzc2VkTGluZXM6IExpbmVPYmplY3RbXSA9IFtdXG4gIGxldCBpID0gMFxuXG4gIHdoaWxlIChpIDwgbGluZU9iamVjdHMubGVuZ3RoKSB7XG4gICAgY29uc3QgY3VycmVudCA9IGxpbmVPYmplY3RzW2ldXG4gICAgaWYgKCFjdXJyZW50KSB7XG4gICAgICBpKytcbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuXG4gICAgLy8gRmluZCBhIHNlcXVlbmNlIG9mIHJlbW92ZSBmb2xsb3dlZCBieSBhZGQgKHBvc3NpYmxlIHdvcmQtbGV2ZWwgZGlmZiBjYW5kaWRhdGVzKVxuICAgIGlmIChjdXJyZW50LnR5cGUgPT09ICdyZW1vdmUnKSB7XG4gICAgICBjb25zdCByZW1vdmVMaW5lczogTGluZU9iamVjdFtdID0gW2N1cnJlbnRdXG4gICAgICBsZXQgaiA9IGkgKyAxXG5cbiAgICAgIC8vIENvbGxlY3QgY29uc2VjdXRpdmUgcmVtb3ZlIGxpbmVzXG4gICAgICB3aGlsZSAoaiA8IGxpbmVPYmplY3RzLmxlbmd0aCAmJiBsaW5lT2JqZWN0c1tqXT8udHlwZSA9PT0gJ3JlbW92ZScpIHtcbiAgICAgICAgY29uc3QgbGluZSA9IGxpbmVPYmplY3RzW2pdXG4gICAgICAgIGlmIChsaW5lKSB7XG4gICAgICAgICAgcmVtb3ZlTGluZXMucHVzaChsaW5lKVxuICAgICAgICB9XG4gICAgICAgIGorK1xuICAgICAgfVxuXG4gICAgICAvLyBDaGVjayBpZiB0aGVyZSBhcmUgYWRkIGxpbmVzIGZvbGxvd2luZyB0aGUgcmVtb3ZlIGxpbmVzXG4gICAgICBjb25zdCBhZGRMaW5lczogTGluZU9iamVjdFtdID0gW11cbiAgICAgIHdoaWxlIChqIDwgbGluZU9iamVjdHMubGVuZ3RoICYmIGxpbmVPYmplY3RzW2pdPy50eXBlID09PSAnYWRkJykge1xuICAgICAgICBjb25zdCBsaW5lID0gbGluZU9iamVjdHNbal1cbiAgICAgICAgaWYgKGxpbmUpIHtcbiAgICAgICAgICBhZGRMaW5lcy5wdXNoKGxpbmUpXG4gICAgICAgIH1cbiAgICAgICAgaisrXG4gICAgICB9XG5cbiAgICAgIC8vIElmIHdlIGhhdmUgYm90aCByZW1vdmUgYW5kIGFkZCBsaW5lcywgcGVyZm9ybSB3b3JkLWxldmVsIGRpZmZpbmdcbiAgICAgIGlmIChyZW1vdmVMaW5lcy5sZW5ndGggPiAwICYmIGFkZExpbmVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgLy8gRm9yIHdvcmQgZGlmZmluZywgd2UnbGwgY29tcGFyZSBlYWNoIHBhaXIgb2YgbGluZXMgb3IgdGhlIGNsb3Nlc3QgYXZhaWxhYmxlIG1hdGNoXG4gICAgICAgIGNvbnN0IHBhaXJDb3VudCA9IE1hdGgubWluKHJlbW92ZUxpbmVzLmxlbmd0aCwgYWRkTGluZXMubGVuZ3RoKVxuXG4gICAgICAgIC8vIEFkZCBwYWlyZWQgbGluZXMgd2l0aCB3b3JkIGRpZmYgaW5mb1xuICAgICAgICBmb3IgKGxldCBrID0gMDsgayA8IHBhaXJDb3VudDsgaysrKSB7XG4gICAgICAgICAgY29uc3QgcmVtb3ZlTGluZSA9IHJlbW92ZUxpbmVzW2tdXG4gICAgICAgICAgY29uc3QgYWRkTGluZSA9IGFkZExpbmVzW2tdXG5cbiAgICAgICAgICBpZiAocmVtb3ZlTGluZSAmJiBhZGRMaW5lKSB7XG4gICAgICAgICAgICByZW1vdmVMaW5lLndvcmREaWZmID0gdHJ1ZVxuICAgICAgICAgICAgYWRkTGluZS53b3JkRGlmZiA9IHRydWVcblxuICAgICAgICAgICAgLy8gU3RvcmUgdGhlIG1hdGNoZWQgcGFpciBmb3IgbGF0ZXIgd29yZCBkaWZmaW5nXG4gICAgICAgICAgICByZW1vdmVMaW5lLm1hdGNoZWRMaW5lID0gYWRkTGluZVxuICAgICAgICAgICAgYWRkTGluZS5tYXRjaGVkTGluZSA9IHJlbW92ZUxpbmVcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBBZGQgYWxsIHJlbW92ZSBsaW5lcyAoYm90aCBwYWlyZWQgYW5kIHVucGFpcmVkKVxuICAgICAgICBwcm9jZXNzZWRMaW5lcy5wdXNoKC4uLnJlbW92ZUxpbmVzLmZpbHRlcihCb29sZWFuKSlcblxuICAgICAgICAvLyBUaGVuIGFkZCBhbGwgYWRkIGxpbmVzIChib3RoIHBhaXJlZCBhbmQgdW5wYWlyZWQpXG4gICAgICAgIHByb2Nlc3NlZExpbmVzLnB1c2goLi4uYWRkTGluZXMuZmlsdGVyKEJvb2xlYW4pKVxuXG4gICAgICAgIGkgPSBqIC8vIFNraXAgYWxsIHRoZSBsaW5lcyB3ZSd2ZSBwcm9jZXNzZWRcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIE5vIG1hdGNoaW5nIGFkZCBsaW5lcywganVzdCBhZGQgdGhlIGN1cnJlbnQgcmVtb3ZlIGxpbmVcbiAgICAgICAgcHJvY2Vzc2VkTGluZXMucHVzaChjdXJyZW50KVxuICAgICAgICBpKytcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgLy8gTm90IGEgcmVtb3ZlIGxpbmUsIGp1c3QgYWRkIGl0XG4gICAgICBwcm9jZXNzZWRMaW5lcy5wdXNoKGN1cnJlbnQpXG4gICAgICBpKytcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcHJvY2Vzc2VkTGluZXNcbn1cblxuLy8gQ2FsY3VsYXRlIHdvcmQtbGV2ZWwgZGlmZnMgYmV0d2VlbiB0d28gdGV4dCBzdHJpbmdzXG5leHBvcnQgZnVuY3Rpb24gY2FsY3VsYXRlV29yZERpZmZzKFxuICBvbGRUZXh0OiBzdHJpbmcsXG4gIG5ld1RleHQ6IHN0cmluZyxcbik6IERpZmZQYXJ0W10ge1xuICAvLyBVc2UgZGlmZldvcmRzV2l0aFNwYWNlIGluc3RlYWQgb2YgZGlmZldvcmRzIHRvIHByZXNlcnZlIHdoaXRlc3BhY2VcbiAgLy8gVGhpcyBlbnN1cmVzIHNwYWNlcyBiZXR3ZWVuIHRva2VucyBsaWtlID4gYW5kIHsgYXJlIHByZXNlcnZlZFxuICBjb25zdCByZXN1bHQgPSBkaWZmV29yZHNXaXRoU3BhY2Uob2xkVGV4dCwgbmV3VGV4dCwgeyBpZ25vcmVDYXNlOiBmYWxzZSB9KVxuXG4gIHJldHVybiByZXN1bHRcbn1cblxuLy8gUHJvY2VzcyB3b3JkLWxldmVsIGRpZmZzIHdpdGggbWFudWFsIHdyYXBwaW5nIHN1cHBvcnRcbmZ1bmN0aW9uIGdlbmVyYXRlV29yZERpZmZFbGVtZW50cyhcbiAgaXRlbTogRGlmZkxpbmUsXG4gIHdpZHRoOiBudW1iZXIsXG4gIG1heFdpZHRoOiBudW1iZXIsXG4gIGRpbTogYm9vbGVhbixcbiAgb3ZlcnJpZGVUaGVtZT86IFRoZW1lTmFtZSxcbik6IFJlYWN0LlJlYWN0Tm9kZVtdIHwgbnVsbCB7XG4gIGNvbnN0IHsgdHlwZSwgaSwgd29yZERpZmYsIG1hdGNoZWRMaW5lLCBvcmlnaW5hbENvZGUgfSA9IGl0ZW1cblxuICBpZiAoIXdvcmREaWZmIHx8ICFtYXRjaGVkTGluZSkge1xuICAgIHJldHVybiBudWxsIC8vIFRoaXMgZnVuY3Rpb24gb25seSBoYW5kbGVzIHdvcmQtbGV2ZWwgZGlmZiByZW5kZXJpbmdcbiAgfVxuXG4gIGNvbnN0IHJlbW92ZWRMaW5lVGV4dCA9XG4gICAgdHlwZSA9PT0gJ3JlbW92ZScgPyBvcmlnaW5hbENvZGUgOiBtYXRjaGVkTGluZS5vcmlnaW5hbENvZGVcbiAgY29uc3QgYWRkZWRMaW5lVGV4dCA9XG4gICAgdHlwZSA9PT0gJ3JlbW92ZScgPyBtYXRjaGVkTGluZS5vcmlnaW5hbENvZGUgOiBvcmlnaW5hbENvZGVcblxuICBjb25zdCB3b3JkRGlmZnMgPSBjYWxjdWxhdGVXb3JkRGlmZnMocmVtb3ZlZExpbmVUZXh0LCBhZGRlZExpbmVUZXh0KVxuXG4gIC8vIENoZWNrIGlmIHdlIHNob3VsZCB1c2Ugd29yZC1sZXZlbCBkaWZmaW5nXG4gIGNvbnN0IHRvdGFsTGVuZ3RoID0gcmVtb3ZlZExpbmVUZXh0Lmxlbmd0aCArIGFkZGVkTGluZVRleHQubGVuZ3RoXG4gIGNvbnN0IGNoYW5nZWRMZW5ndGggPSB3b3JkRGlmZnNcbiAgICAuZmlsdGVyKHBhcnQgPT4gcGFydC5hZGRlZCB8fCBwYXJ0LnJlbW92ZWQpXG4gICAgLnJlZHVjZSgoc3VtLCBwYXJ0KSA9PiBzdW0gKyBwYXJ0LnZhbHVlLmxlbmd0aCwgMClcbiAgY29uc3QgY2hhbmdlUmF0aW8gPSBjaGFuZ2VkTGVuZ3RoIC8gdG90YWxMZW5ndGhcblxuICBpZiAoY2hhbmdlUmF0aW8gPiBDSEFOR0VfVEhSRVNIT0xEIHx8IGRpbSkge1xuICAgIHJldHVybiBudWxsIC8vIEZhbGwgYmFjayB0byBzdGFuZGFyZCByZW5kZXJpbmcgZm9yIG1ham9yIGNoYW5nZXNcbiAgfVxuXG4gIC8vIENhbGN1bGF0ZSBhdmFpbGFibGUgd2lkdGggZm9yIGNvbnRlbnRcbiAgY29uc3QgZGlmZlByZWZpeCA9IHR5cGUgPT09ICdhZGQnID8gJysnIDogJy0nXG4gIGNvbnN0IGRpZmZQcmVmaXhXaWR0aCA9IGRpZmZQcmVmaXgubGVuZ3RoXG4gIGNvbnN0IGF2YWlsYWJsZUNvbnRlbnRXaWR0aCA9IE1hdGgubWF4KFxuICAgIDEsXG4gICAgd2lkdGggLSBtYXhXaWR0aCAtIDEgLSBkaWZmUHJlZml4V2lkdGgsXG4gIClcblxuICAvLyBNYW51YWxseSB3cmFwIHRoZSB3b3JkIGRpZmYgcGFydHMgd2l0aCBiZXR0ZXIgc3BhY2UgZWZmaWNpZW5jeVxuICBjb25zdCB3cmFwcGVkTGluZXM6IHsgY29udGVudDogUmVhY3QuUmVhY3ROb2RlW107IGNvbnRlbnRXaWR0aDogbnVtYmVyIH1bXSA9XG4gICAgW11cbiAgbGV0IGN1cnJlbnRMaW5lOiBSZWFjdC5SZWFjdE5vZGVbXSA9IFtdXG4gIGxldCBjdXJyZW50TGluZVdpZHRoID0gMFxuXG4gIHdvcmREaWZmcy5mb3JFYWNoKChwYXJ0LCBwYXJ0SW5kZXgpID0+IHtcbiAgICAvLyBEZXRlcm1pbmUgaWYgdGhpcyBwYXJ0IHNob3VsZCBiZSBzaG93biBmb3IgdGhpcyBsaW5lIHR5cGVcbiAgICBsZXQgc2hvdWxkU2hvdyA9IGZhbHNlXG4gICAgbGV0IHBhcnRCZ0NvbG9yOiAnZGlmZkFkZGVkV29yZCcgfCAnZGlmZlJlbW92ZWRXb3JkJyB8IHVuZGVmaW5lZFxuXG4gICAgaWYgKHR5cGUgPT09ICdhZGQnKSB7XG4gICAgICBpZiAocGFydC5hZGRlZCkge1xuICAgICAgICBzaG91bGRTaG93ID0gdHJ1ZVxuICAgICAgICBwYXJ0QmdDb2xvciA9ICdkaWZmQWRkZWRXb3JkJ1xuICAgICAgfSBlbHNlIGlmICghcGFydC5yZW1vdmVkKSB7XG4gICAgICAgIHNob3VsZFNob3cgPSB0cnVlXG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0eXBlID09PSAncmVtb3ZlJykge1xuICAgICAgaWYgKHBhcnQucmVtb3ZlZCkge1xuICAgICAgICBzaG91bGRTaG93ID0gdHJ1ZVxuICAgICAgICBwYXJ0QmdDb2xvciA9ICdkaWZmUmVtb3ZlZFdvcmQnXG4gICAgICB9IGVsc2UgaWYgKCFwYXJ0LmFkZGVkKSB7XG4gICAgICAgIHNob3VsZFNob3cgPSB0cnVlXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKCFzaG91bGRTaG93KSByZXR1cm5cblxuICAgIC8vIFVzZSB3cmFwVGV4dCB0byB3cmFwIHRoaXMgaW5kaXZpZHVhbCBwYXJ0IGlmIGl0J3MgbG9uZ1xuICAgIGNvbnN0IHBhcnRXcmFwcGVkID0gd3JhcFRleHQocGFydC52YWx1ZSwgYXZhaWxhYmxlQ29udGVudFdpZHRoLCAnd3JhcCcpXG4gICAgY29uc3QgcGFydExpbmVzID0gcGFydFdyYXBwZWQuc3BsaXQoJ1xcbicpXG5cbiAgICBwYXJ0TGluZXMuZm9yRWFjaCgocGFydExpbmUsIGxpbmVJZHgpID0+IHtcbiAgICAgIGlmICghcGFydExpbmUpIHJldHVyblxuXG4gICAgICAvLyBDaGVjayBpZiB3ZSBuZWVkIHRvIHN0YXJ0IGEgbmV3IGxpbmVcbiAgICAgIGlmIChcbiAgICAgICAgbGluZUlkeCA+IDAgfHxcbiAgICAgICAgY3VycmVudExpbmVXaWR0aCArIHN0cmluZ1dpZHRoKHBhcnRMaW5lKSA+IGF2YWlsYWJsZUNvbnRlbnRXaWR0aFxuICAgICAgKSB7XG4gICAgICAgIGlmIChjdXJyZW50TGluZS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgd3JhcHBlZExpbmVzLnB1c2goe1xuICAgICAgICAgICAgY29udGVudDogWy4uLmN1cnJlbnRMaW5lXSxcbiAgICAgICAgICAgIGNvbnRlbnRXaWR0aDogY3VycmVudExpbmVXaWR0aCxcbiAgICAgICAgICB9KVxuICAgICAgICAgIGN1cnJlbnRMaW5lID0gW11cbiAgICAgICAgICBjdXJyZW50TGluZVdpZHRoID0gMFxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGN1cnJlbnRMaW5lLnB1c2goXG4gICAgICAgIDxUZXh0XG4gICAgICAgICAga2V5PXtgcGFydC0ke3BhcnRJbmRleH0tJHtsaW5lSWR4fWB9XG4gICAgICAgICAgYmFja2dyb3VuZENvbG9yPXtwYXJ0QmdDb2xvcn1cbiAgICAgICAgPlxuICAgICAgICAgIHtwYXJ0TGluZX1cbiAgICAgICAgPC9UZXh0PixcbiAgICAgIClcblxuICAgICAgY3VycmVudExpbmVXaWR0aCArPSBzdHJpbmdXaWR0aChwYXJ0TGluZSlcbiAgICB9KVxuICB9KVxuXG4gIGlmIChjdXJyZW50TGluZS5sZW5ndGggPiAwKSB7XG4gICAgd3JhcHBlZExpbmVzLnB1c2goeyBjb250ZW50OiBjdXJyZW50TGluZSwgY29udGVudFdpZHRoOiBjdXJyZW50TGluZVdpZHRoIH0pXG4gIH1cblxuICAvLyBSZW5kZXIgZWFjaCB3cmFwcGVkIGxpbmUgYXMgYSBzZXBhcmF0ZSBUZXh0IGVsZW1lbnRcbiAgcmV0dXJuIHdyYXBwZWRMaW5lcy5tYXAoKHsgY29udGVudCwgY29udGVudFdpZHRoIH0sIGxpbmVJbmRleCkgPT4ge1xuICAgIGNvbnN0IGtleSA9IGAke3R5cGV9LSR7aX0tJHtsaW5lSW5kZXh9YFxuICAgIGNvbnN0IGxpbmVCZ0NvbG9yID1cbiAgICAgIHR5cGUgPT09ICdhZGQnXG4gICAgICAgID8gZGltXG4gICAgICAgICAgPyAnZGlmZkFkZGVkRGltbWVkJ1xuICAgICAgICAgIDogJ2RpZmZBZGRlZCdcbiAgICAgICAgOiBkaW1cbiAgICAgICAgICA/ICdkaWZmUmVtb3ZlZERpbW1lZCdcbiAgICAgICAgICA6ICdkaWZmUmVtb3ZlZCdcbiAgICBjb25zdCBsaW5lTnVtID0gbGluZUluZGV4ID09PSAwID8gaSA6IHVuZGVmaW5lZFxuICAgIGNvbnN0IGxpbmVOdW1TdHIgPVxuICAgICAgKGxpbmVOdW0gIT09IHVuZGVmaW5lZFxuICAgICAgICA/IGxpbmVOdW0udG9TdHJpbmcoKS5wYWRTdGFydChtYXhXaWR0aClcbiAgICAgICAgOiAnICcucmVwZWF0KG1heFdpZHRoKSkgKyAnICdcbiAgICAvLyBDYWxjdWxhdGUgcGFkZGluZyB0byBmaWxsIHRoZSBlbnRpcmUgdGVybWluYWwgd2lkdGhcbiAgICBjb25zdCB1c2VkV2lkdGggPSBsaW5lTnVtU3RyLmxlbmd0aCArIGRpZmZQcmVmaXhXaWR0aCArIGNvbnRlbnRXaWR0aFxuICAgIGNvbnN0IHBhZGRpbmcgPSBNYXRoLm1heCgwLCB3aWR0aCAtIHVzZWRXaWR0aClcblxuICAgIHJldHVybiAoXG4gICAgICA8Qm94IGtleT17a2V5fSBmbGV4RGlyZWN0aW9uPVwicm93XCI+XG4gICAgICAgIDxOb1NlbGVjdCBmcm9tTGVmdEVkZ2U+XG4gICAgICAgICAgPFRleHRcbiAgICAgICAgICAgIGNvbG9yPXtvdmVycmlkZVRoZW1lID8gJ3RleHQnIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yPXtsaW5lQmdDb2xvcn1cbiAgICAgICAgICAgIGRpbUNvbG9yPXtkaW19XG4gICAgICAgICAgPlxuICAgICAgICAgICAge2xpbmVOdW1TdHJ9XG4gICAgICAgICAgICB7ZGlmZlByZWZpeH1cbiAgICAgICAgICA8L1RleHQ+XG4gICAgICAgIDwvTm9TZWxlY3Q+XG4gICAgICAgIDxUZXh0XG4gICAgICAgICAgY29sb3I9e292ZXJyaWRlVGhlbWUgPyAndGV4dCcgOiB1bmRlZmluZWR9XG4gICAgICAgICAgYmFja2dyb3VuZENvbG9yPXtsaW5lQmdDb2xvcn1cbiAgICAgICAgICBkaW1Db2xvcj17ZGltfVxuICAgICAgICA+XG4gICAgICAgICAge2NvbnRlbnR9XG4gICAgICAgICAgeycgJy5yZXBlYXQocGFkZGluZyl9XG4gICAgICAgIDwvVGV4dD5cbiAgICAgIDwvQm94PlxuICAgIClcbiAgfSlcbn1cblxuZnVuY3Rpb24gZm9ybWF0RGlmZihcbiAgbGluZXM6IHN0cmluZ1tdLFxuICBzdGFydGluZ0xpbmVOdW1iZXI6IG51bWJlcixcbiAgd2lkdGg6IG51bWJlcixcbiAgZGltOiBib29sZWFuLFxuICBvdmVycmlkZVRoZW1lPzogVGhlbWVOYW1lLFxuKTogUmVhY3QuUmVhY3ROb2RlW10ge1xuICAvLyBFbnN1cmUgd2lkdGggaXMgYXQgbGVhc3QgMSB0byBwcmV2ZW50IHJlbmRlcmluZyBpc3N1ZXMgd2l0aCB2ZXJ5IG5hcnJvdyB0ZXJtaW5hbHNcbiAgY29uc3Qgc2FmZVdpZHRoID0gTWF0aC5tYXgoMSwgTWF0aC5mbG9vcih3aWR0aCkpXG5cbiAgLy8gU3RlcCAxOiBUcmFuc2Zvcm0gbGluZXMgdG8gbGluZSBvYmplY3RzIHdpdGggdHlwZSBpbmZvcm1hdGlvblxuICBjb25zdCBsaW5lT2JqZWN0cyA9IHRyYW5zZm9ybUxpbmVzVG9PYmplY3RzKGxpbmVzKVxuXG4gIC8vIFN0ZXAgMjogR3JvdXAgYWRqYWNlbnQgYWRkL3JlbW92ZSBsaW5lcyBmb3Igd29yZC1sZXZlbCBkaWZmaW5nXG4gIGNvbnN0IHByb2Nlc3NlZExpbmVzID0gcHJvY2Vzc0FkamFjZW50TGluZXMobGluZU9iamVjdHMpXG5cbiAgLy8gU3RlcCAzOiBOdW1iZXIgdGhlIGRpZmYgbGluZXNcbiAgY29uc3QgbHMgPSBudW1iZXJEaWZmTGluZXMocHJvY2Vzc2VkTGluZXMsIHN0YXJ0aW5nTGluZU51bWJlcilcblxuICAvLyBGaW5kIG1heCBsaW5lIG51bWJlciB3aWR0aCBmb3IgYWxpZ25tZW50XG4gIGNvbnN0IG1heExpbmVOdW1iZXIgPSBNYXRoLm1heCguLi5scy5tYXAoKHsgaSB9KSA9PiBpKSwgMClcbiAgY29uc3QgbWF4V2lkdGggPSBNYXRoLm1heChtYXhMaW5lTnVtYmVyLnRvU3RyaW5nKCkubGVuZ3RoICsgMSwgMClcblxuICAvLyBTdGVwIDQ6IFJlbmRlciBmb3JtYXR0aW5nXG4gIHJldHVybiBscy5mbGF0TWFwKChpdGVtKTogUmVhY3QuUmVhY3ROb2RlW10gPT4ge1xuICAgIGNvbnN0IHsgdHlwZSwgY29kZSwgaSwgd29yZERpZmYsIG1hdGNoZWRMaW5lIH0gPSBpdGVtXG5cbiAgICAvLyBIYW5kbGUgd29yZC1sZXZlbCBkaWZmaW5nIGZvciBhZGQvcmVtb3ZlIHBhaXJzXG4gICAgaWYgKHdvcmREaWZmICYmIG1hdGNoZWRMaW5lKSB7XG4gICAgICBjb25zdCB3b3JkRGlmZkVsZW1lbnRzID0gZ2VuZXJhdGVXb3JkRGlmZkVsZW1lbnRzKFxuICAgICAgICBpdGVtLFxuICAgICAgICBzYWZlV2lkdGgsXG4gICAgICAgIG1heFdpZHRoLFxuICAgICAgICBkaW0sXG4gICAgICAgIG92ZXJyaWRlVGhlbWUsXG4gICAgICApXG5cbiAgICAgIC8vIHdvcmQtZGlmZiBtaWdodCByZWZ1c2UgKGUuZy4gZHVlIHRvIGxpbmVzIGJlaW5nIHN1YnN0YW50aWFsbHkgZGlmZmVyZW50KSBpbiB3aGljaFxuICAgICAgLy8gY2FzZSB3ZSdsbCBmYWxsIHRocm91Z2ggdG8gbm9ybWFsIHJlbmRlcmluIGdiZWxvd1xuICAgICAgaWYgKHdvcmREaWZmRWxlbWVudHMgIT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIHdvcmREaWZmRWxlbWVudHNcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTdGFuZGFyZCByZW5kZXJpbmcgZm9yIGxpbmVzIHdpdGhvdXQgd29yZCBkaWZmaW5nIG9yIGFzIGZhbGxiYWNrXG4gICAgLy8gQ2FsY3VsYXRlIGF2YWlsYWJsZSB3aWR0aCBhY2NvdW50aW5nIGZvciBsaW5lIG51bWJlciArIHNwYWNlICsgZGlmZiBwcmVmaXhcbiAgICBjb25zdCBkaWZmUHJlZml4V2lkdGggPSAyIC8vIFwiICBcIiBmb3IgdW5jaGFuZ2VkLCBcIisgXCIgb3IgXCItIFwiIGZvciBjaGFuZ2VzXG4gICAgY29uc3QgYXZhaWxhYmxlQ29udGVudFdpZHRoID0gTWF0aC5tYXgoXG4gICAgICAxLFxuICAgICAgc2FmZVdpZHRoIC0gbWF4V2lkdGggLSAxIC0gZGlmZlByZWZpeFdpZHRoLFxuICAgICkgLy8gLTEgZm9yIHNwYWNlIGFmdGVyIGxpbmUgbnVtYmVyXG4gICAgY29uc3Qgd3JhcHBlZFRleHQgPSB3cmFwVGV4dChjb2RlLCBhdmFpbGFibGVDb250ZW50V2lkdGgsICd3cmFwJylcbiAgICBjb25zdCB3cmFwcGVkTGluZXMgPSB3cmFwcGVkVGV4dC5zcGxpdCgnXFxuJylcblxuICAgIHJldHVybiB3cmFwcGVkTGluZXMubWFwKChsaW5lLCBsaW5lSW5kZXgpID0+IHtcbiAgICAgIGNvbnN0IGtleSA9IGAke3R5cGV9LSR7aX0tJHtsaW5lSW5kZXh9YFxuICAgICAgY29uc3QgbGluZU51bSA9IGxpbmVJbmRleCA9PT0gMCA/IGkgOiB1bmRlZmluZWRcbiAgICAgIGNvbnN0IGxpbmVOdW1TdHIgPVxuICAgICAgICAobGluZU51bSAhPT0gdW5kZWZpbmVkXG4gICAgICAgICAgPyBsaW5lTnVtLnRvU3RyaW5nKCkucGFkU3RhcnQobWF4V2lkdGgpXG4gICAgICAgICAgOiAnICcucmVwZWF0KG1heFdpZHRoKSkgKyAnICdcbiAgICAgIGNvbnN0IHNpZ2lsID0gdHlwZSA9PT0gJ2FkZCcgPyAnKycgOiB0eXBlID09PSAncmVtb3ZlJyA/ICctJyA6ICcgJ1xuICAgICAgLy8gQ2FsY3VsYXRlIHBhZGRpbmcgdG8gZmlsbCB0aGUgZW50aXJlIHRlcm1pbmFsIHdpZHRoXG4gICAgICBjb25zdCBjb250ZW50V2lkdGggPSBsaW5lTnVtU3RyLmxlbmd0aCArIDEgKyBzdHJpbmdXaWR0aChsaW5lKSAvLyBsaW5lTnVtICsgc2lnaWwgKyBjb2RlXG4gICAgICBjb25zdCBwYWRkaW5nID0gTWF0aC5tYXgoMCwgc2FmZVdpZHRoIC0gY29udGVudFdpZHRoKVxuXG4gICAgICBjb25zdCBiZ0NvbG9yID1cbiAgICAgICAgdHlwZSA9PT0gJ2FkZCdcbiAgICAgICAgICA/IGRpbVxuICAgICAgICAgICAgPyAnZGlmZkFkZGVkRGltbWVkJ1xuICAgICAgICAgICAgOiAnZGlmZkFkZGVkJ1xuICAgICAgICAgIDogdHlwZSA9PT0gJ3JlbW92ZSdcbiAgICAgICAgICAgID8gZGltXG4gICAgICAgICAgICAgID8gJ2RpZmZSZW1vdmVkRGltbWVkJ1xuICAgICAgICAgICAgICA6ICdkaWZmUmVtb3ZlZCdcbiAgICAgICAgICAgIDogdW5kZWZpbmVkXG5cbiAgICAgIC8vIEd1dHRlciAobGluZSBudW1iZXIgKyBzaWdpbCkgaXMgd3JhcHBlZCBpbiA8Tm9TZWxlY3Q+IHNvIGZ1bGxzY3JlZW5cbiAgICAgIC8vIHRleHQgc2VsZWN0aW9uIHlpZWxkcyBjbGVhbiBjb2RlLiBiZ0NvbG9yIGNhcnJpZXMgYWNyb3NzIGJvdGggYm94ZXNcbiAgICAgIC8vIHNvIHRoZSB2aXN1YWwgY29udGludWl0eSAoc29saWQgcmVkL2dyZWVuIGJhcikgaXMgdW5jaGFuZ2VkLlxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPEJveCBrZXk9e2tleX0gZmxleERpcmVjdGlvbj1cInJvd1wiPlxuICAgICAgICAgIDxOb1NlbGVjdCBmcm9tTGVmdEVkZ2U+XG4gICAgICAgICAgICA8VGV4dFxuICAgICAgICAgICAgICBjb2xvcj17b3ZlcnJpZGVUaGVtZSA/ICd0ZXh0JyA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yPXtiZ0NvbG9yfVxuICAgICAgICAgICAgICBkaW1Db2xvcj17ZGltIHx8IHR5cGUgPT09ICdub2NoYW5nZSd9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtsaW5lTnVtU3RyfVxuICAgICAgICAgICAgICB7c2lnaWx9XG4gICAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICAgPC9Ob1NlbGVjdD5cbiAgICAgICAgICA8VGV4dFxuICAgICAgICAgICAgY29sb3I9e292ZXJyaWRlVGhlbWUgPyAndGV4dCcgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I9e2JnQ29sb3J9XG4gICAgICAgICAgICBkaW1Db2xvcj17ZGltfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtsaW5lfVxuICAgICAgICAgICAgeycgJy5yZXBlYXQocGFkZGluZyl9XG4gICAgICAgICAgPC9UZXh0PlxuICAgICAgICA8L0JveD5cbiAgICAgIClcbiAgICB9KVxuICB9KVxufVxuXG5leHBvcnQgZnVuY3Rpb24gbnVtYmVyRGlmZkxpbmVzKFxuICBkaWZmOiBMaW5lT2JqZWN0W10sXG4gIHN0YXJ0TGluZTogbnVtYmVyLFxuKTogRGlmZkxpbmVbXSB7XG4gIGxldCBpID0gc3RhcnRMaW5lXG4gIGNvbnN0IHJlc3VsdDogRGlmZkxpbmVbXSA9IFtdXG4gIGNvbnN0IHF1ZXVlID0gWy4uLmRpZmZdXG5cbiAgd2hpbGUgKHF1ZXVlLmxlbmd0aCA+IDApIHtcbiAgICBjb25zdCBjdXJyZW50ID0gcXVldWUuc2hpZnQoKSFcbiAgICBjb25zdCB7IGNvZGUsIHR5cGUsIG9yaWdpbmFsQ29kZSwgd29yZERpZmYsIG1hdGNoZWRMaW5lIH0gPSBjdXJyZW50XG4gICAgY29uc3QgbGluZSA9IHtcbiAgICAgIGNvZGUsXG4gICAgICB0eXBlLFxuICAgICAgaSxcbiAgICAgIG9yaWdpbmFsQ29kZSxcbiAgICAgIHdvcmREaWZmLFxuICAgICAgbWF0Y2hlZExpbmUsXG4gICAgfVxuXG4gICAgLy8gVXBkYXRlIGNvdW50ZXJzIGJhc2VkIG9uIGNoYW5nZSB0eXBlXG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICBjYXNlICdub2NoYW5nZSc6XG4gICAgICAgIGkrK1xuICAgICAgICByZXN1bHQucHVzaChsaW5lKVxuICAgICAgICBicmVha1xuICAgICAgY2FzZSAnYWRkJzpcbiAgICAgICAgaSsrXG4gICAgICAgIHJlc3VsdC5wdXNoKGxpbmUpXG4gICAgICAgIGJyZWFrXG4gICAgICBjYXNlICdyZW1vdmUnOiB7XG4gICAgICAgIHJlc3VsdC5wdXNoKGxpbmUpXG4gICAgICAgIGxldCBudW1SZW1vdmVkID0gMFxuICAgICAgICB3aGlsZSAocXVldWVbMF0/LnR5cGUgPT09ICdyZW1vdmUnKSB7XG4gICAgICAgICAgaSsrXG4gICAgICAgICAgY29uc3QgY3VycmVudCA9IHF1ZXVlLnNoaWZ0KCkhXG4gICAgICAgICAgY29uc3QgeyBjb2RlLCB0eXBlLCBvcmlnaW5hbENvZGUsIHdvcmREaWZmLCBtYXRjaGVkTGluZSB9ID0gY3VycmVudFxuICAgICAgICAgIGNvbnN0IGxpbmUgPSB7XG4gICAgICAgICAgICBjb2RlLFxuICAgICAgICAgICAgdHlwZSxcbiAgICAgICAgICAgIGksXG4gICAgICAgICAgICBvcmlnaW5hbENvZGUsXG4gICAgICAgICAgICB3b3JkRGlmZixcbiAgICAgICAgICAgIG1hdGNoZWRMaW5lLFxuICAgICAgICAgIH1cbiAgICAgICAgICByZXN1bHQucHVzaChsaW5lKVxuICAgICAgICAgIG51bVJlbW92ZWQrK1xuICAgICAgICB9XG4gICAgICAgIGkgLT0gbnVtUmVtb3ZlZFxuICAgICAgICBicmVha1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiByZXN1bHRcbn1cbiJdLCJtYXBwaW5ncyI6IjtBQUFBLFNBQVNBLGtCQUFrQixFQUFFLEtBQUtDLG1CQUFtQixRQUFRLE1BQU07QUFDbkUsT0FBTyxLQUFLQyxLQUFLLE1BQU0sT0FBTztBQUM5QixTQUFTQyxPQUFPLFFBQVEsT0FBTztBQUMvQixjQUFjQyxTQUFTLFFBQVEsb0JBQW9CO0FBQ25ELFNBQVNDLFdBQVcsUUFBUSwwQkFBMEI7QUFDdEQsU0FBU0MsR0FBRyxFQUFFQyxRQUFRLEVBQUVDLElBQUksRUFBRUMsUUFBUSxFQUFFQyxRQUFRLFFBQVEsY0FBYzs7QUFFdEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxVQUFVQyxRQUFRLENBQUM7RUFD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 diff --git a/restored-src/src/components/StructuredDiff/colorDiff.ts b/restored-src/src/components/StructuredDiff/colorDiff.ts index d3abaa280..97bdc72a2 100644 --- a/restored-src/src/components/StructuredDiff/colorDiff.ts +++ b/restored-src/src/components/StructuredDiff/colorDiff.ts @@ -3,7 +3,7 @@ import { ColorFile, getSyntaxTheme as nativeGetSyntaxTheme, type SyntaxTheme, -} from 'color-diff-napi' +} from '../../native-ts/color-diff/index.js' import { isEnvDefinedFalsy } from '../../utils/envUtils.js' export type ColorModuleUnavailableReason = 'env' diff --git a/restored-src/src/entrypoints/sdk/controlTypes.ts b/restored-src/src/entrypoints/sdk/controlTypes.ts new file mode 100644 index 000000000..336ce12bb --- /dev/null +++ b/restored-src/src/entrypoints/sdk/controlTypes.ts @@ -0,0 +1 @@ +export {} diff --git a/restored-src/src/entrypoints/sdk/coreTypes.generated.ts b/restored-src/src/entrypoints/sdk/coreTypes.generated.ts new file mode 100644 index 000000000..336ce12bb --- /dev/null +++ b/restored-src/src/entrypoints/sdk/coreTypes.generated.ts @@ -0,0 +1 @@ +export {} diff --git a/restored-src/src/entrypoints/sdk/runtimeTypes.ts b/restored-src/src/entrypoints/sdk/runtimeTypes.ts new file mode 100644 index 000000000..336ce12bb --- /dev/null +++ b/restored-src/src/entrypoints/sdk/runtimeTypes.ts @@ -0,0 +1 @@ +export {} diff --git a/restored-src/src/entrypoints/sdk/settingsTypes.generated.ts b/restored-src/src/entrypoints/sdk/settingsTypes.generated.ts new file mode 100644 index 000000000..336ce12bb --- /dev/null +++ b/restored-src/src/entrypoints/sdk/settingsTypes.generated.ts @@ -0,0 +1 @@ +export {} diff --git a/restored-src/src/entrypoints/sdk/toolTypes.ts b/restored-src/src/entrypoints/sdk/toolTypes.ts new file mode 100644 index 000000000..336ce12bb --- /dev/null +++ b/restored-src/src/entrypoints/sdk/toolTypes.ts @@ -0,0 +1 @@ +export {} diff --git a/restored-src/src/ink/components/Box.tsx b/restored-src/src/ink/components/Box.tsx index 67f2500ff..83b692f3a 100644 --- a/restored-src/src/ink/components/Box.tsx +++ b/restored-src/src/ink/components/Box.tsx @@ -1,5 +1,5 @@ import { c as _c } from "react/compiler-runtime"; -import '../global.d.ts'; +import type {} from '../global.d.ts'; import React, { type PropsWithChildren, type Ref } from 'react'; import type { Except } from 'type-fest'; import type { DOMElement } from '../dom.js'; @@ -211,4 +211,4 @@ function Box(t0) { return t4; } export default Box; -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIlByb3BzV2l0aENoaWxkcmVuIiwiUmVmIiwiRXhjZXB0IiwiRE9NRWxlbWVudCIsIkNsaWNrRXZlbnQiLCJGb2N1c0V2ZW50IiwiS2V5Ym9hcmRFdmVudCIsIlN0eWxlcyIsIndhcm4iLCJQcm9wcyIsInJlZiIsInRhYkluZGV4IiwiYXV0b0ZvY3VzIiwib25DbGljayIsImV2ZW50Iiwib25Gb2N1cyIsIm9uRm9jdXNDYXB0dXJlIiwib25CbHVyIiwib25CbHVyQ2FwdHVyZSIsIm9uS2V5RG93biIsIm9uS2V5RG93bkNhcHR1cmUiLCJvbk1vdXNlRW50ZXIiLCJvbk1vdXNlTGVhdmUiLCJCb3giLCJ0MCIsIiQiLCJfYyIsImNoaWxkcmVuIiwiZmxleERpcmVjdGlvbiIsImZsZXhHcm93IiwiZmxleFNocmluayIsImZsZXhXcmFwIiwic3R5bGUiLCJ0MSIsInQyIiwidDMiLCJ0NCIsInQ1IiwidDYiLCJ0NyIsInQ4IiwidDkiLCJ0MTAiLCJ0MTEiLCJ0MTIiLCJ0MTMiLCJ0MTQiLCJ0MTUiLCJ0MTYiLCJ0MTciLCJ0MTgiLCJ1bmRlZmluZWQiLCJpZk5vdEludGVnZXIiLCJtYXJnaW4iLCJtYXJnaW5YIiwibWFyZ2luWSIsIm1hcmdpblRvcCIsIm1hcmdpbkJvdHRvbSIsIm1hcmdpbkxlZnQiLCJtYXJnaW5SaWdodCIsInBhZGRpbmciLCJwYWRkaW5nWCIsInBhZGRpbmdZIiwicGFkZGluZ1RvcCIsInBhZGRpbmdCb3R0b20iLCJwYWRkaW5nTGVmdCIsInBhZGRpbmdSaWdodCIsImdhcCIsImNvbHVtbkdhcCIsInJvd0dhcCIsIm92ZXJmbG93WCIsIm92ZXJmbG93Iiwib3ZlcmZsb3dZIl0sInNvdXJjZXMiOlsiQm94LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJy4uL2dsb2JhbC5kLnRzJ1xuaW1wb3J0IFJlYWN0LCB7IHR5cGUgUHJvcHNXaXRoQ2hpbGRyZW4sIHR5cGUgUmVmIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgdHlwZSB7IEV4Y2VwdCB9IGZyb20gJ3R5cGUtZmVzdCdcbmltcG9ydCB0eXBlIHsgRE9NRWxlbWVudCB9IGZyb20gJy4uL2RvbS5qcydcbmltcG9ydCB0eXBlIHsgQ2xpY2tFdmVudCB9IGZyb20gJy4uL2V2ZW50cy9jbGljay1ldmVudC5qcydcbmltcG9ydCB0eXBlIHsgRm9jdXNFdmVudCB9IGZyb20gJy4uL2V2ZW50cy9mb2N1cy1ldmVudC5qcydcbmltcG9ydCB0eXBlIHsgS2V5Ym9hcmRFdmVudCB9IGZyb20gJy4uL2V2ZW50cy9rZXlib2FyZC1ldmVudC5qcydcbmltcG9ydCB0eXBlIHsgU3R5bGVzIH0gZnJvbSAnLi4vc3R5bGVzLmpzJ1xuaW1wb3J0ICogYXMgd2FybiBmcm9tICcuLi93YXJuLmpzJ1xuXG5leHBvcnQgdHlwZSBQcm9wcyA9IEV4Y2VwdDxTdHlsZXMsICd0ZXh0V3JhcCc+ICYge1xuICByZWY/OiBSZWY8RE9NRWxlbWVudD5cbiAgLyoqXG4gICAqIFRhYiBvcmRlciBpbmRleC4gTm9kZXMgd2l0aCBgdGFiSW5kZXggPj0gMGAgcGFydGljaXBhdGUgaW5cbiAgICogVGFiL1NoaWZ0K1RhYiBjeWNsaW5nOyBgLTFgIG1lYW5zIHByb2dyYW1tYXRpY2FsbHkgZm9jdXNhYmxlIG9ubHkuXG4gICAqL1xuICB0YWJJbmRleD86IG51bWJlclxuICAvKipcbiAgICogRm9jdXMgdGhpcyBlbGVtZW50IHdoZW4gaXQgbW91bnRzLiBMaWtlIHRoZSBIVE1MIGBhdXRvZm9jdXNgXG4gICAqIGF0dHJpYnV0ZSDigJQgdGhlIEZvY3VzTWFuYWdlciBjYWxscyBgZm9jdXMobm9kZSlgIGR1cmluZyB0aGVcbiAgICogcmVjb25jaWxlcidzIGBjb21taXRNb3VudGAgcGhhc2UuXG4gICAqL1xuICBhdXRvRm9jdXM/OiBib29sZWFuXG4gIC8qKlxuICAgKiBGaXJlZCBvbiBsZWZ0LWJ1dHRvbiBjbGljayAocHJlc3MgKyByZWxlYXNlIHdpdGhvdXQgZHJhZykuIE9ubHkgd29ya3NcbiAgICogaW5zaWRlIGA8QWx0ZXJuYXRlU2NyZWVuPmAgd2hlcmUgbW91c2UgdHJhY2tpbmcgaXMgZW5hYmxlZCDigJQgbm8tb3BcbiAgICogb3RoZXJ3aXNlLiBUaGUgZXZlbnQgYnViYmxlcyBmcm9tIHRoZSBkZWVwZXN0IGhpdCBCb3ggdXAgdGhyb3VnaFxuICAgKiBhbmNlc3RvcnM7IGNhbGwgYGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpYCB0byBzdG9wIGJ1YmJsaW5nLlxuICAgKi9cbiAgb25DbGljaz86IChldmVudDogQ2xpY2tFdmVudCkgPT4gdm9pZFxuICBvbkZvY3VzPzogKGV2ZW50OiBGb2N1c0V2ZW50KSA9PiB2b2lkXG4gIG9uRm9jdXNDYXB0dXJlPzogKGV2ZW50OiBGb2N1c0V2ZW50KSA9PiB2b2lkXG4gIG9uQmx1cj86IChldmVudDogRm9jdXNFdmVudCkgPT4gdm9pZFxuICBvbkJsdXJDYXB0dXJlPzogKGV2ZW50OiBGb2N1c0V2ZW50KSA9PiB2b2lkXG4gIG9uS2V5RG93bj86IChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4gdm9pZFxuICBvbktleURvd25DYXB0dXJlPzogKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB2b2lkXG4gIC8qKlxuICAgKiBGaXJlZCB3aGVuIHRoZSBtb3VzZSBtb3ZlcyBpbnRvIHRoaXMgQm94J3MgcmVuZGVyZWQgcmVjdC4gTGlrZSBET01cbiAgICogYG1vdXNlZW50ZXJgLCBkb2VzIE5PVCBidWJibGUg4oCUIG1vdmluZyBiZXR3ZWVuIGNoaWxkcmVuIGRvZXMgbm90XG4gICAqIHJlLWZpcmUgb24gdGhlIHBhcmVudC4gT25seSB3b3JrcyBpbnNpZGUgYDxBbHRlcm5hdGVTY3JlZW4+YCB3aGVyZVxuICAgKiBtb2RlLTEwMDMgbW91c2UgdHJhY2tpbmcgaXMgZW5hYmxlZC5cbiAgICovXG4gIG9uTW91c2VFbnRlcj86ICgpID0+IHZvaWRcbiAgLyoqIEZpcmVkIHdoZW4gdGhlIG1vdXNlIG1vdmVzIG91dCBvZiB0aGlzIEJveCdzIHJlbmRlcmVkIHJlY3QuICovXG4gIG9uTW91c2VMZWF2ZT86ICgpID0+IHZvaWRcbn1cblxuLyoqXG4gKiBgPEJveD5gIGlzIGFuIGVzc2VudGlhbCBJbmsgY29tcG9uZW50IHRvIGJ1aWxkIHlvdXIgbGF5b3V0LiBJdCdzIGxpa2UgYDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4XCI+YCBpbiB0aGUgYnJvd3Nlci5cbiAqL1xuZnVuY3Rpb24gQm94KHtcbiAgY2hpbGRyZW4sXG4gIGZsZXhXcmFwID0gJ25vd3JhcCcsXG4gIGZsZXhEaXJlY3Rpb24gPSAncm93JyxcbiAgZmxleEdyb3cgPSAwLFxuICBmbGV4U2hyaW5rID0gMSxcbiAgcmVmLFxuICB0YWJJbmRleCxcbiAgYXV0b0ZvY3VzLFxuICBvbkNsaWNrLFxuICBvbkZvY3VzLFxuICBvbkZvY3VzQ2FwdHVyZSxcbiAgb25CbHVyLFxuICBvbkJsdXJDYXB0dXJlLFxuICBvbk1vdXNlRW50ZXIsXG4gIG9uTW91c2VMZWF2ZSxcbiAgb25LZXlEb3duLFxuICBvbktleURvd25DYXB0dXJlLFxuICAuLi5zdHlsZVxufTogUHJvcHNXaXRoQ2hpbGRyZW48UHJvcHM+KTogUmVhY3QuUmVhY3ROb2RlIHtcbiAgLy8gV2FybiBpZiBzcGFjaW5nIHZhbHVlcyBhcmUgbm90IGludGVnZXJzIHRvIHByZXZlbnQgZnJhY3Rpb25hbCBsYXlvdXQgZGltZW5zaW9uc1xuICB3YXJuLmlmTm90SW50ZWdlcihzdHlsZS5tYXJnaW4sICdtYXJnaW4nKVxuICB3YXJuLmlmTm90SW50ZWdlcihzdHlsZS5tYXJnaW5YLCAnbWFyZ2luWCcpXG4gIHdhcm4uaWZOb3RJbnRlZ2VyKHN0eWxlLm1hcmdpblksICdtYXJnaW5ZJylcbiAgd2Fybi5pZk5vdEludGVnZXIoc3R5bGUubWFyZ2luVG9wLCAnbWFyZ2luVG9wJylcbiAgd2Fybi5pZk5vdEludGVnZXIoc3R5bGUubWFyZ2luQm90dG9tLCAnbWFyZ2luQm90dG9tJylcbiAgd2Fybi5pZk5vdEludGVnZXIoc3R5bGUubWFyZ2luTGVmdCwgJ21hcmdpbkxlZnQnKVxuICB3YXJuLmlmTm90SW50ZWdlcihzdHlsZS5tYXJnaW5SaWdodCwgJ21hcmdpblJpZ2h0JylcbiAgd2Fybi5pZk5vdEludGVnZXIoc3R5bGUucGFkZGluZywgJ3BhZGRpbmcnKVxuICB3YXJuLmlmTm90SW50ZWdlcihzdHlsZS5wYWRkaW5nWCwgJ3BhZGRpbmdYJylcbiAgd2Fybi5pZk5vdEludGVnZXIoc3R5bGUucGFkZGluZ1ksICdwYWRkaW5nWScpXG4gIHdhcm4uaWZOb3RJbnRlZ2VyKHN0eWxlLnBhZGRpbmdUb3AsICdwYWRkaW5nVG9wJylcbiAgd2Fybi5pZk5vdEludGVnZXIoc3R5bGUucGFkZGluZ0JvdHRvbSwgJ3BhZGRpbmdCb3R0b20nKVxuICB3YXJuLmlmTm90SW50ZWdlcihzdHlsZS5wYWRkaW5nTGVmdCwgJ3BhZGRpbmdMZWZ0JylcbiAgd2Fybi5pZk5vdEludGVnZXIoc3R5bGUucGFkZGluZ1JpZ2h0LCAncGFkZGluZ1JpZ2h0JylcbiAgd2Fybi5pZk5vdEludGVnZXIoc3R5bGUuZ2FwLCAnZ2FwJylcbiAgd2Fybi5pZk5vdEludGVnZXIoc3R5bGUuY29sdW1uR2FwLCAnY29sdW1uR2FwJylcbiAgd2Fybi5pZk5vdEludGVnZXIoc3R5bGUucm93R2FwLCAncm93R2FwJylcblxuICByZXR1cm4gKFxuICAgIDxpbmstYm94XG4gICAgICByZWY9e3JlZn1cbiAgICAgIHRhYkluZGV4PXt0YWJJbmRleH1cbiAgICAgIGF1dG9Gb2N1cz17YXV0b0ZvY3VzfVxuICAgICAgb25DbGljaz17b25DbGlja31cbiAgICAgIG9uRm9jdXM9e29uRm9jdXN9XG4gICAgICBvbkZvY3VzQ2FwdHVyZT17b25Gb2N1c0NhcHR1cmV9XG4gICAgICBvbkJsdXI9e29uQmx1cn1cbiAgICAgIG9uQmx1ckNhcHR1cmU9e29uQmx1ckNhcHR1cmV9XG4gICAgICBvbk1vdXNlRW50ZXI9e29uTW91c2VFbnRlcn1cbiAgICAgIG9uTW91c2VMZWF2ZT17b25Nb3VzZUxlYXZlfVxuICAgICAgb25LZXlEb3duPXtvbktleURvd259XG4gICAgICBvbktleURvd25DYXB0dXJlPXtvbktleURvd25DYXB0dXJlfVxuICAgICAgc3R5bGU9e3tcbiAgICAgICAgZmxleFdyYXAsXG4gICAgICAgIGZsZXhEaXJlY3Rpb24sXG4gICAgICAgIGZsZXhHcm93LFxuICAgICAgICBmbGV4U2hyaW5rLFxuICAgICAgICAuLi5zdHlsZSxcbiAgICAgICAgb3ZlcmZsb3dYOiBzdHlsZS5vdmVyZmxvd1ggPz8gc3R5bGUub3ZlcmZsb3cgPz8gJ3Zpc2libGUnLFxuICAgICAgICBvdmVyZmxvd1k6IHN0eWxlLm92ZXJmbG93WSA/PyBzdHlsZS5vdmVyZmxvdyA/PyAndmlzaWJsZScsXG4gICAgICB9fVxuICAgID5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L2luay1ib3g+XG4gIClcbn1cblxuZXhwb3J0IGRlZmF1bHQgQm94XG4iXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLGdCQUFnQjtBQUN2QixPQUFPQSxLQUFLLElBQUksS0FBS0MsaUJBQWlCLEVBQUUsS0FBS0MsR0FBRyxRQUFRLE9BQU87QUFDL0QsY0FBY0MsTUFBTSxRQUFRLFdBQVc7QUFDdkMsY0FBY0MsVUFBVSxRQUFRLFdBQVc7QUFDM0MsY0FBY0MsVUFBVSxRQUFRLDBCQUEwQjtBQUMxRCxjQUFjQyxVQUFVLFFBQVEsMEJBQTBCO0FBQzFELGNBQWNDLGFBQWEsUUFBUSw2QkFBNkI7QUFDaEUsY0FBY0MsTUFBTSxRQUFRLGNBQWM7QUFDMUMsT0FBTyxLQUFLQyxJQUFJLE1BQU0sWUFBWTtBQUVsQyxPQUFPLEtBQUtDLEtBQUssR0FBR1AsTUFBTSxDQUFDSyxNQUFNLEVBQUUsVUFBVSxDQUFDLEdBQUc7RUFDL0NHLEdBQUcsQ0FBQyxFQUFFVCxHQUFHLENBQUNFLFVBQVUsQ0FBQztFQUNyQjtBQUNGO0FBQ0E7QUFDQTtFQUNFUSxRQUFRLENBQUMsRUFBRSxNQUFNO0VBQ2pCO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7RUFDRUMsU0FBUyxDQUFDLEVBQUUsT0FBTztFQUNu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 \ No newline at end of file +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIlByb3BzV2l0aENoaWxkcmVuIiwiUmVmIiwiRXhjZXB0IiwiRE9NRWxlbWVudCIsIkNsaWNrRXZlbnQiLCJGb2N1c0V2ZW50IiwiS2V5Ym9hcmRFdmVudCIsIlN0eWxlcyIsIndhcm4iLCJQcm9wcyIsInJlZiIsInRhYkluZGV4IiwiYXV0b0ZvY3VzIiwib25DbGljayIsImV2ZW50Iiwib25Gb2N1cyIsIm9uRm9jdXNDYXB0dXJlIiwib25CbHVyIiwib25CbHVyQ2FwdHVyZSIsIm9uS2V5RG93biIsIm9uS2V5RG93bkNhcHR1cmUiLCJvbk1vdXNlRW50ZXIiLCJvbk1vdXNlTGVhdmUiLCJCb3giLCJ0MCIsIiQiLCJfYyIsImNoaWxkcmVuIiwiZmxleERpcmVjdGlvbiIsImZsZXhHcm93IiwiZmxleFNocmluayIsImZsZXhXcmFwIiwic3R5bGUiLCJ0MSIsInQyIiwidDMiLCJ0NCIsInQ1IiwidDYiLCJ0NyIsInQ4IiwidDkiLCJ0MTAiLCJ0MTEiLCJ0MTIiLCJ0MTMiLCJ0MTQiLCJ0MTUiLCJ0MTYiLCJ0MTciLCJ0MTgiLCJ1bmRlZmluZWQiLCJpZk5vdEludGVnZXIiLCJtYXJnaW4iLCJtYXJnaW5YIiwibWFyZ2luWSIsIm1hcmdpblRvcCIsIm1hcmdpbkJvdHRvbSIsIm1hcmdpbkxlZnQiLCJtYXJnaW5SaWdodCIsInBhZGRpbmciLCJwYWRkaW5nWCIsInBhZGRpbmdZIiwicGFkZGluZ1RvcCIsInBhZGRpbmdCb3R0b20iLCJwYWRkaW5nTGVmdCIsInBhZGRpbmdSaWdodCIsImdhcCIsImNvbHVtbkdhcCIsInJvd0dhcCIsIm92ZXJmbG93WCIsIm92ZXJmbG93Iiwib3ZlcmZsb3dZIl0sInNvdXJjZXMiOlsiQm94LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJy4uL2dsb2JhbC5kLnRzJ1xuaW1wb3J0IFJlYWN0LCB7IHR5cGUgUHJvcHNXaXRoQ2hpbGRyZW4sIHR5cGUgUmVmIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgdHlwZSB7IEV4Y2VwdCB9IGZyb20gJ3R5cGUtZmVzdCdcbmltcG9ydCB0eXBlIHsgRE9NRWxlbWVudCB9IGZyb20gJy4uL2RvbS5qcydcbmltcG9ydCB0eXBlIHsgQ2xpY2tFdmVudCB9IGZyb20gJy4uL2V2ZW50cy9jbGljay1ldmVudC5qcydcbmltcG9ydCB0eXBlIHsgRm9jdXNFdmVudCB9IGZyb20gJy4uL2V2ZW50cy9mb2N1cy1ldmVudC5qcydcbmltcG9ydCB0eXBlIHsgS2V5Ym9hcmRFdmVudCB9IGZyb20gJy4uL2V2ZW50cy9rZXlib2FyZC1ldmVudC5qcydcbmltcG9ydCB0eXBlIHsgU3R5bGVzIH0gZnJvbSAnLi4vc3R5bGVzLmpzJ1xuaW1wb3J0ICogYXMgd2FybiBmcm9tICcuLi93YXJuLmpzJ1xuXG5leHBvcnQgdHlwZSBQcm9wcyA9IEV4Y2VwdDxTdHlsZXMsICd0ZXh0V3JhcCc+ICYge1xuICByZWY/OiBSZWY8RE9NRWxlbWVudD5cbiAgLyoqXG4gICAqIFRhYiBvcmRlciBpbmRleC4gTm9kZXMgd2l0aCBgdGFiSW5kZXggPj0gMGAgcGFydGljaXBhdGUgaW5cbiAgICogVGFiL1NoaWZ0K1RhYiBjeWNsaW5nOyBgLTFgIG1lYW5zIHByb2dyYW1tYXRpY2FsbHkgZm9jdXNhYmxlIG9ubHkuXG4gICAqL1xuICB0YWJJbmRleD86IG51bWJlclxuICAvKipcbiAgICogRm9jdXMgdGhpcyBlbGVtZW50IHdoZW4gaXQgbW91bnRzLiBMaWtlIHRoZSBIVE1MIGBhdXRvZm9jdXNgXG4gICAqIGF0dHJpYnV0ZSDigJQgdGhlIEZvY3VzTWFuYWdlciBjYWxscyBgZm9jdXMobm9kZSlgIGR1cmluZyB0aGVcbiAgICogcmVjb25jaWxlcidzIGBjb21taXRNb3VudGAgcGhhc2UuXG4gICAqL1xuICBhdXRvRm9jdXM/OiBib29sZWFuXG4gIC8qKlxuICAgKiBGaXJlZCBvbiBsZWZ0LWJ1dHRvbiBjbGljayAocHJlc3MgKyByZWxlYXNlIHdpdGhvdXQgZHJhZykuIE9ubHkgd29ya3NcbiAgICogaW5zaWRlIGA8QWx0ZXJuYXRlU2NyZWVuPmAgd2hlcmUgbW91c2UgdHJhY2tpbmcgaXMgZW5hYmxlZCDigJQgbm8tb3BcbiAgICogb3RoZXJ3aXNlLiBUaGUgZXZlbnQgYnViYmxlcyBmcm9tIHRoZSBkZWVwZXN0IGhpdCBCb3ggdXAgdGhyb3VnaFxuICAgKiBhbmNlc3RvcnM7IGNhbGwgYGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpYCB0byBzdG9wIGJ1YmJsaW5nLlxuICAgKi9cbiAgb25DbGljaz86IChldmVudDogQ2xpY2tFdmVudCkgPT4gdm9pZFxuICBvbkZvY3VzPzogKGV2ZW50OiBGb2N1c0V2ZW50KSA9PiB2b2lkXG4gIG9uRm9jdXNDYXB0dXJlPzogKGV2ZW50OiBGb2N1c0V2ZW50KSA9PiB2b2lkXG4gIG9uQmx1cj86IChldmVudDogRm9jdXNFdmVudCkgPT4gdm9pZFxuICBvbkJsdXJDYXB0dXJlPzogKGV2ZW50OiBGb2N1c0V2ZW50KSA9PiB2b2lkXG4gIG9uS2V5RG93bj86IChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4gdm9pZFxuICBvbktleURvd25DYXB0dXJlPzogKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB2b2lkXG4gIC8qKlxuICAgKiBGaXJlZCB3aGVuIHRoZSBtb3VzZSBtb3ZlcyBpbnRvIHRoaXMgQm94J3MgcmVuZGVyZWQgcmVjdC4gTGlrZSBET01cbiAgICogYG1vdXNlZW50ZXJgLCBkb2VzIE5PVCBidWJibGUg4oCUIG1vdmluZyBiZXR3ZWVuIGNoaWxkcmVuIGRvZXMgbm90XG4gICAqIHJlLWZpcmUgb24gdGhlIHBhcmVudC4gT25seSB3b3JrcyBpbnNpZGUgYDxBbHRlcm5hdGVTY3JlZW4+YCB3aGVyZVxuICAgKiBtb2RlLTEwMDMgbW91c2UgdHJhY2tpbmcgaXMgZW5hYmxlZC5cbiAgICovXG4gIG9uTW91c2VFbnRlcj86ICgpID0+IHZvaWRcbiAgLyoqIEZpcmVkIHdoZW4gdGhlIG1vdXNlIG1vdmVzIG91dCBvZiB0aGlzIEJveCdzIHJlbmRlcmVkIHJlY3QuICovXG4gIG9uTW91c2VMZWF2ZT86ICgpID0+IHZvaWRcbn1cblxuLyoqXG4gKiBgPEJveD5gIGlzIGFuIGVzc2VudGlhbCBJbmsgY29tcG9uZW50IHRvIGJ1aWxkIHlvdXIgbGF5b3V0LiBJdCdzIGxpa2UgYDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4XCI+YCBpbiB0aGUgYnJvd3Nlci5cbiAqL1xuZnVuY3Rpb24gQm94KHtcbiAgY2hpbGRyZW4sXG4gIGZsZXhXcmFwID0gJ25vd3JhcCcsXG4gIGZsZXhEaXJlY3Rpb24gPSAncm93JyxcbiAgZmxleEdyb3cgPSAwLFxuICBmbGV4U2hyaW5rID0gMSxcbiAgcmVmLFxuICB0YWJJbmRleCxcbiAgYXV0b0ZvY3VzLFxuICBvbkNsaWNrLFxuICBvbkZvY3VzLFxuICBvbkZvY3VzQ2FwdHVyZSxcbiAgb25CbHVyLFxuICBvbkJsdXJDYXB0dXJlLFxuICBvbk1vdXNlRW50ZXIsXG4gIG9uTW91c2VMZWF2ZSxcbiAgb25LZXlEb3duLFxuICBvbktleURvd25DYXB0dXJlLFxuICAuLi5zdHlsZVxufTogUHJvcHNXaXRoQ2hpbGRyZW48UHJvcHM+KTogUmVhY3QuUmVhY3ROb2RlIHtcbiAgLy8gV2FybiBpZiBzcGFjaW5nIHZhbHVlcyBhcmUgbm90IGludGVnZXJzIHRvIHByZXZlbnQgZnJhY3Rpb25hbCBsYXlvdXQgZGltZW5zaW9uc1xuICB3YXJuLmlmTm90SW50ZWdlcihzdHlsZS5tYXJnaW4sICdtYXJnaW4nKVxuICB3YXJuLmlmTm90SW50ZWdlcihzdHlsZS5tYXJnaW5YLCAnbWFyZ2luWCcpXG4gIHdhcm4uaWZOb3RJbnRlZ2VyKHN0eWxlLm1hcmdpblksICdtYXJnaW5ZJylcbiAgd2Fybi5pZk5vdEludGVnZXIoc3R5bGUubWFyZ2luVG9wLCAnbWFyZ2luVG9wJylcbiAgd2Fybi5pZk5vdEludGVnZXIoc3R5bGUubWFyZ2luQm90dG9tLCAnbWFyZ2luQm90dG9tJylcbiAgd2Fybi5pZk5vdEludGVnZXIoc3R5bGUubWFyZ2luTGVmdCwgJ21hcmdpbkxlZnQnKVxuICB3YXJuLmlmTm90SW50ZWdlcihzdHlsZS5tYXJnaW5SaWdodCwgJ21hcmdpblJpZ2h0JylcbiAgd2Fybi5pZk5vdEludGVnZXIoc3R5bGUucGFkZGluZywgJ3BhZGRpbmcnKVxuICB3YXJuLmlmTm90SW50ZWdlcihzdHlsZS5wYWRkaW5nWCwgJ3BhZGRpbmdYJylcbiAgd2Fybi5pZk5vdEludGVnZXIoc3R5bGUucGFkZGluZ1ksICdwYWRkaW5nWScpXG4gIHdhcm4uaWZOb3RJbnRlZ2VyKHN0eWxlLnBhZGRpbmdUb3AsICdwYWRkaW5nVG9wJylcbiAgd2Fybi5pZk5vdEludGVnZXIoc3R5bGUucGFkZGluZ0JvdHRvbSwgJ3BhZGRpbmdCb3R0b20nKVxuICB3YXJuLmlmTm90SW50ZWdlcihzdHlsZS5wYWRkaW5nTGVmdCwgJ3BhZGRpbmdMZWZ0JylcbiAgd2Fybi5pZk5vdEludGVnZXIoc3R5bGUucGFkZGluZ1JpZ2h0LCAncGFkZGluZ1JpZ2h0JylcbiAgd2Fybi5pZk5vdEludGVnZXIoc3R5bGUuZ2FwLCAnZ2FwJylcbiAgd2Fybi5pZk5vdEludGVnZXIoc3R5bGUuY29sdW1uR2FwLCAnY29sdW1uR2FwJylcbiAgd2Fybi5pZk5vdEludGVnZXIoc3R5bGUucm93R2FwLCAncm93R2FwJylcblxuICByZXR1cm4gKFxuICAgIDxpbmstYm94XG4gICAgICByZWY9e3JlZn1cbiAgICAgIHRhYkluZGV4PXt0YWJJbmRleH1cbiAgICAgIGF1dG9Gb2N1cz17YXV0b0ZvY3VzfVxuICAgICAgb25DbGljaz17b25DbGlja31cbiAgICAgIG9uRm9jdXM9e29uRm9jdXN9XG4gICAgICBvbkZvY3VzQ2FwdHVyZT17b25Gb2N1c0NhcHR1cmV9XG4gICAgICBvbkJsdXI9e29uQmx1cn1cbiAgICAgIG9uQmx1ckNhcHR1cmU9e29uQmx1ckNhcHR1cmV9XG4gICAgICBvbk1vdXNlRW50ZXI9e29uTW91c2VFbnRlcn1cbiAgICAgIG9uTW91c2VMZWF2ZT17b25Nb3VzZUxlYXZlfVxuICAgICAgb25LZXlEb3duPXtvbktleURvd259XG4gICAgICBvbktleURvd25DYXB0dXJlPXtvbktleURvd25DYXB0dXJlfVxuICAgICAgc3R5bGU9e3tcbiAgICAgICAgZmxleFdyYXAsXG4gICAgICAgIGZsZXhEaXJlY3Rpb24sXG4gICAgICAgIGZsZXhHcm93LFxuICAgICAgICBmbGV4U2hyaW5rLFxuICAgICAgICAuLi5zdHlsZSxcbiAgICAgICAgb3ZlcmZsb3dYOiBzdHlsZS5vdmVyZmxvd1ggPz8gc3R5bGUub3ZlcmZsb3cgPz8gJ3Zpc2libGUnLFxuICAgICAgICBvdmVyZmxvd1k6IHN0eWxlLm92ZXJmbG93WSA/PyBzdHlsZS5vdmVyZmxvdyA/PyAndmlzaWJsZScsXG4gICAgICB9fVxuICAgID5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L2luay1ib3g+XG4gIClcbn1cblxuZXhwb3J0IGRlZmF1bHQgQm94XG4iXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLGdCQUFnQjtBQUN2QixPQUFPQSxLQUFLLElBQUksS0FBS0MsaUJBQWlCLEVBQUUsS0FBS0MsR0FBRyxRQUFRLE9BQU87QUFDL0QsY0FBY0MsTUFBTSxRQUFRLFdBQVc7QUFDdkMsY0FBY0MsVUFBVSxRQUFRLFdBQVc7QUFDM0MsY0FBY0MsVUFBVSxRQUFRLDBCQUEwQjtBQUMxRCxjQUFjQyxVQUFVLFFBQVEsMEJBQTBCO0FBQzFELGNBQWNDLGFBQWEsUUFBUSw2QkFBNkI7QUFDaEUsY0FBY0MsTUFBTSxRQUFRLGNBQWM7QUFDMUMsT0FBTyxLQUFLQyxJQUFJLE1BQU0sWUFBWTtBQUVsQyxPQUFPLEtBQUtDLEtBQUssR0FBR1AsTUFBTSxDQUFDSyxNQUFNLEVBQUUsVUFBVSxDQUFDLEdBQUc7RUFDL0NHLEdBQUcsQ0FBQyxFQUFFVCxHQUFHLENBQUNFLFVBQVUsQ0FBQztFQUNyQjtBQUNGO0FBQ0E7QUFDQTtFQUNFUSxRQUFRLENBQUMsRUFBRSxNQUFNO0VBQ2pCO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7RUFDRUMsU0FBUyxDQUFDLEVBQUUsT0FBTztFQUNu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 diff --git a/restored-src/src/ink/components/ScrollBox.tsx b/restored-src/src/ink/components/ScrollBox.tsx index 03e4a31cb..59aa6bb3b 100644 --- a/restored-src/src/ink/components/ScrollBox.tsx +++ b/restored-src/src/ink/components/ScrollBox.tsx @@ -5,7 +5,7 @@ import type { DOMElement } from '../dom.js'; import { markDirty, scheduleRenderFrom } from '../dom.js'; import { markCommitStart } from '../reconciler.js'; import type { Styles } from '../styles.js'; -import '../global.d.ts'; +import type {} from '../global.d.ts'; import Box from './Box.js'; export type ScrollBoxHandle = { scrollTo: (y: number) => void; @@ -234,4 +234,4 @@ function ScrollBox({ ; } export default ScrollBox; -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIlByb3BzV2l0aENoaWxkcmVuIiwiUmVmIiwidXNlSW1wZXJhdGl2ZUhhbmRsZSIsInVzZVJlZiIsInVzZVN0YXRlIiwiRXhjZXB0IiwibWFya1Njcm9sbEFjdGl2aXR5IiwiRE9NRWxlbWVudCIsIm1hcmtEaXJ0eSIsInNjaGVkdWxlUmVuZGVyRnJvbSIsIm1hcmtDb21taXRTdGFydCIsIlN0eWxlcyIsIkJveCIsIlNjcm9sbEJveEhhbmRsZSIsInNjcm9sbFRvIiwieSIsInNjcm9sbEJ5IiwiZHkiLCJzY3JvbGxUb0VsZW1lbnQiLCJlbCIsIm9mZnNldCIsInNjcm9sbFRvQm90dG9tIiwiZ2V0U2Nyb2xsVG9wIiwiZ2V0UGVuZGluZ0RlbHRhIiwiZ2V0U2Nyb2xsSGVpZ2h0IiwiZ2V0RnJlc2hTY3JvbGxIZWlnaHQiLCJnZXRWaWV3cG9ydEhlaWdodCIsImdldFZpZXdwb3J0VG9wIiwiaXNTdGlja3kiLCJzdWJzY3JpYmUiLCJsaXN0ZW5lciIsInNldENsYW1wQm91bmRzIiwibWluIiwibWF4IiwiU2Nyb2xsQm94UHJvcHMiLCJyZWYiLCJzdGlja3lTY3JvbGwiLCJTY3JvbGxCb3giLCJjaGlsZHJlbiIsInN0eWxlIiwiUmVhY3ROb2RlIiwiZG9tUmVmIiwiZm9yY2VSZW5kZXIiLCJsaXN0ZW5lcnNSZWYiLCJTZXQiLCJyZW5kZXJRdWV1ZWRSZWYiLCJub3RpZnkiLCJsIiwiY3VycmVudCIsInNjcm9sbE11dGF0ZWQiLCJxdWV1ZU1pY3JvdGFzayIsInBlbmRpbmdTY3JvbGxEZWx0YSIsInVuZGVmaW5lZCIsInNjcm9sbEFuY2hvciIsInNjcm9sbFRvcCIsIk1hdGgiLCJmbG9vciIsImJveCIsIm4iLCJzY3JvbGxIZWlnaHQiLCJjb250ZW50IiwiY2hpbGROb2RlcyIsInlvZ2FOb2RlIiwiZ2V0Q29tcHV0ZWRIZWlnaHQiLCJzY3JvbGxWaWV3cG9ydEhlaWdodCIsInNjcm9sbFZpZXdwb3J0VG9wIiwiQm9vbGVhbiIsImF0dHJpYnV0ZXMiLCJhZGQiLCJkZWxldGUiLCJzY3JvbGxDbGFtcE1pbiIsInNjcm9sbENsYW1wTWF4IiwiZmxleFdyYXAiLCJmbGV4RGlyZWN0aW9uIiwiZmxleEdyb3ciLCJmbGV4U2hyaW5rIiwib3ZlcmZsb3dYIiwib3ZlcmZsb3dZIl0sInNvdXJjZXMiOlsiU2Nyb2xsQm94LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHtcbiAgdHlwZSBQcm9wc1dpdGhDaGlsZHJlbixcbiAgdHlwZSBSZWYsXG4gIHVzZUltcGVyYXRpdmVIYW5kbGUsXG4gIHVzZVJlZixcbiAgdXNlU3RhdGUsXG59IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHR5cGUgeyBFeGNlcHQgfSBmcm9tICd0eXBlLWZlc3QnXG5pbXBvcnQgeyBtYXJrU2Nyb2xsQWN0aXZpdHkgfSBmcm9tICcuLi8uLi9ib290c3RyYXAvc3RhdGUuanMnXG5pbXBvcnQgdHlwZSB7IERPTUVsZW1lbnQgfSBmcm9tICcuLi9kb20uanMnXG5pbXBvcnQgeyBtYXJrRGlydHksIHNjaGVkdWxlUmVuZGVyRnJvbSB9IGZyb20gJy4uL2RvbS5qcydcbmltcG9ydCB7IG1hcmtDb21taXRTdGFydCB9IGZyb20gJy4uL3JlY29uY2lsZXIuanMnXG5pbXBvcnQgdHlwZSB7IFN0eWxlcyB9IGZyb20gJy4uL3N0eWxlcy5qcydcbmltcG9ydCAnLi4vZ2xvYmFsLmQudHMnXG5pbXBvcnQgQm94IGZyb20gJy4vQm94LmpzJ1xuXG5leHBvcnQgdHlwZSBTY3JvbGxCb3hIYW5kbGUgPSB7XG4gIHNjcm9sbFRvOiAoeTogbnVtYmVyKSA9PiB2b2lkXG4gIHNjcm9sbEJ5OiAoZHk6IG51bWJlcikgPT4gdm9pZFxuICAvKipcbiAgICogU2Nyb2xsIHNvIGBlbGAncyB0b3AgaXMgYXQgdGhlIHZpZXdwb3J0IHRvcCAocGx1cyBgb2Zmc2V0YCkuIFVubGlrZVxuICAgKiBzY3JvbGxUbyB3aGljaCBiYWtlcyBhIG51bWJlciB0aGF0J3Mgc3RhbGUgYnkgdGhlIHRpbWUgdGhlIHRocm90dGxlZFxuICAgKiByZW5kZXIgZmlyZXMsIHRoaXMgZGVmZXJzIHRoZSBwb3NpdGlvbiByZWFkIHRvIHJlbmRlciB0aW1lIOKAlFxuICAgKiByZW5kZXItbm9kZS10by1vdXRwdXQgcmVhZHMgYGVsLnlvZ2FOb2RlLmdldENvbXB1dGVkVG9wKClgIGluIHRoZVxuICAgKiBTQU1FIFlvZ2EgcGFzcyB0aGF0IGNvbXB1dGVzIHNjcm9sbEhlaWdodC4gRGV0ZXJtaW5pc3RpYy4gT25lLXNob3QuXG4gICAqL1xuICBzY3JvbGxUb0VsZW1lbnQ6IChlbDogRE9NRWxlbWVudCwgb2Zmc2V0PzogbnVtYmVyKSA9PiB2b2lkXG4gIHNjcm9sbFRvQm90dG9tOiAoKSA9PiB2b2lkXG4gIGdldFNjcm9sbFRvcDogKCkgPT4gbnVtYmVyXG4gIGdldFBlbmRpbmdEZWx0YTogKCkgPT4gbnVtYmVyXG4gIGdldFNjcm9sbEhlaWdodDogKCkgPT4gbnVtYmVyXG4gIC8qKlxuICAgKiBMaWtlIGdldFNjcm9sbEhlaWdodCwgYnV0IHJlYWRzIFlvZ2EgZGlyZWN0bHkgaW5zdGVhZCBvZiB0aGUgY2FjaGVkXG4gICAqIHZhbHVlIHdyaXR0ZW4gYnkgcmVuZGVyLW5vZGUtdG8tb3V0cHV0ICh0aHJvdHRsZWQsIHVwIHRvIDE2bXMgc3RhbGUpLlxuICAgKiBVc2Ugd2hlbiB5b3UgbmVlZCBhIGZyZXNoIHZhbHVlIGluIHVzZUxheW91dEVmZmVjdCBhZnRlciBhIFJlYWN0IGNvbW1pdFxuICAgKiB0aGF0IGdyZXcgY29udGVudC4gU2xpZ2h0bHkgbW9yZSBleHBlbnNpdmUgKG5hdGl2ZSBZb2dhIGNhbGwpLlxuICAgKi9cbiAgZ2V0RnJlc2hTY3JvbGxIZWlnaHQ6ICgpID0+IG51bWJlclxuICBnZXRWaWV3cG9ydEhlaWdodDogKCkgPT4gbnVtYmVyXG4gIC8qKlxuICAgKiBBYnNvbHV0ZSBzY3JlZW4tYnVmZmVyIHJvdyBvZiB0aGUgZmlyc3QgdmlzaWJsZSBjb250ZW50IGxpbmUgKGluc2lkZVxuICAgKiBwYWRkaW5nKS4gVXNlZCBmb3IgZHJhZy10by1zY3JvbGwgZWRnZSBkZXRlY3Rpb24uXG4gICAqL1xuICBnZXRWaWV3cG9ydFRvcDogKCkgPT4gbnVtYmVyXG4gIC8qKlxuICAgKiBUcnVlIHdoZW4gc2Nyb2xsIGlzIHBpbm5lZCB0byB0aGUgYm90dG9tLiBTZXQgYnkgc2Nyb2xsVG9Cb3R0b20sIHRoZVxuICAgKiBpbml0aWFsIHN0aWNreVNjcm9sbCBhdHRyaWJ1dGUsIGFuZCBieSB0aGUgcmVuZGVyZXIgd2hlbiBwb3NpdGlvbmFsXG4gICAqIGZvbGxvdyBmaXJlcyAoc2Nyb2xsVG9wIGF0IHByZXZNYXgsIGNvbnRlbnQgZ3Jvd3MpLiBDbGVhcmVkIGJ5XG4gICAqIHNjcm9sbFRvL3Njcm9sbEJ5LiBTdGFibGUgc2lnbmFsIGZvciBcImF0IGJvdHRvbVwiIHRoYXQgZG9lc24ndCBkZXBlbmQgb25cbiAgICogbGF5b3V0IHZhbHVlcyAodW5saWtlIHNjcm9sbFRvcCt2aWV3cG9ydEggPj0gc2Nyb2xsSGVpZ2h0KS5cbiAgICovXG4gIGlzU3RpY2t5OiAoKSA9PiBib29sZWFuXG4gIC8qKlxuICAgKiBTdWJzY3JpYmUgdG8gaW1wZXJhdGl2ZSBzY3JvbGwgY2hhbmdlcyAoc2Nyb2xsVG8vc2Nyb2xsQnkvc2Nyb2xsVG9Cb3R0b20pLlxuICAgKiBEb2VzIE5PVCBmaXJlIGZvciBzdGlja3lTY3JvbGwgdXBkYXRlcyBkb25lIGJ5IHRoZSBJbmsgcmVuZGVyZXIg4oCUIHRob3NlXG4gICAqIGhhcHBlbiBkdXJpbmcgSW5rJ3MgcmVuZGVyIHBoYXNlIGFmdGVyIFJlYWN0IGhhcyBjb21taXR0ZWQuIENhbGxlcnMgdGhhdFxuICAgKiBjYXJlIGFib3V0IHRoZSBzdGlja3kgY2FzZSBzaG91bGQgdHJlYXQgXCJhdCBib3R0b21cIiBhcyBhIGZhbGxiYWNrLlxuICAgKi9cbiAgc3Vic2NyaWJlOiAobGlzdGVuZXI6ICgpID0+IHZvaWQpID0+ICgpID0+IHZvaWRcbiAgLyoqXG4gICAqIFNldCB0aGUgcmVuZGVyLXRpbWUgc2Nyb2xsVG9wIGNsYW1wIHRvIHRoZSBjdXJyZW50bHktbW91bnRlZCBjaGlsZHJlbidzXG4gICAqIGNvdmVyYWdlIHNwYW4uIENhbGxlZCBieSB1c2VWaXJ0dWFsU2Nyb2xsIGFmdGVyIGNvbXB1dGluZyBpdHMgcmFuZ2U7XG4gICAqIHJlbmRlci1ub2RlLXRvLW91dHB1dCBjbGFtcHMgc2Nyb2xsVG9wIHRvIFttaW4sIG1heF0gc28gYnVyc3Qgc2Nyb2xsVG9cbiAgICogY2FsbHMgdGhhdCByYWNlIHBhc3QgUmVhY3QncyBhc3luYyByZS1yZW5kZXIgc2hvdyB0aGUgZWRnZSBvZiBtb3VudGVkXG4gICAqIGNvbnRlbnQgaW5zdGVhZCBvZiBibGFuayBzcGFjZXIuIFBhc3MgdW5kZWZpbmVkIHRvIGRpc2FibGUgKHN0aWNreSxcbiAgICogY29sZCBzdGFydCkuXG4gICAqL1xuICBzZXRDbGFtcEJvdW5kczogKG1pbjogbnVtYmVyIHwgdW5kZWZpbmVkLCBtYXg6IG51bWJlciB8IHVuZGVmaW5lZCkgPT4gdm9pZFxufVxuXG5leHBvcnQgdHlwZSBTY3JvbGxCb3hQcm9wcyA9IEV4Y2VwdDxcbiAgU3R5bGVzLFxuICAndGV4dFdyYXAnIHwgJ292ZXJmbG93JyB8ICdvdmVyZmxvd1gnIHwgJ292ZXJmbG93WSdcbj4gJiB7XG4gIHJlZj86IFJlZjxTY3JvbGxCb3hIYW5kbGU+XG4gIC8qKlxuICAgKiBXaGVuIHRydWUsIGF1dG9tYXRpY2FsbHkgcGlucyBzY3JvbGwgcG9zaXRpb24gdG8gdGhlIGJvdHRvbSB3aGVuIGNvbnRlbnRcbiAgICogZ3Jvd3MuIFVuc2V0IG1hbnVhbGx5IHZpYSBzY3JvbGxUby9zY3JvbGxCeSB0byBicmVhayB0aGUgc3RpY2tpbmVzcy5cbiAgICovXG4gIHN0aWNreVNjcm9sbD86IGJvb2xlYW5cbn1cblxuLyoqXG4gKiBBIEJveCB3aXRoIGBvdmVyZmxvdzogc2Nyb2xsYCBhbmQgYW4gaW1wZXJhdGl2ZSBzY3JvbGwgQVBJLlxuICpcbiAqIENoaWxkcmVuIGFyZSBsYWlkIG91dCBhdCB0aGVpciBmdWxsIFlvZ2EtY29tcHV0ZWQgaGVpZ2h0IGluc2lkZSBhXG4gKiBjb25zdHJhaW5lZCBjb250YWluZXIuIEF0IHJlbmRlciB0aW1lLCBvbmx5IGNoaWxkcmVuIGludGVyc2VjdGluZyB0aGVcbiAqIHZpc2libGUgd2luZG93IChzY3JvbGxUb3AuLnNjcm9sbFRvcCtoZWlnaHQpIGFyZSByZW5kZXJlZCAodmlld3BvcnRcbiAqIGN1bGxpbmcpLiBDb250ZW50IGlzIHRyYW5zbGF0ZWQgYnkgLXNjcm9sbFRvcCBhbmQgY2xpcHBlZCB0byB0aGUgYm94IGJvdW5kcy5cbiAqXG4gKiBXb3JrcyBiZXN0IGluc2lkZSBhIGZ1bGxzY3JlZW4gKGNvbnN0cmFpbmVkLWhlaWdodCByb290KSBJbmsgdHJlZS5cbiAqL1xuZnVuY3Rpb24gU2Nyb2xsQm94KHtcbiAgY2hpbGRyZW4sXG4gIHJlZixcbiAgc3RpY2t5U2Nyb2xsLFxuICAuLi5zdHlsZVxufTogUHJvcHNXaXRoQ2hpbGRyZW48U2Nyb2xsQm94UHJvcHM+KTogUmVhY3QuUmVhY3ROb2RlIHtcbiAgY29uc3QgZG9tUmVmID0gdXNlUmVmPERPTUVsZW1lbnQ+KG51bGwpXG4gIC8vIHNjcm9sbFRvL3Njcm9sbEJ5IGJ5cGFzcyBSZWFjdDogdGhleSBtdXRhdGUgc2Nyb2xsVG9wIG9uIHRoZSBET00gbm9kZSxcbiAgLy8gbWFyayBpdCBkaXJ0eSwgYW5kIGNhbGwgdGhlIHJvb3QncyB0aHJvdHRsZWQgc2NoZWR1bGVSZW5kZXIgZGlyZWN0bHkuXG4gIC8vIFRoZSBJbmsgcmVuZGVyZXIgcmVhZHMgc2Nyb2xsVG9wIGZyb20gdGhlIG5vZGUg4oCUIG5vIFJlYWN0IHN0YXRlIG5lZWRlZCxcbiAgLy8gbm8gcmVjb25jaWxlciBvdmVyaGVhZCBwZXIgd2hlZWwgZXZlbnQuIFRoZSBtaWNyb3Rhc2sgZGVmZXIgY29hbGVzY2VzXG4gIC8vIG11bHRpcGxlIHNjcm9sbEJ5IGNhbGxzIGluIG9uZSBpbnB1dCBiYXRjaCAoZGlzY3JldGVVcGRhdGVzKSBpbnRvIG9uZVxuICAvLyByZW5kZXIg4oCUIG90aGVyd2lzZSBzY2hlZHVsZVJlbmRlcidzIGxlYWRpbmcgZWRnZSBmaXJlcyBvbiB0aGUgRklSU1RcbiAgLy8gZXZlbnQgYmVmb3JlIHN1YnNlcXVlbnQgZXZlbnRzIG11dGF0ZSBzY3JvbGxUb3AuIHNjcm9sbFRvQm90dG9tIHN0aWxsXG4gIC8vIGZvcmNlcyBhIFJlYWN0IHJlbmRlcjogc3RpY2t5IGlzIGF0dHJpYnV0ZS1vYnNlcnZlZCwgbm8gRE9NLW9ubHkgcGF0aC5cbiAgY29uc3QgWywgZm9yY2VSZW5kZXJdID0gdXNlU3RhdGUoMClcbiAgY29uc3QgbGlzdGVuZXJzUmVmID0gdXNlUmVmKG5ldyBTZXQ8KCkgPT4gdm9pZD4oKSlcbiAgY29uc3QgcmVuZGVyUXVldWVkUmVmID0gdXNlUmVmKGZhbHNlKVxuXG4gIGNvbnN0IG5vdGlmeSA9ICgpID0+IHtcbiAgICBmb3IgKGNvbnN0IGwgb2YgbGlzdGVuZXJzUmVmLmN1cnJlbnQpIGwoKVxuICB9XG5cbiAgZnVuY3Rpb24gc2Nyb2xsTXV0YXRlZChlbDogRE9NRWxlbWVudCk6IHZvaWQge1xuICAgIC8vIFNpZ25hbCBiYWNrZ3JvdW5kIGludGVydmFscyAoSURFIHBvbGwsIExTUCBwb2xsLCBHQ1MgZmV0Y2gsIG9ycGhhblxuICAgIC8vIGNoZWNrKSB0byBza2lwIHRoZWlyIG5leHQgdGljayDigJQgdGhleSBjb21wZXRlIGZvciB0aGUgZXZlbnQgbG9vcCBhbmRcbiAgICAvLyBjb250cmlidXRlZCB0byAxNDAybXMgbWF4IGZyYW1lIGdhcHMgZHVyaW5nIHNjcm9sbCBkcmFpbi5cbiAgICBtYXJrU2Nyb2xsQWN0aXZpdHkoKVxuICAgIG1hcmtEaXJ0eShlbClcbiAgICBtYXJrQ29tbWl0U3RhcnQoKVxuICAgIG5vdGlmeSgpXG4gICAgaWYgKHJlbmRlclF1ZXVlZFJlZi5jdXJyZW50KSByZXR1cm5cbiAgICByZW5kZXJRdWV1ZWRSZWYuY3VycmVudCA9IHRydWVcbiAgICBxdWV1ZU1pY3JvdGFzaygoKSA9PiB7XG4gICAgICByZW5kZXJRdWV1ZWRSZWYuY3VycmVudCA9IGZhbHNlXG4gICAgICBzY2hlZHVsZVJlbmRlckZyb20oZWwpXG4gICAgfSlcbiAgfVxuXG4gIHVzZUltcGVyYXRpdmVIYW5kbGUoXG4gICAgcmVmLFxuICAgICgpOiBTY3JvbGxCb3hIYW5kbGUgPT4gKHtcbiAgICAgIHNjcm9sbFRvKHk6IG51bWJlcikge1xuICAgICAgICBjb25zdCBlbCA9IGRvbVJlZi5jdXJyZW50XG4gICAgICAgIGlmICghZWwpIHJldHVyblxuICAgICAgICAvLyBFeHBsaWNpdCBmYWxzZSBvdmVycmlkZXMgdGhlIERPTSBhdHRyaWJ1dGUgc28gbWFudWFsIHNjcm9sbFxuICAgICAgICAvLyBicmVha3Mgc3RpY2tpbmVzcy4gUmVuZGVyIGNvZGUgY2hlY2tzID8/IHByZWNlZGVuY2UuXG4gICAgICAgIGVsLnN0aWNreVNjcm9sbCA9IGZhbHNlXG4gICAgICAgIGVsLnBlbmRpbmdTY3JvbGxEZWx0YSA9IHVuZGVmaW5lZFxuICAgICAgICBlbC5zY3JvbGxBbmNob3IgPSB1bmRlZmluZWRcbiAgICAgICAgZWwuc2Nyb2xsVG9wID0gTWF0aC5tYXgoMCwgTWF0aC5mbG9vcih5KSlcbiAgICAgICAgc2Nyb2xsTXV0YXRlZChlbClcbiAgICAgIH0sXG4gICAgICBzY3JvbGxUb0VsZW1lbnQoZWw6IERPTUVsZW1lbnQsIG9mZnNldCA9IDApIHtcbiAgICAgICAgY29uc3QgYm94ID0gZG9tUmVmLmN1cnJlbnRcbiAgICAgICAgaWYgKCFib3gpIHJldHVyblxuICAgICAgICBib3guc3RpY2t5U2Nyb2xsID0gZmFsc2VcbiAgICAgICAgYm94LnBlbmRpbmdTY3JvbGxEZWx0YSA9IHVuZGVmaW5lZFxuICAgICAgICBib3guc2Nyb2xsQW5jaG9yID0geyBlbCwgb2Zmc2V0IH1cbiAgICAgICAgc2Nyb2xsTXV0YXRlZChib3gpXG4gICAgICB9LFxuICAgICAgc2Nyb2xsQnkoZHk6IG51bWJlcikge1xuICAgICAgICBjb25zdCBlbCA9IGRvbVJlZi5jdXJyZW50XG4gICAgICAgIGlmICghZWwpIHJldHVyblxuICAgICAgICBlbC5zdGlja3lTY3JvbGwgPSBmYWxzZVxuICAgICAgICAvLyBXaGVlbCBpbnB1dCBjYW5jZWxzIGFueSBpbi1mbGlnaHQgYW5jaG9yIHNlZWsg4oCUIHVzZXIgb3ZlcnJpZGUuXG4gICAgICAgIGVsLnNjcm9sbEFuY2hvciA9IHVuZGVmaW5lZFxuICAgICAgICAvLyBBY2N1bXVsYXRlIGluIHBlbmRpbmdTY3JvbGxEZWx0YTsgcmVuZGVyZXIgZHJhaW5zIGl0IGF0IGEgY2FwcGVkXG4gICAgICAgIC8vIHJhdGUgc28gZmFzdCBmbGlja3Mgc2hvdyBpbnRlcm1lZGlhdGUgZnJhbWVzLiBQdXJlIGFjY3VtdWxhdG9yOlxuICAgICAgICAvLyBzY3JvbGwtdXAgZm9sbG93ZWQgYnkgc2Nyb2xsLWRvd24gbmF0dXJhbGx5IGNhbmNlbHMuXG4gICAgICAgIGVsLnBlbmRpbmdTY3JvbGxEZWx0YSA9IChlbC5wZW5kaW5nU2Nyb2xsRGVsdGEgPz8gMCkgKyBNYXRoLmZsb29yKGR5KVxuICAgICAgICBzY3JvbGxNdXRhdGVkKGVsKVxuICAgICAgfSxcbiAgICAgIHNjcm9sbFRvQm90dG9tKCkge1xuICAgICAgICBjb25zdCBlbCA9IGRvbVJlZi5jdXJyZW50XG4gICAgICAgIGlmICghZWwpIHJldHVyblxuICAgICAgICBlbC5wZW5kaW5nU2Nyb2xsRGVsdGEgPSB1bmRlZmluZWRcbiAgICAgICAgZWwuc3RpY2t5U2Nyb2xsID0gdHJ1ZVxuICAgICAgICBtYXJrRGlydHkoZWwpXG4gICAgICAgIG5vdGlmeSgpXG4gICAgICAgIGZvcmNlUmVuZGVyKG4gPT4gbiArIDEpXG4gICAgICB9LFxuICAgICAgZ2V0U2Nyb2xsVG9wKCkge1xuICAgICAgICByZXR1cm4gZG9tUmVmLmN1cnJlbnQ/LnNjcm9sbFRvcCA/PyAwXG4gICAgICB9LFxuICAgICAgZ2V0UGVuZGluZ0RlbHRhKCkge1xuICAgICAgICAvLyBBY2N1bXVsYXRlZC1idXQtbm90LXlldC1kcmFpbmVkIGRlbHRhLiB1c2VWaXJ0dWFsU2Nyb2xsIG5lZWRzXG4gICAgICAgIC8vIHRoaXMgdG8gbW91bnQgdGhlIHVuaW9uIFtjb21taXR0ZWQsIGNvbW1pdHRlZCtwZW5kaW5nXSByYW5nZSDigJRcbiAgICAgICAgLy8gb3RoZXJ3aXNlIGludGVybWVkaWF0ZSBkcmFpbiBmcmFtZXMgZmluZCBubyBjaGlsZHJlbiAoYmxhbmspLlxuICAgICAgICByZXR1cm4gZG9tUmVmLmN1cnJlbnQ/LnBlbmRpbmdTY3JvbGxEZWx0YSA/PyAwXG4gICAgICB9LFxuICAgICAgZ2V0U2Nyb2xsSGVpZ2h0KCkge1xuICAgICAgICByZXR1cm4gZG9tUmVmLmN1cnJlbnQ/LnNjcm9sbEhlaWdodCA/PyAwXG4gICAgICB9LFxuICAgICAgZ2V0RnJlc2hTY3JvbGxIZWlnaHQoKSB7XG4gICAgICAgIGNvbnN0IGNvbnRlbnQgPSBkb21SZWYuY3VycmVudD8uY2hpbGROb2Rlc1swXSBhcyBET01FbGVtZW50IHwgdW5kZWZpbmVkXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgY29udGVudD8ueW9nYU5vZGU/LmdldENvbXB1dGVkSGVpZ2h0KCkgPz9cbiAgICAgICAgICBkb21SZWYuY3VycmVudD8uc2Nyb2xsSGVpZ2h0ID8/XG4gICAgICAgICAgMFxuICAgICAgICApXG4gICAgICB9LFxuICAgICAgZ2V0Vmlld3BvcnRIZWlnaHQoKSB7XG4gICAgICAgIHJldHVybiBkb21SZWYuY3VycmVudD8uc2Nyb2xsVmlld3BvcnRIZWlnaHQgPz8gMFxuICAgICAgfSxcbiAgICAgIGdldFZpZXdwb3J0VG9wKCkge1xuICAgICAgICByZXR1cm4gZG9tUmVmLmN1cnJlbnQ/LnNjcm9sbFZpZXdwb3J0VG9wID8/IDBcbiAgICAgIH0sXG4gICAgICBpc1N0aWNreSgpIHtcbiAgICAgICAgY29uc3QgZWwgPSBkb21SZWYuY3VycmVudFxuICAgICAgICBpZiAoIWVsKSByZXR1cm4gZmFsc2VcbiAgICAgICAgcmV0dXJuIGVsLnN0aWNreVNjcm9sbCA/PyBCb29sZWFuKGVsLmF0dHJpYnV0ZXNbJ3N0aWNreVNjcm9sbCddKVxuICAgICAgfSxcbiAgICAgIHN1YnNjcmliZShsaXN0ZW5lcjogKCkgPT4gdm9pZCkge1xuICAgICAgICBsaXN0ZW5lcnNSZWYuY3VycmVudC5hZGQobGlzdGVuZXIpXG4gICAgICAgIHJldHVybiAoKSA9PiBsaXN0ZW5lcnNSZWYuY3VycmVudC5kZWxldGUobGlzdGVuZXIpXG4gICAgICB9LFxuICAgICAgc2V0Q2xhbXBCb3VuZHMobWluLCBtYXgpIHtcbiAgICAgICAgY29uc3QgZWwgPSBkb21SZWYuY3VycmVudFxuICAgICAgICBpZiAoIWVsKSByZXR1cm5cbiAgICAgICAgZWwuc2Nyb2xsQ2xhbXBNaW4gPSBtaW5cbiAgICAgICAgZWwuc2Nyb2xsQ2xhbXBNYXggPSBtYXhcbiAgICAgIH0sXG4gICAgfSksXG4gICAgLy8gbm90aWZ5L3Njcm9sbE11dGF0ZWQgYXJlIGlubGluZSAobm8gdXNlQ2FsbGJhY2spIGJ1dCBvbmx5IGNsb3NlIG92ZXJcbiAgICAvLyByZWZzICsgaW1wb3J0cyDigJQgc3RhYmxlLiBFbXB0eSBkZXBzIGF2b2lkcyByZWJ1aWxkaW5nIHRoZSBoYW5kbGUgb25cbiAgICAvLyBldmVyeSByZW5kZXIgKHdoaWNoIHJlLXJlZ2lzdGVycyB0aGUgcmVmID0gY2h1cm4pLlxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgICBbXSxcbiAgKVxuXG4gIC8vIFN0cnVjdHVyZTogb3V0ZXIgdmlld3BvcnQgKG92ZXJmbG93OnNjcm9sbCwgY29uc3RyYWluZWQgaGVpZ2h0KSA+XG4gIC8vIGlubmVyIGNvbnRlbnQgKGZsZXhHcm93OjEsIGZsZXhTaHJpbms6MCDigJQgZmlsbHMgYXQgbGVhc3QgdGhlIHZpZXdwb3J0XG4gIC8vIGJ1dCBncm93cyBiZXlvbmQgaXQgZm9yIHRhbGwgY29udGVudCkuIGZsZXhHcm93OjEgbGV0cyBjaGlsZHJlbiB1c2VcbiAgLy8gc3BhY2VycyB0byBwaW4gZWxlbWVudHMgdG8gdGhlIGJvdHRvbSBvZiB0aGUgc2Nyb2xsIGFyZWEuIFlvZ2Enc1xuICAvLyBPdmVyZmxvdy5TY3JvbGwgcHJldmVudHMgdGhlIHZpZXdwb3J0IGZyb20gZ3Jvd2luZyB0byBmaXQgdGhlIGNvbnRlbnQuXG4gIC8vIFRoZSByZW5kZXJlciBjb21wdXRlcyBzY3JvbGxIZWlnaHQgZnJvbSB0aGUgY29udGVudCBib3ggYW5kIGN1bGxzXG4gIC8vIGNvbnRlbnQncyBjaGlsZHJlbiBiYXNlZCBvbiBzY3JvbGxUb3AuXG4gIC8vXG4gIC8vIHN0aWNreVNjcm9sbCBpcyBwYXNzZWQgYXMgYSBET00gYXR0cmlidXRlICh2aWEgaW5rLWJveCBkaXJlY3RseSkgc28gaXQnc1xuICAvLyBhdmFpbGFibGUgb24gdGhlIGZpcnN0IHJlbmRlciDigJQgcmVmIGNhbGxiYWNrcyBmaXJlIGFmdGVyIHRoZSBpbml0aWFsXG4gIC8vIGNvbW1pdCwgd2hpY2ggaXMgdG9vIGxhdGUgZm9yIHRoZSBmaXJzdCBmcmFtZS5cbiAgcmV0dXJuIChcbiAgICA8aW5rLWJveFxuICAgICAgcmVmPXtlbCA9PiB7XG4gICAgICAgIGRvbVJlZi5jdXJyZW50ID0gZWxcbiAgICAgICAgaWYgKGVsKSBlbC5zY3JvbGxUb3AgPz89IDBcbiAgICAgIH19XG4gICAgICBzdHlsZT17e1xuICAgICAgICBmbGV4V3JhcDogJ25vd3JhcCcsXG4gICAgICAgIGZsZXhEaXJlY3Rpb246IHN0eWxlLmZsZXhEaXJlY3Rpb24gPz8gJ3JvdycsXG4gICAgICAgIGZsZXhHcm93OiBzdHlsZS5mbGV4R3JvdyA/PyAwLFxuICAgICAgICBmbGV4U2hyaW5rOiBzdHlsZS5mbGV4U2hyaW5rID8/IDEsXG4gICAgICAgIC4uLnN0eWxlLFxuICAgICAgICBvdmVyZmxvd1g6ICdzY3JvbGwnLFxuICAgICAgICBvdmVyZmxvd1k6ICdzY3JvbGwnLFxuICAgICAgfX1cbiAgICAgIHsuLi4oc3RpY2t5U2Nyb2xsID8geyBzdGlja3lTY3JvbGw6IHRydWUgfSA6IHt9KX1cbiAgICA+XG4gICAgICA8Qm94IGZsZXhEaXJlY3Rpb249XCJjb2x1bW5cIiBmbGV4R3Jvdz17MX0gZmxleFNocmluaz17MH0gd2lkdGg9XCIxMDAlXCI+XG4gICAgICAgIHtjaGlsZHJlbn1cbiAgICAgIDwvQm94PlxuICAgIDwvaW5rLWJveD5cbiAgKVxufVxuXG5leHBvcnQgZGVmYXVsdCBTY3JvbGxCb3hcbiJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsS0FBSyxJQUNWLEtBQUtDLGlCQUFpQixFQUN0QixLQUFLQyxHQUFHLEVBQ1JDLG1CQUFtQixFQUNuQkMsTUFBTSxFQUNOQyxRQUFRLFFBQ0gsT0FBTztBQUNkLGNBQWNDLE1BQU0sUUFBUSxXQUFXO0FBQ3ZDLFNBQVNDLGtCQUFrQixRQUFRLDBCQUEwQjtBQUM3RCxjQUFjQyxVQUFVLFFBQVEsV0FBVztBQUMzQyxTQUFTQyxTQUFTLEVBQUVDLGtCQUFrQixRQUFRLFdBQVc7QUFDekQsU0FBU0MsZUFBZSxRQUFRLGtCQUFrQjtBQUNsRCxjQUFjQyxNQUFNLFFBQVEsY0FBYztBQUMxQyxPQUFPLGdCQUFnQjtBQUN2QixPQUFPQyxHQUFHLE1BQU0sVUFBVTtBQUUxQixPQUFPLEtBQUtDLGVBQWUsR0FBRztFQUM1QkMsUUFBUSxFQUFFLENBQUNDLENBQUMsRUFBRSxNQUFNLEVBQUUsR0FBRyxJQUFJO0VBQzdCQyxRQUFRLEVBQUUsQ0FBQ0MsRUFBRSxFQUFFLE1BQU0sRUFBRSxHQUFHLElBQUk7RUFDOUI7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFDRUMsZUFBZSxFQUFFLENBQUNDLEVBQUUsRUFBRVosVUFBVSxFQUFFYSxNQUFlLENBQVIsRUFBRSxNQUFNLEVBQUUsR0FBRyxJQUFJO0VBQzFEQyxjQUFjLEVBQUUsR0FBRyxHQUFHLElBQUk7RUFDMUJDLFlBQVksRUFBRSxHQUFHLEdBQUcsTUFBTTtFQUMxQkMsZUFBZSxFQUFFLEdB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 \ No newline at end of file +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIlByb3BzV2l0aENoaWxkcmVuIiwiUmVmIiwidXNlSW1wZXJhdGl2ZUhhbmRsZSIsInVzZVJlZiIsInVzZVN0YXRlIiwiRXhjZXB0IiwibWFya1Njcm9sbEFjdGl2aXR5IiwiRE9NRWxlbWVudCIsIm1hcmtEaXJ0eSIsInNjaGVkdWxlUmVuZGVyRnJvbSIsIm1hcmtDb21taXRTdGFydCIsIlN0eWxlcyIsIkJveCIsIlNjcm9sbEJveEhhbmRsZSIsInNjcm9sbFRvIiwieSIsInNjcm9sbEJ5IiwiZHkiLCJzY3JvbGxUb0VsZW1lbnQiLCJlbCIsIm9mZnNldCIsInNjcm9sbFRvQm90dG9tIiwiZ2V0U2Nyb2xsVG9wIiwiZ2V0UGVuZGluZ0RlbHRhIiwiZ2V0U2Nyb2xsSGVpZ2h0IiwiZ2V0RnJlc2hTY3JvbGxIZWlnaHQiLCJnZXRWaWV3cG9ydEhlaWdodCIsImdldFZpZXdwb3J0VG9wIiwiaXNTdGlja3kiLCJzdWJzY3JpYmUiLCJsaXN0ZW5lciIsInNldENsYW1wQm91bmRzIiwibWluIiwibWF4IiwiU2Nyb2xsQm94UHJvcHMiLCJyZWYiLCJzdGlja3lTY3JvbGwiLCJTY3JvbGxCb3giLCJjaGlsZHJlbiIsInN0eWxlIiwiUmVhY3ROb2RlIiwiZG9tUmVmIiwiZm9yY2VSZW5kZXIiLCJsaXN0ZW5lcnNSZWYiLCJTZXQiLCJyZW5kZXJRdWV1ZWRSZWYiLCJub3RpZnkiLCJsIiwiY3VycmVudCIsInNjcm9sbE11dGF0ZWQiLCJxdWV1ZU1pY3JvdGFzayIsInBlbmRpbmdTY3JvbGxEZWx0YSIsInVuZGVmaW5lZCIsInNjcm9sbEFuY2hvciIsInNjcm9sbFRvcCIsIk1hdGgiLCJmbG9vciIsImJveCIsIm4iLCJzY3JvbGxIZWlnaHQiLCJjb250ZW50IiwiY2hpbGROb2RlcyIsInlvZ2FOb2RlIiwiZ2V0Q29tcHV0ZWRIZWlnaHQiLCJzY3JvbGxWaWV3cG9ydEhlaWdodCIsInNjcm9sbFZpZXdwb3J0VG9wIiwiQm9vbGVhbiIsImF0dHJpYnV0ZXMiLCJhZGQiLCJkZWxldGUiLCJzY3JvbGxDbGFtcE1pbiIsInNjcm9sbENsYW1wTWF4IiwiZmxleFdyYXAiLCJmbGV4RGlyZWN0aW9uIiwiZmxleEdyb3ciLCJmbGV4U2hyaW5rIiwib3ZlcmZsb3dYIiwib3ZlcmZsb3dZIl0sInNvdXJjZXMiOlsiU2Nyb2xsQm94LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHtcbiAgdHlwZSBQcm9wc1dpdGhDaGlsZHJlbixcbiAgdHlwZSBSZWYsXG4gIHVzZUltcGVyYXRpdmVIYW5kbGUsXG4gIHVzZVJlZixcbiAgdXNlU3RhdGUsXG59IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHR5cGUgeyBFeGNlcHQgfSBmcm9tICd0eXBlLWZlc3QnXG5pbXBvcnQgeyBtYXJrU2Nyb2xsQWN0aXZpdHkgfSBmcm9tICcuLi8uLi9ib290c3RyYXAvc3RhdGUuanMnXG5pbXBvcnQgdHlwZSB7IERPTUVsZW1lbnQgfSBmcm9tICcuLi9kb20uanMnXG5pbXBvcnQgeyBtYXJrRGlydHksIHNjaGVkdWxlUmVuZGVyRnJvbSB9IGZyb20gJy4uL2RvbS5qcydcbmltcG9ydCB7IG1hcmtDb21taXRTdGFydCB9IGZyb20gJy4uL3JlY29uY2lsZXIuanMnXG5pbXBvcnQgdHlwZSB7IFN0eWxlcyB9IGZyb20gJy4uL3N0eWxlcy5qcydcbmltcG9ydCAnLi4vZ2xvYmFsLmQudHMnXG5pbXBvcnQgQm94IGZyb20gJy4vQm94LmpzJ1xuXG5leHBvcnQgdHlwZSBTY3JvbGxCb3hIYW5kbGUgPSB7XG4gIHNjcm9sbFRvOiAoeTogbnVtYmVyKSA9PiB2b2lkXG4gIHNjcm9sbEJ5OiAoZHk6IG51bWJlcikgPT4gdm9pZFxuICAvKipcbiAgICogU2Nyb2xsIHNvIGBlbGAncyB0b3AgaXMgYXQgdGhlIHZpZXdwb3J0IHRvcCAocGx1cyBgb2Zmc2V0YCkuIFVubGlrZVxuICAgKiBzY3JvbGxUbyB3aGljaCBiYWtlcyBhIG51bWJlciB0aGF0J3Mgc3RhbGUgYnkgdGhlIHRpbWUgdGhlIHRocm90dGxlZFxuICAgKiByZW5kZXIgZmlyZXMsIHRoaXMgZGVmZXJzIHRoZSBwb3NpdGlvbiByZWFkIHRvIHJlbmRlciB0aW1lIOKAlFxuICAgKiByZW5kZXItbm9kZS10by1vdXRwdXQgcmVhZHMgYGVsLnlvZ2FOb2RlLmdldENvbXB1dGVkVG9wKClgIGluIHRoZVxuICAgKiBTQU1FIFlvZ2EgcGFzcyB0aGF0IGNvbXB1dGVzIHNjcm9sbEhlaWdodC4gRGV0ZXJtaW5pc3RpYy4gT25lLXNob3QuXG4gICAqL1xuICBzY3JvbGxUb0VsZW1lbnQ6IChlbDogRE9NRWxlbWVudCwgb2Zmc2V0PzogbnVtYmVyKSA9PiB2b2lkXG4gIHNjcm9sbFRvQm90dG9tOiAoKSA9PiB2b2lkXG4gIGdldFNjcm9sbFRvcDogKCkgPT4gbnVtYmVyXG4gIGdldFBlbmRpbmdEZWx0YTogKCkgPT4gbnVtYmVyXG4gIGdldFNjcm9sbEhlaWdodDogKCkgPT4gbnVtYmVyXG4gIC8qKlxuICAgKiBMaWtlIGdldFNjcm9sbEhlaWdodCwgYnV0IHJlYWRzIFlvZ2EgZGlyZWN0bHkgaW5zdGVhZCBvZiB0aGUgY2FjaGVkXG4gICAqIHZhbHVlIHdyaXR0ZW4gYnkgcmVuZGVyLW5vZGUtdG8tb3V0cHV0ICh0aHJvdHRsZWQsIHVwIHRvIDE2bXMgc3RhbGUpLlxuICAgKiBVc2Ugd2hlbiB5b3UgbmVlZCBhIGZyZXNoIHZhbHVlIGluIHVzZUxheW91dEVmZmVjdCBhZnRlciBhIFJlYWN0IGNvbW1pdFxuICAgKiB0aGF0IGdyZXcgY29udGVudC4gU2xpZ2h0bHkgbW9yZSBleHBlbnNpdmUgKG5hdGl2ZSBZb2dhIGNhbGwpLlxuICAgKi9cbiAgZ2V0RnJlc2hTY3JvbGxIZWlnaHQ6ICgpID0+IG51bWJlclxuICBnZXRWaWV3cG9ydEhlaWdodDogKCkgPT4gbnVtYmVyXG4gIC8qKlxuICAgKiBBYnNvbHV0ZSBzY3JlZW4tYnVmZmVyIHJvdyBvZiB0aGUgZmlyc3QgdmlzaWJsZSBjb250ZW50IGxpbmUgKGluc2lkZVxuICAgKiBwYWRkaW5nKS4gVXNlZCBmb3IgZHJhZy10by1zY3JvbGwgZWRnZSBkZXRlY3Rpb24uXG4gICAqL1xuICBnZXRWaWV3cG9ydFRvcDogKCkgPT4gbnVtYmVyXG4gIC8qKlxuICAgKiBUcnVlIHdoZW4gc2Nyb2xsIGlzIHBpbm5lZCB0byB0aGUgYm90dG9tLiBTZXQgYnkgc2Nyb2xsVG9Cb3R0b20sIHRoZVxuICAgKiBpbml0aWFsIHN0aWNreVNjcm9sbCBhdHRyaWJ1dGUsIGFuZCBieSB0aGUgcmVuZGVyZXIgd2hlbiBwb3NpdGlvbmFsXG4gICAqIGZvbGxvdyBmaXJlcyAoc2Nyb2xsVG9wIGF0IHByZXZNYXgsIGNvbnRlbnQgZ3Jvd3MpLiBDbGVhcmVkIGJ5XG4gICAqIHNjcm9sbFRvL3Njcm9sbEJ5LiBTdGFibGUgc2lnbmFsIGZvciBcImF0IGJvdHRvbVwiIHRoYXQgZG9lc24ndCBkZXBlbmQgb25cbiAgICogbGF5b3V0IHZhbHVlcyAodW5saWtlIHNjcm9sbFRvcCt2aWV3cG9ydEggPj0gc2Nyb2xsSGVpZ2h0KS5cbiAgICovXG4gIGlzU3RpY2t5OiAoKSA9PiBib29sZWFuXG4gIC8qKlxuICAgKiBTdWJzY3JpYmUgdG8gaW1wZXJhdGl2ZSBzY3JvbGwgY2hhbmdlcyAoc2Nyb2xsVG8vc2Nyb2xsQnkvc2Nyb2xsVG9Cb3R0b20pLlxuICAgKiBEb2VzIE5PVCBmaXJlIGZvciBzdGlja3lTY3JvbGwgdXBkYXRlcyBkb25lIGJ5IHRoZSBJbmsgcmVuZGVyZXIg4oCUIHRob3NlXG4gICAqIGhhcHBlbiBkdXJpbmcgSW5rJ3MgcmVuZGVyIHBoYXNlIGFmdGVyIFJlYWN0IGhhcyBjb21taXR0ZWQuIENhbGxlcnMgdGhhdFxuICAgKiBjYXJlIGFib3V0IHRoZSBzdGlja3kgY2FzZSBzaG91bGQgdHJlYXQgXCJhdCBib3R0b21cIiBhcyBhIGZhbGxiYWNrLlxuICAgKi9cbiAgc3Vic2NyaWJlOiAobGlzdGVuZXI6ICgpID0+IHZvaWQpID0+ICgpID0+IHZvaWRcbiAgLyoqXG4gICAqIFNldCB0aGUgcmVuZGVyLXRpbWUgc2Nyb2xsVG9wIGNsYW1wIHRvIHRoZSBjdXJyZW50bHktbW91bnRlZCBjaGlsZHJlbidzXG4gICAqIGNvdmVyYWdlIHNwYW4uIENhbGxlZCBieSB1c2VWaXJ0dWFsU2Nyb2xsIGFmdGVyIGNvbXB1dGluZyBpdHMgcmFuZ2U7XG4gICAqIHJlbmRlci1ub2RlLXRvLW91dHB1dCBjbGFtcHMgc2Nyb2xsVG9wIHRvIFttaW4sIG1heF0gc28gYnVyc3Qgc2Nyb2xsVG9cbiAgICogY2FsbHMgdGhhdCByYWNlIHBhc3QgUmVhY3QncyBhc3luYyByZS1yZW5kZXIgc2hvdyB0aGUgZWRnZSBvZiBtb3VudGVkXG4gICAqIGNvbnRlbnQgaW5zdGVhZCBvZiBibGFuayBzcGFjZXIuIFBhc3MgdW5kZWZpbmVkIHRvIGRpc2FibGUgKHN0aWNreSxcbiAgICogY29sZCBzdGFydCkuXG4gICAqL1xuICBzZXRDbGFtcEJvdW5kczogKG1pbjogbnVtYmVyIHwgdW5kZWZpbmVkLCBtYXg6IG51bWJlciB8IHVuZGVmaW5lZCkgPT4gdm9pZFxufVxuXG5leHBvcnQgdHlwZSBTY3JvbGxCb3hQcm9wcyA9IEV4Y2VwdDxcbiAgU3R5bGVzLFxuICAndGV4dFdyYXAnIHwgJ292ZXJmbG93JyB8ICdvdmVyZmxvd1gnIHwgJ292ZXJmbG93WSdcbj4gJiB7XG4gIHJlZj86IFJlZjxTY3JvbGxCb3hIYW5kbGU+XG4gIC8qKlxuICAgKiBXaGVuIHRydWUsIGF1dG9tYXRpY2FsbHkgcGlucyBzY3JvbGwgcG9zaXRpb24gdG8gdGhlIGJvdHRvbSB3aGVuIGNvbnRlbnRcbiAgICogZ3Jvd3MuIFVuc2V0IG1hbnVhbGx5IHZpYSBzY3JvbGxUby9zY3JvbGxCeSB0byBicmVhayB0aGUgc3RpY2tpbmVzcy5cbiAgICovXG4gIHN0aWNreVNjcm9sbD86IGJvb2xlYW5cbn1cblxuLyoqXG4gKiBBIEJveCB3aXRoIGBvdmVyZmxvdzogc2Nyb2xsYCBhbmQgYW4gaW1wZXJhdGl2ZSBzY3JvbGwgQVBJLlxuICpcbiAqIENoaWxkcmVuIGFyZSBsYWlkIG91dCBhdCB0aGVpciBmdWxsIFlvZ2EtY29tcHV0ZWQgaGVpZ2h0IGluc2lkZSBhXG4gKiBjb25zdHJhaW5lZCBjb250YWluZXIuIEF0IHJlbmRlciB0aW1lLCBvbmx5IGNoaWxkcmVuIGludGVyc2VjdGluZyB0aGVcbiAqIHZpc2libGUgd2luZG93IChzY3JvbGxUb3AuLnNjcm9sbFRvcCtoZWlnaHQpIGFyZSByZW5kZXJlZCAodmlld3BvcnRcbiAqIGN1bGxpbmcpLiBDb250ZW50IGlzIHRyYW5zbGF0ZWQgYnkgLXNjcm9sbFRvcCBhbmQgY2xpcHBlZCB0byB0aGUgYm94IGJvdW5kcy5cbiAqXG4gKiBXb3JrcyBiZXN0IGluc2lkZSBhIGZ1bGxzY3JlZW4gKGNvbnN0cmFpbmVkLWhlaWdodCByb290KSBJbmsgdHJlZS5cbiAqL1xuZnVuY3Rpb24gU2Nyb2xsQm94KHtcbiAgY2hpbGRyZW4sXG4gIHJlZixcbiAgc3RpY2t5U2Nyb2xsLFxuICAuLi5zdHlsZVxufTogUHJvcHNXaXRoQ2hpbGRyZW48U2Nyb2xsQm94UHJvcHM+KTogUmVhY3QuUmVhY3ROb2RlIHtcbiAgY29uc3QgZG9tUmVmID0gdXNlUmVmPERPTUVsZW1lbnQ+KG51bGwpXG4gIC8vIHNjcm9sbFRvL3Njcm9sbEJ5IGJ5cGFzcyBSZWFjdDogdGhleSBtdXRhdGUgc2Nyb2xsVG9wIG9uIHRoZSBET00gbm9kZSxcbiAgLy8gbWFyayBpdCBkaXJ0eSwgYW5kIGNhbGwgdGhlIHJvb3QncyB0aHJvdHRsZWQgc2NoZWR1bGVSZW5kZXIgZGlyZWN0bHkuXG4gIC8vIFRoZSBJbmsgcmVuZGVyZXIgcmVhZHMgc2Nyb2xsVG9wIGZyb20gdGhlIG5vZGUg4oCUIG5vIFJlYWN0IHN0YXRlIG5lZWRlZCxcbiAgLy8gbm8gcmVjb25jaWxlciBvdmVyaGVhZCBwZXIgd2hlZWwgZXZlbnQuIFRoZSBtaWNyb3Rhc2sgZGVmZXIgY29hbGVzY2VzXG4gIC8vIG11bHRpcGxlIHNjcm9sbEJ5IGNhbGxzIGluIG9uZSBpbnB1dCBiYXRjaCAoZGlzY3JldGVVcGRhdGVzKSBpbnRvIG9uZVxuICAvLyByZW5kZXIg4oCUIG90aGVyd2lzZSBzY2hlZHVsZVJlbmRlcidzIGxlYWRpbmcgZWRnZSBmaXJlcyBvbiB0aGUgRklSU1RcbiAgLy8gZXZlbnQgYmVmb3JlIHN1YnNlcXVlbnQgZXZlbnRzIG11dGF0ZSBzY3JvbGxUb3AuIHNjcm9sbFRvQm90dG9tIHN0aWxsXG4gIC8vIGZvcmNlcyBhIFJlYWN0IHJlbmRlcjogc3RpY2t5IGlzIGF0dHJpYnV0ZS1vYnNlcnZlZCwgbm8gRE9NLW9ubHkgcGF0aC5cbiAgY29uc3QgWywgZm9yY2VSZW5kZXJdID0gdXNlU3RhdGUoMClcbiAgY29uc3QgbGlzdGVuZXJzUmVmID0gdXNlUmVmKG5ldyBTZXQ8KCkgPT4gdm9pZD4oKSlcbiAgY29uc3QgcmVuZGVyUXVldWVkUmVmID0gdXNlUmVmKGZhbHNlKVxuXG4gIGNvbnN0IG5vdGlmeSA9ICgpID0+IHtcbiAgICBmb3IgKGNvbnN0IGwgb2YgbGlzdGVuZXJzUmVmLmN1cnJlbnQpIGwoKVxuICB9XG5cbiAgZnVuY3Rpb24gc2Nyb2xsTXV0YXRlZChlbDogRE9NRWxlbWVudCk6IHZvaWQge1xuICAgIC8vIFNpZ25hbCBiYWNrZ3JvdW5kIGludGVydmFscyAoSURFIHBvbGwsIExTUCBwb2xsLCBHQ1MgZmV0Y2gsIG9ycGhhblxuICAgIC8vIGNoZWNrKSB0byBza2lwIHRoZWlyIG5leHQgdGljayDigJQgdGhleSBjb21wZXRlIGZvciB0aGUgZXZlbnQgbG9vcCBhbmRcbiAgICAvLyBjb250cmlidXRlZCB0byAxNDAybXMgbWF4IGZyYW1lIGdhcHMgZHVyaW5nIHNjcm9sbCBkcmFpbi5cbiAgICBtYXJrU2Nyb2xsQWN0aXZpdHkoKVxuICAgIG1hcmtEaXJ0eShlbClcbiAgICBtYXJrQ29tbWl0U3RhcnQoKVxuICAgIG5vdGlmeSgpXG4gICAgaWYgKHJlbmRlclF1ZXVlZFJlZi5jdXJyZW50KSByZXR1cm5cbiAgICByZW5kZXJRdWV1ZWRSZWYuY3VycmVudCA9IHRydWVcbiAgICBxdWV1ZU1pY3JvdGFzaygoKSA9PiB7XG4gICAgICByZW5kZXJRdWV1ZWRSZWYuY3VycmVudCA9IGZhbHNlXG4gICAgICBzY2hlZHVsZVJlbmRlckZyb20oZWwpXG4gICAgfSlcbiAgfVxuXG4gIHVzZUltcGVyYXRpdmVIYW5kbGUoXG4gICAgcmVmLFxuICAgICgpOiBTY3JvbGxCb3hIYW5kbGUgPT4gKHtcbiAgICAgIHNjcm9sbFRvKHk6IG51bWJlcikge1xuICAgICAgICBjb25zdCBlbCA9IGRvbVJlZi5jdXJyZW50XG4gICAgICAgIGlmICghZWwpIHJldHVyblxuICAgICAgICAvLyBFeHBsaWNpdCBmYWxzZSBvdmVycmlkZXMgdGhlIERPTSBhdHRyaWJ1dGUgc28gbWFudWFsIHNjcm9sbFxuICAgICAgICAvLyBicmVha3Mgc3RpY2tpbmVzcy4gUmVuZGVyIGNvZGUgY2hlY2tzID8/IHByZWNlZGVuY2UuXG4gICAgICAgIGVsLnN0aWNreVNjcm9sbCA9IGZhbHNlXG4gICAgICAgIGVsLnBlbmRpbmdTY3JvbGxEZWx0YSA9IHVuZGVmaW5lZFxuICAgICAgICBlbC5zY3JvbGxBbmNob3IgPSB1bmRlZmluZWRcbiAgICAgICAgZWwuc2Nyb2xsVG9wID0gTWF0aC5tYXgoMCwgTWF0aC5mbG9vcih5KSlcbiAgICAgICAgc2Nyb2xsTXV0YXRlZChlbClcbiAgICAgIH0sXG4gICAgICBzY3JvbGxUb0VsZW1lbnQoZWw6IERPTUVsZW1lbnQsIG9mZnNldCA9IDApIHtcbiAgICAgICAgY29uc3QgYm94ID0gZG9tUmVmLmN1cnJlbnRcbiAgICAgICAgaWYgKCFib3gpIHJldHVyblxuICAgICAgICBib3guc3RpY2t5U2Nyb2xsID0gZmFsc2VcbiAgICAgICAgYm94LnBlbmRpbmdTY3JvbGxEZWx0YSA9IHVuZGVmaW5lZFxuICAgICAgICBib3guc2Nyb2xsQW5jaG9yID0geyBlbCwgb2Zmc2V0IH1cbiAgICAgICAgc2Nyb2xsTXV0YXRlZChib3gpXG4gICAgICB9LFxuICAgICAgc2Nyb2xsQnkoZHk6IG51bWJlcikge1xuICAgICAgICBjb25zdCBlbCA9IGRvbVJlZi5jdXJyZW50XG4gICAgICAgIGlmICghZWwpIHJldHVyblxuICAgICAgICBlbC5zdGlja3lTY3JvbGwgPSBmYWxzZVxuICAgICAgICAvLyBXaGVlbCBpbnB1dCBjYW5jZWxzIGFueSBpbi1mbGlnaHQgYW5jaG9yIHNlZWsg4oCUIHVzZXIgb3ZlcnJpZGUuXG4gICAgICAgIGVsLnNjcm9sbEFuY2hvciA9IHVuZGVmaW5lZFxuICAgICAgICAvLyBBY2N1bXVsYXRlIGluIHBlbmRpbmdTY3JvbGxEZWx0YTsgcmVuZGVyZXIgZHJhaW5zIGl0IGF0IGEgY2FwcGVkXG4gICAgICAgIC8vIHJhdGUgc28gZmFzdCBmbGlja3Mgc2hvdyBpbnRlcm1lZGlhdGUgZnJhbWVzLiBQdXJlIGFjY3VtdWxhdG9yOlxuICAgICAgICAvLyBzY3JvbGwtdXAgZm9sbG93ZWQgYnkgc2Nyb2xsLWRvd24gbmF0dXJhbGx5IGNhbmNlbHMuXG4gICAgICAgIGVsLnBlbmRpbmdTY3JvbGxEZWx0YSA9IChlbC5wZW5kaW5nU2Nyb2xsRGVsdGEgPz8gMCkgKyBNYXRoLmZsb29yKGR5KVxuICAgICAgICBzY3JvbGxNdXRhdGVkKGVsKVxuICAgICAgfSxcbiAgICAgIHNjcm9sbFRvQm90dG9tKCkge1xuICAgICAgICBjb25zdCBlbCA9IGRvbVJlZi5jdXJyZW50XG4gICAgICAgIGlmICghZWwpIHJldHVyblxuICAgICAgICBlbC5wZW5kaW5nU2Nyb2xsRGVsdGEgPSB1bmRlZmluZWRcbiAgICAgICAgZWwuc3RpY2t5U2Nyb2xsID0gdHJ1ZVxuICAgICAgICBtYXJrRGlydHkoZWwpXG4gICAgICAgIG5vdGlmeSgpXG4gICAgICAgIGZvcmNlUmVuZGVyKG4gPT4gbiArIDEpXG4gICAgICB9LFxuICAgICAgZ2V0U2Nyb2xsVG9wKCkge1xuICAgICAgICByZXR1cm4gZG9tUmVmLmN1cnJlbnQ/LnNjcm9sbFRvcCA/PyAwXG4gICAgICB9LFxuICAgICAgZ2V0UGVuZGluZ0RlbHRhKCkge1xuICAgICAgICAvLyBBY2N1bXVsYXRlZC1idXQtbm90LXlldC1kcmFpbmVkIGRlbHRhLiB1c2VWaXJ0dWFsU2Nyb2xsIG5lZWRzXG4gICAgICAgIC8vIHRoaXMgdG8gbW91bnQgdGhlIHVuaW9uIFtjb21taXR0ZWQsIGNvbW1pdHRlZCtwZW5kaW5nXSByYW5nZSDigJRcbiAgICAgICAgLy8gb3RoZXJ3aXNlIGludGVybWVkaWF0ZSBkcmFpbiBmcmFtZXMgZmluZCBubyBjaGlsZHJlbiAoYmxhbmspLlxuICAgICAgICByZXR1cm4gZG9tUmVmLmN1cnJlbnQ/LnBlbmRpbmdTY3JvbGxEZWx0YSA/PyAwXG4gICAgICB9LFxuICAgICAgZ2V0U2Nyb2xsSGVpZ2h0KCkge1xuICAgICAgICByZXR1cm4gZG9tUmVmLmN1cnJlbnQ/LnNjcm9sbEhlaWdodCA/PyAwXG4gICAgICB9LFxuICAgICAgZ2V0RnJlc2hTY3JvbGxIZWlnaHQoKSB7XG4gICAgICAgIGNvbnN0IGNvbnRlbnQgPSBkb21SZWYuY3VycmVudD8uY2hpbGROb2Rlc1swXSBhcyBET01FbGVtZW50IHwgdW5kZWZpbmVkXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgY29udGVudD8ueW9nYU5vZGU/LmdldENvbXB1dGVkSGVpZ2h0KCkgPz9cbiAgICAgICAgICBkb21SZWYuY3VycmVudD8uc2Nyb2xsSGVpZ2h0ID8/XG4gICAgICAgICAgMFxuICAgICAgICApXG4gICAgICB9LFxuICAgICAgZ2V0Vmlld3BvcnRIZWlnaHQoKSB7XG4gICAgICAgIHJldHVybiBkb21SZWYuY3VycmVudD8uc2Nyb2xsVmlld3BvcnRIZWlnaHQgPz8gMFxuICAgICAgfSxcbiAgICAgIGdldFZpZXdwb3J0VG9wKCkge1xuICAgICAgICByZXR1cm4gZG9tUmVmLmN1cnJlbnQ/LnNjcm9sbFZpZXdwb3J0VG9wID8/IDBcbiAgICAgIH0sXG4gICAgICBpc1N0aWNreSgpIHtcbiAgICAgICAgY29uc3QgZWwgPSBkb21SZWYuY3VycmVudFxuICAgICAgICBpZiAoIWVsKSByZXR1cm4gZmFsc2VcbiAgICAgICAgcmV0dXJuIGVsLnN0aWNreVNjcm9sbCA/PyBCb29sZWFuKGVsLmF0dHJpYnV0ZXNbJ3N0aWNreVNjcm9sbCddKVxuICAgICAgfSxcbiAgICAgIHN1YnNjcmliZShsaXN0ZW5lcjogKCkgPT4gdm9pZCkge1xuICAgICAgICBsaXN0ZW5lcnNSZWYuY3VycmVudC5hZGQobGlzdGVuZXIpXG4gICAgICAgIHJldHVybiAoKSA9PiBsaXN0ZW5lcnNSZWYuY3VycmVudC5kZWxldGUobGlzdGVuZXIpXG4gICAgICB9LFxuICAgICAgc2V0Q2xhbXBCb3VuZHMobWluLCBtYXgpIHtcbiAgICAgICAgY29uc3QgZWwgPSBkb21SZWYuY3VycmVudFxuICAgICAgICBpZiAoIWVsKSByZXR1cm5cbiAgICAgICAgZWwuc2Nyb2xsQ2xhbXBNaW4gPSBtaW5cbiAgICAgICAgZWwuc2Nyb2xsQ2xhbXBNYXggPSBtYXhcbiAgICAgIH0sXG4gICAgfSksXG4gICAgLy8gbm90aWZ5L3Njcm9sbE11dGF0ZWQgYXJlIGlubGluZSAobm8gdXNlQ2FsbGJhY2spIGJ1dCBvbmx5IGNsb3NlIG92ZXJcbiAgICAvLyByZWZzICsgaW1wb3J0cyDigJQgc3RhYmxlLiBFbXB0eSBkZXBzIGF2b2lkcyByZWJ1aWxkaW5nIHRoZSBoYW5kbGUgb25cbiAgICAvLyBldmVyeSByZW5kZXIgKHdoaWNoIHJlLXJlZ2lzdGVycyB0aGUgcmVmID0gY2h1cm4pLlxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgICBbXSxcbiAgKVxuXG4gIC8vIFN0cnVjdHVyZTogb3V0ZXIgdmlld3BvcnQgKG92ZXJmbG93OnNjcm9sbCwgY29uc3RyYWluZWQgaGVpZ2h0KSA+XG4gIC8vIGlubmVyIGNvbnRlbnQgKGZsZXhHcm93OjEsIGZsZXhTaHJpbms6MCDigJQgZmlsbHMgYXQgbGVhc3QgdGhlIHZpZXdwb3J0XG4gIC8vIGJ1dCBncm93cyBiZXlvbmQgaXQgZm9yIHRhbGwgY29udGVudCkuIGZsZXhHcm93OjEgbGV0cyBjaGlsZHJlbiB1c2VcbiAgLy8gc3BhY2VycyB0byBwaW4gZWxlbWVudHMgdG8gdGhlIGJvdHRvbSBvZiB0aGUgc2Nyb2xsIGFyZWEuIFlvZ2Enc1xuICAvLyBPdmVyZmxvdy5TY3JvbGwgcHJldmVudHMgdGhlIHZpZXdwb3J0IGZyb20gZ3Jvd2luZyB0byBmaXQgdGhlIGNvbnRlbnQuXG4gIC8vIFRoZSByZW5kZXJlciBjb21wdXRlcyBzY3JvbGxIZWlnaHQgZnJvbSB0aGUgY29udGVudCBib3ggYW5kIGN1bGxzXG4gIC8vIGNvbnRlbnQncyBjaGlsZHJlbiBiYXNlZCBvbiBzY3JvbGxUb3AuXG4gIC8vXG4gIC8vIHN0aWNreVNjcm9sbCBpcyBwYXNzZWQgYXMgYSBET00gYXR0cmlidXRlICh2aWEgaW5rLWJveCBkaXJlY3RseSkgc28gaXQnc1xuICAvLyBhdmFpbGFibGUgb24gdGhlIGZpcnN0IHJlbmRlciDigJQgcmVmIGNhbGxiYWNrcyBmaXJlIGFmdGVyIHRoZSBpbml0aWFsXG4gIC8vIGNvbW1pdCwgd2hpY2ggaXMgdG9vIGxhdGUgZm9yIHRoZSBmaXJzdCBmcmFtZS5cbiAgcmV0dXJuIChcbiAgICA8aW5rLWJveFxuICAgICAgcmVmPXtlbCA9PiB7XG4gICAgICAgIGRvbVJlZi5jdXJyZW50ID0gZWxcbiAgICAgICAgaWYgKGVsKSBlbC5zY3JvbGxUb3AgPz89IDBcbiAgICAgIH19XG4gICAgICBzdHlsZT17e1xuICAgICAgICBmbGV4V3JhcDogJ25vd3JhcCcsXG4gICAgICAgIGZsZXhEaXJlY3Rpb246IHN0eWxlLmZsZXhEaXJlY3Rpb24gPz8gJ3JvdycsXG4gICAgICAgIGZsZXhHcm93OiBzdHlsZS5mbGV4R3JvdyA/PyAwLFxuICAgICAgICBmbGV4U2hyaW5rOiBzdHlsZS5mbGV4U2hyaW5rID8/IDEsXG4gICAgICAgIC4uLnN0eWxlLFxuICAgICAgICBvdmVyZmxvd1g6ICdzY3JvbGwnLFxuICAgICAgICBvdmVyZmxvd1k6ICdzY3JvbGwnLFxuICAgICAgfX1cbiAgICAgIHsuLi4oc3RpY2t5U2Nyb2xsID8geyBzdGlja3lTY3JvbGw6IHRydWUgfSA6IHt9KX1cbiAgICA+XG4gICAgICA8Qm94IGZsZXhEaXJlY3Rpb249XCJjb2x1bW5cIiBmbGV4R3Jvdz17MX0gZmxleFNocmluaz17MH0gd2lkdGg9XCIxMDAlXCI+XG4gICAgICAgIHtjaGlsZHJlbn1cbiAgICAgIDwvQm94PlxuICAgIDwvaW5rLWJveD5cbiAgKVxufVxuXG5leHBvcnQgZGVmYXVsdCBTY3JvbGxCb3hcbiJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsS0FBSyxJQUNWLEtBQUtDLGlCQUFpQixFQUN0QixLQUFLQyxHQUFHLEVBQ1JDLG1CQUFtQixFQUNuQkMsTUFBTSxFQUNOQyxRQUFRLFFBQ0gsT0FBTztBQUNkLGNBQWNDLE1BQU0sUUFBUSxXQUFXO0FBQ3ZDLFNBQVNDLGtCQUFrQixRQUFRLDBCQUEwQjtBQUM3RCxjQUFjQyxVQUFVLFFBQVEsV0FBVztBQUMzQyxTQUFTQyxTQUFTLEVBQUVDLGtCQUFrQixRQUFRLFdBQVc7QUFDekQsU0FBU0MsZUFBZSxRQUFRLGtCQUFrQjtBQUNsRCxjQUFjQyxNQUFNLFFBQVEsY0FBYztBQUMxQyxPQUFPLGdCQUFnQjtBQUN2QixPQUFPQyxHQUFHLE1BQU0sVUFBVTtBQUUxQixPQUFPLEtBQUtDLGVBQWUsR0FBRztFQUM1QkMsUUFBUSxFQUFFLENBQUNDLENBQUMsRUFBRSxNQUFNLEVBQUUsR0FBRyxJQUFJO0VBQzdCQyxRQUFRLEVBQUUsQ0FBQ0MsRUFBRSxFQUFFLE1BQU0sRUFBRSxHQUFHLElBQUk7RUFDOUI7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFDRUMsZUFBZSxFQUFFLENBQUNDLEVBQUUsRUFBRVosVUFBVSxFQUFFYSxNQUFlLENBQVIsRUFBRSxNQUFNLEVBQUUsR0FBRyxJQUFJO0VBQzFEQyxjQUFjLEVBQUUsR0FBRyxHQUFHLElBQUk7RUFDMUJDLFlBQVksRUFBRSxHQUFHLEdBQUcsTUFBTTtFQUMxQkMsZUFBZSxFQUFFLEdB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 diff --git a/restored-src/src/ink/global.d.ts b/restored-src/src/ink/global.d.ts new file mode 100644 index 000000000..336ce12bb --- /dev/null +++ b/restored-src/src/ink/global.d.ts @@ -0,0 +1 @@ +export {} diff --git a/restored-src/src/native-ts/color-diff/index.ts b/restored-src/src/native-ts/color-diff/index.ts index d2757d3d1..dcedbc3db 100644 --- a/restored-src/src/native-ts/color-diff/index.ts +++ b/restored-src/src/native-ts/color-diff/index.ts @@ -17,7 +17,7 @@ * getSyntaxTheme always returns the default for the given Claude theme. */ -import { diffArrays } from 'diff' +import { diffArrays } from 'diff/libesm/diff/array.js' import type * as hljsNamespace from 'highlight.js' import { basename, extname } from 'path' diff --git a/restored-src/src/services/analytics/firstPartyEventLogger.ts b/restored-src/src/services/analytics/firstPartyEventLogger.ts index e3a501d74..18578683d 100644 --- a/restored-src/src/services/analytics/firstPartyEventLogger.ts +++ b/restored-src/src/services/analytics/firstPartyEventLogger.ts @@ -9,7 +9,7 @@ import { ATTR_SERVICE_VERSION, } from '@opentelemetry/semantic-conventions' import { randomUUID } from 'crypto' -import { isEqual } from 'lodash-es' +import isEqual from 'lodash-es/isEqual.js' import { getOrCreateUserID } from '../../utils/config.js' import { logForDebugging } from '../../utils/debug.js' import { logError } from '../../utils/log.js' diff --git a/restored-src/src/services/analytics/growthbook.ts b/restored-src/src/services/analytics/growthbook.ts index c71bba849..c36f20d2e 100644 --- a/restored-src/src/services/analytics/growthbook.ts +++ b/restored-src/src/services/analytics/growthbook.ts @@ -1,5 +1,6 @@ -import { GrowthBook } from '@growthbook/growthbook' -import { isEqual, memoize } from 'lodash-es' +import { GrowthBook } from '@growthbook/growthbook/dist/esm/GrowthBook.mjs' +import isEqual from 'lodash-es/isEqual.js' +import memoize from 'lodash-es/memoize.js' import { getIsNonInteractiveSession, getSessionTrustAccepted, diff --git a/restored-src/src/services/api/promptCacheBreakDetection.ts b/restored-src/src/services/api/promptCacheBreakDetection.ts index 1599d537e..90151d28b 100644 --- a/restored-src/src/services/api/promptCacheBreakDetection.ts +++ b/restored-src/src/services/api/promptCacheBreakDetection.ts @@ -1,6 +1,6 @@ import type { BetaToolUnion } from '@anthropic-ai/sdk/resources/beta/messages/messages.mjs' import type { TextBlockParam } from '@anthropic-ai/sdk/resources/index.mjs' -import { createPatch } from 'diff' +import { createPatch } from 'diff/libesm/patch/create.js' import { mkdir, writeFile } from 'fs/promises' import { join } from 'path' import type { AgentId } from 'src/types/ids.js' diff --git a/restored-src/src/skills/bundled/claudeApiContent.ts b/restored-src/src/skills/bundled/claudeApiContent.ts index cba76a3b3..7baf6fc84 100644 --- a/restored-src/src/skills/bundled/claudeApiContent.ts +++ b/restored-src/src/skills/bundled/claudeApiContent.ts @@ -1,38 +1,6 @@ -// Content for the claude-api bundled skill. -// Each .md file is inlined as a string at build time via Bun's text loader. +// Restored source builds do not include the bundled Claude API markdown +// documentation tree. Provide placeholders so skill registration can load. -import csharpClaudeApi from './claude-api/csharp/claude-api.md' -import curlExamples from './claude-api/curl/examples.md' -import goClaudeApi from './claude-api/go/claude-api.md' -import javaClaudeApi from './claude-api/java/claude-api.md' -import phpClaudeApi from './claude-api/php/claude-api.md' -import pythonAgentSdkPatterns from './claude-api/python/agent-sdk/patterns.md' -import pythonAgentSdkReadme from './claude-api/python/agent-sdk/README.md' -import pythonClaudeApiBatches from './claude-api/python/claude-api/batches.md' -import pythonClaudeApiFilesApi from './claude-api/python/claude-api/files-api.md' -import pythonClaudeApiReadme from './claude-api/python/claude-api/README.md' -import pythonClaudeApiStreaming from './claude-api/python/claude-api/streaming.md' -import pythonClaudeApiToolUse from './claude-api/python/claude-api/tool-use.md' -import rubyClaudeApi from './claude-api/ruby/claude-api.md' -import skillPrompt from './claude-api/SKILL.md' -import sharedErrorCodes from './claude-api/shared/error-codes.md' -import sharedLiveSources from './claude-api/shared/live-sources.md' -import sharedModels from './claude-api/shared/models.md' -import sharedPromptCaching from './claude-api/shared/prompt-caching.md' -import sharedToolUseConcepts from './claude-api/shared/tool-use-concepts.md' -import typescriptAgentSdkPatterns from './claude-api/typescript/agent-sdk/patterns.md' -import typescriptAgentSdkReadme from './claude-api/typescript/agent-sdk/README.md' -import typescriptClaudeApiBatches from './claude-api/typescript/claude-api/batches.md' -import typescriptClaudeApiFilesApi from './claude-api/typescript/claude-api/files-api.md' -import typescriptClaudeApiReadme from './claude-api/typescript/claude-api/README.md' -import typescriptClaudeApiStreaming from './claude-api/typescript/claude-api/streaming.md' -import typescriptClaudeApiToolUse from './claude-api/typescript/claude-api/tool-use.md' - -// @[MODEL LAUNCH]: Update the model IDs/names below. These are substituted into {{VAR}} -// placeholders in the .md files at runtime before the skill prompt is sent. -// After updating these constants, manually update the two files that still hardcode models: -// - claude-api/SKILL.md (Current Models pricing table) -// - claude-api/shared/models.md (full model catalog with legacy versions and alias mappings) export const SKILL_MODEL_VARS = { OPUS_ID: 'claude-opus-4-6', OPUS_NAME: 'Claude Opus 4.6', @@ -40,36 +8,15 @@ export const SKILL_MODEL_VARS = { SONNET_NAME: 'Claude Sonnet 4.6', HAIKU_ID: 'claude-haiku-4-5', HAIKU_NAME: 'Claude Haiku 4.5', - // Previous Sonnet ID — used in "do not append date suffixes" example in SKILL.md. PREV_SONNET_ID: 'claude-sonnet-4-5', } satisfies Record -export const SKILL_PROMPT: string = skillPrompt +export const SKILL_PROMPT = `# Claude API + +Bundled Claude API documentation is unavailable in this restored source build. +` export const SKILL_FILES: Record = { - 'csharp/claude-api.md': csharpClaudeApi, - 'curl/examples.md': curlExamples, - 'go/claude-api.md': goClaudeApi, - 'java/claude-api.md': javaClaudeApi, - 'php/claude-api.md': phpClaudeApi, - 'python/agent-sdk/README.md': pythonAgentSdkReadme, - 'python/agent-sdk/patterns.md': pythonAgentSdkPatterns, - 'python/claude-api/README.md': pythonClaudeApiReadme, - 'python/claude-api/batches.md': pythonClaudeApiBatches, - 'python/claude-api/files-api.md': pythonClaudeApiFilesApi, - 'python/claude-api/streaming.md': pythonClaudeApiStreaming, - 'python/claude-api/tool-use.md': pythonClaudeApiToolUse, - 'ruby/claude-api.md': rubyClaudeApi, - 'shared/error-codes.md': sharedErrorCodes, - 'shared/live-sources.md': sharedLiveSources, - 'shared/models.md': sharedModels, - 'shared/prompt-caching.md': sharedPromptCaching, - 'shared/tool-use-concepts.md': sharedToolUseConcepts, - 'typescript/agent-sdk/README.md': typescriptAgentSdkReadme, - 'typescript/agent-sdk/patterns.md': typescriptAgentSdkPatterns, - 'typescript/claude-api/README.md': typescriptClaudeApiReadme, - 'typescript/claude-api/batches.md': typescriptClaudeApiBatches, - 'typescript/claude-api/files-api.md': typescriptClaudeApiFilesApi, - 'typescript/claude-api/streaming.md': typescriptClaudeApiStreaming, - 'typescript/claude-api/tool-use.md': typescriptClaudeApiToolUse, + 'shared/live-sources.md': + 'Bundled Claude API reference files are unavailable in this restored source build.\n', } diff --git a/restored-src/src/skills/bundled/verifyContent.ts b/restored-src/src/skills/bundled/verifyContent.ts index a90044fdd..8088e60c8 100644 --- a/restored-src/src/skills/bundled/verifyContent.ts +++ b/restored-src/src/skills/bundled/verifyContent.ts @@ -1,13 +1,18 @@ -// Content for the verify bundled skill. -// Each .md file is inlined as a string at build time via Bun's text loader. +// Restored source builds do not include the bundled markdown assets that the +// official build inlines here. Keep the module surface intact with placeholders. -import cliMd from './verify/examples/cli.md' -import serverMd from './verify/examples/server.md' -import skillMd from './verify/SKILL.md' +export const SKILL_MD = `--- +description: Verify a code change does what it should by running the app. +--- -export const SKILL_MD: string = skillMd +# Verify + +Bundled verify skill content is unavailable in this restored source build. +` export const SKILL_FILES: Record = { - 'examples/cli.md': cliMd, - 'examples/server.md': serverMd, + 'examples/cli.md': + 'CLI verification example is unavailable in this restored source build.\n', + 'examples/server.md': + 'Server verification example is unavailable in this restored source build.\n', } diff --git a/restored-src/src/tools/FileEditTool/utils.ts b/restored-src/src/tools/FileEditTool/utils.ts index 2520ed553..1a4362ce8 100644 --- a/restored-src/src/tools/FileEditTool/utils.ts +++ b/restored-src/src/tools/FileEditTool/utils.ts @@ -1,4 +1,5 @@ -import { type StructuredPatchHunk, structuredPatch } from 'diff' +import type { StructuredPatchHunk } from 'diff' +import { structuredPatch } from 'diff/libesm/patch/create.js' import { logError } from 'src/utils/log.js' import { expandPath } from 'src/utils/path.js' import { countCharInString } from 'src/utils/stringUtils.js' diff --git a/restored-src/src/tools/SkillTool/prompt.ts b/restored-src/src/tools/SkillTool/prompt.ts index b05a58f3d..1bd61fa07 100644 --- a/restored-src/src/tools/SkillTool/prompt.ts +++ b/restored-src/src/tools/SkillTool/prompt.ts @@ -1,4 +1,4 @@ -import { memoize } from 'lodash-es' +import memoize from 'lodash-es/memoize.js' import type { Command } from 'src/commands.js' import { getCommandName, diff --git a/restored-src/src/tools/TungstenTool/TungstenLiveMonitor.tsx b/restored-src/src/tools/TungstenTool/TungstenLiveMonitor.tsx new file mode 100644 index 000000000..1340073be --- /dev/null +++ b/restored-src/src/tools/TungstenTool/TungstenLiveMonitor.tsx @@ -0,0 +1,3 @@ +export function TungstenLiveMonitor() { + return null +} diff --git a/restored-src/src/tools/TungstenTool/TungstenTool.ts b/restored-src/src/tools/TungstenTool/TungstenTool.ts new file mode 100644 index 000000000..5e37fb727 --- /dev/null +++ b/restored-src/src/tools/TungstenTool/TungstenTool.ts @@ -0,0 +1,40 @@ +import { z } from 'zod/v4' + +const UNAVAILABLE_MESSAGE = + 'TungstenTool is unavailable in this restored source build.' + +const inputSchema = z.object({}).passthrough() + +export const TungstenTool = { + name: 'TungstenTool', + inputSchema, + maxResultSizeChars: 0, + async call() { + throw new Error(UNAVAILABLE_MESSAGE) + }, + async checkPermissions() { + throw new Error(UNAVAILABLE_MESSAGE) + }, + async description() { + return UNAVAILABLE_MESSAGE + }, + async prompt() { + return UNAVAILABLE_MESSAGE + }, + isConcurrencySafe() { + return true + }, + isEnabled() { + return false + }, + isReadOnly() { + return false + }, + userFacingName() { + return 'TungstenTool' + }, +} + +export function clearSessionsWithTungstenUsage(): void {} + +export function resetInitializationState(): void {} diff --git a/restored-src/src/tools/WorkflowTool/WorkflowPermissionRequest.tsx b/restored-src/src/tools/WorkflowTool/WorkflowPermissionRequest.tsx new file mode 100644 index 000000000..f1b153ac9 --- /dev/null +++ b/restored-src/src/tools/WorkflowTool/WorkflowPermissionRequest.tsx @@ -0,0 +1,3 @@ +export function WorkflowPermissionRequest() { + return null +} diff --git a/restored-src/src/tools/WorkflowTool/WorkflowTool.ts b/restored-src/src/tools/WorkflowTool/WorkflowTool.ts new file mode 100644 index 000000000..69cfdd346 --- /dev/null +++ b/restored-src/src/tools/WorkflowTool/WorkflowTool.ts @@ -0,0 +1,35 @@ +import { z } from 'zod/v4' +import { WORKFLOW_TOOL_NAME } from './constants.js' + +const UNAVAILABLE_MESSAGE = + 'WorkflowTool is unavailable in this restored source build.' + +export const WorkflowTool = { + name: WORKFLOW_TOOL_NAME, + inputSchema: z.object({}).passthrough(), + maxResultSizeChars: 0, + async call() { + throw new Error(UNAVAILABLE_MESSAGE) + }, + async checkPermissions() { + throw new Error(UNAVAILABLE_MESSAGE) + }, + async description() { + return UNAVAILABLE_MESSAGE + }, + async prompt() { + return UNAVAILABLE_MESSAGE + }, + isConcurrencySafe() { + return true + }, + isEnabled() { + return false + }, + isReadOnly() { + return false + }, + userFacingName() { + return WORKFLOW_TOOL_NAME + }, +} diff --git a/restored-src/src/tools/WorkflowTool/bundled/index.js b/restored-src/src/tools/WorkflowTool/bundled/index.js new file mode 100644 index 000000000..ea54c8246 --- /dev/null +++ b/restored-src/src/tools/WorkflowTool/bundled/index.js @@ -0,0 +1 @@ +export function initBundledWorkflows() {} diff --git a/restored-src/src/tools/WorkflowTool/constants.ts b/restored-src/src/tools/WorkflowTool/constants.ts new file mode 100644 index 000000000..473d974fa --- /dev/null +++ b/restored-src/src/tools/WorkflowTool/constants.ts @@ -0,0 +1 @@ +export const WORKFLOW_TOOL_NAME = 'WorkflowTool' diff --git a/restored-src/src/tools/WorkflowTool/createWorkflowCommand.ts b/restored-src/src/tools/WorkflowTool/createWorkflowCommand.ts new file mode 100644 index 000000000..a042354d1 --- /dev/null +++ b/restored-src/src/tools/WorkflowTool/createWorkflowCommand.ts @@ -0,0 +1,3 @@ +export function getWorkflowCommands() { + return [] +} diff --git a/restored-src/src/types/connectorText.ts b/restored-src/src/types/connectorText.ts new file mode 100644 index 000000000..0b99904fe --- /dev/null +++ b/restored-src/src/types/connectorText.ts @@ -0,0 +1,22 @@ +export type ConnectorTextBlock = { + type: 'connector_text' + connector_text: string +} + +export type ConnectorTextDelta = { + type: 'connector_text_delta' + connector_text: string +} + +export function isConnectorTextBlock( + value: unknown, +): value is ConnectorTextBlock { + return ( + typeof value === 'object' && + value !== null && + 'type' in value && + (value as { type?: unknown }).type === 'connector_text' && + 'connector_text' in value && + typeof (value as { connector_text?: unknown }).connector_text === 'string' + ) +} diff --git a/restored-src/src/utils/diff.ts b/restored-src/src/utils/diff.ts index 38e7c1bf6..24628d74e 100644 --- a/restored-src/src/utils/diff.ts +++ b/restored-src/src/utils/diff.ts @@ -1,4 +1,5 @@ -import { type StructuredPatchHunk, structuredPatch } from 'diff' +import type { StructuredPatchHunk } from 'diff' +import { structuredPatch } from 'diff/libesm/patch/create.js' import { logEvent } from 'src/services/analytics/index.js' import { getLocCounter } from '../bootstrap/state.js' import { addToTotalLinesChanged } from '../cost-tracker.js' diff --git a/restored-src/src/utils/execFileNoThrow.ts b/restored-src/src/utils/execFileNoThrow.ts index c21a6f01d..fbe0fbdb0 100644 --- a/restored-src/src/utils/execFileNoThrow.ts +++ b/restored-src/src/utils/execFileNoThrow.ts @@ -1,8 +1,9 @@ -// This file represents useful wrappers over node:child_process -// These wrappers ease error handling and cross-platform compatbility -// By using execa, Windows automatically gets shell escaping + BAT / CMD handling +// This file represents useful wrappers over node:child_process. +// It intentionally avoids shell semantics by default: callers pass an +// executable plus argv, so spawning the file directly is both safer and more +// predictable than routing through cross-spawn/cmd.exe. -import { type ExecaError, execa } from 'execa' +import { spawn } from 'child_process' import { getCwd } from '../utils/cwd.js' import { logError } from './log.js' @@ -106,45 +107,123 @@ export function execFileNoThrowWithCwd( }, ): Promise<{ stdout: string; stderr: string; code: number; error?: string }> { return new Promise(resolve => { - // Use execa for cross-platform .bat/.cmd compatibility on Windows - execa(file, args, { - maxBuffer, - signal: abortSignal, - timeout: finalTimeout, - cwd: finalCwd, - env: finalEnv, - shell, - stdin: finalStdin, - input: finalInput, - reject: false, // Don't throw on non-zero exit codes - }) - .then(result => { - if (result.failed) { - if (finalPreserveOutput) { - const errorCode = result.exitCode ?? 1 - void resolve({ - stdout: result.stdout || '', - stderr: result.stderr || '', - code: errorCode, - error: getErrorMessage( - result as unknown as ExecaResultWithError, - errorCode, - ), - }) - } else { - void resolve({ stdout: '', stderr: '', code: result.exitCode ?? 1 }) - } - } else { - void resolve({ - stdout: result.stdout, - stderr: result.stderr, - code: 0, - }) - } + const stdinMode = finalInput !== undefined ? 'pipe' : (finalStdin ?? 'pipe') + let child + try { + child = spawn(file, args, { + cwd: finalCwd, + env: finalEnv, + shell, + signal: abortSignal, + stdio: [stdinMode, 'pipe', 'pipe'], + windowsHide: true, }) - .catch((error: ExecaError) => { - logError(error) - void resolve({ stdout: '', stderr: '', code: 1 }) + } catch (error) { + logError(error) + resolve({ + stdout: '', + stderr: '', + code: 1, + error: error instanceof Error ? error.message : String(error), }) + return + } + + let stdout = '' + let stderr = '' + let settled = false + let timedOut = false + let timer: ReturnType | undefined + + const finish = (result: { + stdout: string + stderr: string + code: number + error?: string + }) => { + if (settled) return + settled = true + clearTimeout(timer) + resolve(result) + } + + const appendChunk = ( + current: string, + chunk: Buffer | string, + ): { next: string; overflowed: boolean } => { + const text = typeof chunk === 'string' ? chunk : chunk.toString('utf8') + if (maxBuffer === undefined) { + return { next: current + text, overflowed: false } + } + const next = current + text + if (next.length <= maxBuffer) { + return { next, overflowed: false } + } + return { + next: next.slice(0, maxBuffer), + overflowed: true, + } + } + + child.stdout?.on('data', chunk => { + const result = appendChunk(stdout, chunk) + stdout = result.next + if (result.overflowed) { + child.kill() + } + }) + + child.stderr?.on('data', chunk => { + const result = appendChunk(stderr, chunk) + stderr = result.next + if (result.overflowed) { + child.kill() + } + }) + + child.on('error', error => { + logError(error) + finish({ stdout: '', stderr: '', code: 1, error: error.message }) + }) + + child.on('close', (code, signal) => { + const exitCode = typeof code === 'number' ? code : 1 + if (exitCode === 0 && !signal && !timedOut) { + finish({ stdout, stderr, code: 0 }) + return + } + + const output = finalPreserveOutput ? { stdout, stderr } : { stdout: '', stderr: '' } + const signalName = typeof signal === 'string' ? signal : undefined + finish({ + ...output, + code: exitCode, + error: timedOut + ? `timed out after ${finalTimeout}ms` + : getErrorMessage( + { + shortMessage: + output.stderr.trim() || output.stdout.trim() || undefined, + signal: signalName, + }, + exitCode, + ), + }) + }) + + if (finalInput !== undefined && child.stdin) { + child.stdin.end(finalInput) + } + + if (stdinMode === 'ignore') { + child.stdin?.end() + } + + if (finalTimeout !== undefined && finalTimeout > 0) { + timer = setTimeout(() => { + timedOut = true + child.kill() + }, finalTimeout) + } }) } diff --git a/restored-src/src/utils/fileHistory.ts b/restored-src/src/utils/fileHistory.ts index 4e227d997..4849b2c11 100644 --- a/restored-src/src/utils/fileHistory.ts +++ b/restored-src/src/utils/fileHistory.ts @@ -1,5 +1,5 @@ import { createHash, type UUID } from 'crypto' -import { diffLines } from 'diff' +import { diffLines } from 'diff/libesm/diff/line.js' import type { Stats } from 'fs' import { chmod, diff --git a/restored-src/src/utils/ripgrep.ts b/restored-src/src/utils/ripgrep.ts index 683da0516..06d128e6b 100644 --- a/restored-src/src/utils/ripgrep.ts +++ b/restored-src/src/utils/ripgrep.ts @@ -1,5 +1,6 @@ import type { ChildProcess, ExecFileException } from 'child_process' import { execFile, spawn } from 'child_process' +import { existsSync } from 'fs' import memoize from 'lodash-es/memoize.js' import { homedir } from 'os' import * as path from 'path' @@ -61,6 +62,17 @@ const getRipgrepConfig = memoize((): RipgrepConfig => { ? path.resolve(rgRoot, `${process.arch}-win32`, 'rg.exe') : path.resolve(rgRoot, `${process.arch}-${process.platform}`, 'rg') + if (existsSync(command)) { + return { mode: 'builtin', command, args: [] } + } + + // Restored-source/dev shells may not carry the vendored ripgrep artifact. + // Fall back to a system rg if one is available rather than hard-failing. + const { cmd: fallbackSystemPath } = findExecutable('rg', []) + if (fallbackSystemPath !== 'rg') { + return { mode: 'system', command: 'rg', args: [] } + } + return { mode: 'builtin', command, args: [] } }) diff --git a/restored-src/src/utils/sandbox/sandbox-adapter.ts b/restored-src/src/utils/sandbox/sandbox-adapter.ts index 170ecac78..aac8813ad 100644 --- a/restored-src/src/utils/sandbox/sandbox-adapter.ts +++ b/restored-src/src/utils/sandbox/sandbox-adapter.ts @@ -22,7 +22,7 @@ import { } from '@anthropic-ai/sandbox-runtime' import { rmSync, statSync } from 'fs' import { readFile } from 'fs/promises' -import { memoize } from 'lodash-es' +import memoize from 'lodash-es/memoize.js' import { join, resolve, sep } from 'path' import { getAdditionalDirectoriesForClaudeMd, diff --git a/restored-src/src/utils/settings/mdm/rawRead.ts b/restored-src/src/utils/settings/mdm/rawRead.ts index 18aeacafd..ef067398a 100644 --- a/restored-src/src/utils/settings/mdm/rawRead.ts +++ b/restored-src/src/utils/settings/mdm/rawRead.ts @@ -34,15 +34,21 @@ function execFilePromise( args: string[], ): Promise<{ stdout: string; code: number | null }> { return new Promise(resolve => { - execFile( - cmd, - args, - { encoding: 'utf-8', timeout: MDM_SUBPROCESS_TIMEOUT_MS }, - (err, stdout) => { - // biome-ignore lint/nursery/noFloatingPromises: resolve() is not a floating promise - resolve({ stdout: stdout ?? '', code: err ? 1 : 0 }) - }, - ) + try { + execFile( + cmd, + args, + { encoding: 'utf-8', timeout: MDM_SUBPROCESS_TIMEOUT_MS }, + (err, stdout) => { + // biome-ignore lint/nursery/noFloatingPromises: resolve() is not a floating promise + resolve({ stdout: stdout ?? '', code: err ? 1 : 0 }) + }, + ) + } catch { + // Fail open: MDM startup probes must never block the CLI if the host + // forbids spawning platform helpers such as `reg`/`plutil`. + resolve({ stdout: '', code: 1 }) + } }) } diff --git a/restored-src/src/utils/windowsPaths.ts b/restored-src/src/utils/windowsPaths.ts index c0774ea87..4a2635fe6 100644 --- a/restored-src/src/utils/windowsPaths.ts +++ b/restored-src/src/utils/windowsPaths.ts @@ -1,24 +1,20 @@ +import { existsSync } from 'fs' import memoize from 'lodash-es/memoize.js' import * as path from 'path' import * as pathWin32 from 'path/win32' import { getCwd } from './cwd.js' import { logForDebugging } from './debug.js' -import { execSync_DEPRECATED } from './execSyncWrapper.js' import { memoizeWithLRU } from './memoize.js' import { getPlatform } from './platform.js' +import { whichSync } from './which.js' /** - * Check if a file or directory exists on Windows using the dir command + * Check if a file or directory exists on Windows. * @param path - The path to check * @returns true if the path exists, false otherwise */ function checkPathExists(path: string): boolean { - try { - execSync_DEPRECATED(`dir "${path}"`, { stdio: 'pipe' }) - return true - } catch { - return false - } + return existsSync(path) } /** @@ -44,39 +40,26 @@ function findExecutable(executable: string): string | null { } } - // Fall back to where.exe - try { - const result = execSync_DEPRECATED(`where.exe ${executable}`, { - stdio: 'pipe', - encoding: 'utf8', - }).trim() - - // SECURITY: Filter out any results from the current directory - // to prevent executing malicious git.bat/cmd/exe files - const paths = result.split('\r\n').filter(Boolean) - const cwd = getCwd().toLowerCase() - - for (const candidatePath of paths) { - // Normalize and compare paths to ensure we're not in current directory - const normalizedPath = path.resolve(candidatePath).toLowerCase() - const pathDir = path.dirname(normalizedPath).toLowerCase() - - // Skip if the executable is in the current working directory - if (pathDir === cwd || normalizedPath.startsWith(cwd + path.sep)) { - logForDebugging( - `Skipping potentially malicious executable in current directory: ${candidatePath}`, - ) - continue - } + const candidatePath = whichSync(executable) + if (!candidatePath) { + return null + } - // Return the first valid path that's not in the current directory - return candidatePath - } + // SECURITY: Filter out any results from the current directory + // to prevent executing malicious git.bat/cmd/exe files + const cwd = getCwd().toLowerCase() + const normalizedPath = path.resolve(candidatePath).toLowerCase() + const pathDir = path.dirname(normalizedPath).toLowerCase() - return null - } catch { + // Skip if the executable is in the current working directory + if (pathDir === cwd || normalizedPath.startsWith(cwd + path.sep)) { + logForDebugging( + `Skipping potentially malicious executable in current directory: ${candidatePath}`, + ) return null } + + return candidatePath } /** diff --git a/restored-src/tsconfig.json b/restored-src/tsconfig.json new file mode 100644 index 000000000..9fbf8dc02 --- /dev/null +++ b/restored-src/tsconfig.json @@ -0,0 +1,18 @@ +{ + "compilerOptions": { + "target": "ESNext", + "module": "ESNext", + "moduleResolution": "Bundler", + "jsx": "react-jsx", + "allowJs": true, + "checkJs": false, + "baseUrl": ".", + "paths": { + "src/*": [ + "src/*" + ] + }, + "skipLibCheck": true, + "noEmit": true + } +}