From c1592ab37ba7aa9a1c3da022b42ba98b5aa189d0 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 2 Dec 2025 05:15:56 +0000 Subject: [PATCH 01/13] chore(client): fix logger property type --- src/client.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/client.ts b/src/client.ts index 608b318..037ba14 100644 --- a/src/client.ts +++ b/src/client.ts @@ -139,7 +139,7 @@ export class PostGrid { baseURL: string; maxRetries: number; timeout: number; - logger: Logger | undefined; + logger: Logger; logLevel: LogLevel | undefined; fetchOptions: MergedRequestInit | undefined; From d4721a3f0feeffa66fdcc698998d8714d208f6d4 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 3 Dec 2025 05:07:46 +0000 Subject: [PATCH 02/13] chore(internal): upgrade eslint --- package.json | 2 +- pnpm-lock.yaml | 330 ++++++++++++++++++++++++++++--------------------- 2 files changed, 188 insertions(+), 144 deletions(-) diff --git a/package.json b/package.json index 2be63a4..47e93b3 100644 --- a/package.json +++ b/package.json @@ -35,7 +35,7 @@ "@types/node": "^20.17.6", "@typescript-eslint/eslint-plugin": "8.31.1", "@typescript-eslint/parser": "8.31.1", - "eslint": "^9.20.1", + "eslint": "^9.39.1", "eslint-plugin-prettier": "^5.4.1", "eslint-plugin-unused-imports": "^4.1.4", "iconv-lite": "^0.6.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ea9b082..5bdb855 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -25,19 +25,19 @@ importers: version: 20.19.11 '@typescript-eslint/eslint-plugin': specifier: 8.31.1 - version: 8.31.1(@typescript-eslint/parser@8.31.1(eslint@9.20.1)(typescript@5.8.3))(eslint@9.20.1)(typescript@5.8.3) + version: 8.31.1(@typescript-eslint/parser@8.31.1(eslint@9.39.1)(typescript@5.8.3))(eslint@9.39.1)(typescript@5.8.3) '@typescript-eslint/parser': specifier: 8.31.1 - version: 8.31.1(eslint@9.20.1)(typescript@5.8.3) + version: 8.31.1(eslint@9.39.1)(typescript@5.8.3) eslint: - specifier: ^9.20.1 - version: 9.20.1 + specifier: ^9.39.1 + version: 9.39.1 eslint-plugin-prettier: specifier: ^5.4.1 - version: 5.4.1(eslint@9.20.1)(prettier@3.1.1) + version: 5.4.1(eslint@9.39.1)(prettier@3.1.1) eslint-plugin-unused-imports: specifier: ^4.1.4 - version: 4.1.4(@typescript-eslint/eslint-plugin@8.31.1(@typescript-eslint/parser@8.31.1(eslint@9.20.1)(typescript@5.8.3))(eslint@9.20.1)(typescript@5.8.3))(eslint@9.20.1) + version: 4.1.4(@typescript-eslint/eslint-plugin@8.31.1(@typescript-eslint/parser@8.31.1(eslint@9.39.1)(typescript@5.8.3))(eslint@9.39.1)(typescript@5.8.3))(eslint@9.39.1) iconv-lite: specifier: ^0.6.3 version: 0.6.3 @@ -70,14 +70,10 @@ importers: version: 5.8.3 typescript-eslint: specifier: 8.31.1 - version: 8.31.1(eslint@9.20.1)(typescript@5.8.3) + version: 8.31.1(eslint@9.39.1)(typescript@5.8.3) packages: - '@aashutoshrathi/word-wrap@1.2.6': - resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==} - engines: {node: '>=0.10.0'} - '@ampproject/remapping@2.2.1': resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==} engines: {node: '>=6.0.0'} @@ -279,56 +275,62 @@ packages: peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + '@eslint-community/eslint-utils@4.9.0': + resolution: {integrity: sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + '@eslint-community/regexpp@4.12.1': resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - '@eslint/config-array@0.19.2': - resolution: {integrity: sha512-GNKqxfHG2ySmJOBSHg7LxeUx4xpuCoFjacmlCoYWEbaPXLwvfIjixRI12xCQZeULksQb23uiA8F40w5TojpV7w==} + '@eslint-community/regexpp@4.12.2': + resolution: {integrity: sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + + '@eslint/config-array@0.21.1': + resolution: {integrity: sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/core@0.10.0': - resolution: {integrity: sha512-gFHJ+xBOo4G3WRlR1e/3G8A6/KZAH6zcE/hkLRCZTi/B9avAG365QhFA8uOGzTMqgTghpn7/fSnscW++dpMSAw==} + '@eslint/config-helpers@0.4.2': + resolution: {integrity: sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/core@0.11.0': - resolution: {integrity: sha512-DWUB2pksgNEb6Bz2fggIy1wh6fGgZP4Xyy/Mt0QZPiloKKXerbqq9D3SBQTlCRYOrcRPu4vuz+CGjwdfqxnoWA==} + '@eslint/core@0.17.0': + resolution: {integrity: sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/eslintrc@3.2.0': - resolution: {integrity: sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==} + '@eslint/eslintrc@3.3.3': + resolution: {integrity: sha512-Kr+LPIUVKz2qkx1HAMH8q1q6azbqBAsXJUxBl/ODDuVPX45Z9DfwB8tPjTi6nNZ8BuM3nbJxC5zCAg5elnBUTQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@9.20.0': - resolution: {integrity: sha512-iZA07H9io9Wn836aVTytRaNqh00Sad+EamwOVJT12GTLw1VGMFV/4JaME+JjLtr9fiGaoWgYnS54wrfWsSs4oQ==} + '@eslint/js@9.39.1': + resolution: {integrity: sha512-S26Stp4zCy88tH94QbBv3XCuzRQiZ9yXofEILmglYTh/Ug/a9/umqvgFtYBAo3Lp0nsI/5/qH1CCrbdK3AP1Tw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/object-schema@2.1.6': - resolution: {integrity: sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==} + '@eslint/object-schema@2.1.7': + resolution: {integrity: sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/plugin-kit@0.2.5': - resolution: {integrity: sha512-lB05FkqEdUg2AA0xEbUz0SnkXT1LcCTa438W4IWTUh4hdOnVbQyOJ81OrDXsJk/LSiJHubgGEFoR5EHq1NsH1A==} + '@eslint/plugin-kit@0.4.1': + resolution: {integrity: sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@humanfs/core@0.19.1': resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} engines: {node: '>=18.18.0'} - '@humanfs/node@0.16.6': - resolution: {integrity: sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==} + '@humanfs/node@0.16.7': + resolution: {integrity: sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==} engines: {node: '>=18.18.0'} '@humanwhocodes/module-importer@1.0.1': resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} engines: {node: '>=12.22'} - '@humanwhocodes/retry@0.3.1': - resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==} - engines: {node: '>=18.18'} - - '@humanwhocodes/retry@0.4.1': - resolution: {integrity: sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==} + '@humanwhocodes/retry@0.4.3': + resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} engines: {node: '>=18.18'} '@istanbuljs/load-nyc-config@1.1.0': @@ -561,8 +563,8 @@ packages: '@types/babel__traverse@7.20.4': resolution: {integrity: sha512-mSM/iKUk5fDDrEV/e83qY+Cr3I1+Q3qqTuEn++HAWYjEa1+NxZr6CNrcJGf2ZTnq4HoFGC3zaTPZTobCzCFukA==} - '@types/estree@1.0.6': - resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} + '@types/estree@1.0.8': + resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} '@types/graceful-fs@4.1.9': resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} @@ -655,6 +657,11 @@ packages: engines: {node: '>=0.4.0'} hasBin: true + acorn@8.15.0: + resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==} + engines: {node: '>=0.4.0'} + hasBin: true + aggregate-error@3.1.0: resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} engines: {node: '>=8'} @@ -734,12 +741,15 @@ packages: balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - brace-expansion@1.1.11: - resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + brace-expansion@1.1.12: + resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==} brace-expansion@2.0.1: resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + brace-expansion@2.0.2: + resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==} + braces@3.0.3: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} @@ -868,6 +878,15 @@ packages: supports-color: optional: true + debug@4.4.3: + resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dedent@1.5.1: resolution: {integrity: sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==} peerDependencies: @@ -954,8 +973,8 @@ packages: '@typescript-eslint/eslint-plugin': optional: true - eslint-scope@8.2.0: - resolution: {integrity: sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==} + eslint-scope@8.4.0: + resolution: {integrity: sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} eslint-visitor-keys@3.4.3: @@ -966,8 +985,12 @@ packages: resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint@9.20.1: - resolution: {integrity: sha512-m1mM33o6dBUjxl2qb6wv6nGNwCAsns1eKtaQ4l/NPHeTvhiUPbtdfMyktxN4B3fgHIgsYh1VT3V9txblpQHq+g==} + eslint-visitor-keys@4.2.1: + resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + eslint@9.39.1: + resolution: {integrity: sha512-BhHmn2yNOFA9H9JmmIVKJmd288g9hrVRDkdoIgRCRuSySRUHH7r/DI6aAXW9T1WwUuY3DFgrcaqB+deURBLR5g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true peerDependencies: @@ -976,8 +999,8 @@ packages: jiti: optional: true - espree@10.3.0: - resolution: {integrity: sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==} + espree@10.4.0: + resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} esprima@4.0.1: @@ -1058,8 +1081,8 @@ packages: resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} engines: {node: '>=16'} - flatted@3.3.2: - resolution: {integrity: sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==} + flatted@3.3.3: + resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} fs.realpath@1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} @@ -1157,8 +1180,8 @@ packages: resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} engines: {node: '>= 4'} - import-fresh@3.3.0: - resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + import-fresh@3.3.1: + resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} engines: {node: '>=6'} import-local@3.1.0: @@ -1370,12 +1393,12 @@ packages: js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - js-yaml@3.14.1: - resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} + js-yaml@3.14.2: + resolution: {integrity: sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==} hasBin: true - js-yaml@4.1.0: - resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + js-yaml@4.1.1: + resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==} hasBin: true jsesc@2.5.2: @@ -1546,8 +1569,8 @@ packages: resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} engines: {node: '>=6'} - optionator@0.9.3: - resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} + optionator@0.9.4: + resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} engines: {node: '>= 0.8.0'} p-all@3.0.0: @@ -1651,8 +1674,8 @@ packages: engines: {node: '>=16'} hasBin: true - punycode@2.3.0: - resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} + punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} pure-rand@6.0.4: @@ -1961,6 +1984,10 @@ packages: engines: {node: '>= 8'} hasBin: true + word-wrap@1.2.5: + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} + engines: {node: '>=0.10.0'} + wrap-ansi@7.0.0: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} engines: {node: '>=10'} @@ -2005,8 +2032,6 @@ packages: snapshots: - '@aashutoshrathi/word-wrap@1.2.6': {} - '@ampproject/remapping@2.2.1': dependencies: '@jridgewell/gen-mapping': 0.3.3 @@ -2054,7 +2079,7 @@ snapshots: '@babel/traverse': 7.23.6 '@babel/types': 7.23.6 convert-source-map: 2.0.0 - debug: 4.4.1 + debug: 4.4.3 gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 @@ -2220,7 +2245,7 @@ snapshots: '@babel/helper-split-export-declaration': 7.22.6 '@babel/parser': 7.23.6 '@babel/types': 7.23.6 - debug: 4.4.1 + debug: 4.4.3 globals: 11.12.0 transitivePeerDependencies: - supports-color @@ -2242,71 +2267,76 @@ snapshots: dependencies: '@cspotcode/source-map-consumer': 0.8.0 - '@eslint-community/eslint-utils@4.4.0(eslint@9.20.1)': + '@eslint-community/eslint-utils@4.4.0(eslint@9.39.1)': + dependencies: + eslint: 9.39.1 + eslint-visitor-keys: 3.4.3 + + '@eslint-community/eslint-utils@4.9.0(eslint@9.39.1)': dependencies: - eslint: 9.20.1 + eslint: 9.39.1 eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.1': {} - '@eslint/config-array@0.19.2': + '@eslint-community/regexpp@4.12.2': {} + + '@eslint/config-array@0.21.1': dependencies: - '@eslint/object-schema': 2.1.6 - debug: 4.4.1 + '@eslint/object-schema': 2.1.7 + debug: 4.4.3 minimatch: 3.1.2 transitivePeerDependencies: - supports-color - '@eslint/core@0.10.0': + '@eslint/config-helpers@0.4.2': dependencies: - '@types/json-schema': 7.0.15 + '@eslint/core': 0.17.0 - '@eslint/core@0.11.0': + '@eslint/core@0.17.0': dependencies: '@types/json-schema': 7.0.15 - '@eslint/eslintrc@3.2.0': + '@eslint/eslintrc@3.3.3': dependencies: ajv: 6.12.6 - debug: 4.4.1 - espree: 10.3.0 + debug: 4.4.3 + espree: 10.4.0 globals: 14.0.0 ignore: 5.3.2 - import-fresh: 3.3.0 - js-yaml: 4.1.0 + import-fresh: 3.3.1 + js-yaml: 4.1.1 minimatch: 3.1.2 strip-json-comments: 3.1.1 transitivePeerDependencies: - supports-color - '@eslint/js@9.20.0': {} + '@eslint/js@9.39.1': {} - '@eslint/object-schema@2.1.6': {} + '@eslint/object-schema@2.1.7': {} - '@eslint/plugin-kit@0.2.5': + '@eslint/plugin-kit@0.4.1': dependencies: - '@eslint/core': 0.10.0 + '@eslint/core': 0.17.0 levn: 0.4.1 '@humanfs/core@0.19.1': {} - '@humanfs/node@0.16.6': + '@humanfs/node@0.16.7': dependencies: '@humanfs/core': 0.19.1 - '@humanwhocodes/retry': 0.3.1 + '@humanwhocodes/retry': 0.4.3 '@humanwhocodes/module-importer@1.0.1': {} - '@humanwhocodes/retry@0.3.1': {} - - '@humanwhocodes/retry@0.4.1': {} + '@humanwhocodes/retry@0.4.3': {} '@istanbuljs/load-nyc-config@1.1.0': dependencies: camelcase: 5.3.1 find-up: 4.1.0 get-package-type: 0.1.0 - js-yaml: 3.14.1 + js-yaml: 3.14.2 resolve-from: 5.0.0 '@istanbuljs/schema@0.1.3': {} @@ -2608,7 +2638,7 @@ snapshots: dependencies: '@babel/types': 7.23.6 - '@types/estree@1.0.6': {} + '@types/estree@1.0.8': {} '@types/graceful-fs@4.1.9': dependencies: @@ -2643,15 +2673,15 @@ snapshots: dependencies: '@types/yargs-parser': 21.0.3 - '@typescript-eslint/eslint-plugin@8.31.1(@typescript-eslint/parser@8.31.1(eslint@9.20.1)(typescript@5.8.3))(eslint@9.20.1)(typescript@5.8.3)': + '@typescript-eslint/eslint-plugin@8.31.1(@typescript-eslint/parser@8.31.1(eslint@9.39.1)(typescript@5.8.3))(eslint@9.39.1)(typescript@5.8.3)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.31.1(eslint@9.20.1)(typescript@5.8.3) + '@typescript-eslint/parser': 8.31.1(eslint@9.39.1)(typescript@5.8.3) '@typescript-eslint/scope-manager': 8.31.1 - '@typescript-eslint/type-utils': 8.31.1(eslint@9.20.1)(typescript@5.8.3) - '@typescript-eslint/utils': 8.31.1(eslint@9.20.1)(typescript@5.8.3) + '@typescript-eslint/type-utils': 8.31.1(eslint@9.39.1)(typescript@5.8.3) + '@typescript-eslint/utils': 8.31.1(eslint@9.39.1)(typescript@5.8.3) '@typescript-eslint/visitor-keys': 8.31.1 - eslint: 9.20.1 + eslint: 9.39.1 graphemer: 1.4.0 ignore: 5.3.2 natural-compare: 1.4.0 @@ -2660,14 +2690,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.31.1(eslint@9.20.1)(typescript@5.8.3)': + '@typescript-eslint/parser@8.31.1(eslint@9.39.1)(typescript@5.8.3)': dependencies: '@typescript-eslint/scope-manager': 8.31.1 '@typescript-eslint/types': 8.31.1 '@typescript-eslint/typescript-estree': 8.31.1(typescript@5.8.3) '@typescript-eslint/visitor-keys': 8.31.1 debug: 4.4.1 - eslint: 9.20.1 + eslint: 9.39.1 typescript: 5.8.3 transitivePeerDependencies: - supports-color @@ -2677,12 +2707,12 @@ snapshots: '@typescript-eslint/types': 8.31.1 '@typescript-eslint/visitor-keys': 8.31.1 - '@typescript-eslint/type-utils@8.31.1(eslint@9.20.1)(typescript@5.8.3)': + '@typescript-eslint/type-utils@8.31.1(eslint@9.39.1)(typescript@5.8.3)': dependencies: '@typescript-eslint/typescript-estree': 8.31.1(typescript@5.8.3) - '@typescript-eslint/utils': 8.31.1(eslint@9.20.1)(typescript@5.8.3) + '@typescript-eslint/utils': 8.31.1(eslint@9.39.1)(typescript@5.8.3) debug: 4.4.1 - eslint: 9.20.1 + eslint: 9.39.1 ts-api-utils: 2.0.1(typescript@5.8.3) typescript: 5.8.3 transitivePeerDependencies: @@ -2704,13 +2734,13 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.31.1(eslint@9.20.1)(typescript@5.8.3)': + '@typescript-eslint/utils@8.31.1(eslint@9.39.1)(typescript@5.8.3)': dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.20.1) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.39.1) '@typescript-eslint/scope-manager': 8.31.1 '@typescript-eslint/types': 8.31.1 '@typescript-eslint/typescript-estree': 8.31.1(typescript@5.8.3) - eslint: 9.20.1 + eslint: 9.39.1 typescript: 5.8.3 transitivePeerDependencies: - supports-color @@ -2720,14 +2750,16 @@ snapshots: '@typescript-eslint/types': 8.31.1 eslint-visitor-keys: 4.2.0 - acorn-jsx@5.3.2(acorn@8.14.0): + acorn-jsx@5.3.2(acorn@8.15.0): dependencies: - acorn: 8.14.0 + acorn: 8.15.0 acorn-walk@8.2.0: {} acorn@8.14.0: {} + acorn@8.15.0: {} + aggregate-error@3.1.0: dependencies: clean-stack: 2.2.0 @@ -2831,7 +2863,7 @@ snapshots: balanced-match@1.0.2: {} - brace-expansion@1.1.11: + brace-expansion@1.1.12: dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 @@ -2840,6 +2872,10 @@ snapshots: dependencies: balanced-match: 1.0.2 + brace-expansion@2.0.2: + dependencies: + balanced-match: 1.0.2 + braces@3.0.3: dependencies: fill-range: 7.1.1 @@ -2966,6 +3002,10 @@ snapshots: dependencies: ms: 2.1.3 + debug@4.4.3: + dependencies: + ms: 2.1.3 + dedent@1.5.1: {} deep-is@0.1.4: {} @@ -3000,20 +3040,20 @@ snapshots: escape-string-regexp@4.0.0: {} - eslint-plugin-prettier@5.4.1(eslint@9.20.1)(prettier@3.1.1): + eslint-plugin-prettier@5.4.1(eslint@9.39.1)(prettier@3.1.1): dependencies: - eslint: 9.20.1 + eslint: 9.39.1 prettier: 3.1.1 prettier-linter-helpers: 1.0.0 synckit: 0.11.8 - eslint-plugin-unused-imports@4.1.4(@typescript-eslint/eslint-plugin@8.31.1(@typescript-eslint/parser@8.31.1(eslint@9.20.1)(typescript@5.8.3))(eslint@9.20.1)(typescript@5.8.3))(eslint@9.20.1): + eslint-plugin-unused-imports@4.1.4(@typescript-eslint/eslint-plugin@8.31.1(@typescript-eslint/parser@8.31.1(eslint@9.39.1)(typescript@5.8.3))(eslint@9.39.1)(typescript@5.8.3))(eslint@9.39.1): dependencies: - eslint: 9.20.1 + eslint: 9.39.1 optionalDependencies: - '@typescript-eslint/eslint-plugin': 8.31.1(@typescript-eslint/parser@8.31.1(eslint@9.20.1)(typescript@5.8.3))(eslint@9.20.1)(typescript@5.8.3) + '@typescript-eslint/eslint-plugin': 8.31.1(@typescript-eslint/parser@8.31.1(eslint@9.39.1)(typescript@5.8.3))(eslint@9.39.1)(typescript@5.8.3) - eslint-scope@8.2.0: + eslint-scope@8.4.0: dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 @@ -3022,28 +3062,30 @@ snapshots: eslint-visitor-keys@4.2.0: {} - eslint@9.20.1: + eslint-visitor-keys@4.2.1: {} + + eslint@9.39.1: dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.20.1) - '@eslint-community/regexpp': 4.12.1 - '@eslint/config-array': 0.19.2 - '@eslint/core': 0.11.0 - '@eslint/eslintrc': 3.2.0 - '@eslint/js': 9.20.0 - '@eslint/plugin-kit': 0.2.5 - '@humanfs/node': 0.16.6 + '@eslint-community/eslint-utils': 4.9.0(eslint@9.39.1) + '@eslint-community/regexpp': 4.12.2 + '@eslint/config-array': 0.21.1 + '@eslint/config-helpers': 0.4.2 + '@eslint/core': 0.17.0 + '@eslint/eslintrc': 3.3.3 + '@eslint/js': 9.39.1 + '@eslint/plugin-kit': 0.4.1 + '@humanfs/node': 0.16.7 '@humanwhocodes/module-importer': 1.0.1 - '@humanwhocodes/retry': 0.4.1 - '@types/estree': 1.0.6 - '@types/json-schema': 7.0.15 + '@humanwhocodes/retry': 0.4.3 + '@types/estree': 1.0.8 ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.6 - debug: 4.4.1 + debug: 4.4.3 escape-string-regexp: 4.0.0 - eslint-scope: 8.2.0 - eslint-visitor-keys: 4.2.0 - espree: 10.3.0 + eslint-scope: 8.4.0 + eslint-visitor-keys: 4.2.1 + espree: 10.4.0 esquery: 1.6.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 @@ -3057,15 +3099,15 @@ snapshots: lodash.merge: 4.6.2 minimatch: 3.1.2 natural-compare: 1.4.0 - optionator: 0.9.3 + optionator: 0.9.4 transitivePeerDependencies: - supports-color - espree@10.3.0: + espree@10.4.0: dependencies: - acorn: 8.14.0 - acorn-jsx: 5.3.2(acorn@8.14.0) - eslint-visitor-keys: 4.2.0 + acorn: 8.15.0 + acorn-jsx: 5.3.2(acorn@8.15.0) + eslint-visitor-keys: 4.2.1 esprima@4.0.1: {} @@ -3149,10 +3191,10 @@ snapshots: flat-cache@4.0.1: dependencies: - flatted: 3.3.2 + flatted: 3.3.3 keyv: 4.5.4 - flatted@3.3.2: {} + flatted@3.3.3: {} fs.realpath@1.0.0: {} @@ -3228,7 +3270,7 @@ snapshots: ignore@5.3.2: {} - import-fresh@3.3.0: + import-fresh@3.3.1: dependencies: parent-module: 1.0.1 resolve-from: 4.0.0 @@ -3301,7 +3343,7 @@ snapshots: istanbul-lib-source-maps@4.0.1: dependencies: - debug: 4.4.1 + debug: 4.4.3 istanbul-lib-coverage: 3.2.2 source-map: 0.6.1 transitivePeerDependencies: @@ -3623,12 +3665,12 @@ snapshots: js-tokens@4.0.0: {} - js-yaml@3.14.1: + js-yaml@3.14.2: dependencies: argparse: 1.0.10 esprima: 4.0.1 - js-yaml@4.1.0: + js-yaml@4.1.1: dependencies: argparse: 2.0.1 @@ -3715,11 +3757,11 @@ snapshots: minimatch@3.1.2: dependencies: - brace-expansion: 1.1.11 + brace-expansion: 1.1.12 minimatch@5.1.6: dependencies: - brace-expansion: 2.0.1 + brace-expansion: 2.0.2 minimatch@9.0.5: dependencies: @@ -3779,14 +3821,14 @@ snapshots: dependencies: mimic-fn: 2.1.0 - optionator@0.9.3: + optionator@0.9.4: dependencies: - '@aashutoshrathi/word-wrap': 1.2.6 deep-is: 0.1.4 fast-levenshtein: 2.0.6 levn: 0.4.1 prelude-ls: 1.2.1 type-check: 0.4.0 + word-wrap: 1.2.5 p-all@3.0.0: dependencies: @@ -3876,7 +3918,7 @@ snapshots: picocolors: 1.1.1 sade: 1.8.1 - punycode@2.3.0: {} + punycode@2.3.1: {} pure-rand@6.0.4: {} @@ -4106,12 +4148,12 @@ snapshots: type-fest@0.21.3: {} - typescript-eslint@8.31.1(eslint@9.20.1)(typescript@5.8.3): + typescript-eslint@8.31.1(eslint@9.39.1)(typescript@5.8.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.31.1(@typescript-eslint/parser@8.31.1(eslint@9.20.1)(typescript@5.8.3))(eslint@9.20.1)(typescript@5.8.3) - '@typescript-eslint/parser': 8.31.1(eslint@9.20.1)(typescript@5.8.3) - '@typescript-eslint/utils': 8.31.1(eslint@9.20.1)(typescript@5.8.3) - eslint: 9.20.1 + '@typescript-eslint/eslint-plugin': 8.31.1(@typescript-eslint/parser@8.31.1(eslint@9.39.1)(typescript@5.8.3))(eslint@9.39.1)(typescript@5.8.3) + '@typescript-eslint/parser': 8.31.1(eslint@9.39.1)(typescript@5.8.3) + '@typescript-eslint/utils': 8.31.1(eslint@9.39.1)(typescript@5.8.3) + eslint: 9.39.1 typescript: 5.8.3 transitivePeerDependencies: - supports-color @@ -4132,7 +4174,7 @@ snapshots: uri-js@4.4.1: dependencies: - punycode: 2.3.0 + punycode: 2.3.1 util-deprecate@1.0.2: {} @@ -4154,6 +4196,8 @@ snapshots: dependencies: isexe: 2.0.0 + word-wrap@1.2.5: {} + wrap-ansi@7.0.0: dependencies: ansi-styles: 4.3.0 From 28aacd557705eba61ee5ced975c1828d6f08f801 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sat, 6 Dec 2025 04:18:02 +0000 Subject: [PATCH 03/13] chore(internal): configure pnpm minimumReleaseAge to 1 day --- .github/workflows/ci.yml | 6 +++--- package.json | 2 +- pnpm-lock.yaml | 4 ++++ pnpm-workspace.yaml | 3 +++ 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 96609c4..dc5b768 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -29,7 +29,7 @@ jobs: - name: Set up pnpm uses: pnpm/action-setup@v4 with: - version: '10.14.0' + version: '10.24.0' - name: Bootstrap run: ./scripts/bootstrap @@ -56,7 +56,7 @@ jobs: - name: Set up pnpm uses: pnpm/action-setup@v4 with: - version: '10.14.0' + version: '10.24.0' - name: Bootstrap run: ./scripts/bootstrap @@ -94,7 +94,7 @@ jobs: - name: Set up pnpm uses: pnpm/action-setup@v4 with: - version: '10.14.0' + version: '10.24.0' - name: Bootstrap run: ./scripts/bootstrap diff --git a/package.json b/package.json index 47e93b3..2c38462 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,7 @@ "type": "commonjs", "repository": "github:postgrid/postgrid-node", "license": "Apache-2.0", - "packageManager": "pnpm@10.14.0", + "packageManager": "pnpm@10.24.0", "files": [ "**/*" ], diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5bdb855..47f5856 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -481,24 +481,28 @@ packages: engines: {node: '>=10'} cpu: [arm64] os: [linux] + libc: [glibc] '@swc/core-linux-arm64-musl@1.4.16': resolution: {integrity: sha512-/YZq/qB1CHpeoL0eMzyqK5/tYZn/rzKoCYDviFU4uduSUIJsDJQuQA/skdqUzqbheOXKAd4mnJ1hT04RbJ8FPQ==} engines: {node: '>=10'} cpu: [arm64] os: [linux] + libc: [musl] '@swc/core-linux-x64-gnu@1.4.16': resolution: {integrity: sha512-UUjaW5VTngZYDcA8yQlrFmqs1tLi1TxbKlnaJwoNhel9zRQ0yG1YEVGrzTvv4YApSuIiDK18t+Ip927bwucuVQ==} engines: {node: '>=10'} cpu: [x64] os: [linux] + libc: [glibc] '@swc/core-linux-x64-musl@1.4.16': resolution: {integrity: sha512-aFhxPifevDTwEDKPi4eRYWzC0p/WYJeiFkkpNU5Uc7a7M5iMWPAbPFUbHesdlb9Jfqs5c07oyz86u+/HySBNPQ==} engines: {node: '>=10'} cpu: [x64] os: [linux] + libc: [musl] '@swc/core-win32-arm64-msvc@1.4.16': resolution: {integrity: sha512-bTD43MbhIHL2s5QgCwyleaGwl96Gk/scF2TaVKdUe4QlJCDV/YK9h5oIBAp63ckHtE8GHlH4c8dZNBiAXn4Org==} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 4216cb8..46c2143 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,2 +1,5 @@ onlyBuiltDependencies: - '@swc/core' +minimumReleaseAge: 1440 +minimumReleaseAgeExclude: + - postgrid-node From 81982d6d50b27ef9a5580f7d0e178fc096e8ff4d Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sat, 6 Dec 2025 04:22:55 +0000 Subject: [PATCH 04/13] fix(mcp): return correct lines on typescript errors --- .devcontainer/Dockerfile | 23 +++++++++++++++++++++++ .eslintrc.js | 10 ++++++++++ jest.setup.ts | 0 src/internal/polyfill/file.node.d.ts | 14 ++++++++++++++ src/internal/polyfill/file.node.mjs | 9 +++++++++ tests/responses.test.ts | 24 ++++++++++++++++++++++++ 6 files changed, 80 insertions(+) create mode 100644 .devcontainer/Dockerfile create mode 100644 .eslintrc.js create mode 100644 jest.setup.ts create mode 100644 src/internal/polyfill/file.node.d.ts create mode 100644 src/internal/polyfill/file.node.mjs create mode 100644 tests/responses.test.ts diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile new file mode 100644 index 0000000..8ea34be --- /dev/null +++ b/.devcontainer/Dockerfile @@ -0,0 +1,23 @@ +# syntax=docker/dockerfile:1 +FROM debian:bookworm-slim AS stainless + +RUN apt-get update && apt-get install -y \ + nodejs \ + npm \ + yarnpkg \ + && apt-get clean autoclean + +# Ensure UTF-8 encoding +ENV LANG=C.UTF-8 +ENV LC_ALL=C.UTF-8 + +# Yarn +RUN ln -sf /usr/bin/yarnpkg /usr/bin/yarn + +WORKDIR /workspace + +COPY package.json yarn.lock /workspace/ + +RUN yarn install + +COPY . /workspace diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 0000000..60f0e7a --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,10 @@ +module.exports = { + parser: '@typescript-eslint/parser', + plugins: ['@typescript-eslint', 'unused-imports', 'prettier'], + rules: { + 'no-unused-vars': 'off', + 'prettier/prettier': 'error', + 'unused-imports/no-unused-imports': 'error', + }, + root: true, +}; diff --git a/jest.setup.ts b/jest.setup.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/internal/polyfill/file.node.d.ts b/src/internal/polyfill/file.node.d.ts new file mode 100644 index 0000000..c95276d --- /dev/null +++ b/src/internal/polyfill/file.node.d.ts @@ -0,0 +1,14 @@ +/** + * This file polyfills the global `File` object for you if it's not already defined + * when running on Node.js + * + * This is only needed on Node.js v18 & v19. Newer versions already define `File` + * as a global. + */ + +// @ts-ignore +type nodeBuffer = typeof import('node:buffer'); +declare const File: typeof globalThis extends { File: unknown } ? (typeof globalThis)['File'] +: nodeBuffer extends { File: unknown } ? nodeBuffer['File'] +: any; +export {}; diff --git a/src/internal/polyfill/file.node.mjs b/src/internal/polyfill/file.node.mjs new file mode 100644 index 0000000..520dcb8 --- /dev/null +++ b/src/internal/polyfill/file.node.mjs @@ -0,0 +1,9 @@ +/** + * This file polyfills the global `File` object for you if it's not already defined + * when running on Node.js + * + * This is only needed on Node.js v18 & v19. Newer versions already define `File` + * as a global. + */ + +import './file.node.js'; diff --git a/tests/responses.test.ts b/tests/responses.test.ts new file mode 100644 index 0000000..477f0dc --- /dev/null +++ b/tests/responses.test.ts @@ -0,0 +1,24 @@ +import { createResponseHeaders } from 'postgrid-node/internal/headers'; + +describe('response parsing', () => { + // TODO: test unicode characters + test('headers are case agnostic', async () => { + const headers = createResponseHeaders(new Headers({ 'Content-Type': 'foo', Accept: 'text/plain' })); + expect(headers['content-type']).toEqual('foo'); + expect(headers['Content-type']).toEqual('foo'); + expect(headers['Content-Type']).toEqual('foo'); + expect(headers['accept']).toEqual('text/plain'); + expect(headers['Accept']).toEqual('text/plain'); + expect(headers['Hello-World']).toBeUndefined(); + }); + + test('duplicate headers are concatenated', () => { + const headers = createResponseHeaders( + new Headers([ + ['Content-Type', 'text/xml'], + ['Content-Type', 'application/json'], + ]), + ); + expect(headers['content-type']).toBe('text/xml, application/json'); + }); +}); From b90ade6630f6f254eebe74ee16ca365a96759f87 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sat, 6 Dec 2025 04:23:33 +0000 Subject: [PATCH 05/13] chore(internal): codegen related update --- .devcontainer/Dockerfile | 23 ----------------------- .eslintrc.js | 10 ---------- jest.setup.ts | 0 src/internal/polyfill/file.node.d.ts | 14 -------------- src/internal/polyfill/file.node.mjs | 9 --------- tests/responses.test.ts | 24 ------------------------ 6 files changed, 80 deletions(-) delete mode 100644 .devcontainer/Dockerfile delete mode 100644 .eslintrc.js delete mode 100644 jest.setup.ts delete mode 100644 src/internal/polyfill/file.node.d.ts delete mode 100644 src/internal/polyfill/file.node.mjs delete mode 100644 tests/responses.test.ts diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile deleted file mode 100644 index 8ea34be..0000000 --- a/.devcontainer/Dockerfile +++ /dev/null @@ -1,23 +0,0 @@ -# syntax=docker/dockerfile:1 -FROM debian:bookworm-slim AS stainless - -RUN apt-get update && apt-get install -y \ - nodejs \ - npm \ - yarnpkg \ - && apt-get clean autoclean - -# Ensure UTF-8 encoding -ENV LANG=C.UTF-8 -ENV LC_ALL=C.UTF-8 - -# Yarn -RUN ln -sf /usr/bin/yarnpkg /usr/bin/yarn - -WORKDIR /workspace - -COPY package.json yarn.lock /workspace/ - -RUN yarn install - -COPY . /workspace diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 60f0e7a..0000000 --- a/.eslintrc.js +++ /dev/null @@ -1,10 +0,0 @@ -module.exports = { - parser: '@typescript-eslint/parser', - plugins: ['@typescript-eslint', 'unused-imports', 'prettier'], - rules: { - 'no-unused-vars': 'off', - 'prettier/prettier': 'error', - 'unused-imports/no-unused-imports': 'error', - }, - root: true, -}; diff --git a/jest.setup.ts b/jest.setup.ts deleted file mode 100644 index e69de29..0000000 diff --git a/src/internal/polyfill/file.node.d.ts b/src/internal/polyfill/file.node.d.ts deleted file mode 100644 index c95276d..0000000 --- a/src/internal/polyfill/file.node.d.ts +++ /dev/null @@ -1,14 +0,0 @@ -/** - * This file polyfills the global `File` object for you if it's not already defined - * when running on Node.js - * - * This is only needed on Node.js v18 & v19. Newer versions already define `File` - * as a global. - */ - -// @ts-ignore -type nodeBuffer = typeof import('node:buffer'); -declare const File: typeof globalThis extends { File: unknown } ? (typeof globalThis)['File'] -: nodeBuffer extends { File: unknown } ? nodeBuffer['File'] -: any; -export {}; diff --git a/src/internal/polyfill/file.node.mjs b/src/internal/polyfill/file.node.mjs deleted file mode 100644 index 520dcb8..0000000 --- a/src/internal/polyfill/file.node.mjs +++ /dev/null @@ -1,9 +0,0 @@ -/** - * This file polyfills the global `File` object for you if it's not already defined - * when running on Node.js - * - * This is only needed on Node.js v18 & v19. Newer versions already define `File` - * as a global. - */ - -import './file.node.js'; diff --git a/tests/responses.test.ts b/tests/responses.test.ts deleted file mode 100644 index 477f0dc..0000000 --- a/tests/responses.test.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { createResponseHeaders } from 'postgrid-node/internal/headers'; - -describe('response parsing', () => { - // TODO: test unicode characters - test('headers are case agnostic', async () => { - const headers = createResponseHeaders(new Headers({ 'Content-Type': 'foo', Accept: 'text/plain' })); - expect(headers['content-type']).toEqual('foo'); - expect(headers['Content-type']).toEqual('foo'); - expect(headers['Content-Type']).toEqual('foo'); - expect(headers['accept']).toEqual('text/plain'); - expect(headers['Accept']).toEqual('text/plain'); - expect(headers['Hello-World']).toBeUndefined(); - }); - - test('duplicate headers are concatenated', () => { - const headers = createResponseHeaders( - new Headers([ - ['Content-Type', 'text/xml'], - ['Content-Type', 'application/json'], - ]), - ); - expect(headers['content-type']).toBe('text/xml, application/json'); - }); -}); From a69fda59f36bdab6b0189a492a8fb8053939f412 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sat, 6 Dec 2025 04:24:25 +0000 Subject: [PATCH 06/13] fix(mcp): correct code tool API endpoint --- .devcontainer/Dockerfile | 23 +++++++++++++++++++++++ .eslintrc.js | 10 ++++++++++ jest.setup.ts | 0 src/internal/polyfill/file.node.d.ts | 14 ++++++++++++++ src/internal/polyfill/file.node.mjs | 9 +++++++++ tests/responses.test.ts | 24 ++++++++++++++++++++++++ 6 files changed, 80 insertions(+) create mode 100644 .devcontainer/Dockerfile create mode 100644 .eslintrc.js create mode 100644 jest.setup.ts create mode 100644 src/internal/polyfill/file.node.d.ts create mode 100644 src/internal/polyfill/file.node.mjs create mode 100644 tests/responses.test.ts diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile new file mode 100644 index 0000000..8ea34be --- /dev/null +++ b/.devcontainer/Dockerfile @@ -0,0 +1,23 @@ +# syntax=docker/dockerfile:1 +FROM debian:bookworm-slim AS stainless + +RUN apt-get update && apt-get install -y \ + nodejs \ + npm \ + yarnpkg \ + && apt-get clean autoclean + +# Ensure UTF-8 encoding +ENV LANG=C.UTF-8 +ENV LC_ALL=C.UTF-8 + +# Yarn +RUN ln -sf /usr/bin/yarnpkg /usr/bin/yarn + +WORKDIR /workspace + +COPY package.json yarn.lock /workspace/ + +RUN yarn install + +COPY . /workspace diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 0000000..60f0e7a --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,10 @@ +module.exports = { + parser: '@typescript-eslint/parser', + plugins: ['@typescript-eslint', 'unused-imports', 'prettier'], + rules: { + 'no-unused-vars': 'off', + 'prettier/prettier': 'error', + 'unused-imports/no-unused-imports': 'error', + }, + root: true, +}; diff --git a/jest.setup.ts b/jest.setup.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/internal/polyfill/file.node.d.ts b/src/internal/polyfill/file.node.d.ts new file mode 100644 index 0000000..c95276d --- /dev/null +++ b/src/internal/polyfill/file.node.d.ts @@ -0,0 +1,14 @@ +/** + * This file polyfills the global `File` object for you if it's not already defined + * when running on Node.js + * + * This is only needed on Node.js v18 & v19. Newer versions already define `File` + * as a global. + */ + +// @ts-ignore +type nodeBuffer = typeof import('node:buffer'); +declare const File: typeof globalThis extends { File: unknown } ? (typeof globalThis)['File'] +: nodeBuffer extends { File: unknown } ? nodeBuffer['File'] +: any; +export {}; diff --git a/src/internal/polyfill/file.node.mjs b/src/internal/polyfill/file.node.mjs new file mode 100644 index 0000000..520dcb8 --- /dev/null +++ b/src/internal/polyfill/file.node.mjs @@ -0,0 +1,9 @@ +/** + * This file polyfills the global `File` object for you if it's not already defined + * when running on Node.js + * + * This is only needed on Node.js v18 & v19. Newer versions already define `File` + * as a global. + */ + +import './file.node.js'; diff --git a/tests/responses.test.ts b/tests/responses.test.ts new file mode 100644 index 0000000..477f0dc --- /dev/null +++ b/tests/responses.test.ts @@ -0,0 +1,24 @@ +import { createResponseHeaders } from 'postgrid-node/internal/headers'; + +describe('response parsing', () => { + // TODO: test unicode characters + test('headers are case agnostic', async () => { + const headers = createResponseHeaders(new Headers({ 'Content-Type': 'foo', Accept: 'text/plain' })); + expect(headers['content-type']).toEqual('foo'); + expect(headers['Content-type']).toEqual('foo'); + expect(headers['Content-Type']).toEqual('foo'); + expect(headers['accept']).toEqual('text/plain'); + expect(headers['Accept']).toEqual('text/plain'); + expect(headers['Hello-World']).toBeUndefined(); + }); + + test('duplicate headers are concatenated', () => { + const headers = createResponseHeaders( + new Headers([ + ['Content-Type', 'text/xml'], + ['Content-Type', 'application/json'], + ]), + ); + expect(headers['content-type']).toBe('text/xml, application/json'); + }); +}); From 5c3a9b79198ef3bc912462e1fb524819ffa8ef91 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sat, 6 Dec 2025 04:25:08 +0000 Subject: [PATCH 07/13] chore(internal): codegen related update --- .devcontainer/Dockerfile | 23 ----------------------- .eslintrc.js | 10 ---------- jest.setup.ts | 0 src/internal/polyfill/file.node.d.ts | 14 -------------- src/internal/polyfill/file.node.mjs | 9 --------- tests/responses.test.ts | 24 ------------------------ 6 files changed, 80 deletions(-) delete mode 100644 .devcontainer/Dockerfile delete mode 100644 .eslintrc.js delete mode 100644 jest.setup.ts delete mode 100644 src/internal/polyfill/file.node.d.ts delete mode 100644 src/internal/polyfill/file.node.mjs delete mode 100644 tests/responses.test.ts diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile deleted file mode 100644 index 8ea34be..0000000 --- a/.devcontainer/Dockerfile +++ /dev/null @@ -1,23 +0,0 @@ -# syntax=docker/dockerfile:1 -FROM debian:bookworm-slim AS stainless - -RUN apt-get update && apt-get install -y \ - nodejs \ - npm \ - yarnpkg \ - && apt-get clean autoclean - -# Ensure UTF-8 encoding -ENV LANG=C.UTF-8 -ENV LC_ALL=C.UTF-8 - -# Yarn -RUN ln -sf /usr/bin/yarnpkg /usr/bin/yarn - -WORKDIR /workspace - -COPY package.json yarn.lock /workspace/ - -RUN yarn install - -COPY . /workspace diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 60f0e7a..0000000 --- a/.eslintrc.js +++ /dev/null @@ -1,10 +0,0 @@ -module.exports = { - parser: '@typescript-eslint/parser', - plugins: ['@typescript-eslint', 'unused-imports', 'prettier'], - rules: { - 'no-unused-vars': 'off', - 'prettier/prettier': 'error', - 'unused-imports/no-unused-imports': 'error', - }, - root: true, -}; diff --git a/jest.setup.ts b/jest.setup.ts deleted file mode 100644 index e69de29..0000000 diff --git a/src/internal/polyfill/file.node.d.ts b/src/internal/polyfill/file.node.d.ts deleted file mode 100644 index c95276d..0000000 --- a/src/internal/polyfill/file.node.d.ts +++ /dev/null @@ -1,14 +0,0 @@ -/** - * This file polyfills the global `File` object for you if it's not already defined - * when running on Node.js - * - * This is only needed on Node.js v18 & v19. Newer versions already define `File` - * as a global. - */ - -// @ts-ignore -type nodeBuffer = typeof import('node:buffer'); -declare const File: typeof globalThis extends { File: unknown } ? (typeof globalThis)['File'] -: nodeBuffer extends { File: unknown } ? nodeBuffer['File'] -: any; -export {}; diff --git a/src/internal/polyfill/file.node.mjs b/src/internal/polyfill/file.node.mjs deleted file mode 100644 index 520dcb8..0000000 --- a/src/internal/polyfill/file.node.mjs +++ /dev/null @@ -1,9 +0,0 @@ -/** - * This file polyfills the global `File` object for you if it's not already defined - * when running on Node.js - * - * This is only needed on Node.js v18 & v19. Newer versions already define `File` - * as a global. - */ - -import './file.node.js'; diff --git a/tests/responses.test.ts b/tests/responses.test.ts deleted file mode 100644 index 477f0dc..0000000 --- a/tests/responses.test.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { createResponseHeaders } from 'postgrid-node/internal/headers'; - -describe('response parsing', () => { - // TODO: test unicode characters - test('headers are case agnostic', async () => { - const headers = createResponseHeaders(new Headers({ 'Content-Type': 'foo', Accept: 'text/plain' })); - expect(headers['content-type']).toEqual('foo'); - expect(headers['Content-type']).toEqual('foo'); - expect(headers['Content-Type']).toEqual('foo'); - expect(headers['accept']).toEqual('text/plain'); - expect(headers['Accept']).toEqual('text/plain'); - expect(headers['Hello-World']).toBeUndefined(); - }); - - test('duplicate headers are concatenated', () => { - const headers = createResponseHeaders( - new Headers([ - ['Content-Type', 'text/xml'], - ['Content-Type', 'application/json'], - ]), - ); - expect(headers['content-type']).toBe('text/xml, application/json'); - }); -}); From 71d6fdf04c36d6c86a07da4779c5a96ccada0f1d Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 12 Dec 2025 04:37:25 +0000 Subject: [PATCH 08/13] fix(docs): remove extraneous example object fields --- src/resources/intl-address-verification.ts | 28 +--------------------- 1 file changed, 1 insertion(+), 27 deletions(-) diff --git a/src/resources/intl-address-verification.ts b/src/resources/intl-address-verification.ts index db1e6c0..92381fd 100644 --- a/src/resources/intl-address-verification.ts +++ b/src/resources/intl-address-verification.ts @@ -18,33 +18,7 @@ export class IntlAddressVerification extends APIResource { * ```ts * const response = * await client.intlAddressVerification.verify({ - * address: { - * '0': '3', - * '1': '1', - * '2': ' ', - * '3': 'F', - * '4': 'l', - * '5': ' ', - * '6': 'S', - * '7': 'c', - * '8': 'a', - * '9': 'r', - * '10': 'b', - * '11': 'o', - * '12': 'r', - * '13': 'o', - * '14': 'u', - * '15': 'g', - * '16': 'h', - * '17': ',', - * '18': ' ', - * '19': 'C', - * '20': 'a', - * '21': 'n', - * '22': 'a', - * '23': 'd', - * '24': 'a', - * }, + * address: {}, * }); * ``` */ From 22d0aec76590e53ab5da540e3f73406342a950ac Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 Jan 2026 05:08:34 +0000 Subject: [PATCH 09/13] chore(internal): codegen related update --- LICENSE | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LICENSE b/LICENSE index ab63a50..1a60946 100644 --- a/LICENSE +++ b/LICENSE @@ -186,7 +186,7 @@ same "printed page" as the copyright notice for easier identification within third-party archives. - Copyright 2025 PostGrid + Copyright 2026 PostGrid Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. From f66b5c28b18bb506d4cbed6667215af5a6eaa799 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 7 Jan 2026 05:08:32 +0000 Subject: [PATCH 10/13] chore: break long lines in snippets into multiline --- README.md | 23 ++++++++++-------- .../print-mail/bank-accounts.test.ts | 6 ++++- .../print-mail/campaigns.test.ts | 6 ++++- .../api-resources/print-mail/cheques.test.ts | 6 ++++- .../api-resources/print-mail/contacts.test.ts | 6 ++++- .../api-resources/print-mail/letters.test.ts | 24 +++++++++++++++---- .../print-mail/mailing-list-imports.test.ts | 6 ++++- .../print-mail/mailing-lists.test.ts | 6 ++++- .../print-mail/order-profiles/cheques.test.ts | 6 ++++- .../print-mail/order-profiles/letters.test.ts | 6 ++++- .../order-profiles/postcards.test.ts | 6 ++++- .../order-profiles/self-mailers.test.ts | 6 ++++- .../print-mail/postcards.test.ts | 12 ++++++++-- .../print-mail/reports/reports.test.ts | 6 ++++- .../print-mail/self-mailers.test.ts | 18 +++++++++++--- .../print-mail/sub-organizations.test.ts | 12 ++++++++-- .../print-mail/templates.test.ts | 6 ++++- 17 files changed, 128 insertions(+), 33 deletions(-) diff --git a/README.md b/README.md index 9e82267..fa4aa77 100644 --- a/README.md +++ b/README.md @@ -46,7 +46,8 @@ const client = new PostGrid({ }); const params: PostGrid.AddressVerificationVerifyParams = { address: 'address' }; -const response: PostGrid.AddressVerificationVerifyResponse = await client.addressVerification.verify(params); +const response: PostGrid.AddressVerificationVerifyResponse = + await client.addressVerification.verify(params); ``` Documentation for each method, request param, and response field are available in docstrings and will appear on hover in most modern editors. @@ -59,15 +60,17 @@ a subclass of `APIError` will be thrown: ```ts -const response = await client.addressVerification.verify({ address: 'address' }).catch(async (err) => { - if (err instanceof PostGrid.APIError) { - console.log(err.status); // 400 - console.log(err.name); // BadRequestError - console.log(err.headers); // {server: 'nginx', ...} - } else { - throw err; - } -}); +const response = await client.addressVerification + .verify({ address: 'address' }) + .catch(async (err) => { + if (err instanceof PostGrid.APIError) { + console.log(err.status); // 400 + console.log(err.name); // BadRequestError + console.log(err.headers); // {server: 'nginx', ...} + } else { + throw err; + } + }); ``` Error codes are as follows: diff --git a/tests/api-resources/print-mail/bank-accounts.test.ts b/tests/api-resources/print-mail/bank-accounts.test.ts index 9306f71..e8113fc 100644 --- a/tests/api-resources/print-mail/bank-accounts.test.ts +++ b/tests/api-resources/print-mail/bank-accounts.test.ts @@ -73,7 +73,11 @@ describe('resource bankAccounts', () => { // ensure the request options are being passed correctly by passing an invalid HTTP method in order to cause an error await expect( client.printMail.bankAccounts.list( - { limit: 0, search: 'search', skip: 0 }, + { + limit: 0, + search: 'search', + skip: 0, + }, { path: '/_stainless_unknown_path' }, ), ).rejects.toThrow(PostGrid.NotFoundError); diff --git a/tests/api-resources/print-mail/campaigns.test.ts b/tests/api-resources/print-mail/campaigns.test.ts index 7f191cc..c8997c7 100644 --- a/tests/api-resources/print-mail/campaigns.test.ts +++ b/tests/api-resources/print-mail/campaigns.test.ts @@ -78,7 +78,11 @@ describe('resource campaigns', () => { // ensure the request options are being passed correctly by passing an invalid HTTP method in order to cause an error await expect( client.printMail.campaigns.list( - { limit: 0, search: 'search', skip: 0 }, + { + limit: 0, + search: 'search', + skip: 0, + }, { path: '/_stainless_unknown_path' }, ), ).rejects.toThrow(PostGrid.NotFoundError); diff --git a/tests/api-resources/print-mail/cheques.test.ts b/tests/api-resources/print-mail/cheques.test.ts index e5549a8..425a126 100644 --- a/tests/api-resources/print-mail/cheques.test.ts +++ b/tests/api-resources/print-mail/cheques.test.ts @@ -96,7 +96,11 @@ describe('resource cheques', () => { // ensure the request options are being passed correctly by passing an invalid HTTP method in order to cause an error await expect( client.printMail.cheques.list( - { limit: 0, search: 'search', skip: 0 }, + { + limit: 0, + search: 'search', + skip: 0, + }, { path: '/_stainless_unknown_path' }, ), ).rejects.toThrow(PostGrid.NotFoundError); diff --git a/tests/api-resources/print-mail/contacts.test.ts b/tests/api-resources/print-mail/contacts.test.ts index 3a723c3..c74f1aa 100644 --- a/tests/api-resources/print-mail/contacts.test.ts +++ b/tests/api-resources/print-mail/contacts.test.ts @@ -76,7 +76,11 @@ describe('resource contacts', () => { // ensure the request options are being passed correctly by passing an invalid HTTP method in order to cause an error await expect( client.printMail.contacts.list( - { limit: 0, search: 'search', skip: 0 }, + { + limit: 0, + search: 'search', + skip: 0, + }, { path: '/_stainless_unknown_path' }, ), ).rejects.toThrow(PostGrid.NotFoundError); diff --git a/tests/api-resources/print-mail/letters.test.ts b/tests/api-resources/print-mail/letters.test.ts index ed24736..ab7d3c5 100644 --- a/tests/api-resources/print-mail/letters.test.ts +++ b/tests/api-resources/print-mail/letters.test.ts @@ -12,9 +12,17 @@ describe('resource letters', () => { // Prism tests are disabled test.skip('create: only required params', async () => { const responsePromise = client.printMail.letters.create({ - from: { addressLine1: 'addressLine1', countryCode: 'countryCode', firstName: 'firstName' }, + from: { + addressLine1: 'addressLine1', + countryCode: 'countryCode', + firstName: 'firstName', + }, html: 'html', - to: { addressLine1: 'addressLine1', countryCode: 'countryCode', firstName: 'firstName' }, + to: { + addressLine1: 'addressLine1', + countryCode: 'countryCode', + firstName: 'firstName', + }, }); const rawResponse = await responsePromise.asResponse(); expect(rawResponse).toBeInstanceOf(Response); @@ -84,7 +92,11 @@ describe('resource letters', () => { frontTemplate: 'frontTemplate', pdf: 'https://example.com', }, - singleSided: { html: 'html', pdf: 'https://example.com', template: 'template' }, + singleSided: { + html: 'html', + pdf: 'https://example.com', + template: 'template', + }, }, returnEnvelope: 'returnEnvelope', sendDate: '2019-12-27T18:11:19.117Z', @@ -121,7 +133,11 @@ describe('resource letters', () => { // ensure the request options are being passed correctly by passing an invalid HTTP method in order to cause an error await expect( client.printMail.letters.list( - { limit: 0, search: 'search', skip: 0 }, + { + limit: 0, + search: 'search', + skip: 0, + }, { path: '/_stainless_unknown_path' }, ), ).rejects.toThrow(PostGrid.NotFoundError); diff --git a/tests/api-resources/print-mail/mailing-list-imports.test.ts b/tests/api-resources/print-mail/mailing-list-imports.test.ts index 4e21c2d..149edfd 100644 --- a/tests/api-resources/print-mail/mailing-list-imports.test.ts +++ b/tests/api-resources/print-mail/mailing-list-imports.test.ts @@ -101,7 +101,11 @@ describe('resource mailingListImports', () => { // ensure the request options are being passed correctly by passing an invalid HTTP method in order to cause an error await expect( client.printMail.mailingListImports.list( - { limit: 0, search: 'search', skip: 0 }, + { + limit: 0, + search: 'search', + skip: 0, + }, { path: '/_stainless_unknown_path' }, ), ).rejects.toThrow(PostGrid.NotFoundError); diff --git a/tests/api-resources/print-mail/mailing-lists.test.ts b/tests/api-resources/print-mail/mailing-lists.test.ts index 4d65daa..6a74b76 100644 --- a/tests/api-resources/print-mail/mailing-lists.test.ts +++ b/tests/api-resources/print-mail/mailing-lists.test.ts @@ -62,7 +62,11 @@ describe('resource mailingLists', () => { // ensure the request options are being passed correctly by passing an invalid HTTP method in order to cause an error await expect( client.printMail.mailingLists.list( - { limit: 0, search: 'search', skip: 0 }, + { + limit: 0, + search: 'search', + skip: 0, + }, { path: '/_stainless_unknown_path' }, ), ).rejects.toThrow(PostGrid.NotFoundError); diff --git a/tests/api-resources/print-mail/order-profiles/cheques.test.ts b/tests/api-resources/print-mail/order-profiles/cheques.test.ts index d805399..cbdd126 100644 --- a/tests/api-resources/print-mail/order-profiles/cheques.test.ts +++ b/tests/api-resources/print-mail/order-profiles/cheques.test.ts @@ -118,7 +118,11 @@ describe('resource cheques', () => { // ensure the request options are being passed correctly by passing an invalid HTTP method in order to cause an error await expect( client.printMail.orderProfiles.cheques.list( - { limit: 0, search: 'search', skip: 0 }, + { + limit: 0, + search: 'search', + skip: 0, + }, { path: '/_stainless_unknown_path' }, ), ).rejects.toThrow(PostGrid.NotFoundError); diff --git a/tests/api-resources/print-mail/order-profiles/letters.test.ts b/tests/api-resources/print-mail/order-profiles/letters.test.ts index f42a74a..c121d3a 100644 --- a/tests/api-resources/print-mail/order-profiles/letters.test.ts +++ b/tests/api-resources/print-mail/order-profiles/letters.test.ts @@ -95,7 +95,11 @@ describe('resource letters', () => { // ensure the request options are being passed correctly by passing an invalid HTTP method in order to cause an error await expect( client.printMail.orderProfiles.letters.list( - { limit: 0, search: 'search', skip: 0 }, + { + limit: 0, + search: 'search', + skip: 0, + }, { path: '/_stainless_unknown_path' }, ), ).rejects.toThrow(PostGrid.NotFoundError); diff --git a/tests/api-resources/print-mail/order-profiles/postcards.test.ts b/tests/api-resources/print-mail/order-profiles/postcards.test.ts index 139922b..306399e 100644 --- a/tests/api-resources/print-mail/order-profiles/postcards.test.ts +++ b/tests/api-resources/print-mail/order-profiles/postcards.test.ts @@ -89,7 +89,11 @@ describe('resource postcards', () => { // ensure the request options are being passed correctly by passing an invalid HTTP method in order to cause an error await expect( client.printMail.orderProfiles.postcards.list( - { limit: 0, search: 'search', skip: 0 }, + { + limit: 0, + search: 'search', + skip: 0, + }, { path: '/_stainless_unknown_path' }, ), ).rejects.toThrow(PostGrid.NotFoundError); diff --git a/tests/api-resources/print-mail/order-profiles/self-mailers.test.ts b/tests/api-resources/print-mail/order-profiles/self-mailers.test.ts index d49148b..99a0875 100644 --- a/tests/api-resources/print-mail/order-profiles/self-mailers.test.ts +++ b/tests/api-resources/print-mail/order-profiles/self-mailers.test.ts @@ -106,7 +106,11 @@ describe('resource selfMailers', () => { // ensure the request options are being passed correctly by passing an invalid HTTP method in order to cause an error await expect( client.printMail.orderProfiles.selfMailers.list( - { limit: 0, search: 'search', skip: 0 }, + { + limit: 0, + search: 'search', + skip: 0, + }, { path: '/_stainless_unknown_path' }, ), ).rejects.toThrow(PostGrid.NotFoundError); diff --git a/tests/api-resources/print-mail/postcards.test.ts b/tests/api-resources/print-mail/postcards.test.ts index a50743e..31caddb 100644 --- a/tests/api-resources/print-mail/postcards.test.ts +++ b/tests/api-resources/print-mail/postcards.test.ts @@ -15,7 +15,11 @@ describe('resource postcards', () => { backHTML: 'backHTML', frontHTML: 'frontHTML', size: '6x4', - to: { addressLine1: 'addressLine1', countryCode: 'countryCode', firstName: 'firstName' }, + to: { + addressLine1: 'addressLine1', + countryCode: 'countryCode', + firstName: 'firstName', + }, }); const rawResponse = await responsePromise.asResponse(); expect(rawResponse).toBeInstanceOf(Response); @@ -105,7 +109,11 @@ describe('resource postcards', () => { // ensure the request options are being passed correctly by passing an invalid HTTP method in order to cause an error await expect( client.printMail.postcards.list( - { limit: 0, search: 'search', skip: 0 }, + { + limit: 0, + search: 'search', + skip: 0, + }, { path: '/_stainless_unknown_path' }, ), ).rejects.toThrow(PostGrid.NotFoundError); diff --git a/tests/api-resources/print-mail/reports/reports.test.ts b/tests/api-resources/print-mail/reports/reports.test.ts index 84c8845..5c47b98 100644 --- a/tests/api-resources/print-mail/reports/reports.test.ts +++ b/tests/api-resources/print-mail/reports/reports.test.ts @@ -73,7 +73,11 @@ describe('resource reports', () => { // ensure the request options are being passed correctly by passing an invalid HTTP method in order to cause an error await expect( client.printMail.reports.list( - { limit: 0, search: 'search', skip: 0 }, + { + limit: 0, + search: 'search', + skip: 0, + }, { path: '/_stainless_unknown_path' }, ), ).rejects.toThrow(PostGrid.NotFoundError); diff --git a/tests/api-resources/print-mail/self-mailers.test.ts b/tests/api-resources/print-mail/self-mailers.test.ts index 1a05cc1..0f59248 100644 --- a/tests/api-resources/print-mail/self-mailers.test.ts +++ b/tests/api-resources/print-mail/self-mailers.test.ts @@ -12,11 +12,19 @@ describe('resource selfMailers', () => { // Prism tests are disabled test.skip('create: only required params', async () => { const responsePromise = client.printMail.selfMailers.create({ - from: { addressLine1: 'addressLine1', countryCode: 'countryCode', firstName: 'firstName' }, + from: { + addressLine1: 'addressLine1', + countryCode: 'countryCode', + firstName: 'firstName', + }, insideHTML: 'insideHTML', outsideHTML: 'outsideHTML', size: '8.5x11_bifold', - to: { addressLine1: 'addressLine1', countryCode: 'countryCode', firstName: 'firstName' }, + to: { + addressLine1: 'addressLine1', + countryCode: 'countryCode', + firstName: 'firstName', + }, }); const rawResponse = await responsePromise.asResponse(); expect(rawResponse).toBeInstanceOf(Response); @@ -106,7 +114,11 @@ describe('resource selfMailers', () => { // ensure the request options are being passed correctly by passing an invalid HTTP method in order to cause an error await expect( client.printMail.selfMailers.list( - { limit: 0, search: 'search', skip: 0 }, + { + limit: 0, + search: 'search', + skip: 0, + }, { path: '/_stainless_unknown_path' }, ), ).rejects.toThrow(PostGrid.NotFoundError); diff --git a/tests/api-resources/print-mail/sub-organizations.test.ts b/tests/api-resources/print-mail/sub-organizations.test.ts index 4aa0c8d..8a89c70 100644 --- a/tests/api-resources/print-mail/sub-organizations.test.ts +++ b/tests/api-resources/print-mail/sub-organizations.test.ts @@ -68,7 +68,11 @@ describe('resource subOrganizations', () => { // ensure the request options are being passed correctly by passing an invalid HTTP method in order to cause an error await expect( client.printMail.subOrganizations.list( - { limit: 0, search: 'search', skip: 0 }, + { + limit: 0, + search: 'search', + skip: 0, + }, { path: '/_stainless_unknown_path' }, ), ).rejects.toThrow(PostGrid.NotFoundError); @@ -92,7 +96,11 @@ describe('resource subOrganizations', () => { await expect( client.printMail.subOrganizations.retrieveUsers( 'id', - { limit: 0, search: 'search', skip: 0 }, + { + limit: 0, + search: 'search', + skip: 0, + }, { path: '/_stainless_unknown_path' }, ), ).rejects.toThrow(PostGrid.NotFoundError); diff --git a/tests/api-resources/print-mail/templates.test.ts b/tests/api-resources/print-mail/templates.test.ts index e7b623d..759da87 100644 --- a/tests/api-resources/print-mail/templates.test.ts +++ b/tests/api-resources/print-mail/templates.test.ts @@ -62,7 +62,11 @@ describe('resource templates', () => { // ensure the request options are being passed correctly by passing an invalid HTTP method in order to cause an error await expect( client.printMail.templates.list( - { limit: 0, search: 'search', skip: 0 }, + { + limit: 0, + search: 'search', + skip: 0, + }, { path: '/_stainless_unknown_path' }, ), ).rejects.toThrow(PostGrid.NotFoundError); From 00cac03fae7750b0f627c2f15442de2d92711025 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 14 Jan 2026 07:27:04 +0000 Subject: [PATCH 11/13] chore: fix typo in descriptions --- src/resources/address-verification.ts | 14 +++++++------- src/resources/intl-address-verification.ts | 14 +++++++------- src/resources/print-mail/campaigns.ts | 2 +- src/resources/print-mail/mailing-list-imports.ts | 2 +- src/resources/print-mail/mailing-lists.ts | 2 +- 5 files changed, 17 insertions(+), 17 deletions(-) diff --git a/src/resources/address-verification.ts b/src/resources/address-verification.ts index 8bc92b2..aa94866 100644 --- a/src/resources/address-verification.ts +++ b/src/resources/address-verification.ts @@ -455,39 +455,39 @@ export declare namespace AddressVerificationVerifyParams { address: string; /** - * Query param: + * Query param */ geocode?: boolean; /** - * Query param: + * Query param */ includeDetails?: boolean; /** - * Query param: + * Query param */ properCase?: boolean; } export interface StandardStructuredAddressInput { /** - * Body param: + * Body param */ address: StandardStructuredAddressInput.Address; /** - * Query param: + * Query param */ geocode?: boolean; /** - * Query param: + * Query param */ includeDetails?: boolean; /** - * Query param: + * Query param */ properCase?: boolean; } diff --git a/src/resources/intl-address-verification.ts b/src/resources/intl-address-verification.ts index 92381fd..7f21846 100644 --- a/src/resources/intl-address-verification.ts +++ b/src/resources/intl-address-verification.ts @@ -384,22 +384,22 @@ export type IntlAddressVerificationVerifyParams = export declare namespace IntlAddressVerificationVerifyParams { export interface StructuredAddressInput { /** - * Body param: + * Body param */ address: StructuredAddressInput.Address; /** - * Query param: + * Query param */ geoData?: boolean; /** - * Query param: + * Query param */ includeDetails?: boolean; /** - * Query param: + * Query param */ properCase?: boolean; } @@ -455,17 +455,17 @@ export declare namespace IntlAddressVerificationVerifyParams { address: string; /** - * Query param: + * Query param */ geoData?: boolean; /** - * Query param: + * Query param */ includeDetails?: boolean; /** - * Query param: + * Query param */ properCase?: boolean; } diff --git a/src/resources/print-mail/campaigns.ts b/src/resources/print-mail/campaigns.ts index 30bc4d7..4ed4d23 100644 --- a/src/resources/print-mail/campaigns.ts +++ b/src/resources/print-mail/campaigns.ts @@ -310,7 +310,7 @@ export interface CampaignCreateParams { sendDate?: string; /** - * Header param: + * Header param */ 'idempotency-key'?: string; } diff --git a/src/resources/print-mail/mailing-list-imports.ts b/src/resources/print-mail/mailing-list-imports.ts index d2c56ba..5eb588f 100644 --- a/src/resources/print-mail/mailing-list-imports.ts +++ b/src/resources/print-mail/mailing-list-imports.ts @@ -379,7 +379,7 @@ export interface MailingListImportCreateParams { senderMergeVariableMapping?: { [key: string]: string }; /** - * Header param: + * Header param */ 'idempotency-key'?: string; } diff --git a/src/resources/print-mail/mailing-lists.ts b/src/resources/print-mail/mailing-lists.ts index b9dcbfa..a2bc516 100644 --- a/src/resources/print-mail/mailing-lists.ts +++ b/src/resources/print-mail/mailing-lists.ts @@ -236,7 +236,7 @@ export interface MailingListCreateParams { metadata?: { [key: string]: unknown }; /** - * Header param: + * Header param */ 'idempotency-key'?: string; } From 82d54171f2b0e60f84d8ce931df0dfcaa5b716a1 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 15 Jan 2026 06:25:42 +0000 Subject: [PATCH 12/13] chore(internal): upgrade babel, qs, js-yaml --- pnpm-lock.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 47f5856..24f90ab 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -2715,7 +2715,7 @@ snapshots: dependencies: '@typescript-eslint/typescript-estree': 8.31.1(typescript@5.8.3) '@typescript-eslint/utils': 8.31.1(eslint@9.39.1)(typescript@5.8.3) - debug: 4.4.1 + debug: 4.4.3 eslint: 9.39.1 ts-api-utils: 2.0.1(typescript@5.8.3) typescript: 5.8.3 @@ -2728,7 +2728,7 @@ snapshots: dependencies: '@typescript-eslint/types': 8.31.1 '@typescript-eslint/visitor-keys': 8.31.1 - debug: 4.4.1 + debug: 4.4.3 fast-glob: 3.3.2 is-glob: 4.0.3 minimatch: 9.0.5 From 35a3cb58db62e6ca88c70b9d437e39aeb0b73220 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 15 Jan 2026 06:25:59 +0000 Subject: [PATCH 13/13] release: 0.5.1 --- .release-please-manifest.json | 2 +- CHANGELOG.md | 23 +++++++++++++++++++++++ package.json | 2 +- src/version.ts | 2 +- 4 files changed, 26 insertions(+), 3 deletions(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index f1c1e58..210d290 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.5.0" + ".": "0.5.1" } diff --git a/CHANGELOG.md b/CHANGELOG.md index 535d977..bb5d284 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,28 @@ # Changelog +## 0.5.1 (2026-01-15) + +Full Changelog: [v0.5.0...v0.5.1](https://github.com/postgrid/postgrid-node/compare/v0.5.0...v0.5.1) + +### Bug Fixes + +* **docs:** remove extraneous example object fields ([71d6fdf](https://github.com/postgrid/postgrid-node/commit/71d6fdf04c36d6c86a07da4779c5a96ccada0f1d)) +* **mcp:** correct code tool API endpoint ([a69fda5](https://github.com/postgrid/postgrid-node/commit/a69fda59f36bdab6b0189a492a8fb8053939f412)) +* **mcp:** return correct lines on typescript errors ([81982d6](https://github.com/postgrid/postgrid-node/commit/81982d6d50b27ef9a5580f7d0e178fc096e8ff4d)) + + +### Chores + +* break long lines in snippets into multiline ([f66b5c2](https://github.com/postgrid/postgrid-node/commit/f66b5c28b18bb506d4cbed6667215af5a6eaa799)) +* **client:** fix logger property type ([c1592ab](https://github.com/postgrid/postgrid-node/commit/c1592ab37ba7aa9a1c3da022b42ba98b5aa189d0)) +* fix typo in descriptions ([00cac03](https://github.com/postgrid/postgrid-node/commit/00cac03fae7750b0f627c2f15442de2d92711025)) +* **internal:** codegen related update ([22d0aec](https://github.com/postgrid/postgrid-node/commit/22d0aec76590e53ab5da540e3f73406342a950ac)) +* **internal:** codegen related update ([5c3a9b7](https://github.com/postgrid/postgrid-node/commit/5c3a9b79198ef3bc912462e1fb524819ffa8ef91)) +* **internal:** codegen related update ([b90ade6](https://github.com/postgrid/postgrid-node/commit/b90ade6630f6f254eebe74ee16ca365a96759f87)) +* **internal:** configure pnpm minimumReleaseAge to 1 day ([28aacd5](https://github.com/postgrid/postgrid-node/commit/28aacd557705eba61ee5ced975c1828d6f08f801)) +* **internal:** upgrade babel, qs, js-yaml ([82d5417](https://github.com/postgrid/postgrid-node/commit/82d54171f2b0e60f84d8ce931df0dfcaa5b716a1)) +* **internal:** upgrade eslint ([d4721a3](https://github.com/postgrid/postgrid-node/commit/d4721a3f0feeffa66fdcc698998d8714d208f6d4)) + ## 0.5.0 (2025-11-14) Full Changelog: [v0.4.2...v0.5.0](https://github.com/postgrid/postgrid-node/compare/v0.4.2...v0.5.0) diff --git a/package.json b/package.json index 2c38462..36db716 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "postgrid-node", - "version": "0.5.0", + "version": "0.5.1", "description": "The official TypeScript library for the PostGrid API", "author": "PostGrid ", "types": "dist/index.d.ts", diff --git a/src/version.ts b/src/version.ts index 1f5d158..44c3338 100644 --- a/src/version.ts +++ b/src/version.ts @@ -1 +1 @@ -export const VERSION = '0.5.0'; // x-release-please-version +export const VERSION = '0.5.1'; // x-release-please-version