From e4644a8536f4c44f64805bbfa26c6c7e2d3ea2cb Mon Sep 17 00:00:00 2001 From: Wanlin Du Date: Wed, 20 Aug 2025 03:26:57 +0000 Subject: [PATCH 1/2] chore: update typescript sdk sample's recordings. --- sdks/typescript/postinstall.js | 5 +- sdks/typescript/sample/README.md | 24 + sdks/typescript/sample/package-lock.json | 516 ++++- ...659f4a847abbce3501f7c930395e67e892293e.req | 14 - ...59f4a847abbce3501f7c930395e67e892293e.resp | 16 - ...7143fd2a638ccceab8be57bab6d068afcc9c7.json | 44 + ...76ddfd148c8217903b4b84b5b4fdef71e0a8b4.req | 9 - ...6ddfd148c8217903b4b84b5b4fdef71e0a8b4.resp | 1908 ----------------- 8 files changed, 565 insertions(+), 1971 deletions(-) create mode 100644 sdks/typescript/sample/README.md delete mode 100644 sdks/typescript/sample/test-data/recordings/62fe0f67bb2dc1d57b9629e608659f4a847abbce3501f7c930395e67e892293e.req delete mode 100644 sdks/typescript/sample/test-data/recordings/62fe0f67bb2dc1d57b9629e608659f4a847abbce3501f7c930395e67e892293e.resp create mode 100644 sdks/typescript/sample/test-data/recordings/7309b7911ec033c96de548d4c977143fd2a638ccceab8be57bab6d068afcc9c7.json delete mode 100644 sdks/typescript/sample/test-data/recordings/e3e781293e37b42d98f86c15d676ddfd148c8217903b4b84b5b4fdef71e0a8b4.req delete mode 100644 sdks/typescript/sample/test-data/recordings/e3e781293e37b42d98f86c15d676ddfd148c8217903b4b84b5b4fdef71e0a8b4.resp diff --git a/sdks/typescript/postinstall.js b/sdks/typescript/postinstall.js index 790a2a9..9634c1a 100644 --- a/sdks/typescript/postinstall.js +++ b/sdks/typescript/postinstall.js @@ -169,9 +169,8 @@ function ensureBinaryIsExecutable(binaryPath, platform) { async function main() { const binaryPath = getBinaryPath(); if (fs.existsSync(binaryPath)) { - console.log(`${PROJECT_NAME} binary already exists at ${binaryPath}. Skipping download.`); - ensureBinaryIsExecutable(binaryPath, os.platform()); - return; + console.log(`${PROJECT_NAME} binary already exists at ${binaryPath}. Removing it for a fresh install.`); + fs.unlinkSync(binaryPath); // This deletes the file } if (!fs.existsSync(BIN_DIR)) { diff --git a/sdks/typescript/sample/README.md b/sdks/typescript/sample/README.md new file mode 100644 index 0000000..5f333f0 --- /dev/null +++ b/sdks/typescript/sample/README.md @@ -0,0 +1,24 @@ +# Usage samples for `@google/genai/node` + +To run the samples first build the SDKs, from the sdks/typescript/: + +```sh +# Build the SDK +npm install +npm run build +``` + +Then get into sdks/typescript/samples, install the newly built test-server typescript sdk: +```sh +# install the test-server typescript sdk +cd samples +rm -Rf node_modules/ # To clean up the old build +npm install +``` + +Now from sdks/typescript/samples, you can run +```sh +npm run test +#or +npm run test:record +``` \ No newline at end of file diff --git a/sdks/typescript/sample/package-lock.json b/sdks/typescript/sample/package-lock.json index 15b040f..3a71e63 100644 --- a/sdks/typescript/sample/package-lock.json +++ b/sdks/typescript/sample/package-lock.json @@ -18,23 +18,6 @@ "typescript": "^5.3.0" } }, - "..": { - "name": "test-server-sdk", - "version": "0.2.3", - "hasInstallScript": true, - "license": "Apache-2.0", - "dependencies": { - "axios": "^1.6.0", - "extract-zip": "^2.0.1", - "tar": "^6.2.0", - "yaml": "^2.8.0" - }, - "devDependencies": { - "@types/node": "^20.11.0", - "@types/tar": "^6.1.0", - "typescript": "^5.3.0" - } - }, "node_modules/@isaacs/cliui": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", @@ -75,12 +58,21 @@ "version": "20.17.43", "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.43.tgz", "integrity": "sha512-DnDEcDUnVAUYSa7U03QvrXbj1MZj00xoyi/a3lRGkR/c7BFUnqv+OY9EUphMqXUKdZJEOmuzu2mm+LmCisnPow==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "undici-types": "~6.19.2" } }, + "node_modules/@types/yauzl": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", + "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", + "optional": true, + "dependencies": { + "@types/node": "*" + } + }, "node_modules/ansi-regex": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", @@ -107,6 +99,21 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "node_modules/axios": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.11.0.tgz", + "integrity": "sha512-1Lx3WLFQWm3ooKDYZD1eXmoGO9fxYQjrycfHFC8P0sCfQVXyROp0p9PFWBehewBOdCwHc+f/b8I0fMto5eSfwA==", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.4", + "proxy-from-env": "^1.1.0" + } + }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", @@ -124,6 +131,34 @@ "balanced-match": "^1.0.0" } }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "engines": { + "node": "*" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "engines": { + "node": ">=10" + } + }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -144,6 +179,17 @@ "dev": true, "license": "MIT" }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/cross-env": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", @@ -178,6 +224,43 @@ "node": ">= 8" } }, + "node_modules/debug": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/eastasianwidth": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", @@ -192,6 +275,101 @@ "dev": true, "license": "MIT" }, + "node_modules/end-of-stream": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz", + "integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/extract-zip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", + "dependencies": { + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + }, + "engines": { + "node": ">= 10.17.0" + }, + "optionalDependencies": { + "@types/yauzl": "^2.9.1" + } + }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/follow-redirects": { + "version": "1.15.11", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.11.tgz", + "integrity": "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, "node_modules/foreground-child": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", @@ -209,6 +387,100 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/form-data": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz", + "integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.2", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/fs-minipass/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/glob": { "version": "10.4.5", "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", @@ -230,6 +502,53 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", @@ -291,6 +610,33 @@ "dev": true, "license": "ISC" }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/minimatch": { "version": "9.0.5", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", @@ -317,6 +663,53 @@ "node": ">=16 || 14 >=14.17" } }, + "node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minizlib/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dependencies": { + "wrappy": "1" + } + }, "node_modules/package-json-from-dist": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", @@ -351,6 +744,25 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==" + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, + "node_modules/pump": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.3.tgz", + "integrity": "sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA==", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -491,9 +903,41 @@ "node": ">=8" } }, + "node_modules/tar": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", + "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/tar/node_modules/minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "engines": { + "node": ">=8" + } + }, "node_modules/test-server-sdk": { - "resolved": "..", - "link": true + "version": "0.2.6", + "resolved": "file:..", + "hasInstallScript": true, + "license": "Apache-2.0", + "dependencies": { + "axios": "^1.6.0", + "extract-zip": "^2.0.1", + "tar": "^6.2.0", + "yaml": "^2.8.0" + } }, "node_modules/typescript": { "version": "5.8.3", @@ -513,7 +957,7 @@ "version": "6.19.8", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", - "dev": true, + "devOptional": true, "license": "MIT" }, "node_modules/which": { @@ -629,6 +1073,36 @@ "engines": { "node": ">=8" } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/yaml": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.1.tgz", + "integrity": "sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14.6" + } + }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } } } } diff --git a/sdks/typescript/sample/test-data/recordings/62fe0f67bb2dc1d57b9629e608659f4a847abbce3501f7c930395e67e892293e.req b/sdks/typescript/sample/test-data/recordings/62fe0f67bb2dc1d57b9629e608659f4a847abbce3501f7c930395e67e892293e.req deleted file mode 100644 index de1b7fc..0000000 --- a/sdks/typescript/sample/test-data/recordings/62fe0f67bb2dc1d57b9629e608659f4a847abbce3501f7c930395e67e892293e.req +++ /dev/null @@ -1,14 +0,0 @@ -b4d6e60a9b97e7b98c63df9308728c5c88c0b40c398046772c63447b94608b4d -Server Address: github.com -Port: 443 -Protocol: https -******************************************************************************** -GET /healthz HTTP/1.1 -Accept: */* -Accept-Encoding: gzip, deflate -Accept-Language: * -Connection: keep-alive -Sec-Fetch-Mode: cors -User-Agent: node - - diff --git a/sdks/typescript/sample/test-data/recordings/62fe0f67bb2dc1d57b9629e608659f4a847abbce3501f7c930395e67e892293e.resp b/sdks/typescript/sample/test-data/recordings/62fe0f67bb2dc1d57b9629e608659f4a847abbce3501f7c930395e67e892293e.resp deleted file mode 100644 index 857e051..0000000 --- a/sdks/typescript/sample/test-data/recordings/62fe0f67bb2dc1d57b9629e608659f4a847abbce3501f7c930395e67e892293e.resp +++ /dev/null @@ -1,16 +0,0 @@ -Status code: 200 -Date: Wed, 11 Jun 2025 21:20:28 GMT -Accept-Ranges: bytes -Set-Cookie: _gh_sess=RUXx6I8rXzwAWTFBzCcNLMpA%2BIfAw19leo8%2F6hxTBGEr2XfLP%2BZPLguz%2BpQPQZL%2FWUfw2tJpqLFdQ0ihM1LGU9TJZ2Eel46thCU8OnCKlZMJ2RGVKcQr%2FBQuwO32xXFMbywgBNRfsyNpat0U%2FEQqQRx2Gx9kwLxwliM6o%2BWPU3XHZvnfJRSMjbkdLIT2UDrTPOg9yYE3xUEd9M3q%2BbG5vPsTWY5IJleB%2Brfx9DhiYzrjlDWEjc%2FVuTpn6bWHmELj119LAt3P83gw%2Fc1pT9NNhw%3D%3D--WP%2FOWsLLuU0K7OWX--s%2B8qDjT7cpMciWgIREzfYw%3D%3D; Path=/; HttpOnly; Secure; SameSite=Lax -Set-Cookie: _octo=GH1.1.499478081.1749676828; Path=/; Domain=github.com; Expires=Thu, 11 Jun 2026 21:20:28 GMT; Secure; SameSite=Lax -Set-Cookie: logged_in=no; Path=/; Domain=github.com; Expires=Thu, 11 Jun 2026 21:20:28 GMT; HttpOnly; Secure; SameSite=Lax -Content-Length: 58 -Cache-Control: no-cache -X-Frame-Options: DENY -Strict-Transport-Security: max-age=31536000; includeSubDomains; preload -Content-Type: text/html -X-Github-Request-Id: 751F:290523:51C25B9:54C9428:6849F31C - -

200 OK

-Service ready. - diff --git a/sdks/typescript/sample/test-data/recordings/7309b7911ec033c96de548d4c977143fd2a638ccceab8be57bab6d068afcc9c7.json b/sdks/typescript/sample/test-data/recordings/7309b7911ec033c96de548d4c977143fd2a638ccceab8be57bab6d068afcc9c7.json new file mode 100644 index 0000000..adda762 --- /dev/null +++ b/sdks/typescript/sample/test-data/recordings/7309b7911ec033c96de548d4c977143fd2a638ccceab8be57bab6d068afcc9c7.json @@ -0,0 +1,44 @@ +{ + "recordID": "7309b7911ec033c96de548d4c977143fd2a638ccceab8be57bab6d068afcc9c7", + "interactions": [ + { + "request": { + "method": "GET", + "url": "/", + "request": "GET / HTTP/1.1", + "headers": { + "Connection": "keep-alive" + }, + "bodySegments": [ + null + ], + "previousRequest": "b4d6e60a9b97e7b98c63df9308728c5c88c0b40c398046772c63447b94608b4d", + "serverAddress": "github.com", + "port": 443, + "protocol": "https" + }, + "shaSum": "7309b7911ec033c96de548d4c977143fd2a638ccceab8be57bab6d068afcc9c7", + "response": { + "statusCode": 200, + "headers": { + "Accept-Ranges": "bytes", + "Cache-Control": "max-age=0, private, must-revalidate", + "Content-Language": "en-US", + "Content-Security-Policy": "default-src 'none'; base-uri 'self'; child-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/; connect-src 'self' uploads.github.com www.githubstatus.com collector.github.com raw.githubusercontent.com api.github.com github-cloud.s3.amazonaws.com github-production-repository-file-5c1aeb.s3.amazonaws.com github-production-upload-manifest-file-7fdce7.s3.amazonaws.com github-production-user-asset-6210df.s3.amazonaws.com *.rel.tunnels.api.visualstudio.com wss://*.rel.tunnels.api.visualstudio.com objects-origin.githubusercontent.com copilot-proxy.githubusercontent.com proxy.individual.githubcopilot.com proxy.business.githubcopilot.com proxy.enterprise.githubcopilot.com *.actions.githubusercontent.com wss://*.actions.githubusercontent.com productionresultssa0.blob.core.windows.net/ productionresultssa1.blob.core.windows.net/ productionresultssa2.blob.core.windows.net/ productionresultssa3.blob.core.windows.net/ productionresultssa4.blob.core.windows.net/ productionresultssa5.blob.core.windows.net/ productionresultssa6.blob.core.windows.net/ productionresultssa7.blob.core.windows.net/ productionresultssa8.blob.core.windows.net/ productionresultssa9.blob.core.windows.net/ productionresultssa10.blob.core.windows.net/ productionresultssa11.blob.core.windows.net/ productionresultssa12.blob.core.windows.net/ productionresultssa13.blob.core.windows.net/ productionresultssa14.blob.core.windows.net/ productionresultssa15.blob.core.windows.net/ productionresultssa16.blob.core.windows.net/ productionresultssa17.blob.core.windows.net/ productionresultssa18.blob.core.windows.net/ productionresultssa19.blob.core.windows.net/ github-production-repository-image-32fea6.s3.amazonaws.com github-production-release-asset-2e65be.s3.amazonaws.com insights.github.com wss://alive.github.com wss://alive-staging.github.com api.githubcopilot.com api.individual.githubcopilot.com api.business.githubcopilot.com api.enterprise.githubcopilot.com github.githubassets.com; font-src github.githubassets.com; form-action 'self' github.com gist.github.com copilot-workspace.githubnext.com objects-origin.githubusercontent.com; frame-ancestors 'none'; frame-src viewscreen.githubusercontent.com notebooks.githubusercontent.com www.youtube-nocookie.com; img-src 'self' data: blob: github.githubassets.com media.githubusercontent.com camo.githubusercontent.com identicons.github.com avatars.githubusercontent.com private-avatars.githubusercontent.com github-cloud.s3.amazonaws.com objects.githubusercontent.com release-assets.githubusercontent.com secured-user-images.githubusercontent.com/ user-images.githubusercontent.com/ private-user-images.githubusercontent.com opengraph.githubassets.com copilotprodattachments.blob.core.windows.net/github-production-copilot-attachments/ github-production-user-asset-6210df.s3.amazonaws.com customer-stories-feed.github.com spotlights-feed.github.com objects-origin.githubusercontent.com *.githubusercontent.com images.ctfassets.net/8aevphvgewt8/; manifest-src 'self'; media-src github.com user-images.githubusercontent.com/ secured-user-images.githubusercontent.com/ private-user-images.githubusercontent.com github-production-user-asset-6210df.s3.amazonaws.com gist.github.com github.githubassets.com assets.ctfassets.net/8aevphvgewt8/ videos.ctfassets.net/8aevphvgewt8/; script-src github.githubassets.com; style-src 'unsafe-inline' github.githubassets.com; upgrade-insecure-requests; worker-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/", + "Content-Type": "text/html; charset=utf-8", + "Date": "Wed, 20 Aug 2025 03:36:21 GMT", + "Etag": "W/\"4bccdbb05801d656e9582b4426d448bf\"", + "Referrer-Policy": "origin-when-cross-origin, strict-origin-when-cross-origin", + "Server": "github.com", + "Set-Cookie": "_gh_sess=Niqv5DitZ5HTij5VmKc9m0nWnwVozjMf1DkrhRGhi2%2B1I7FRFt5QfyyQna4nmHwP3cEXhmnuVrHGfim51Y6u%2Bb5KvonVRYMRWKplAITb8nWt40tzVU5anPkwuG6xREU6k3iBZR6mphRYpGWmTxAUaKNmtVvZo6LwFcY1RP%2B9xwa3wAPJdDgiXrDe7ZCJjMNa35fgRWoNtMwCOTh5r3RGj4iuFxYRHTy%2F75ysuumE6n9hblHHs1aeBFsg%2BnUESooZWpTwcq3%2BZDo1Yz1UEMdPNg%3D%3D--yvr%2BpVaoSu5xwA93--bYuPozZcPe9MBdjo3GKcfA%3D%3D; Path=/; HttpOnly; Secure; SameSite=Lax, _octo=GH1.1.1775259318.1755660988; Path=/; Domain=github.com; Expires=Thu, 20 Aug 2026 03:36:28 GMT; Secure; SameSite=Lax, logged_in=no; Path=/; Domain=github.com; Expires=Thu, 20 Aug 2026 03:36:28 GMT; HttpOnly; Secure; SameSite=Lax", + "Strict-Transport-Security": "max-age=31536000; includeSubdomains; preload", + "Vary": "X-PJAX, X-PJAX-Container, Turbo-Visit, Turbo-Frame, X-Requested-With, Accept-Language,Accept-Encoding, Accept, X-Requested-With", + "X-Content-Type-Options": "nosniff", + "X-Frame-Options": "deny", + "X-Github-Request-Id": "7475:260BF8:D4A6AF:D97FAD:68A542BC", + "X-Xss-Protection": "0" + } + } + } + ] +} \ No newline at end of file diff --git a/sdks/typescript/sample/test-data/recordings/e3e781293e37b42d98f86c15d676ddfd148c8217903b4b84b5b4fdef71e0a8b4.req b/sdks/typescript/sample/test-data/recordings/e3e781293e37b42d98f86c15d676ddfd148c8217903b4b84b5b4fdef71e0a8b4.req deleted file mode 100644 index aa70eab..0000000 --- a/sdks/typescript/sample/test-data/recordings/e3e781293e37b42d98f86c15d676ddfd148c8217903b4b84b5b4fdef71e0a8b4.req +++ /dev/null @@ -1,9 +0,0 @@ -b4d6e60a9b97e7b98c63df9308728c5c88c0b40c398046772c63447b94608b4d -Server Address: github.com -Port: 443 -Protocol: https -******************************************************************************** -GET / HTTP/1.1 -Connection: keep-alive - - diff --git a/sdks/typescript/sample/test-data/recordings/e3e781293e37b42d98f86c15d676ddfd148c8217903b4b84b5b4fdef71e0a8b4.resp b/sdks/typescript/sample/test-data/recordings/e3e781293e37b42d98f86c15d676ddfd148c8217903b4b84b5b4fdef71e0a8b4.resp deleted file mode 100644 index 094ec65..0000000 --- a/sdks/typescript/sample/test-data/recordings/e3e781293e37b42d98f86c15d676ddfd148c8217903b4b84b5b4fdef71e0a8b4.resp +++ /dev/null @@ -1,1908 +0,0 @@ -Status code: 200 -Content-Type: text/html; charset=utf-8 -Etag: W/"5009389a23caa1c5a3257cd764ab3a25" -Server: github.com -Date: Wed, 11 Jun 2025 21:20:19 GMT -Vary: X-PJAX, X-PJAX-Container, Turbo-Visit, Turbo-Frame, X-Requested-With, Accept-Language,Accept-Encoding, Accept, X-Requested-With -X-Frame-Options: deny -X-Github-Request-Id: 751F:290523:51C2855:54C96E8:6849F31C -Content-Language: en-US -Referrer-Policy: origin-when-cross-origin, strict-origin-when-cross-origin -Accept-Ranges: bytes -Set-Cookie: _gh_sess=9AJjfcBcvvDhTMZn3VhEgHubK%2FWewlGrXt84TqdOEMz26hoRsNaORPdke%2FoFyrepO%2F87iJwfNOsNpjWKrj0HLXdbPf1EGrliSvPrtnk7wearXHlo3SiS0hqWKPHjZ6BWimxJ%2FS9Yy4jZFRLBIjelJXd8qNO6BKamScCM4sI3hj%2F5i6VRhi0QZkHLRTHmbqtCB2DliLQQmn752lxn%2BQA%2BAl6XbXM0yvwy09YaGstHIv2U8%2Bc2Xi0CLEatWI3ShKk3H9bmWCmq2M7TMNeoR%2BuYog%3D%3D--wN4D23YbzoiIqYbo--5tbMmX%2FzOHfPsExlVqR5mg%3D%3D; Path=/; HttpOnly; Secure; SameSite=Lax -Set-Cookie: _octo=GH1.1.1871580905.1749676829; Path=/; Domain=github.com; Expires=Thu, 11 Jun 2026 21:20:29 GMT; Secure; SameSite=Lax -Set-Cookie: logged_in=no; Path=/; Domain=github.com; Expires=Thu, 11 Jun 2026 21:20:29 GMT; HttpOnly; Secure; SameSite=Lax -Content-Security-Policy: default-src 'none'; base-uri 'self'; child-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/; connect-src 'self' uploads.github.com www.githubstatus.com collector.github.com raw.githubusercontent.com api.github.com github-cloud.s3.amazonaws.com github-production-repository-file-5c1aeb.s3.amazonaws.com github-production-upload-manifest-file-7fdce7.s3.amazonaws.com github-production-user-asset-6210df.s3.amazonaws.com *.rel.tunnels.api.visualstudio.com wss://*.rel.tunnels.api.visualstudio.com objects-origin.githubusercontent.com copilot-proxy.githubusercontent.com proxy.individual.githubcopilot.com proxy.business.githubcopilot.com proxy.enterprise.githubcopilot.com *.actions.githubusercontent.com wss://*.actions.githubusercontent.com productionresultssa0.blob.core.windows.net/ productionresultssa1.blob.core.windows.net/ productionresultssa2.blob.core.windows.net/ productionresultssa3.blob.core.windows.net/ productionresultssa4.blob.core.windows.net/ productionresultssa5.blob.core.windows.net/ productionresultssa6.blob.core.windows.net/ productionresultssa7.blob.core.windows.net/ productionresultssa8.blob.core.windows.net/ productionresultssa9.blob.core.windows.net/ productionresultssa10.blob.core.windows.net/ productionresultssa11.blob.core.windows.net/ productionresultssa12.blob.core.windows.net/ productionresultssa13.blob.core.windows.net/ productionresultssa14.blob.core.windows.net/ productionresultssa15.blob.core.windows.net/ productionresultssa16.blob.core.windows.net/ productionresultssa17.blob.core.windows.net/ productionresultssa18.blob.core.windows.net/ productionresultssa19.blob.core.windows.net/ github-production-repository-image-32fea6.s3.amazonaws.com github-production-release-asset-2e65be.s3.amazonaws.com insights.github.com wss://alive.github.com api.githubcopilot.com api.individual.githubcopilot.com api.business.githubcopilot.com api.enterprise.githubcopilot.com github.githubassets.com; font-src github.githubassets.com; form-action 'self' github.com gist.github.com copilot-workspace.githubnext.com objects-origin.githubusercontent.com; frame-ancestors 'none'; frame-src viewscreen.githubusercontent.com notebooks.githubusercontent.com www.youtube-nocookie.com; img-src 'self' data: blob: github.githubassets.com media.githubusercontent.com camo.githubusercontent.com identicons.github.com avatars.githubusercontent.com private-avatars.githubusercontent.com github-cloud.s3.amazonaws.com objects.githubusercontent.com release-assets.githubusercontent.com secured-user-images.githubusercontent.com/ user-images.githubusercontent.com/ private-user-images.githubusercontent.com opengraph.githubassets.com copilotprodattachments.blob.core.windows.net/github-production-copilot-attachments/ github-production-user-asset-6210df.s3.amazonaws.com customer-stories-feed.github.com spotlights-feed.github.com objects-origin.githubusercontent.com *.githubusercontent.com images.ctfassets.net/8aevphvgewt8/; manifest-src 'self'; media-src github.com user-images.githubusercontent.com/ secured-user-images.githubusercontent.com/ private-user-images.githubusercontent.com github-production-user-asset-6210df.s3.amazonaws.com gist.github.com github.githubassets.com assets.ctfassets.net/8aevphvgewt8/ videos.ctfassets.net/8aevphvgewt8/; script-src github.githubassets.com; style-src 'unsafe-inline' github.githubassets.com; upgrade-insecure-requests; worker-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/ -Cache-Control: max-age=0, private, must-revalidate -Strict-Transport-Security: max-age=31536000; includeSubdomains; preload -X-Content-Type-Options: nosniff -X-Xss-Protection: 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GitHub · Build and ship software on a single, collaborative platform · GitHub - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - -
- Skip to content - - - - - - - - - - - - - -
-
- - - - - - - - - - - - - - - - - - - - - -
- -
- - - - - - - - -
- - - - - -
- - - - - - - - - -
-
- - - - - - - - - - - - -

Build and ship software on a single, collaborative platform

Join the world’s most widely adopted AI-powered developer platform.

Try GitHub Copilot

GitHub features

A demonstration animation of a code editor using GitHub Copilot Chat, where the user requests GitHub Copilot to refactor duplicated logic and extract it into a reusable function for a given code snippet.

Build code quickly and more securely with GitHub Copilot embedded throughout your workflows.

GitHub is used by

ShopifyEYFigmaDuolingoNew York TimesMercado LibreAmerican AirlinesFordMercedes BenzSociété GénéraleVodafonePhilipsSAPInfosysSpotify

Accelerate performance

With GitHub Copilot embedded throughout the platform, you can simplify your toolchain, automate tasks, and improve the developer experience.

A Copilot chat window with extensions enabled. The user inputs the @ symbol to reveal a list of five Copilot Extensions. @Sentry is selected from the list, which shifts the window to a chat directly with that extension. There are three sample prompts at the bottom of the chat window, allowing the user to Get incident information, Edit status on incident, or List the latest issues. The last one is activated to send the prompt: @Sentry List the latest issues. The extension then lists several new issues and their metadata.

Work 55% faster.Jump to footnote 1 Increase productivity with AI-powered coding assistance, including code completion, chat, and more.

Duolingo boosts developer speed by 25% with GitHub Copilot

Read customer story

2024 Gartner® Magic Quadrant™ for AI Code Assistants

Read report

Optimize your process with simple and secured CI/CD.

A list of workflows displays a heading ‘45,167 workflow runs’ at the top. Below are five rows of completed workflows accompanied by their completion time and their duration formatted in minutes and seconds.Discover GitHub Actions

Built-in application security
where found means fixed

Use AI to find and fix vulnerabilities—freeing your teams to ship more secure software faster.

Apply fixes in seconds. Spend less time fixing vulnerabilities and more time building features with Copilot Autofix.

Copilot Autofix identifies vulnerable code and provides an explanation, together with a secure code suggestion to remediate the vulnerability.

Solve security debt. Leverage AI-assisted security campaigns to reduce application vulnerabilities and zero-day attacks.

Discover security campaigns
A security campaign screen displays the campaign’s progress bar with 97% completed of 701 alerts. A total of 23 alerts are left with 13 in progress, and the campaign started 20 days ago. The status below shows that there are 7 days left in the campaign with a due date of November 15, 2024.

Dependencies you can depend on. Update vulnerable dependencies with supported fixes for breaking changes.

Learn about Dependabot
List of dependencies defined in a requirements .txt file.

Your secrets, your business: protected. Detect, prevent, and remediate leaked secrets across your organization.

Read about secret scanning
GitHub push protection confirms and displays an active secret, and blocks the push.

7x faster vulnerability fixes with GitHubJump to footnote 2

Work together, achieve more

Collaborate with your teams, use management tools that sync with your projects, and code from anywhere—all on a single, integrated platform.

A project management dashboard showing tasks for the ‘OctoArcade Invaders’ project, with tasks grouped under project phase categories like ‘Prototype,’ ‘Beta,’ and ‘Launch’ in a table layout. One of the columns displays sub-issue progress bars with percentages for each issue.

Your workflows, your way. Plan effectively with an adaptable spreadsheet that syncs with your work.

It helps us onboard new software engineers and get them productive right away. We have all our source code, issues, and pull requests in one place... GitHub is a complete platform that frees us from menial tasks and enables us to do our best work.
Fabian FaulhaberApplication manager at Mercedes-Benz

Create issues and manage projects with tools that adapt to your code.

Display of task tracking within an issue, showing the status of related sub-issues and their connection to the main issue.Explore GitHub Issues

Millions of developers and businesses call GitHub home

Whether you’re scaling your development process or just learning how to code, GitHub is where you belong. Join the world’s most widely adopted AI-powered developer platform to build the technologies that redefine what’s possible.

Footnotes

  1. Survey: The AI wave continues to grow on software development teams, 2024.

  2. This 7X times factor is based on data from the industry’s longest running analysis of fix rates Veracode State of Software Security 2023, which cites the average time to fix 50% of flaws as 198 days vs. GitHub’s fix rates of 72% of flaws with in 28 days which is at a minimum of 7X faster when compared.

-
- - -
- -
- - - - - - - - - - - - - - - - - - - - - -
- -
-
- - - From 9c837d5ae22c3a2ab915ef542e6f8fa425e98019 Mon Sep 17 00:00:00 2001 From: Wanlin Du Date: Fri, 22 Aug 2025 20:36:05 +0000 Subject: [PATCH 2/2] Update the sample with the typescript sdk 0.2.8 --- sdks/typescript/sample/README.md | 7 +++++-- ...96de548d4c977143fd2a638ccceab8be57bab6d068afcc9c7.json | 8 ++++---- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/sdks/typescript/sample/README.md b/sdks/typescript/sample/README.md index 5f333f0..4d6cd5b 100644 --- a/sdks/typescript/sample/README.md +++ b/sdks/typescript/sample/README.md @@ -8,16 +8,19 @@ npm install npm run build ``` -Then get into sdks/typescript/samples, install the newly built test-server typescript sdk: +Then `cd sdks/typescript/samples`, install the newly built test-server typescript sdk: + ```sh # install the test-server typescript sdk cd samples -rm -Rf node_modules/ # To clean up the old build +rm -Rf node_modules # To clean up the old dependencies npm install ``` Now from sdks/typescript/samples, you can run ```sh +rm -Rf dist # To clean up the old build + npm run test #or npm run test:record diff --git a/sdks/typescript/sample/test-data/recordings/7309b7911ec033c96de548d4c977143fd2a638ccceab8be57bab6d068afcc9c7.json b/sdks/typescript/sample/test-data/recordings/7309b7911ec033c96de548d4c977143fd2a638ccceab8be57bab6d068afcc9c7.json index adda762..247c8fe 100644 --- a/sdks/typescript/sample/test-data/recordings/7309b7911ec033c96de548d4c977143fd2a638ccceab8be57bab6d068afcc9c7.json +++ b/sdks/typescript/sample/test-data/recordings/7309b7911ec033c96de548d4c977143fd2a638ccceab8be57bab6d068afcc9c7.json @@ -26,16 +26,16 @@ "Content-Language": "en-US", "Content-Security-Policy": "default-src 'none'; base-uri 'self'; child-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/; connect-src 'self' uploads.github.com www.githubstatus.com collector.github.com raw.githubusercontent.com api.github.com github-cloud.s3.amazonaws.com github-production-repository-file-5c1aeb.s3.amazonaws.com github-production-upload-manifest-file-7fdce7.s3.amazonaws.com github-production-user-asset-6210df.s3.amazonaws.com *.rel.tunnels.api.visualstudio.com wss://*.rel.tunnels.api.visualstudio.com objects-origin.githubusercontent.com copilot-proxy.githubusercontent.com proxy.individual.githubcopilot.com proxy.business.githubcopilot.com proxy.enterprise.githubcopilot.com *.actions.githubusercontent.com wss://*.actions.githubusercontent.com productionresultssa0.blob.core.windows.net/ productionresultssa1.blob.core.windows.net/ productionresultssa2.blob.core.windows.net/ productionresultssa3.blob.core.windows.net/ productionresultssa4.blob.core.windows.net/ productionresultssa5.blob.core.windows.net/ productionresultssa6.blob.core.windows.net/ productionresultssa7.blob.core.windows.net/ productionresultssa8.blob.core.windows.net/ productionresultssa9.blob.core.windows.net/ productionresultssa10.blob.core.windows.net/ productionresultssa11.blob.core.windows.net/ productionresultssa12.blob.core.windows.net/ productionresultssa13.blob.core.windows.net/ productionresultssa14.blob.core.windows.net/ productionresultssa15.blob.core.windows.net/ productionresultssa16.blob.core.windows.net/ productionresultssa17.blob.core.windows.net/ productionresultssa18.blob.core.windows.net/ productionresultssa19.blob.core.windows.net/ github-production-repository-image-32fea6.s3.amazonaws.com github-production-release-asset-2e65be.s3.amazonaws.com insights.github.com wss://alive.github.com wss://alive-staging.github.com api.githubcopilot.com api.individual.githubcopilot.com api.business.githubcopilot.com api.enterprise.githubcopilot.com github.githubassets.com; font-src github.githubassets.com; form-action 'self' github.com gist.github.com copilot-workspace.githubnext.com objects-origin.githubusercontent.com; frame-ancestors 'none'; frame-src viewscreen.githubusercontent.com notebooks.githubusercontent.com www.youtube-nocookie.com; img-src 'self' data: blob: github.githubassets.com media.githubusercontent.com camo.githubusercontent.com identicons.github.com avatars.githubusercontent.com private-avatars.githubusercontent.com github-cloud.s3.amazonaws.com objects.githubusercontent.com release-assets.githubusercontent.com secured-user-images.githubusercontent.com/ user-images.githubusercontent.com/ private-user-images.githubusercontent.com opengraph.githubassets.com copilotprodattachments.blob.core.windows.net/github-production-copilot-attachments/ github-production-user-asset-6210df.s3.amazonaws.com customer-stories-feed.github.com spotlights-feed.github.com objects-origin.githubusercontent.com *.githubusercontent.com images.ctfassets.net/8aevphvgewt8/; manifest-src 'self'; media-src github.com user-images.githubusercontent.com/ secured-user-images.githubusercontent.com/ private-user-images.githubusercontent.com github-production-user-asset-6210df.s3.amazonaws.com gist.github.com github.githubassets.com assets.ctfassets.net/8aevphvgewt8/ videos.ctfassets.net/8aevphvgewt8/; script-src github.githubassets.com; style-src 'unsafe-inline' github.githubassets.com; upgrade-insecure-requests; worker-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/", "Content-Type": "text/html; charset=utf-8", - "Date": "Wed, 20 Aug 2025 03:36:21 GMT", - "Etag": "W/\"4bccdbb05801d656e9582b4426d448bf\"", + "Date": "Fri, 22 Aug 2025 20:32:45 GMT", + "Etag": "W/\"47ffde77ab8737f4500882e3d54c7641\"", "Referrer-Policy": "origin-when-cross-origin, strict-origin-when-cross-origin", "Server": "github.com", - "Set-Cookie": "_gh_sess=Niqv5DitZ5HTij5VmKc9m0nWnwVozjMf1DkrhRGhi2%2B1I7FRFt5QfyyQna4nmHwP3cEXhmnuVrHGfim51Y6u%2Bb5KvonVRYMRWKplAITb8nWt40tzVU5anPkwuG6xREU6k3iBZR6mphRYpGWmTxAUaKNmtVvZo6LwFcY1RP%2B9xwa3wAPJdDgiXrDe7ZCJjMNa35fgRWoNtMwCOTh5r3RGj4iuFxYRHTy%2F75ysuumE6n9hblHHs1aeBFsg%2BnUESooZWpTwcq3%2BZDo1Yz1UEMdPNg%3D%3D--yvr%2BpVaoSu5xwA93--bYuPozZcPe9MBdjo3GKcfA%3D%3D; Path=/; HttpOnly; Secure; SameSite=Lax, _octo=GH1.1.1775259318.1755660988; Path=/; Domain=github.com; Expires=Thu, 20 Aug 2026 03:36:28 GMT; Secure; SameSite=Lax, logged_in=no; Path=/; Domain=github.com; Expires=Thu, 20 Aug 2026 03:36:28 GMT; HttpOnly; Secure; SameSite=Lax", + "Set-Cookie": "_gh_sess=SPS%2BbfmdbWFxOAa0ZhMMlj3p%2FbufNQJ9E63dKCinaLO%2Be9hsDTuZA5ppN%2BMm3IV4vI8rORyNmx54a%2Fzxw7jIJ3M7xBSH5Xi7cpcqjbCc3UQm7snyA1H0HEHX2vIBYZRYv3CqfTs5JVbzbotUOV4jBjHkUCuXlGxbr8sBpkipJskpBsNPjlDOKKbXrx%2FHTjXgWDU9LKz0aNtKPE6V6kLhCC1Z%2Bdq5NVuh6Kupb5p87koPffDOJSYHuhC3IwQV%2F9MB1J3BgaGxvfsmACs%2B39IGmA%3D%3D--uRBaSp2rwZXACE57--8aPXx9iS8wW2eX8wtV3vnA%3D%3D; Path=/; HttpOnly; Secure; SameSite=Lax, _octo=GH1.1.890224390.1755894770; Path=/; Domain=github.com; Expires=Sat, 22 Aug 2026 20:32:50 GMT; Secure; SameSite=Lax, logged_in=no; Path=/; Domain=github.com; Expires=Sat, 22 Aug 2026 20:32:50 GMT; HttpOnly; Secure; SameSite=Lax", "Strict-Transport-Security": "max-age=31536000; includeSubdomains; preload", "Vary": "X-PJAX, X-PJAX-Container, Turbo-Visit, Turbo-Frame, X-Requested-With, Accept-Language,Accept-Encoding, Accept, X-Requested-With", "X-Content-Type-Options": "nosniff", "X-Frame-Options": "deny", - "X-Github-Request-Id": "7475:260BF8:D4A6AF:D97FAD:68A542BC", + "X-Github-Request-Id": "C822:FC0EA:286BCB:29129B:68A8D3F2", "X-Xss-Protection": "0" } }