diff --git a/package.json b/package.json index 7b8a6c0668de6..74661917447ba 100644 --- a/package.json +++ b/package.json @@ -41,6 +41,7 @@ "devDependencies": { "@eslint/eslintrc": "^3.2.0", "@eslint/js": "^9.15.0", + "@next/eslint-plugin-next": "^14.2.5", "@pipedream/types": "0.1.4", "@tsconfig/node14": "^1.0.1", "@types/jest": "^27.4.1", @@ -59,7 +60,6 @@ "husky": "^7.0.4", "jest": "^29.7.0", "lint-staged": "^12.3.4", - "@next/eslint-plugin-next": "^14.2.5", "pnpm": "9.14.2", "putout": ">=36", "renamer": "^4.0.0", diff --git a/packages/sdk/CHANGELOG.md b/packages/sdk/CHANGELOG.md index 8c7202ea477e8..45ff679b737be 100644 --- a/packages/sdk/CHANGELOG.md +++ b/packages/sdk/CHANGELOG.md @@ -2,6 +2,14 @@ # Changelog +## [1.5.2] - 2025-04-15 + +### Added + +- PD_SDK_DEBUG env var. Set it to true to enable debugging of Pipedream Connect + API requests. Simple sanitization is performed to prevent sensitive field leakage + but use caution. + ## [1.5.1] - 2025-04-15 ### Added diff --git a/packages/sdk/src/shared/index.ts b/packages/sdk/src/shared/index.ts index dae13da653cdc..fbbf4b0165e1f 100644 --- a/packages/sdk/src/shared/index.ts +++ b/packages/sdk/src/shared/index.ts @@ -852,6 +852,59 @@ export interface AsyncRequestOptions extends RequestOptions { body: { async_handle: string; } & Required; } +const SENSITIVE_KEYS = [ + "token", + "password", + "secret", + "apiKey", + "authorization", + "auth", + "key", + "access_token", +]; + +// eslint-disable-next-line @typescript-eslint/no-explicit-any +function sanitize(value: any, seen = new WeakSet()): any { + if (value === null || value === undefined) return value; + + if (typeof value === "object") { + if (seen.has(value)) return "[CIRCULAR]"; + seen.add(value); + + if (Array.isArray(value)) { + return value.map((v) => sanitize(v, seen)); + } + + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const sanitizedObj: Record = {}; + for (const [ + k, + v, + ] of Object.entries(value)) { + const isSensitiveKey = SENSITIVE_KEYS.some((sensitiveKey) => + k.toLowerCase().includes(sensitiveKey.toLowerCase())); + sanitizedObj[k] = isSensitiveKey + ? "[REDACTED]" + : sanitize(v, seen); + } + return sanitizedObj; + } + + return value; // numbers, booleans, functions, etc. +} + +// eslint-disable-next-line @typescript-eslint/no-explicit-any +export function DEBUG(...args: any[]) { + if ( + typeof process !== "undefined" && + typeof process.env !== "undefined" && + process.env.PD_SDK_DEBUG === "true" + ) { + const safeArgs = args.map((arg) => sanitize(arg)); + console.log("[PD_SDK_DEBUG]", ...safeArgs); + } +} + /** * A client for interacting with the Pipedream Connect API on the server-side. */ @@ -966,20 +1019,24 @@ export abstract class BaseClient { const response: Response = await fetch(url.toString(), requestOptions); + const rawBody = await response.text(); + if (!response.ok) { - const errorBody = await response.text(); - throw new Error( - `HTTP error! status: ${response.status}, body: ${errorBody}`, - ); + throw new Error(`HTTP error! status: ${response.status}, body: ${rawBody}`); } - // Attempt to parse JSON, fall back to raw text if it fails + DEBUG(response.status, url.toString(), requestOptions, rawBody) const contentType = response.headers.get("Content-Type"); if (contentType && contentType.includes("application/json")) { - return (await response.json()) as T; + try { + const json = JSON.parse(rawBody); + return json as T; + } catch (err) { + DEBUG("Couldn't parse json, falling back to raw", err) + } } - return (await response.text()) as unknown as T; + return rawBody as unknown as T; } protected abstract authHeaders(): string | Promise; diff --git a/packages/sdk/src/shared/shims.d.ts b/packages/sdk/src/shared/shims.d.ts new file mode 100644 index 0000000000000..3f8248deb8c20 --- /dev/null +++ b/packages/sdk/src/shared/shims.d.ts @@ -0,0 +1,5 @@ +declare const process: { + env?: { + [key: string]: string | undefined; + }; +} | undefined; diff --git a/packages/sdk/tsconfig.browser.json b/packages/sdk/tsconfig.browser.json index ecb99678859d1..45ee1b87ce23d 100644 --- a/packages/sdk/tsconfig.browser.json +++ b/packages/sdk/tsconfig.browser.json @@ -14,6 +14,7 @@ "allowJs": true }, "include": [ + "src/shared/shims.d.ts", "src/browser/**/*" ], "exclude": [ diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 91b411f7f3705..6ab999654058b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -15204,7 +15204,7 @@ importers: version: 29.5.14 '@types/node': specifier: ^20.17.6 - version: 20.17.6 + version: 20.17.30 '@types/rails__actioncable': specifier: ^6.1.11 version: 6.1.11 @@ -15213,7 +15213,7 @@ importers: version: 8.5.13 jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@20.17.6)(babel-plugin-macros@3.1.0) + version: 29.7.0(@types/node@20.17.30)(babel-plugin-macros@3.1.0) lodash.isequal: specifier: ^4.5.0 version: 4.5.0 @@ -15222,10 +15222,10 @@ importers: version: 3.1.7 ts-jest: specifier: ^29.2.5 - version: 29.2.5(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(esbuild@0.24.2)(jest@29.7.0(@types/node@20.17.6)(babel-plugin-macros@3.1.0))(typescript@5.7.2) + version: 29.2.5(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(esbuild@0.24.2)(jest@29.7.0(@types/node@20.17.30)(babel-plugin-macros@3.1.0))(typescript@5.7.2) tsup: specifier: ^8.3.6 - version: 8.3.6(@microsoft/api-extractor@7.47.12(@types/node@20.17.6))(jiti@1.21.6)(postcss@8.4.49)(typescript@5.7.2)(yaml@2.6.1) + version: 8.3.6(@microsoft/api-extractor@7.47.12(@types/node@20.17.30))(jiti@1.21.6)(postcss@8.4.49)(typescript@5.7.2)(yaml@2.6.1) typescript: specifier: ^5.6 version: 5.7.2 @@ -19965,6 +19965,9 @@ packages: '@types/node@18.19.80': resolution: {integrity: sha512-kEWeMwMeIvxYkeg1gTc01awpwLbfMRZXdIhwRcakd/KlK53jmRC26LqcbIt7fnAQTu5GzlnWmzA3H6+l1u6xxQ==} + '@types/node@20.17.30': + resolution: {integrity: sha512-7zf4YyHA+jvBNfVrk2Gtvs6x7E8V+YDW05bNfG2XkWDJfYRXrTiP/DsB2zSYTaHX0bGIujTBQdMVAhb+j7mwpg==} + '@types/node@20.17.6': resolution: {integrity: sha512-VEI7OdvK2wP7XHnsuXbAJnEpEkF6NjSN45QJlL4VGqZSXsnicpesdTWsg9RISeSdYd3yeRj/y3k5KGjUXYnFwQ==} @@ -33027,7 +33030,7 @@ snapshots: '@grpc/grpc-js@1.8.22': dependencies: '@grpc/proto-loader': 0.7.13 - '@types/node': 20.17.6 + '@types/node': 20.17.30 '@grpc/proto-loader@0.7.13': dependencies: @@ -33192,7 +33195,7 @@ snapshots: '@jest/console@29.7.0': dependencies: '@jest/types': 29.6.3 - '@types/node': 20.17.6 + '@types/node': 20.17.30 chalk: 4.1.2 jest-message-util: 29.7.0 jest-util: 29.7.0 @@ -33205,14 +33208,14 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.17.6 + '@types/node': 20.17.30 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 3.9.0 exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@20.17.6)(babel-plugin-macros@3.1.0) + jest-config: 29.7.0(@types/node@20.17.30)(babel-plugin-macros@3.1.0) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -33237,7 +33240,7 @@ snapshots: dependencies: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.17.6 + '@types/node': 20.17.30 jest-mock: 29.7.0 '@jest/expect-utils@29.7.0': @@ -33255,7 +33258,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@sinonjs/fake-timers': 10.3.0 - '@types/node': 20.17.6 + '@types/node': 20.17.30 jest-message-util: 29.7.0 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -33277,7 +33280,7 @@ snapshots: '@jest/transform': 29.7.0 '@jest/types': 29.6.3 '@jridgewell/trace-mapping': 0.3.25 - '@types/node': 20.17.6 + '@types/node': 20.17.30 chalk: 4.1.2 collect-v8-coverage: 1.0.2 exit: 0.1.2 @@ -33347,7 +33350,7 @@ snapshots: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 20.17.6 + '@types/node': 20.17.30 '@types/yargs': 17.0.33 chalk: 4.1.2 @@ -33496,11 +33499,11 @@ snapshots: dependencies: langium: 3.0.0 - '@microsoft/api-extractor-model@7.29.9(@types/node@20.17.6)': + '@microsoft/api-extractor-model@7.29.9(@types/node@20.17.30)': dependencies: '@microsoft/tsdoc': 0.15.0 '@microsoft/tsdoc-config': 0.17.0 - '@rushstack/node-core-library': 5.10.0(@types/node@20.17.6) + '@rushstack/node-core-library': 5.10.0(@types/node@20.17.30) transitivePeerDependencies: - '@types/node' optional: true @@ -33513,15 +33516,15 @@ snapshots: transitivePeerDependencies: - '@types/node' - '@microsoft/api-extractor@7.47.12(@types/node@20.17.6)': + '@microsoft/api-extractor@7.47.12(@types/node@20.17.30)': dependencies: - '@microsoft/api-extractor-model': 7.29.9(@types/node@20.17.6) + '@microsoft/api-extractor-model': 7.29.9(@types/node@20.17.30) '@microsoft/tsdoc': 0.15.0 '@microsoft/tsdoc-config': 0.17.0 - '@rushstack/node-core-library': 5.10.0(@types/node@20.17.6) + '@rushstack/node-core-library': 5.10.0(@types/node@20.17.30) '@rushstack/rig-package': 0.5.3 - '@rushstack/terminal': 0.14.3(@types/node@20.17.6) - '@rushstack/ts-command-line': 4.23.1(@types/node@20.17.6) + '@rushstack/terminal': 0.14.3(@types/node@20.17.30) + '@rushstack/ts-command-line': 4.23.1(@types/node@20.17.30) lodash: 4.17.21 minimatch: 3.0.8 resolve: 1.22.8 @@ -34548,6 +34551,8 @@ snapshots: '@putout/operator-filesystem': 5.0.0(putout@36.13.1(eslint@8.57.1)(typescript@5.6.3)) '@putout/operator-json': 2.2.0 putout: 36.13.1(eslint@8.57.1)(typescript@5.6.3) + transitivePeerDependencies: + - supports-color '@putout/operator-regexp@1.0.0(putout@36.13.1(eslint@8.57.1)(typescript@5.6.3))': dependencies: @@ -35244,7 +35249,7 @@ snapshots: '@rushstack/eslint-patch@1.10.4': {} - '@rushstack/node-core-library@5.10.0(@types/node@20.17.6)': + '@rushstack/node-core-library@5.10.0(@types/node@20.17.30)': dependencies: ajv: 8.13.0 ajv-draft-04: 1.0.0(ajv@8.13.0) @@ -35255,7 +35260,7 @@ snapshots: resolve: 1.22.8 semver: 7.5.4 optionalDependencies: - '@types/node': 20.17.6 + '@types/node': 20.17.30 optional: true '@rushstack/node-core-library@5.10.0(@types/node@22.10.2)': @@ -35276,12 +35281,12 @@ snapshots: resolve: 1.22.8 strip-json-comments: 3.1.1 - '@rushstack/terminal@0.14.3(@types/node@20.17.6)': + '@rushstack/terminal@0.14.3(@types/node@20.17.30)': dependencies: - '@rushstack/node-core-library': 5.10.0(@types/node@20.17.6) + '@rushstack/node-core-library': 5.10.0(@types/node@20.17.30) supports-color: 8.1.1 optionalDependencies: - '@types/node': 20.17.6 + '@types/node': 20.17.30 optional: true '@rushstack/terminal@0.14.3(@types/node@22.10.2)': @@ -35291,9 +35296,9 @@ snapshots: optionalDependencies: '@types/node': 22.10.2 - '@rushstack/ts-command-line@4.23.1(@types/node@20.17.6)': + '@rushstack/ts-command-line@4.23.1(@types/node@20.17.30)': dependencies: - '@rushstack/terminal': 0.14.3(@types/node@20.17.6) + '@rushstack/terminal': 0.14.3(@types/node@20.17.30) '@types/argparse': 1.0.38 argparse: 1.0.10 string-argv: 0.3.2 @@ -35433,11 +35438,11 @@ snapshots: '@slack/logger@2.0.0': dependencies: - '@types/node': 20.17.6 + '@types/node': 20.17.30 '@slack/logger@4.0.0': dependencies: - '@types/node': 20.17.6 + '@types/node': 20.17.30 '@slack/types@1.10.0': {} @@ -36234,20 +36239,20 @@ snapshots: '@types/body-parser@1.19.5': dependencies: '@types/connect': 3.4.38 - '@types/node': 20.17.6 + '@types/node': 20.17.30 '@types/cacheable-request@6.0.3': dependencies: '@types/http-cache-semantics': 4.0.4 '@types/keyv': 3.1.4 - '@types/node': 20.17.6 + '@types/node': 20.17.30 '@types/responselike': 1.0.3 '@types/caseless@0.12.5': {} '@types/connect@3.4.38': dependencies: - '@types/node': 20.17.6 + '@types/node': 20.17.30 '@types/d3-array@3.2.1': {} @@ -36372,7 +36377,7 @@ snapshots: '@types/duplexify@3.6.4': dependencies: - '@types/node': 20.17.6 + '@types/node': 20.17.30 '@types/estree-jsx@1.0.5': dependencies: @@ -36382,7 +36387,7 @@ snapshots: '@types/express-serve-static-core@4.19.6': dependencies: - '@types/node': 20.17.6 + '@types/node': 20.17.30 '@types/qs': 6.9.17 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 @@ -36404,16 +36409,16 @@ snapshots: '@types/glob@7.2.0': dependencies: '@types/minimatch': 5.1.2 - '@types/node': 20.17.6 + '@types/node': 20.17.30 '@types/glob@8.1.0': dependencies: '@types/minimatch': 5.1.2 - '@types/node': 20.17.6 + '@types/node': 20.17.30 '@types/graceful-fs@4.1.9': dependencies: - '@types/node': 20.17.6 + '@types/node': 20.17.30 '@types/hast@3.0.4': dependencies: @@ -36425,7 +36430,7 @@ snapshots: '@types/is-stream@1.1.0': dependencies: - '@types/node': 20.17.6 + '@types/node': 20.17.30 '@types/isomorphic-fetch@0.0.35': {} @@ -36455,11 +36460,11 @@ snapshots: '@types/jsonwebtoken@9.0.0': dependencies: - '@types/node': 20.17.6 + '@types/node': 20.17.30 '@types/jsonwebtoken@9.0.7': dependencies: - '@types/node': 20.17.6 + '@types/node': 20.17.30 '@types/jssha@2.0.0': {} @@ -36467,7 +36472,7 @@ snapshots: '@types/keyv@3.1.4': dependencies: - '@types/node': 20.17.6 + '@types/node': 20.17.30 '@types/linkify-it@5.0.0': {} @@ -36533,6 +36538,10 @@ snapshots: dependencies: undici-types: 5.26.5 + '@types/node@20.17.30': + dependencies: + undici-types: 6.19.8 + '@types/node@20.17.6': dependencies: undici-types: 6.19.8 @@ -36547,7 +36556,7 @@ snapshots: '@types/opossum@4.1.1': dependencies: - '@types/node': 20.17.6 + '@types/node': 20.17.30 '@types/parse-json@4.0.2': {} @@ -36576,40 +36585,40 @@ snapshots: '@types/readable-stream@4.0.18': dependencies: - '@types/node': 20.17.6 + '@types/node': 20.17.30 safe-buffer: 5.1.2 '@types/request@2.48.12': dependencies: '@types/caseless': 0.12.5 - '@types/node': 20.17.6 + '@types/node': 20.17.30 '@types/tough-cookie': 4.0.5 form-data: 2.5.2 '@types/responselike@1.0.3': dependencies: - '@types/node': 20.17.6 + '@types/node': 20.17.30 '@types/retry@0.12.0': {} '@types/rimraf@3.0.2': dependencies: '@types/glob': 8.1.0 - '@types/node': 20.17.6 + '@types/node': 20.17.30 '@types/sax@1.2.7': dependencies: - '@types/node': 20.17.6 + '@types/node': 20.17.30 '@types/send@0.17.4': dependencies: '@types/mime': 1.3.5 - '@types/node': 20.17.6 + '@types/node': 20.17.30 '@types/serve-static@1.15.7': dependencies: '@types/http-errors': 2.0.4 - '@types/node': 20.17.6 + '@types/node': 20.17.30 '@types/send': 0.17.4 '@types/source-map@0.5.7': @@ -36618,7 +36627,7 @@ snapshots: '@types/sshpk@1.10.3': dependencies: - '@types/node': 20.17.6 + '@types/node': 20.17.30 '@types/stack-utils@2.0.3': {} @@ -36641,16 +36650,16 @@ snapshots: '@types/whatwg-url@8.2.2': dependencies: - '@types/node': 20.17.6 + '@types/node': 20.17.30 '@types/webidl-conversions': 7.0.3 '@types/ws@8.5.13': dependencies: - '@types/node': 20.17.6 + '@types/node': 20.17.30 '@types/ws@8.5.3': dependencies: - '@types/node': 20.17.6 + '@types/node': 20.17.30 '@types/yargs-parser@21.0.3': {} @@ -36660,7 +36669,7 @@ snapshots: '@types/yauzl@2.10.3': dependencies: - '@types/node': 20.17.6 + '@types/node': 20.17.30 optional: true '@typescript-eslint/eslint-plugin@8.15.0(@typescript-eslint/parser@8.15.0(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1)(typescript@5.6.3)': @@ -38312,6 +38321,21 @@ snapshots: - supports-color - ts-node + create-jest@29.7.0(@types/node@20.17.30)(babel-plugin-macros@3.1.0): + dependencies: + '@jest/types': 29.6.3 + chalk: 4.1.2 + exit: 0.1.2 + graceful-fs: 4.2.11 + jest-config: 29.7.0(@types/node@20.17.30)(babel-plugin-macros@3.1.0) + jest-util: 29.7.0 + prompts: 2.4.2 + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - supports-color + - ts-node + create-jest@29.7.0(@types/node@20.17.6)(babel-plugin-macros@3.1.0): dependencies: '@jest/types': 29.6.3 @@ -41787,7 +41811,7 @@ snapshots: '@jest/expect': 29.7.0 '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.17.6 + '@types/node': 20.17.30 chalk: 4.1.2 co: 4.6.0 dedent: 1.5.3(babel-plugin-macros@3.1.0) @@ -41826,6 +41850,25 @@ snapshots: - supports-color - ts-node + jest-cli@29.7.0(@types/node@20.17.30)(babel-plugin-macros@3.1.0): + dependencies: + '@jest/core': 29.7.0(babel-plugin-macros@3.1.0) + '@jest/test-result': 29.7.0 + '@jest/types': 29.6.3 + chalk: 4.1.2 + create-jest: 29.7.0(@types/node@20.17.30)(babel-plugin-macros@3.1.0) + exit: 0.1.2 + import-local: 3.2.0 + jest-config: 29.7.0(@types/node@20.17.30)(babel-plugin-macros@3.1.0) + jest-util: 29.7.0 + jest-validate: 29.7.0 + yargs: 17.7.2 + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - supports-color + - ts-node + jest-cli@29.7.0(@types/node@20.17.6)(babel-plugin-macros@3.1.0): dependencies: '@jest/core': 29.7.0(babel-plugin-macros@3.1.0) @@ -41875,6 +41918,36 @@ snapshots: - babel-plugin-macros - supports-color + jest-config@29.7.0(@types/node@20.17.30)(babel-plugin-macros@3.1.0): + dependencies: + '@babel/core': 7.26.0 + '@jest/test-sequencer': 29.7.0 + '@jest/types': 29.6.3 + babel-jest: 29.7.0(@babel/core@7.26.0) + chalk: 4.1.2 + ci-info: 3.9.0 + deepmerge: 4.3.1 + glob: 7.2.3 + graceful-fs: 4.2.11 + jest-circus: 29.7.0(babel-plugin-macros@3.1.0) + jest-environment-node: 29.7.0 + jest-get-type: 29.6.3 + jest-regex-util: 29.6.3 + jest-resolve: 29.7.0 + jest-runner: 29.7.0 + jest-util: 29.7.0 + jest-validate: 29.7.0 + micromatch: 4.0.8 + parse-json: 5.2.0 + pretty-format: 29.7.0 + slash: 3.0.0 + strip-json-comments: 3.1.1 + optionalDependencies: + '@types/node': 20.17.30 + transitivePeerDependencies: + - babel-plugin-macros + - supports-color + jest-config@29.7.0(@types/node@20.17.6)(babel-plugin-macros@3.1.0): dependencies: '@babel/core': 7.26.0 @@ -41936,7 +42009,7 @@ snapshots: '@jest/environment': 29.7.0 '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.17.6 + '@types/node': 20.17.30 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -41948,7 +42021,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@types/graceful-fs': 4.1.9 - '@types/node': 20.17.6 + '@types/node': 20.17.30 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -41994,7 +42067,7 @@ snapshots: jest-mock@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 20.17.6 + '@types/node': 20.17.30 jest-util: 29.7.0 jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): @@ -42029,7 +42102,7 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.17.6 + '@types/node': 20.17.30 chalk: 4.1.2 emittery: 0.13.1 graceful-fs: 4.2.11 @@ -42057,7 +42130,7 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.17.6 + '@types/node': 20.17.30 chalk: 4.1.2 cjs-module-lexer: 1.4.1 collect-v8-coverage: 1.0.2 @@ -42103,7 +42176,7 @@ snapshots: jest-util@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 20.17.6 + '@types/node': 20.17.30 chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 @@ -42122,7 +42195,7 @@ snapshots: dependencies: '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.17.6 + '@types/node': 20.17.30 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 @@ -42131,7 +42204,7 @@ snapshots: jest-worker@29.7.0: dependencies: - '@types/node': 20.17.6 + '@types/node': 20.17.30 jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -42148,6 +42221,18 @@ snapshots: - supports-color - ts-node + jest@29.7.0(@types/node@20.17.30)(babel-plugin-macros@3.1.0): + dependencies: + '@jest/core': 29.7.0(babel-plugin-macros@3.1.0) + '@jest/types': 29.6.3 + import-local: 3.2.0 + jest-cli: 29.7.0(@types/node@20.17.30)(babel-plugin-macros@3.1.0) + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - supports-color + - ts-node + jest@29.7.0(@types/node@20.17.6)(babel-plugin-macros@3.1.0): dependencies: '@jest/core': 29.7.0(babel-plugin-macros@3.1.0) @@ -45147,7 +45232,7 @@ snapshots: '@protobufjs/path': 1.1.2 '@protobufjs/pool': 1.1.0 '@protobufjs/utf8': 1.1.0 - '@types/node': 20.17.6 + '@types/node': 20.17.30 long: 5.2.3 protobufjs@7.4.0: @@ -45162,7 +45247,7 @@ snapshots: '@protobufjs/path': 1.1.2 '@protobufjs/pool': 1.1.0 '@protobufjs/utf8': 1.1.0 - '@types/node': 20.17.6 + '@types/node': 20.17.30 long: 5.2.3 proxy-agent@5.0.0: @@ -47555,12 +47640,12 @@ snapshots: ts-interface-checker@0.1.13: {} - ts-jest@29.2.5(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(esbuild@0.24.2)(jest@29.7.0(@types/node@20.17.6)(babel-plugin-macros@3.1.0))(typescript@5.7.2): + ts-jest@29.2.5(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(esbuild@0.24.2)(jest@29.7.0(@types/node@20.17.30)(babel-plugin-macros@3.1.0))(typescript@5.7.2): dependencies: bs-logger: 0.2.6 ejs: 3.1.10 fast-json-stable-stringify: 2.1.0 - jest: 29.7.0(@types/node@20.17.6)(babel-plugin-macros@3.1.0) + jest: 29.7.0(@types/node@20.17.30)(babel-plugin-macros@3.1.0) jest-util: 29.7.0 json5: 2.2.3 lodash.memoize: 4.1.2 @@ -47640,7 +47725,7 @@ snapshots: tsutils: 2.29.0(typescript@5.7.2) typescript: 5.7.2 - tsup@8.3.6(@microsoft/api-extractor@7.47.12(@types/node@20.17.6))(jiti@1.21.6)(postcss@8.4.49)(typescript@5.7.2)(yaml@2.6.1): + tsup@8.3.6(@microsoft/api-extractor@7.47.12(@types/node@20.17.30))(jiti@1.21.6)(postcss@8.4.49)(typescript@5.7.2)(yaml@2.6.1): dependencies: bundle-require: 5.1.0(esbuild@0.24.2) cac: 6.7.14 @@ -47659,7 +47744,7 @@ snapshots: tinyglobby: 0.2.10 tree-kill: 1.2.2 optionalDependencies: - '@microsoft/api-extractor': 7.47.12(@types/node@20.17.6) + '@microsoft/api-extractor': 7.47.12(@types/node@20.17.30) postcss: 8.4.49 typescript: 5.7.2 transitivePeerDependencies: